dependencies {
implementation('com.google.android.gms:play-services-analytics:18.0.2')
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class com.adjust.sdk.plugin.MacAddressUtil {
java.lang.String getMacAddress(android.content.Context);
}
-keep class com.adjust.sdk.plugin.AndroidIdUtil {
java.lang.String getAndroidId(android.content.Context);
}
-keep class com.google.android.gms.common.ConnectionResult {
int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
java.lang.String getId();
boolean isLimitAdTrackingEnabled();
}
import java.util.LinkedHashMap;
import java.util.Map;
import android.net.Uri;
import com.adjust.sdk.Adjust;
import com.adjust.sdk.AdjustAttribution;
import com.adjust.sdk.AdjustConfig;
import com.adjust.sdk.AdjustEvent;
import com.adjust.sdk.AdjustEventFailure;
import com.adjust.sdk.AdjustEventSuccess;
import com.adjust.sdk.LogLevel;
import com.adjust.sdk.OnAttributionChangedListener;
import com.adjust.sdk.OnDeeplinkResponseListener;
import com.adjust.sdk.OnEventTrackingFailedListener;
import com.adjust.sdk.OnEventTrackingSucceededListener;
import com.adjust.sdk.OnSessionTrackingFailedListener;
import com.adjust.sdk.OnSessionTrackingSucceededListener;
import com.adjust.sdk.AdjustSessionFailure;
import com.adjust.sdk.AdjustSessionSuccess;
Map<String, String> Adjust_Event_CallbackParameters;
Map<String, String> Adjust_Event_PartnerParameters;
public void AndroidThunkJava_Adjust_SetEnabled(boolean Enable)
{
// Disable or enable tracking (REMEMBERED BETWEEEN SESSIONS!!)
Adjust.setEnabled(Enable);
}
public void AndroidThunkJava_Adjust_SetOfflineMode(boolean Offline)
{
// Offline mode: (will save to file and send when disabled) ALWAYS STARTS in online mode!
Adjust.setOfflineMode(Offline);
}
public void AndroidThunkJava_Adjust_SetPushToken(String Token)
{
Adjust.setPushToken(Token);
}
public void AndroidThunkJava_Adjust_AddSessionPartnerParameter(String Key, String Value)
{
Adjust.addSessionPartnerParameter(Key, Value);
}
public void AndroidThunkJava_Adjust_RemoveSessionPartnerParameter(String Key)
{
Adjust.removeSessionPartnerParameter(Key);
}
public void AndroidThunkJava_Adjust_ResetSessionPartnerParameters()
{
Adjust.resetSessionPartnerParameters();
}
public void AndroidThunkJava_Adjust_Event_AddCallbackParameter(String Key, String Value)
{
if (Adjust_Event_CallbackParameters == null)
{
// use LinkedHashMap to preserve the ordering
Adjust_Event_CallbackParameters = new LinkedHashMap<String, String>();
}
Adjust_Event_CallbackParameters.put(Key, Value);
}
public void AndroidThunkJava_Adjust_Event_RemoveCallbackParameter(String Key)
{
if (Adjust_Event_CallbackParameters != null)
{
Adjust_Event_CallbackParameters.remove(Key);
}
}
public void AndroidThunkJava_Adjust_Event_ResetCallbackParameters()
{
Adjust_Event_CallbackParameters = null;
}
public void AndroidThunkJava_Adjust_Event_AddPartnerParameter(String Key, String Value)
{
if (Adjust_Event_PartnerParameters == null)
{
// use LinkedHashMap to preserve the ordering
Adjust_Event_PartnerParameters = new LinkedHashMap<String, String>();
}
Adjust_Event_PartnerParameters.put(Key, Value);
}
public void AndroidThunkJava_Adjust_Event_RemovePartnerParameter(String Key)
{
if (Adjust_Event_PartnerParameters != null)
{
Adjust_Event_PartnerParameters.remove(Key);
}
}
public void AndroidThunkJava_Adjust_Event_ResetPartnerParameters()
{
Adjust_Event_PartnerParameters = null;
}
private AdjustEvent Adjust_CreateEvent(String Token)
{
AdjustEvent event = new AdjustEvent(Token);
if (Adjust_Event_CallbackParameters != null)
{
for (LinkedHashMap.Entry<String, String> entry : Adjust_Event_CallbackParameters.entrySet())
{
event.addCallbackParameter(entry.getKey(), entry.getValue());
}
}
if (Adjust_Event_PartnerParameters != null)
{
for (LinkedHashMap.Entry<String, String> entry : Adjust_Event_PartnerParameters.entrySet())
{
event.addPartnerParameter(entry.getKey(), entry.getValue());
}
}
return event;
}
public void AndroidThunkJava_Adjust_SendEvent(String Token)
{
Adjust.trackEvent(Adjust_CreateEvent(Token));
}
public void AndroidThunkJava_Adjust_SendRevenueEvent(String Token, String OrderId, double Amount, String Currency)
{
AdjustEvent event = Adjust_CreateEvent(Token);
event.setRevenue(Amount, Currency); // 0.01, USD
if (OrderId != "")
{
event.setOrderId(OrderId); // optional to prevent duplication (remembers last 10)
}
Adjust.trackEvent(event);
}
String environment = AdjustConfig.ENVIRONMENT_SANDBOX;
String environment = AdjustConfig.ENVIRONMENT_PRODUCTION;
AdjustConfig config = new AdjustConfig(this, appToken, environment);
config.setSendInBackground(true);
config.setSendInBackground(false);
config.setEventBufferingEnabled(true);
config.setEventBufferingEnabled(false);
// set attribution delegate
config.setOnAttributionChangedListener(new OnAttributionChangedListener() {
@Override
public void onAttributionChanged(AdjustAttribution attribution) {
Log.debug("[ADJUST] attribution: " + attribution.toString());
}
});
// set event success tracking delegate
config.setOnEventTrackingSucceededListener(new OnEventTrackingSucceededListener() {
@Override
public void onFinishedEventTrackingSucceeded(AdjustEventSuccess eventSuccessResponseData) {
Log.debug("[ADJUST] success event tracking: " + eventSuccessResponseData.toString());
}
});
// set event failure tracking delegate
config.setOnEventTrackingFailedListener(new OnEventTrackingFailedListener() {
@Override
public void onFinishedEventTrackingFailed(AdjustEventFailure eventFailureResponseData) {
Log.debug("[ADJUST] failed event tracking: " + eventFailureResponseData.toString());
}
});
// set session success tracking delegate
config.setOnSessionTrackingSucceededListener(new OnSessionTrackingSucceededListener() {
@Override
public void onFinishedSessionTrackingSucceeded(AdjustSessionSuccess sessionSuccessResponseData) {
Log.debug("[ADJUST] success session tracking: " + sessionSuccessResponseData.toString());
}
});
// set session failure tracking delegate
config.setOnSessionTrackingFailedListener(new OnSessionTrackingFailedListener() {
@Override
public void onFinishedSessionTrackingFailed(AdjustSessionFailure sessionFailureResponseData) {
Log.debug("[ADJUST] failed session tracking: " + sessionFailureResponseData.toString());
}
});
// evaluate deeplink to be launched
config.setOnDeeplinkResponseListener(new OnDeeplinkResponseListener() {
@Override
public boolean launchReceivedDeeplink(Uri deeplink) {
Log.debug("[ADJUST] deeplink to open: " + deeplink);
return true;
}
});
Adjust.onCreate(config);
Adjust.onResume();
Adjust.onPause();