10
10
import android .view .View ;
11
11
import android .view .ViewGroup ;
12
12
13
- import androidx .annotation .NonNull ;
14
- import androidx .annotation .Nullable ;
15
- import androidx .appcompat .app .AppCompatActivity ;
16
- import androidx .core .app .TaskStackBuilder ;
17
- import androidx .fragment .app .Fragment ;
18
- import androidx .fragment .app .FragmentManager ;
19
- import androidx .fragment .app .FragmentTransaction ;
20
-
21
13
import org .infobip .mobile .messaging .Event ;
22
14
import org .infobip .mobile .messaging .Message ;
23
15
import org .infobip .mobile .messaging .MessageHandlerModule ;
24
16
import org .infobip .mobile .messaging .MobileMessaging ;
25
17
import org .infobip .mobile .messaging .MobileMessagingCore ;
26
18
import org .infobip .mobile .messaging .MobileMessagingProperty ;
27
- import org .infobip .mobile .messaging .NotificationSettings ;
28
19
import org .infobip .mobile .messaging .api .chat .WidgetInfo ;
29
20
import org .infobip .mobile .messaging .app .ActivityLifecycleMonitor ;
30
21
import org .infobip .mobile .messaging .chat .core .InAppChatBroadcasterImpl ;
54
45
import java .util .Locale ;
55
46
import java .util .concurrent .Executors ;
56
47
48
+ import androidx .annotation .NonNull ;
49
+ import androidx .annotation .Nullable ;
50
+ import androidx .appcompat .app .AppCompatActivity ;
51
+ import androidx .core .app .TaskStackBuilder ;
52
+ import androidx .fragment .app .Fragment ;
53
+ import androidx .fragment .app .FragmentManager ;
54
+ import androidx .fragment .app .FragmentTransaction ;
55
+
57
56
58
57
public class InAppChatImpl extends InAppChat implements MessageHandlerModule {
59
58
@@ -157,32 +156,27 @@ public boolean messageTapped(Message message) {
157
156
158
157
private void doCoreTappedActions (Message chatMessage ) {
159
158
TaskStackBuilder stackBuilder = stackBuilderForNotificationTap (chatMessage );
160
- if (stackBuilder .getIntentCount () != 0 ) {
159
+ if (stackBuilder != null && stackBuilder .getIntentCount () > 0 ) {
161
160
stackBuilder .startActivities ();
162
161
}
163
162
}
164
163
165
- @ NonNull
164
+ @ Nullable
166
165
private TaskStackBuilder stackBuilderForNotificationTap (Message message ) {
167
- TaskStackBuilder stackBuilder = TaskStackBuilder .create (context );
168
- Bundle messageBundle = MessageBundleMapper .messageToBundle (message );
169
- Class [] classes = propertyHelper ().findClasses (MobileMessagingChatProperty .ON_MESSAGE_TAP_ACTIVITY_CLASSES );
166
+ Class <?>[] classes = propertyHelper ().findClasses (MobileMessagingChatProperty .ON_MESSAGE_TAP_ACTIVITY_CLASSES );
170
167
if (classes != null ) {
171
- for (Class cls : classes ) {
172
- stackBuilder .addNextIntent (new Intent (context , cls )
173
- .setAction (Event .NOTIFICATION_TAPPED .getKey ())
174
- .putExtras (messageBundle ));
168
+ TaskStackBuilder stackBuilder = TaskStackBuilder .create (context );
169
+ Bundle messageBundle = MessageBundleMapper .messageToBundle (message );
170
+ for (Class <?> cls : classes ) {
171
+ stackBuilder .addNextIntent (
172
+ new Intent (context , cls )
173
+ .setAction (Event .NOTIFICATION_TAPPED .getKey ())
174
+ .putExtras (messageBundle )
175
+ );
175
176
}
177
+ return stackBuilder ;
176
178
}
177
-
178
- NotificationSettings notificationSettings = mobileMessagingCore ().getNotificationSettings ();
179
- if (stackBuilder .getIntentCount () == 0 && notificationSettings != null && notificationSettings .getCallbackActivity () != null ) {
180
- stackBuilder .addNextIntent (new Intent (context , notificationSettings .getCallbackActivity ())
181
- .setAction (Event .NOTIFICATION_TAPPED .getKey ())
182
- .putExtras (messageBundle ));
183
- }
184
-
185
- return stackBuilder ;
179
+ return null ;
186
180
}
187
181
188
182
@ Override
@@ -198,10 +192,10 @@ private void cleanupWidgetData() {
198
192
handler .post (() -> {
199
193
webView ().clearHistory ();
200
194
webView ().clearCache (true );
201
- MobileMessagingLogger .d (TAG ,"Deleted local widget history" );
195
+ MobileMessagingLogger .d (TAG , "Deleted local widget history" );
202
196
});
203
197
} catch (Exception e ) {
204
- MobileMessagingLogger .w (TAG ,"Failed to delete local widget history due to " + e .getMessage ());
198
+ MobileMessagingLogger .w (TAG , "Failed to delete local widget history due to " + e .getMessage ());
205
199
}
206
200
}
207
201
@@ -261,13 +255,13 @@ public InAppChatScreenImpl inAppChatScreen() {
261
255
inAppChatScreen = new InAppChatScreenImpl (context );
262
256
}
263
257
if (!isActivated ()) {
264
- MobileMessagingLogger .e (TAG ,"In-app chat wasn't activated, call activate()" );
258
+ MobileMessagingLogger .e (TAG , "In-app chat wasn't activated, call activate()" );
265
259
}
266
260
return inAppChatScreen ;
267
261
}
268
262
269
263
@ Override
270
- public void setActivitiesToStartOnMessageTap (Class ... activityClasses ) {
264
+ public void setActivitiesToStartOnMessageTap (Class <?> ... activityClasses ) {
271
265
propertyHelper ().saveClasses (MobileMessagingChatProperty .ON_MESSAGE_TAP_ACTIVITY_CLASSES , activityClasses );
272
266
}
273
267
@@ -336,7 +330,7 @@ private boolean areFragmentsEquals(Fragment f1, Fragment f2) {
336
330
337
331
@ Override
338
332
public void resetMessageCounter () {
339
- MobileMessagingLogger .d (TAG ,"Resetting unread message counter to 0" );
333
+ MobileMessagingLogger .d (TAG , "Resetting unread message counter to 0" );
340
334
propertyHelper ().remove (MobileMessagingChatProperty .UNREAD_CHAT_MESSAGES_COUNT );
341
335
inAppChatBroadcaster ().unreadMessagesCounterUpdated (0 );
342
336
}
@@ -352,7 +346,7 @@ public void setLanguage(String language) {
352
346
@ Override
353
347
public void onResult (Result <String , MobileMessagingError > result ) {
354
348
if (!result .isSuccess ()) {
355
- MobileMessagingLogger .e (TAG ,"Set language error: " + result .getError ().getMessage ());
349
+ MobileMessagingLogger .e (TAG , "Set language error: " + result .getError ().getMessage ());
356
350
}
357
351
}
358
352
});
@@ -384,7 +378,7 @@ public void sendContextualData(@Nullable String data) {
384
378
@ Override
385
379
public void onResult (Result <Void , MobileMessagingError > result ) {
386
380
if (!result .isSuccess ()) {
387
- MobileMessagingLogger .e (TAG ,"Send contextual data error: " + result .getError ().getMessage ());
381
+ MobileMessagingLogger .e (TAG , "Send contextual data error: " + result .getError ().getMessage ());
388
382
}
389
383
}
390
384
});
@@ -396,7 +390,7 @@ public void sendContextualData(@Nullable String data, @Nullable Boolean allMulti
396
390
@ Override
397
391
public void onResult (Result <Void , MobileMessagingError > result ) {
398
392
if (!result .isSuccess ()) {
399
- MobileMessagingLogger .e (TAG ,"Send contextual data error: " + result .getError ().getMessage ());
393
+ MobileMessagingLogger .e (TAG , "Send contextual data error: " + result .getError ().getMessage ());
400
394
}
401
395
}
402
396
});
@@ -467,7 +461,7 @@ public void showThreadsList() {
467
461
if (inAppChatWVFragment != null ) {
468
462
inAppChatWVFragment .showThreadList ();
469
463
} else {
470
- MobileMessagingLogger .e (TAG ,"Function showThreadsList() skipped, InAppChatFragment has not been shown yet." );
464
+ MobileMessagingLogger .e (TAG , "Function showThreadsList() skipped, InAppChatFragment has not been shown yet." );
471
465
}
472
466
}
473
467
@@ -512,7 +506,7 @@ public void setChatPushTitle(@Nullable String title) {
512
506
}
513
507
514
508
@ Override
515
- public void setChatPushBody (@ Nullable String body ) {
509
+ public void setChatPushBody (@ Nullable String body ) {
516
510
PreferenceHelper .saveString (context , MobileMessagingProperty .DEFAULT_IN_APP_CHAT_PUSH_BODY , body );
517
511
}
518
512
0 commit comments