From 95157d29bfc06b94ed9911b9ac10541024e62629 Mon Sep 17 00:00:00 2001 From: Dmitry Yunitsky Date: Tue, 16 Jun 2015 12:19:48 +0300 Subject: [PATCH] Send install_referrer intent to both our statistics & MRGS with mytracker. --- android/AndroidManifest.xml | 14 ++++- .../util/MultipleTrackerReferrerReceiver.java | 53 +++++++++++++++++++ .../util/statistics/AlohaHelper.java | 2 + 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 android/src/com/mapswithme/util/MultipleTrackerReferrerReceiver.java diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index ab8a9755eb..f001f628b1 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -273,15 +273,25 @@ android:exported="false"> - + + + + + + + + + + diff --git a/android/src/com/mapswithme/util/MultipleTrackerReferrerReceiver.java b/android/src/com/mapswithme/util/MultipleTrackerReferrerReceiver.java new file mode 100644 index 0000000000..daf61c0439 --- /dev/null +++ b/android/src/com/mapswithme/util/MultipleTrackerReferrerReceiver.java @@ -0,0 +1,53 @@ +package com.mapswithme.util; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +import com.mapswithme.maps.MWMApplication; +import com.mapswithme.util.statistics.AlohaHelper; + +import ru.mail.mrgservice.MRGSBroadcastReceiver; + +/** + * Custom broadcast receiver to send intent to MRGS & Alohalytics at the same time + */ +public class MultipleTrackerReferrerReceiver extends BroadcastReceiver +{ + @Override + public void onReceive(Context context, Intent intent) + { + MWMApplication.get().initStats(); + // parse & send referrer to Aloha + try + { + if (intent.hasExtra("referrer")) + { + final String referrer = intent.getStringExtra("referrer"); + final String referrerSplitted[] = referrer.split("&"); + if (referrerSplitted.length != 0) + { + final String[] parsedValues = new String[referrerSplitted.length * 2]; + int i = 0; + for (String referrerValue : referrerSplitted) + { + String keyValue[] = referrerValue.split("="); + parsedValues[i++] = keyValue[0]; + parsedValues[i++] = keyValue.length == 2 ? keyValue[1] : ""; + } + + org.alohalytics.Statistics.logEvent(AlohaHelper.GPLAY_INSTALL_REFERRER, parsedValues); + } + else + org.alohalytics.Statistics.logEvent(AlohaHelper.GPLAY_INSTALL_REFERRER, referrer); + } + } catch (Exception e) + { + e.printStackTrace(); + } + intent.setComponent(null); + // now send intent to MRGS tools + MRGSBroadcastReceiver receiver = new MRGSBroadcastReceiver(); + receiver.onReceive(context, intent); + } +} diff --git a/android/src/com/mapswithme/util/statistics/AlohaHelper.java b/android/src/com/mapswithme/util/statistics/AlohaHelper.java index effb9d3038..eedd2d8ebf 100644 --- a/android/src/com/mapswithme/util/statistics/AlohaHelper.java +++ b/android/src/com/mapswithme/util/statistics/AlohaHelper.java @@ -58,4 +58,6 @@ public class AlohaHelper // installation of Parse public static final String PARSE_INSTALLATION_ID = "Android_Parse_Installation_Id"; public static final String PARSE_DEVICE_TOKEN = "Android_Parse_Device_Token"; + // installation + public static final String GPLAY_INSTALL_REFERRER = "$googlePlayInstallReferrer"; }