Skip to content

Support tracking journey_id for push open events #467

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 14, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 15 additions & 4 deletions src/main/java/com/mixpanel/android/mpmetrics/GCMReceiver.java
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,10 @@ private NotificationData(int anIcon, int aLargeIcon, int aWhiteIcon, CharSequenc
final String colorName = inboundIntent.getStringExtra("mp_color");
final String campaignId = inboundIntent.getStringExtra("mp_campaign_id");
final String messageId = inboundIntent.getStringExtra("mp_message_id");
final String extraLogData = inboundIntent.getStringExtra("mp");
int color = NotificationData.NOT_SET;

trackCampaignReceived(campaignId, messageId);
trackCampaignReceived(campaignId, messageId, extraLogData);

if (colorName != null) {
try {
Expand Down Expand Up @@ -202,12 +203,12 @@ private NotificationData(int anIcon, int aLargeIcon, int aWhiteIcon, CharSequenc
notificationTitle = "A message for you";
}

final Intent notificationIntent = buildNotificationIntent(context, uriString, campaignId, messageId);
final Intent notificationIntent = buildNotificationIntent(context, uriString, campaignId, messageId, extraLogData);

return new NotificationData(notificationIcon, largeNotificationIcon, whiteNotificationIcon, notificationTitle, message, notificationIntent, color);
}

private Intent buildNotificationIntent(Context context, String uriString, String campaignId, String messageId) {
private Intent buildNotificationIntent(Context context, String uriString, String campaignId, String messageId, String extraLogData) {
Uri uri = null;
if (null != uriString) {
uri = Uri.parse(uriString);
Expand All @@ -228,6 +229,10 @@ private Intent buildNotificationIntent(Context context, String uriString, String
ret.putExtra("mp_message_id", messageId);
}

if (extraLogData != null) {
ret.putExtra("mp", extraLogData);
}

return ret;
}

Expand Down Expand Up @@ -394,13 +399,19 @@ protected Notification makeNotificationSDK21OrHigher(Context context, PendingInt
return n;
}

private void trackCampaignReceived(final String campaignId, final String messageId) {
private void trackCampaignReceived(final String campaignId, final String messageId, final String extraLogData) {
if (campaignId != null && messageId != null) {
MixpanelAPI.allInstances(new InstanceProcessor() {
@Override
public void process(MixpanelAPI api) {
if(api.isAppInForeground()) {
JSONObject pushProps = new JSONObject();
try {
if (extraLogData != null) {
pushProps = new JSONObject(extraLogData);
}
} catch (JSONException e) {}

try {
pushProps.put("campaign_id", campaignId);
pushProps.put("message_id", messageId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,14 @@ public void onActivityStarted(Activity activity) {
if (activity.getIntent().hasExtra("mp_campaign_id") && activity.getIntent().hasExtra("mp_message_id")) {
String campaignId = activity.getIntent().getStringExtra("mp_campaign_id");
String messageId = activity.getIntent().getStringExtra("mp_message_id");
String extraLogData = activity.getIntent().getStringExtra("mp");

JSONObject pushProps = new JSONObject();
try {
if (extraLogData != null) {
pushProps = new JSONObject(extraLogData);
}
} catch (JSONException e) {}
try {
pushProps.put("campaign_id", campaignId);
pushProps.put("message_id", messageId);
Expand All @@ -48,6 +54,7 @@ public void onActivityStarted(Activity activity) {

activity.getIntent().removeExtra("mp_campaign_id");
activity.getIntent().removeExtra("mp_message_id");
activity.getIntent().removeExtra("mp");
}

if (android.os.Build.VERSION.SDK_INT >= MPConfig.UI_FEATURES_MIN_API && mConfig.getAutoShowMixpanelUpdates()) {
Expand Down