Skip to content

Commit

Permalink
Add show message center methods
Browse files Browse the repository at this point in the history
  • Loading branch information
rlepinski committed Oct 1, 2024
1 parent d4f95d3 commit acdc78e
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 6 deletions.
9 changes: 9 additions & 0 deletions android/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,16 @@
<activity
android:name="com.urbanairship.android.framework.proxy.CustomMessageCenterActivity"
android:label="@string/ua_message_center_title"
android:theme="@style/Theme.AppCompat.DayNight"
android:launchMode="singleTask"
android:exported="false">

<intent-filter>
<action android:name="com.urbanairship.VIEW_RICH_PUSH_INBOX" />
<data android:scheme="message" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

<intent-filter>
<action android:name="com.urbanairship.VIEW_RICH_PUSH_INBOX" />
<category android:name="android.intent.category.DEFAULT" />
Expand All @@ -24,6 +32,7 @@

<activity
android:name="com.urbanairship.android.framework.proxy.CustomMessageActivity"
android:theme="@style/Theme.AppCompat.DayNight"
android:exported="false">
<intent-filter>
<action android:name="com.urbanairship.VIEW_RICH_PUSH_MESSAGE" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,18 @@ class AirshipModule internal constructor(val context: ReactApplicationContext) :
proxy.messageCenter.setAutoLaunchDefaultMessageCenter(enabled)
}

override fun messageCenterShowMessageCenter(messageId: String?, promise: Promise) {
promise.resolveResult {
proxy.messageCenter.showMessageCenter(messageId)
}
}

override fun messageCenterShowMessageView(messageId: String?, promise: Promise) {
promise.resolveResult {
proxy.messageCenter.showMessageView(requireNotNull(messageId))
}
}

@ReactMethod
override fun preferenceCenterDisplay(preferenceCenterId: String?, promise: Promise) {
promise.resolveResult {
Expand Down
10 changes: 10 additions & 0 deletions ios/AirshipReactNative.swift
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,16 @@ public extension AirshipReactNative {
try AirshipProxy.shared.messageCenter.display(messageID: messageId)
}

@MainActor @objc
func messageCenterShowMessageView(messageId: String) throws {
try AirshipProxy.shared.messageCenter.showMessageView(messageID: messageId)
}

@MainActor @objc
func messageCenterShowMessageCenter(messageId: String?) throws {
try AirshipProxy.shared.messageCenter.showMessageCenter(messageID: messageId)
}

@objc
func messageCenterRefresh() async throws {
try await AirshipProxy.shared.messageCenter.refresh()
Expand Down
22 changes: 22 additions & 0 deletions ios/RTNAirship.mm
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,28 @@ + (BOOL)requiresMainQueueSetup {
[self handleResult:nil error:error resolve:resolve reject:reject];
}

RCT_REMAP_METHOD(messageCenterShowMessageCenter,
messageCenterShowMessageCenter:(NSString *)messageId
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject) {
NSError *error;
[AirshipReactNative.shared messageCenterShowMessageCenterWithMessageId:messageId
error:&error];

[self handleResult:nil error:error resolve:resolve reject:reject];
}

RCT_REMAP_METHOD(messageCenterShowMessageView,
messageCenterShowMessageView:(NSString *)messageId
resolve:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject) {
NSError *error;
[AirshipReactNative.shared messageCenterShowMessageViewWithMessageId:messageId
error:&error];

[self handleResult:nil error:error resolve:resolve reject:reject];
}

RCT_REMAP_METHOD(messageCenterGetMessages,
messageCenterGetMessages:(RCTPromiseResolveBlock)resolve
reject:(RCTPromiseRejectBlock)reject) {
Expand Down
32 changes: 26 additions & 6 deletions src/AirshipMessageCenter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export class AirshipMessageCenter {
/**
* Marks a message as read.
* @param messageId The message Id.
* @returns A promise. Will reject if the message is not
* @returns A promise. Will reject if the message is not
* found or if takeOff is not called.
*/
public markMessageRead(messageId: string): Promise<void> {
Expand All @@ -35,7 +35,7 @@ export class AirshipMessageCenter {
/**
* Deletes a message.
* @param messageId The message Id.
* @returns A promise. Will reject if the message is not
* @returns A promise. Will reject if the message is not
* found or if takeOff is not called.
*/
public deleteMessage(messageId: string): Promise<void> {
Expand All @@ -52,9 +52,9 @@ export class AirshipMessageCenter {

/**
* Requests to display the Message Center.
*
* Will either emit an event to display the
* Message Center if auto launch message center
*
* Will either emit an event to display the
* Message Center if auto launch message center
* is disabled, or display the OOTB message center.
* @param messageId Optional message Id.
* @returns A promise.
Expand All @@ -63,9 +63,29 @@ export class AirshipMessageCenter {
return this.module.messageCenterDisplay(messageId);
}

/**
* Overlays the Message Center regardless if auto launch Message Center is enabled or not.
*
* @param messageId Optional message Id.
* @returns A promise.
*/
public showMessageCenter(messageId?: string): Promise<void> {
return this.module.messageCenterShowMessageCenter(messageId);
}

/**
* Overlays the message view regardless if auto launch Message Center is enabled or not.
*
* @param messageId The message Id.
* @returns A promise.
*/
public showMessageView(messageId: string): Promise<void> {
return this.module.messageCenterShowMessageView(messageId);
}

/**
* Refreshes the messages.
* @returns A promise. Will reject if the list fails to refresh or if
* @returns A promise. Will reject if the list fails to refresh or if
* takeOff is not called yet.
*/
public refreshMessages(): Promise<void> {
Expand Down
2 changes: 2 additions & 0 deletions src/NativeRTNAirship.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ export interface Spec extends TurboModule {
messageCenterMarkMessageRead(messageId: string): Promise<void>;
messageCenterRefresh(): Promise<void>;
messageCenterSetAutoLaunchDefaultMessageCenter(enabled: boolean): void;
messageCenterShowMessageCenter(messageId?: string): Promise<void>;
messageCenterShowMessageView(messageId: string): Promise<void>;

// Preference Center
preferenceCenterDisplay(preferenceCenterId: string): Promise<void>;
Expand Down

0 comments on commit acdc78e

Please sign in to comment.