diff options
author | Christian Schneppe <christian.schneppe@pix-art.de> | 2020-01-24 19:43:49 +0100 |
---|---|---|
committer | Christian Schneppe <christian.schneppe@pix-art.de> | 2020-01-24 19:43:49 +0100 |
commit | 04595db099f2c1107fc58420a1e8fa5ef207195d (patch) | |
tree | 287d64ddf16c7dc2b9a61acaafbda66d56226b19 /src/main/java/de/pixart/messenger/services/InstallReferrerService.java | |
parent | 504e4f21a270e21fe3ae4e479998c24bf182626a (diff) |
parse install referrer from gplay
Diffstat (limited to 'src/main/java/de/pixart/messenger/services/InstallReferrerService.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/InstallReferrerService.java | 39 |
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 |