aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/services
diff options
context:
space:
mode:
authorChristian Schneppe <christian.schneppe@pix-art.de>2020-01-24 19:43:49 +0100
committerChristian Schneppe <christian.schneppe@pix-art.de>2020-01-24 19:43:49 +0100
commit04595db099f2c1107fc58420a1e8fa5ef207195d (patch)
tree287d64ddf16c7dc2b9a61acaafbda66d56226b19 /src/main/java/de/pixart/messenger/services
parent504e4f21a270e21fe3ae4e479998c24bf182626a (diff)
parse install referrer from gplay
Diffstat (limited to 'src/main/java/de/pixart/messenger/services')
-rw-r--r--src/main/java/de/pixart/messenger/services/InstallReferrerService.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/services/InstallReferrerService.java b/src/main/java/de/pixart/messenger/services/InstallReferrerService.java
new file mode 100644
index 000000000..d6e267820
--- /dev/null
+++ b/src/main/java/de/pixart/messenger/services/InstallReferrerService.java
@@ -0,0 +1,39 @@
+package de.pixart.messenger.services;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.util.Log;
+
+import java.net.URLDecoder;
+
+import de.pixart.messenger.Config;
+import de.pixart.messenger.ui.StartConversationActivity;
+import de.pixart.messenger.utils.SignupUtils;
+
+public class InstallReferrerService extends BroadcastReceiver {
+
+ public static final String INSTALL_REFERRER_BROADCAST_ACTION = "eu.siacs.conversations.install_referrer";
+
+ @Override
+ public void onReceive(final Context context, final Intent intent) {
+ final String referrer = intent == null ? null : intent.getStringExtra("referrer");
+ if (referrer == null) {
+ Log.d(Config.LOGTAG, "received empty referrer");
+ return;
+ }
+ try {
+ final String decoded = URLDecoder.decode(referrer, "UTF-8");
+ final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+ preferences.edit().putString(SignupUtils.INSTALL_REFERRER, decoded).apply();
+ Log.d(Config.LOGTAG, "stored referrer: " + decoded);
+ final Intent broadcastIntent = new Intent(INSTALL_REFERRER_BROADCAST_ACTION);
+ broadcastIntent.putExtra(StartConversationActivity.EXTRA_INVITE_URI, decoded);
+ context.sendBroadcast(broadcastIntent);
+ } catch (final Exception e) {
+ Log.d(Config.LOGTAG, "unable to process referrer", e);
+ }
+ }
+} \ No newline at end of file