summaryrefslogtreecommitdiffstats
path: root/mobile/android/base/java/org/mozilla/gecko/distribution/ReferrerReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/base/java/org/mozilla/gecko/distribution/ReferrerReceiver.java')
-rw-r--r--mobile/android/base/java/org/mozilla/gecko/distribution/ReferrerReceiver.java107
1 files changed, 0 insertions, 107 deletions
diff --git a/mobile/android/base/java/org/mozilla/gecko/distribution/ReferrerReceiver.java b/mobile/android/base/java/org/mozilla/gecko/distribution/ReferrerReceiver.java
deleted file mode 100644
index 3651d6068..000000000
--- a/mobile/android/base/java/org/mozilla/gecko/distribution/ReferrerReceiver.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- 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.distribution;
-
-import org.mozilla.gecko.AdjustConstants;
-import org.mozilla.gecko.annotation.RobocopTarget;
-import org.mozilla.gecko.AppConstants;
-import org.mozilla.gecko.GeckoAppShell;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.support.v4.content.LocalBroadcastManager;
-import android.text.TextUtils;
-import android.util.Log;
-
-public class ReferrerReceiver extends BroadcastReceiver {
- private static final String LOGTAG = "GeckoReferrerReceiver";
-
- private static final String ACTION_INSTALL_REFERRER = "com.android.vending.INSTALL_REFERRER";
-
- // Sent when we're done.
- @RobocopTarget
- public static final String ACTION_REFERRER_RECEIVED = "org.mozilla.fennec.REFERRER_RECEIVED";
-
- /**
- * If the install intent has this source, it is a Mozilla specific or over
- * the air distribution referral. We'll track the campaign ID using
- * Mozilla's metrics systems.
- *
- * If the install intent has a source different than this one, it is a
- * referral from an advertising network. We may track these campaigns using
- * third-party tracking and metrics systems.
- */
- private static final String MOZILLA_UTM_SOURCE = "mozilla";
-
- /**
- * If the install intent has this campaign, we'll load the specified distribution.
- */
- private static final String DISTRIBUTION_UTM_CAMPAIGN = "distribution";
-
- @Override
- public void onReceive(Context context, Intent intent) {
- Log.v(LOGTAG, "Received intent " + intent);
- if (!ACTION_INSTALL_REFERRER.equals(intent.getAction())) {
- // This should never happen.
- return;
- }
-
- // Track the referrer object for distribution handling.
- ReferrerDescriptor referrer = new ReferrerDescriptor(intent.getStringExtra("referrer"));
-
- if (!TextUtils.equals(referrer.source, MOZILLA_UTM_SOURCE)) {
- // Allow the Adjust handler to process the intent.
- try {
- AdjustConstants.getAdjustHelper().onReceive(context, intent);
- } catch (Exception e) {
- Log.e(LOGTAG, "Got exception in Adjust's onReceive; ignoring referrer intent.", e);
- }
- return;
- }
-
- if (TextUtils.equals(referrer.campaign, DISTRIBUTION_UTM_CAMPAIGN)) {
- Distribution.onReceivedReferrer(context, referrer);
- // We want Adjust information for OTA distributions as well
- try {
- AdjustConstants.getAdjustHelper().onReceive(context, intent);
- } catch (Exception e) {
- Log.e(LOGTAG, "Got exception in Adjust's onReceive for distribution.", e);
- }
- } else {
- Log.d(LOGTAG, "Not downloading distribution: non-matching campaign.");
- // If this is a Mozilla campaign, pass the campaign along to Gecko.
- // It'll pretend to be a "playstore" distribution for BLP purposes.
- propagateMozillaCampaign(referrer);
- }
-
- // Broadcast a secondary, local intent to allow test code to respond.
- final Intent receivedIntent = new Intent(ACTION_REFERRER_RECEIVED);
- LocalBroadcastManager.getInstance(context).sendBroadcast(receivedIntent);
- }
-
-
- private void propagateMozillaCampaign(ReferrerDescriptor referrer) {
- if (referrer.campaign == null) {
- return;
- }
-
- try {
- final JSONObject data = new JSONObject();
- data.put("id", "playstore");
- data.put("version", referrer.campaign);
- String payload = data.toString();
-
- // Try to make sure the prefs are written as a group.
- GeckoAppShell.notifyObservers("Campaign:Set", payload);
- } catch (JSONException e) {
- Log.e(LOGTAG, "Error propagating campaign identifier.", e);
- }
- }
-}