https://github.com/willowtreeapps/trafficcop
Monitor your Android apps' data usage so you can take action if it's over a threshold.
https://github.com/willowtreeapps/trafficcop
Last synced: about 1 year ago
JSON representation
Monitor your Android apps' data usage so you can take action if it's over a threshold.
- Host: GitHub
- URL: https://github.com/willowtreeapps/trafficcop
- Owner: willowtreeapps
- License: apache-2.0
- Created: 2014-10-15T15:18:37.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-10-22T16:19:43.000Z (over 11 years ago)
- Last Synced: 2024-04-14T23:17:23.846Z (about 2 years ago)
- Language: Java
- Size: 304 KB
- Stars: 27
- Watchers: 44
- Forks: 12
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/willowtreeapps/trafficcop)
Traffic Cop
==========
Monitor your Android app's data usage so you can take action if it's over a threshold.
### Usage
Use `TrafficCop.Builder` to create an instance to use throughout your app. This is usually done in your Application subclass.
```java
public class MyApplication extends Application {
public void onCreate() {
new TrafficCop.Builder()
// Set a threshold for downloads
.downloadWarningThreshold(Threshold.of(1, SizeUnit.GIGABYTE).per(1, TimeUnit.WEEK))
// Set a threshold for uploads
.uploadWarningThreshold(Threshold.of(10, SizeUnit.MEGABYTES).per(TimeUnit.HOUR))
// Register callbacks to be alerted when the threshold is reached
.alert(new LogDataUsageAlertAdapter(), new DataUsageAlertAdapter() {
@Override
public void alertThreshold(Threshold threshold, DataUsage dataUsage) {
// Alert somehow!
}
})
// Pass a string that uniquely identifies this instance.
.register("myTrafficCop", this);
}
}
```
That's it!
If you want more control of when you measure you can create the `TrafficCop` instance instead of registering it.
```java
TrafficCop trafficCop = new TrafficCop.Builder()
.downloadWarningThreshold(Threshold.of(1, SizeUnit.GIGABYTE).per(1, TimeUnit.WEEK))
.uploadWarningThreshold(Threshold.of(10, SizeUnit.MEGABYTES).per(TimeUnit.HOUR))
.alert(new LogDataUsageAlertAdapter(), new DataUsageAlertAdapter() {
@Override
public void alertThreshold(Threshold threshold, DataUsage dataUsage) {
// Alert somehow!
}
})
.create("myTrafficCop", this);
```
then call `trafficCop.startMeasuring()` and `trafficCop.stopMeasuing()` at the approprite times.