Skip to content

Commit ab15729

Browse files
ArtemArtem
authored andcommitted
[messaging] More robust context handling
1 parent 14373e3 commit ab15729

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

sdk-messaging/src/main/java/ly/count/android/sdk/messaging/CountlyMessaging.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,10 +317,19 @@ protected static String getAppTitle(Context context) {
317317
}
318318

319319
public static void recordMessageAction(Context context, String messageId) {
320-
CountlyMessaging.context = context;
320+
if (CountlyMessaging.context == null) {
321+
CountlyMessaging.context = context;
322+
}
321323
recordMessageAction(messageId);
322324
}
323325

326+
public static void recordMessageAction(Context context, String messageId, int btnIndex) {
327+
if (CountlyMessaging.context == null) {
328+
CountlyMessaging.context = context;
329+
}
330+
recordMessageAction(messageId, btnIndex);
331+
}
332+
324333
public static void recordMessageAction(String messageId) {
325334
if (!Countly.sharedInstance().isInitialized()) {
326335
CountlyMessaging.initCountly(getContext());

sdk-messaging/src/main/java/ly/count/android/sdk/messaging/ProxyActivity.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public void onCancel(DialogInterface dialog) {
104104
@Override
105105
public void onClick(DialogInterface dialog, int which) {
106106
//record server side that the message was received
107-
CountlyMessaging.recordMessageAction(msg.getId(), 0);
107+
CountlyMessaging.recordMessageAction(ProxyActivity.this, msg.getId(), 0);
108108
finish();
109109
Intent activityIntent = msg.getIntent(ProxyActivity.this, CountlyMessaging.getActivityClass(ProxyActivity.this));
110110
addExtrasToIntent(activityIntent, addMetadata, 1, msg.getLink(), msg.getTitle(), msg.getMessage());
@@ -124,7 +124,7 @@ public void onClick(DialogInterface dialog, int which) {
124124
addButtons(builder, msg, addMetadata);
125125
} else {
126126
//record server side that the message was received
127-
CountlyMessaging.recordMessageAction(msg.getId());
127+
CountlyMessaging.recordMessageAction(ProxyActivity.this, msg.getId());
128128
}
129129
builder.setMessage(msg.getNotificationMessage());
130130
builder.setCancelable(true);
@@ -154,7 +154,7 @@ public void onCancel(DialogInterface dialog) {
154154

155155
//first one did not work, try another
156156
if (extras.containsKey(CountlyMessaging.EXTRA_ACTION_INDEX)) {
157-
CountlyMessaging.recordMessageAction(msg.getId(), extras.getInt(CountlyMessaging.EXTRA_ACTION_INDEX));
157+
CountlyMessaging.recordMessageAction(ProxyActivity.this, msg.getId(), extras.getInt(CountlyMessaging.EXTRA_ACTION_INDEX));
158158
for (Message.Button button : msg.getButtons()) {
159159
if (button.index == extras.getInt(CountlyMessaging.EXTRA_ACTION_INDEX)) {
160160
Intent targetIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(button.link));
@@ -166,7 +166,7 @@ public void onCancel(DialogInterface dialog) {
166166
}
167167
}
168168
} else {
169-
CountlyMessaging.recordMessageAction(msg.getId(), 0);
169+
CountlyMessaging.recordMessageAction(ProxyActivity.this, msg.getId(), 0);
170170
if (msg.hasLink()) {
171171
Intent targetIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(msg.getLink()));
172172
addExtrasToIntent(targetIntent, addMetadata, 0, msg.getLink(), msg.getTitle(), msg.getMessage());
@@ -188,7 +188,7 @@ private void addButtons(final AlertDialog.Builder builder, final Message msg, fi
188188
DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
189189
@Override
190190
public void onClick(DialogInterface dialog, int which) {
191-
CountlyMessaging.recordMessageAction(msg.getId(), which == DialogInterface.BUTTON_POSITIVE ? 1 : 2);
191+
CountlyMessaging.recordMessageAction(ProxyActivity.this, msg.getId(), which == DialogInterface.BUTTON_POSITIVE ? 1 : 2);
192192
//todo add extra's here
193193
//
194194
String buttonLink = msg.getButtons().get(which == DialogInterface.BUTTON_POSITIVE ? 0 : 1).link;

0 commit comments

Comments
 (0)