Skip to content

Commit acdc78e

Browse files
committed
Add show message center methods
1 parent d4f95d3 commit acdc78e

File tree

6 files changed

+81
-6
lines changed

6 files changed

+81
-6
lines changed

android/src/main/AndroidManifest.xml

+9
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,16 @@
1414
<activity
1515
android:name="com.urbanairship.android.framework.proxy.CustomMessageCenterActivity"
1616
android:label="@string/ua_message_center_title"
17+
android:theme="@style/Theme.AppCompat.DayNight"
1718
android:launchMode="singleTask"
1819
android:exported="false">
20+
21+
<intent-filter>
22+
<action android:name="com.urbanairship.VIEW_RICH_PUSH_INBOX" />
23+
<data android:scheme="message" />
24+
<category android:name="android.intent.category.DEFAULT" />
25+
</intent-filter>
26+
1927
<intent-filter>
2028
<action android:name="com.urbanairship.VIEW_RICH_PUSH_INBOX" />
2129
<category android:name="android.intent.category.DEFAULT" />
@@ -24,6 +32,7 @@
2432

2533
<activity
2634
android:name="com.urbanairship.android.framework.proxy.CustomMessageActivity"
35+
android:theme="@style/Theme.AppCompat.DayNight"
2736
android:exported="false">
2837
<intent-filter>
2938
<action android:name="com.urbanairship.VIEW_RICH_PUSH_MESSAGE" />

android/src/main/java/com/urbanairship/reactnative/AirshipModule.kt

+12
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,18 @@ class AirshipModule internal constructor(val context: ReactApplicationContext) :
634634
proxy.messageCenter.setAutoLaunchDefaultMessageCenter(enabled)
635635
}
636636

637+
override fun messageCenterShowMessageCenter(messageId: String?, promise: Promise) {
638+
promise.resolveResult {
639+
proxy.messageCenter.showMessageCenter(messageId)
640+
}
641+
}
642+
643+
override fun messageCenterShowMessageView(messageId: String?, promise: Promise) {
644+
promise.resolveResult {
645+
proxy.messageCenter.showMessageView(requireNotNull(messageId))
646+
}
647+
}
648+
637649
@ReactMethod
638650
override fun preferenceCenterDisplay(preferenceCenterId: String?, promise: Promise) {
639651
promise.resolveResult {

ios/AirshipReactNative.swift

+10
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,16 @@ public extension AirshipReactNative {
512512
try AirshipProxy.shared.messageCenter.display(messageID: messageId)
513513
}
514514

515+
@MainActor @objc
516+
func messageCenterShowMessageView(messageId: String) throws {
517+
try AirshipProxy.shared.messageCenter.showMessageView(messageID: messageId)
518+
}
519+
520+
@MainActor @objc
521+
func messageCenterShowMessageCenter(messageId: String?) throws {
522+
try AirshipProxy.shared.messageCenter.showMessageCenter(messageID: messageId)
523+
}
524+
515525
@objc
516526
func messageCenterRefresh() async throws {
517527
try await AirshipProxy.shared.messageCenter.refresh()

ios/RTNAirship.mm

+22
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,28 @@ + (BOOL)requiresMainQueueSetup {
594594
[self handleResult:nil error:error resolve:resolve reject:reject];
595595
}
596596

597+
RCT_REMAP_METHOD(messageCenterShowMessageCenter,
598+
messageCenterShowMessageCenter:(NSString *)messageId
599+
resolve:(RCTPromiseResolveBlock)resolve
600+
reject:(RCTPromiseRejectBlock)reject) {
601+
NSError *error;
602+
[AirshipReactNative.shared messageCenterShowMessageCenterWithMessageId:messageId
603+
error:&error];
604+
605+
[self handleResult:nil error:error resolve:resolve reject:reject];
606+
}
607+
608+
RCT_REMAP_METHOD(messageCenterShowMessageView,
609+
messageCenterShowMessageView:(NSString *)messageId
610+
resolve:(RCTPromiseResolveBlock)resolve
611+
reject:(RCTPromiseRejectBlock)reject) {
612+
NSError *error;
613+
[AirshipReactNative.shared messageCenterShowMessageViewWithMessageId:messageId
614+
error:&error];
615+
616+
[self handleResult:nil error:error resolve:resolve reject:reject];
617+
}
618+
597619
RCT_REMAP_METHOD(messageCenterGetMessages,
598620
messageCenterGetMessages:(RCTPromiseResolveBlock)resolve
599621
reject:(RCTPromiseRejectBlock)reject) {

src/AirshipMessageCenter.ts

+26-6
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export class AirshipMessageCenter {
2525
/**
2626
* Marks a message as read.
2727
* @param messageId The message Id.
28-
* @returns A promise. Will reject if the message is not
28+
* @returns A promise. Will reject if the message is not
2929
* found or if takeOff is not called.
3030
*/
3131
public markMessageRead(messageId: string): Promise<void> {
@@ -35,7 +35,7 @@ export class AirshipMessageCenter {
3535
/**
3636
* Deletes a message.
3737
* @param messageId The message Id.
38-
* @returns A promise. Will reject if the message is not
38+
* @returns A promise. Will reject if the message is not
3939
* found or if takeOff is not called.
4040
*/
4141
public deleteMessage(messageId: string): Promise<void> {
@@ -52,9 +52,9 @@ export class AirshipMessageCenter {
5252

5353
/**
5454
* Requests to display the Message Center.
55-
*
56-
* Will either emit an event to display the
57-
* Message Center if auto launch message center
55+
*
56+
* Will either emit an event to display the
57+
* Message Center if auto launch message center
5858
* is disabled, or display the OOTB message center.
5959
* @param messageId Optional message Id.
6060
* @returns A promise.
@@ -63,9 +63,29 @@ export class AirshipMessageCenter {
6363
return this.module.messageCenterDisplay(messageId);
6464
}
6565

66+
/**
67+
* Overlays the Message Center regardless if auto launch Message Center is enabled or not.
68+
*
69+
* @param messageId Optional message Id.
70+
* @returns A promise.
71+
*/
72+
public showMessageCenter(messageId?: string): Promise<void> {
73+
return this.module.messageCenterShowMessageCenter(messageId);
74+
}
75+
76+
/**
77+
* Overlays the message view regardless if auto launch Message Center is enabled or not.
78+
*
79+
* @param messageId The message Id.
80+
* @returns A promise.
81+
*/
82+
public showMessageView(messageId: string): Promise<void> {
83+
return this.module.messageCenterShowMessageView(messageId);
84+
}
85+
6686
/**
6787
* Refreshes the messages.
68-
* @returns A promise. Will reject if the list fails to refresh or if
88+
* @returns A promise. Will reject if the list fails to refresh or if
6989
* takeOff is not called yet.
7090
*/
7191
public refreshMessages(): Promise<void> {

src/NativeRTNAirship.ts

+2
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ export interface Spec extends TurboModule {
9696
messageCenterMarkMessageRead(messageId: string): Promise<void>;
9797
messageCenterRefresh(): Promise<void>;
9898
messageCenterSetAutoLaunchDefaultMessageCenter(enabled: boolean): void;
99+
messageCenterShowMessageCenter(messageId?: string): Promise<void>;
100+
messageCenterShowMessageView(messageId: string): Promise<void>;
99101

100102
// Preference Center
101103
preferenceCenterDisplay(preferenceCenterId: string): Promise<void>;

0 commit comments

Comments
 (0)