Skip to content

Commit 0abfac3

Browse files
authored
Merge pull request #277 from adjust/v4114
V4114
2 parents a10881d + ac16f84 commit 0abfac3

36 files changed

+588
-221
lines changed

Adjust/adjust/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apply plugin: 'com.android.library'
22

33
def getVersionName() {
4-
return "4.11.3"
4+
return "4.11.4"
55
}
66

77
android {
@@ -25,7 +25,7 @@ task clearJar(type: Delete) {
2525
}
2626

2727
task makeJar(type: Copy) {
28-
from('build/intermediates/bundles/release/')
28+
from('build/intermediates/bundles/default/')
2929
into('build/outputs/')
3030
include('classes.jar')
3131
rename ('classes.jar', "adjust-${getVersionName()}.jar")

Adjust/adjust/src/main/java/com/adjust/sdk/ActivityHandler.java

Lines changed: 49 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,11 @@ public void finishedTrackingActivity(ResponseData responseData) {
300300
attributionHandler.checkSessionResponse((SessionResponseData)responseData);
301301
return;
302302
}
303+
// redirect sdk click responses to attribution handler to check for attribution information
304+
if (responseData instanceof SdkClickResponseData) {
305+
attributionHandler.checkSdkClickResponse((SdkClickResponseData)responseData);
306+
return;
307+
}
303308
// check if it's an event response
304309
if (responseData instanceof EventResponseData) {
305310
launchEventResponseTasks((EventResponseData)responseData);
@@ -489,6 +494,16 @@ public void run() {
489494
});
490495
}
491496

497+
@Override
498+
public void launchSdkClickResponseTasks(final SdkClickResponseData sdkClickResponseData) {
499+
scheduledExecutor.submit(new Runnable() {
500+
@Override
501+
public void run() {
502+
launchSdkClickResponseTasksI(sdkClickResponseData);
503+
}
504+
});
505+
}
506+
492507
@Override
493508
public void launchSessionResponseTasks(final SessionResponseData sessionResponseData) {
494509
scheduledExecutor.submit(new Runnable() {
@@ -744,14 +759,14 @@ public void run() {
744759
attributionPackage,
745760
toSendI(false));
746761

747-
sdkClickHandler = AdjustFactory.getSdkClickHandler(toSendI(true));
762+
sdkClickHandler = AdjustFactory.getSdkClickHandler(this, toSendI(true));
748763

749764
if (isToUpdatePackagesI()) {
750765
updatePackagesI();
751766
}
752767

753768
if (adjustConfig.referrer != null) {
754-
sendReferrerI(adjustConfig.referrer, adjustConfig.referrerClickTime); // send to background queue to make sure that activityState is valid
769+
sendReferrerI(adjustConfig.referrer, adjustConfig.referrerClickTime);
755770
}
756771

757772
sessionParametersActionsI(adjustConfig.sessionParametersActionsArray);
@@ -949,6 +964,22 @@ public void run() {
949964
}
950965
}
951966

967+
private void launchSdkClickResponseTasksI(SdkClickResponseData sdkClickResponseData) {
968+
// try to update adid from response
969+
updateAdidI(sdkClickResponseData.adid);
970+
971+
// use the same handler to ensure that all tasks are executed sequentially
972+
Handler handler = new Handler(adjustConfig.context.getMainLooper());
973+
974+
// try to update the attribution
975+
boolean attributionUpdated = updateAttributionI(sdkClickResponseData.attribution);
976+
977+
// if attribution changed, launch attribution changed delegate
978+
if (attributionUpdated) {
979+
launchAttributionListenerI(handler);
980+
}
981+
}
982+
952983
private void launchSessionResponseTasksI(SessionResponseData sessionResponseData) {
953984
// try to update adid from response
954985
updateAdidI(sessionResponseData.adid);
@@ -1109,7 +1140,7 @@ private void sendReferrerI(String referrer, long clickTime) {
11091140

11101141
clickPackageBuilder.referrer = referrer;
11111142
clickPackageBuilder.clickTime = clickTime;
1112-
ActivityPackage clickPackage = clickPackageBuilder.buildClickPackage(Constants.REFTAG);
1143+
ActivityPackage clickPackage = clickPackageBuilder.buildClickPackage(Constants.REFTAG, sessionParameters);
11131144

11141145
sdkClickHandler.sendSdkClick(clickPackage);
11151146
}
@@ -1120,6 +1151,9 @@ private void readOpenUrlI(Uri url, long clickTime) {
11201151
}
11211152

11221153
String urlString = url.toString();
1154+
if (urlString == null || urlString.length() == 0) {
1155+
return;
1156+
}
11231157
logger.verbose("Url to parse (%s)", url);
11241158

11251159
UrlQuerySanitizer querySanitizer = new UrlQuerySanitizer();
@@ -1134,13 +1168,14 @@ private void readOpenUrlI(Uri url, long clickTime) {
11341168

11351169
clickPackageBuilder.deeplink = url.toString();
11361170
clickPackageBuilder.clickTime = clickTime;
1137-
ActivityPackage clickPackage = clickPackageBuilder.buildClickPackage(Constants.DEEPLINK);
1171+
ActivityPackage clickPackage = clickPackageBuilder.buildClickPackage(Constants.DEEPLINK, sessionParameters);
11381172

11391173
sdkClickHandler.sendSdkClick(clickPackage);
11401174
}
11411175

11421176
private PackageBuilder queryStringClickPackageBuilderI(
1143-
List<UrlQuerySanitizer.ParameterValuePair> queryList) {
1177+
List<UrlQuerySanitizer.ParameterValuePair> queryList)
1178+
{
11441179
if (queryList == null) {
11451180
return null;
11461181
}
@@ -1157,6 +1192,12 @@ private PackageBuilder queryStringClickPackageBuilderI(
11571192
String reftag = queryStringParameters.remove(Constants.REFTAG);
11581193

11591194
long now = System.currentTimeMillis();
1195+
// check of activity state != null
1196+
// because referrer can be called before onResume
1197+
if (activityState != null) {
1198+
long lastInterval = now - activityState.lastActivity;
1199+
activityState.lastInterval = lastInterval;
1200+
}
11601201
PackageBuilder builder = new PackageBuilder(adjustConfig, deviceInfo, activityState, now);
11611202
builder.extraParameters = queryStringParameters;
11621203
builder.attribution = queryStringAttribution;
@@ -1174,7 +1215,9 @@ private boolean readQueryStringI(String key, String value,
11741215
if (!key.startsWith(ADJUST_PREFIX)) { return false; }
11751216

11761217
String keyWOutPrefix = key.substring(ADJUST_PREFIX.length());
1177-
if (keyWOutPrefix.length() == 0) return false;
1218+
if (keyWOutPrefix.length() == 0) { return false; }
1219+
1220+
if (value.length() == 0) { return false;}
11781221

11791222
if (!trySetAttributionI(queryStringAttribution, keyWOutPrefix, value)) {
11801223
extraParameters.put(keyWOutPrefix, value);

Adjust/adjust/src/main/java/com/adjust/sdk/AdjustConfig.java

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ public class AdjustConfig {
2828
boolean sendInBackground;
2929
Double delayStart;
3030
List<IRunActivityHandler> sessionParametersActionsArray;
31-
boolean allowSuppressLogLevel;
3231
ILogger logger;
3332
String userAgent;
3433
String pushToken;
@@ -45,10 +44,13 @@ public AdjustConfig(Context context, String appToken, String environment, boolea
4544
}
4645

4746
private void init(Context context, String appToken, String environment, boolean allowSuppressLogLevel) {
48-
this.allowSuppressLogLevel = allowSuppressLogLevel;
4947
logger = AdjustFactory.getLogger();
5048
// default values
51-
setLogLevel(LogLevel.INFO, environment);
49+
if (allowSuppressLogLevel && AdjustConfig.ENVIRONMENT_PRODUCTION.equals(environment)) {
50+
setLogLevel(LogLevel.SUPRESS, environment);
51+
} else {
52+
setLogLevel(LogLevel.INFO, environment);
53+
}
5254

5355
if (!isValid(context, appToken, environment)) {
5456
return;
@@ -142,25 +144,7 @@ private boolean isValid(Context context, String appToken, String environment) {
142144
}
143145

144146
private void setLogLevel(LogLevel logLevel, String environment) {
145-
LogLevel newLogLevel = null;
146-
if (ENVIRONMENT_PRODUCTION.equals(environment)) {
147-
// production && allows supress -> Supress
148-
if (allowSuppressLogLevel) {
149-
newLogLevel = LogLevel.SUPRESS;
150-
} else {
151-
// production && not allow supress -> Assert
152-
newLogLevel = LogLevel.ASSERT;
153-
}
154-
} else {
155-
// not allow supress && try supress -> Assert
156-
if (!allowSuppressLogLevel &&
157-
logLevel == LogLevel.SUPRESS) {
158-
newLogLevel = LogLevel.ASSERT;
159-
} else {
160-
newLogLevel = logLevel;
161-
}
162-
}
163-
logger.setLogLevel(newLogLevel);
147+
logger.setLogLevel(logLevel, AdjustConfig.ENVIRONMENT_PRODUCTION.equals(environment));
164148
}
165149

166150
private boolean checkContext(Context context) {
@@ -198,13 +182,13 @@ private boolean checkEnvironment(String environment) {
198182
}
199183

200184
if (environment.equals(AdjustConfig.ENVIRONMENT_SANDBOX)) {
201-
logger.Assert("SANDBOX: Adjust is running in Sandbox mode. " +
185+
logger.warnInProduction("SANDBOX: Adjust is running in Sandbox mode. " +
202186
"Use this setting for testing. " +
203187
"Don't forget to set the environment to `production` before publishing!");
204188
return true;
205189
}
206190
if (environment.equals(AdjustConfig.ENVIRONMENT_PRODUCTION)) {
207-
logger.Assert(
191+
logger.warnInProduction(
208192
"PRODUCTION: Adjust is running in Production mode. " +
209193
"Use this setting only for the build that you want to publish. " +
210194
"Set the environment to `sandbox` if you want to test your app!");

Adjust/adjust/src/main/java/com/adjust/sdk/AdjustFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,12 @@ public static HttpsURLConnection getHttpsURLConnection(URL url) throws IOExcepti
127127
return AdjustFactory.httpsURLConnection;
128128
}
129129

130-
public static ISdkClickHandler getSdkClickHandler(boolean startsSending) {
130+
public static ISdkClickHandler getSdkClickHandler(IActivityHandler activityHandler, boolean startsSending) {
131131
if (sdkClickHandler == null) {
132-
return new SdkClickHandler(startsSending);
132+
return new SdkClickHandler(activityHandler, startsSending);
133133
}
134134

135-
sdkClickHandler.init(startsSending);
135+
sdkClickHandler.init(activityHandler, startsSending);
136136
return sdkClickHandler;
137137
}
138138

Adjust/adjust/src/main/java/com/adjust/sdk/AttributionHandler.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,21 @@ public void run() {
9191
});
9292
}
9393

94+
@Override
95+
public void checkSdkClickResponse(final SdkClickResponseData sdkClickResponseData) {
96+
scheduledExecutor.submit(new Runnable() {
97+
@Override
98+
public void run() {
99+
IActivityHandler activityHandler = activityHandlerWeakRef.get();
100+
if (activityHandler == null) {
101+
return;
102+
}
103+
104+
checkSdkClickResponseI(activityHandler, sdkClickResponseData);
105+
}
106+
});
107+
}
108+
94109
public void checkAttributionResponse(final AttributionResponseData attributionResponseData) {
95110
scheduledExecutor.submit(new Runnable() {
96111
@Override
@@ -167,6 +182,12 @@ private void checkSessionResponseI(IActivityHandler activityHandler, SessionResp
167182
activityHandler.launchSessionResponseTasks(sessionResponseData);
168183
}
169184

185+
private void checkSdkClickResponseI(IActivityHandler activityHandler, SdkClickResponseData sdkClickResponseData) {
186+
checkAttributionI(activityHandler, sdkClickResponseData);
187+
188+
activityHandler.launchSdkClickResponseTasks(sdkClickResponseData);
189+
}
190+
170191
private void checkAttributionResponseI(IActivityHandler activityHandler, AttributionResponseData attributionResponseData) {
171192
checkAttributionI(activityHandler, attributionResponseData);
172193

Adjust/adjust/src/main/java/com/adjust/sdk/Constants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public interface Constants {
2929
String BASE_URL = "https://app.adjust.com";
3030
String SCHEME = "https";
3131
String AUTHORITY = "app.adjust.com";
32-
String CLIENT_SDK = "android4.11.3";
32+
String CLIENT_SDK = "android4.11.4";
3333
String LOGTAG = "Adjust";
3434
String REFTAG = "reftag";
3535
String DEEPLINK = "deeplink";

Adjust/adjust/src/main/java/com/adjust/sdk/IActivityHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public interface IActivityHandler {
2828

2929
void launchSessionResponseTasks(SessionResponseData sessionResponseData);
3030

31+
void launchSdkClickResponseTasks(SdkClickResponseData sdkClickResponseData);
32+
3133
void launchAttributionResponseTasks(AttributionResponseData attributionResponseData);
3234

3335
void sendReferrer(String referrer, long clickTime);

Adjust/adjust/src/main/java/com/adjust/sdk/IAttributionHandler.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ void init(IActivityHandler activityHandler,
1010

1111
void getAttribution();
1212

13-
void checkSessionResponse(SessionResponseData responseData);
13+
void checkSessionResponse(SessionResponseData sessionResponseData);
14+
15+
void checkSdkClickResponse(SdkClickResponseData sdkClickResponseData);
1416

1517
void pauseSending();
1618

Adjust/adjust/src/main/java/com/adjust/sdk/ILogger.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.adjust.sdk;
22

33
public interface ILogger {
4-
void setLogLevel(LogLevel logLevel);
4+
void setLogLevel(LogLevel logLevel, boolean isProductionEnvironment);
55

6-
void setLogLevelString(String logLevelString);
6+
void setLogLevelString(String logLevelString, boolean isProductionEnvironment);
77

88
void verbose(String message, Object... parameters);
99

@@ -12,6 +12,7 @@ public interface ILogger {
1212
void info(String message, Object... parameters);
1313

1414
void warn(String message, Object... parameters);
15+
void warnInProduction(String message, Object... parameters);
1516

1617
void error(String message, Object... parameters);
1718

Adjust/adjust/src/main/java/com/adjust/sdk/ISdkClickHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Created by pfms on 31/03/16.
55
*/
66
public interface ISdkClickHandler {
7-
void init(boolean startsSending);
7+
void init(IActivityHandler activityHandler, boolean startsSending);
88
void pauseSending();
99
void resumeSending();
1010
void sendSdkClick(ActivityPackage sdkClick);

0 commit comments

Comments
 (0)