diff options
Diffstat (limited to 'mobile/android/base/java/org/mozilla/gecko/adjust/AdjustHelper.java')
-rw-r--r-- | mobile/android/base/java/org/mozilla/gecko/adjust/AdjustHelper.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/mobile/android/base/java/org/mozilla/gecko/adjust/AdjustHelper.java b/mobile/android/base/java/org/mozilla/gecko/adjust/AdjustHelper.java new file mode 100644 index 000000000..19399e735 --- /dev/null +++ b/mobile/android/base/java/org/mozilla/gecko/adjust/AdjustHelper.java @@ -0,0 +1,75 @@ +/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.adjust; + +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +import com.adjust.sdk.Adjust; +import com.adjust.sdk.AdjustAttribution; +import com.adjust.sdk.AdjustConfig; +import com.adjust.sdk.AdjustReferrerReceiver; +import com.adjust.sdk.LogLevel; +import com.adjust.sdk.OnAttributionChangedListener; + +import org.mozilla.gecko.AppConstants; + +public class AdjustHelper implements AdjustHelperInterface, OnAttributionChangedListener { + + private static final String LOGTAG = AdjustHelper.class.getSimpleName(); + private AttributionHelperListener attributionListener; + + public void onCreate(final Context context, final String maybeAppToken, final AttributionHelperListener listener) { + final String environment; + final LogLevel logLevel; + if (AppConstants.MOZILLA_OFFICIAL) { + environment = AdjustConfig.ENVIRONMENT_PRODUCTION; + logLevel = LogLevel.WARN; + } else { + environment = AdjustConfig.ENVIRONMENT_SANDBOX; + logLevel = LogLevel.VERBOSE; + } + if (maybeAppToken == null) { + // We've got install tracking turned on -- we better have a token! + throw new IllegalArgumentException("maybeAppToken must not be null"); + } + attributionListener = listener; + AdjustConfig config = new AdjustConfig(context, maybeAppToken, environment); + config.setLogLevel(logLevel); + config.setOnAttributionChangedListener(this); + Adjust.onCreate(config); + } + + public void onPause() { + Adjust.onPause(); + } + + public void onResume() { + Adjust.onResume(); + } + + public void setEnabled(final boolean isEnabled) { + Adjust.setEnabled(isEnabled); + } + + public void onReceive(final Context context, final Intent intent) { + new AdjustReferrerReceiver().onReceive(context, intent); + } + + @Override + public void onAttributionChanged(AdjustAttribution attribution) { + if (attributionListener == null) { + throw new IllegalStateException("Expected non-null attribution listener."); + } + + if (attribution == null) { + Log.e(LOGTAG, "Adjust attribution is null; skipping campaign id retrieval."); + return; + } + attributionListener.onCampaignIdChanged(attribution.campaign); + } +} |