Skip to content

Commit 0c545af

Browse files
committed
Merge pull request #33 from adeven/disable_offline_tracking
Add option to disable offline tracking
2 parents 3452388 + bb7bb9c commit 0c545af

File tree

8 files changed

+55
-23
lines changed

8 files changed

+55
-23
lines changed

AdjustIo/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ android {
2424
compileSdkVersion 19
2525
defaultConfig {
2626
versionCode 11
27-
versionName '2.1.5'
27+
versionName '2.1.6'
2828
minSdkVersion 8
2929
targetSdkVersion 19
3030
}

AdjustIo/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<artifactId>adjustio-android</artifactId>
77
<groupId>com.adeven.adjustio</groupId>
8-
<version>2.1.5</version>
8+
<version>2.1.6</version>
99
<packaging>jar</packaging>
1010
<properties>
1111
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

AdjustIo/src/com/adeven/adjustio/ActivityHandler.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class ActivityHandler extends HandlerThread {
5858
private String environment;
5959
private String defaultTracker;
6060
private boolean eventBuffering;
61+
private boolean dropOfflineActivities;
6162

6263
private String appToken;
6364
private String macSha1;
@@ -206,7 +207,7 @@ private void initInternal(boolean fromBundle) {
206207
fbAttributionId = Util.getAttributionId(context);
207208
userAgent = Util.getUserAgent(context);
208209

209-
packageHandler = new PackageHandler(context);
210+
packageHandler = new PackageHandler(context, dropOfflineActivities);
210211
readActivityState();
211212
}
212213

@@ -507,6 +508,7 @@ private void processApplicationBundle() {
507508
setDefaultTracker(bundle.getString("AdjustIoDefaultTracker"));
508509
setEventBuffering(bundle.getBoolean("AdjustIoEventBuffering"));
509510
Logger.setLogLevelString(bundle.getString("AdjustIoLogLevel"));
511+
setDropOfflineActivities(bundle.getBoolean("AdjustIoDropOfflineActivities"));
510512
}
511513

512514
private void setEnvironment(String env) {
@@ -543,6 +545,13 @@ private void setDefaultTracker(String tracker) {
543545
}
544546
}
545547

548+
private void setDropOfflineActivities(boolean drop) {
549+
dropOfflineActivities = drop;
550+
if (dropOfflineActivities) {
551+
Logger.info("Offline activities will get dropped");
552+
}
553+
}
554+
546555
private Bundle getApplicationBundle() {
547556
final ApplicationInfo applicationInfo;
548557
try {

AdjustIo/src/com/adeven/adjustio/Constants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public interface Constants {
2020
int THIRTY_MINUTES = 30 * ONE_MINUTE;
2121

2222
String BASE_URL = "https://app.adjust.io";
23-
String CLIENT_SDK = "android2.1.5";
23+
String CLIENT_SDK = "android2.1.6";
2424
String LOGTAG = "AdjustIo";
2525

2626
String SESSION_STATE_FILENAME = "AdjustIoActivityState";

AdjustIo/src/com/adeven/adjustio/PackageHandler.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,16 @@ public class PackageHandler extends HandlerThread {
4040
private AtomicBoolean isSending;
4141
private boolean paused;
4242
private final Context context;
43+
private final boolean dropOfflineActivities;
4344

44-
protected PackageHandler(Context context) {
45+
protected PackageHandler(Context context, boolean dropOfflineActivities) {
4546
super(Constants.LOGTAG, MIN_PRIORITY);
4647
setDaemon(true);
4748
start();
4849
this.internalHandler = new InternalHandler(getLooper(), this);
4950

5051
this.context = context;
52+
this.dropOfflineActivities = dropOfflineActivities;
5153

5254
Message message = Message.obtain();
5355
message.arg1 = InternalHandler.INIT;
@@ -79,7 +81,11 @@ protected void sendNextPackage() {
7981

8082
// close the package to retry in the future (after temporary failure)
8183
protected void closeFirstPackage() {
82-
isSending.set(false);
84+
if (dropOfflineActivities) {
85+
sendNextPackage();
86+
} else {
87+
isSending.set(false);
88+
}
8389
}
8490

8591
// interrupt the sending loop after the current request has finished
@@ -92,6 +98,15 @@ protected void resumeSending() {
9298
paused = false;
9399
}
94100

101+
// short info about how failing packages are handled
102+
protected String getFailureMessage() {
103+
if (dropOfflineActivities) {
104+
return "Dropping offline activity.";
105+
} else {
106+
return "Will retry later.";
107+
}
108+
}
109+
95110
private static final class InternalHandler extends Handler {
96111
private static final int INIT = 1;
97112
private static final int ADD = 2;
@@ -175,6 +190,11 @@ private void sendNextInternal() {
175190
}
176191

177192
private void readPackageQueue() {
193+
if (dropOfflineActivities) {
194+
packageQueue = new ArrayList<ActivityPackage>();
195+
return; // don't read old packages when offline tracking is disabled
196+
}
197+
178198
try {
179199
FileInputStream inputStream = context.openFileInput(PACKAGE_QUEUE_FILENAME);
180200
BufferedInputStream bufferedStream = new BufferedInputStream(inputStream);
@@ -209,6 +229,10 @@ private void readPackageQueue() {
209229
}
210230

211231
private void writePackageQueue() {
232+
if (dropOfflineActivities) {
233+
return; // don't write packages when offline tracking is disabled
234+
}
235+
212236
try {
213237
FileOutputStream outputStream = context.openFileOutput(PACKAGE_QUEUE_FILENAME, Context.MODE_PRIVATE);
214238
BufferedOutputStream bufferedStream = new BufferedOutputStream(outputStream);

AdjustIo/src/com/adeven/adjustio/RequestHandler.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -148,29 +148,28 @@ private String parseResponse(HttpResponse response) {
148148
}
149149

150150
private void closePackage(ActivityPackage activityPackage, String message, Throwable throwable) {
151-
final String failureMessage = activityPackage.getFailureMessage();
152-
final String errorMessage;
153-
if (throwable != null) {
154-
errorMessage = String.format("%s. (%s: %s) Will retry later.", failureMessage, message, throwable);
155-
} else {
156-
errorMessage = String.format("%s. (%s) Will retry later.", failureMessage, message);
157-
}
158-
Logger.error(errorMessage);
151+
final String packageMessage = activityPackage.getFailureMessage();
152+
final String handlerMessage = packageHandler.getFailureMessage();
153+
final String reasonString = getReasonString(message, throwable);
154+
Logger.error(String.format("%s. (%s) %s", packageMessage, reasonString, handlerMessage));
159155
packageHandler.closeFirstPackage();
160156
}
161157

162158
private void sendNextPackage(ActivityPackage activityPackage, String message, Throwable throwable) {
163-
String failureMessage = activityPackage.getFailureMessage();
159+
final String failureMessage = activityPackage.getFailureMessage();
160+
final String reasonString = getReasonString(message, throwable);
161+
Logger.error(String.format("%s. (%s)", failureMessage, reasonString));
162+
packageHandler.sendNextPackage();
163+
}
164+
165+
private String getReasonString(String message, Throwable throwable) {
164166
if (throwable != null) {
165-
Logger.error(String.format("%s (%s: %s)", failureMessage, message, throwable));
167+
return String.format("%s: %s", message, throwable);
166168
} else {
167-
Logger.error(String.format("%s (%s)", failureMessage, message));
169+
return String.format("%s", message);
168170
}
169-
170-
packageHandler.sendNextPackage();
171171
}
172172

173-
174173
private HttpUriRequest getRequest(ActivityPackage activityPackage) throws UnsupportedEncodingException {
175174
String url = Constants.BASE_URL + activityPackage.getPath();
176175
HttpPost request = new HttpPost(url);

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.1.5
1+
2.1.6

doc/migrate.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
## Migrate to AdjustIo SDK for Android v2.1.5
1+
## Migrate to AdjustIo SDK for Android v2.1.6
22

33
0. In order to save some time later on you might want to check your current SDK
44
Version. You can find that value in a constant named `CLIENT_SDK` (or
55
`CLIENTSDK`) in `com.adeven.adjustio/Util.java`. It should look like
66
`android1.6` or similar.
77

88
1. Delete the old `AdjustIo` project from your `Package Explorer`. Download
9-
version v2.1.5 and create a new `Android Project from Existing Code` as
9+
version v2.1.6 and create a new `Android Project from Existing Code` as
1010
described in the [README].
1111

1212
![][import]

0 commit comments

Comments
 (0)