Skip to content

Commit 9ebad14

Browse files
committed
Add onNewToken with Bundle HMS method support
* Add onNewToken method support to HmsMessageServiceOneSignal, HmsMessageServiceAppLevel and OneSignalHmsEventBridge
1 parent bbd6545 commit 9ebad14

File tree

6 files changed

+28
-12
lines changed

6 files changed

+28
-12
lines changed

Examples/OneSignalDemo/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ dependencies {
7575
// Test local OneSignal SDK
7676
gmsImplementation(project(':onesignal'))
7777

78-
huaweiImplementation 'com.huawei.hms:push:5.0.0.300'
78+
huaweiImplementation 'com.huawei.hms:push:5.3.0.304'
7979
huaweiImplementation 'com.huawei.hms:location:4.0.0.300'
8080
// Omit Google / Firebase libraries for Huawei builds.
8181
huaweiImplementation(project(':onesignal')) {

Examples/OneSignalDemo/app/src/huawei/java/com/onesignal/sdktest/notification/HmsMessageServiceAppLevel.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
11
package com.onesignal.sdktest.notification;
22

3+
import android.os.Bundle;
4+
35
import com.huawei.hms.push.HmsMessageService;
46
import com.huawei.hms.push.RemoteMessage;
57
import com.onesignal.OneSignal;
68
import com.onesignal.OneSignalHmsEventBridge;
79

810
public class HmsMessageServiceAppLevel extends HmsMessageService {
911

12+
1013
/**
1114
* When an app calls the getToken method to apply for a token from the server,
1215
* if the server does not return the token during current method calling, the server can return the token through this method later.
1316
* This method callback must be completed in 10 seconds. Otherwise, you need to start a new Job for callback processing.
1417
*
1518
* @param token token
19+
* @param bundle bundle
1620
*/
1721
@Override
18-
public void onNewToken(String token) {
19-
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.DEBUG, "HMS onNewToken refresh token:" + token);
22+
public void onNewToken(String token, Bundle bundle) {
23+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.DEBUG, "HMS onNewToken refresh token:" + token + " bundle: " + bundle);
2024

2125
// Forward event on to OneSignal SDK
22-
OneSignalHmsEventBridge.onNewToken(this, token);
26+
OneSignalHmsEventBridge.onNewToken(this, token, bundle);
2327
}
2428

2529
/**

OneSignalSDK/onesignal/src/main/java/com/onesignal/HmsMessageServiceOneSignal.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.onesignal;
22

3+
import android.os.Bundle;
4+
35
import com.huawei.hms.push.HmsMessageService;
46
import com.huawei.hms.push.RemoteMessage;
57

@@ -20,15 +22,18 @@
2022
*/
2123
public class HmsMessageServiceOneSignal extends HmsMessageService {
2224

25+
2326
/**
2427
* When an app calls the getToken method to apply for a token from the server,
2528
* if the server does not return the token during current method calling, the server can return the token through this method later.
2629
* This method callback must be completed in 10 seconds. Otherwise, you need to start a new Job for callback processing.
30+
*
2731
* @param token token
32+
* @param bundle bundle
2833
*/
2934
@Override
30-
public void onNewToken(String token) {
31-
OneSignalHmsEventBridge.onNewToken(this, token);
35+
public void onNewToken(String token, Bundle bundle) {
36+
OneSignalHmsEventBridge.onNewToken(this, token, bundle);
3237
}
3338

3439
/**

OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignalHmsEventBridge.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.onesignal;
22

33
import android.content.Context;
4+
import android.os.Bundle;
45

56
import androidx.annotation.NonNull;
7+
import androidx.annotation.Nullable;
68

79
import com.huawei.hms.push.RemoteMessage;
810

@@ -16,11 +18,16 @@
1618
*/
1719
public class OneSignalHmsEventBridge {
1820

19-
public static void onNewToken(@NonNull Context context, @NonNull String token) {
20-
OneSignal.Log(OneSignal.LOG_LEVEL.INFO, "HmsMessageServiceOneSignal.onNewToken - HMS token: " + token);
21+
public static void onNewToken(@NonNull Context context, @NonNull String token, @Nullable Bundle bundle) {
22+
OneSignal.Log(OneSignal.LOG_LEVEL.INFO, "HmsMessageServiceOneSignal.onNewToken - HMS token: " + token + " Bundle: " + bundle);
2123
PushRegistratorHMS.fireCallback(token);
2224
}
2325

26+
@Deprecated
27+
public static void onNewToken(@NonNull Context context, @NonNull String token) {
28+
onNewToken(context, token, null);
29+
}
30+
2431
public static void onMessageReceived(@NonNull Context context, @NonNull RemoteMessage message) {
2532
NotificationPayloadProcessorHMS.processDataMessageReceived(context, message.getData());
2633
}

OneSignalSDK/onesignal/src/main/java/com/onesignal/PushRegistratorHMS.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ private synchronized void getHMSTokenTask(@NonNull Context context, @NonNull Reg
6868
if (!TextUtils.isEmpty(pushToken)) {
6969
OneSignal.Log(LOG_LEVEL.INFO, "Device registered for HMS, push token = " + pushToken);
7070
callback.complete(pushToken, UserState.PUSH_STATUS_SUBSCRIBED);
71-
}
72-
else
71+
} else {
7372
waitForOnNewPushTokenEvent(callback);
73+
}
7474
}
7575

7676
private static void doTimeOutWait() {
@@ -82,7 +82,7 @@ private static void doTimeOutWait() {
8282

8383
// If EMUI 9.x or older getToken will always return null.
8484
// We must wait for HmsMessageService.onNewToken to fire instead.
85-
void waitForOnNewPushTokenEvent(@NonNull RegisteredHandler callback) {
85+
private void waitForOnNewPushTokenEvent(@NonNull RegisteredHandler callback) {
8686
doTimeOutWait();
8787
if (!callbackSuccessful) {
8888
OneSignal.Log(OneSignal.LOG_LEVEL.ERROR, "HmsMessageServiceOneSignal.onNewToken timed out.");

OneSignalSDK/unittest/src/test/java/com/onesignal/ShadowPushRegistratorHMS.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public static void doTimeOutWait() {
2323
if (backgroundSuccessful) {
2424
// prepare required since doTimeOutWait will be run from a new background thread.
2525
Looper.prepare();
26-
new HmsMessageServiceOneSignal().onNewToken(ShadowHmsInstanceId.DEFAULT_MOCK_HMS_TOKEN_VALUE);
26+
new HmsMessageServiceOneSignal().onNewToken(ShadowHmsInstanceId.DEFAULT_MOCK_HMS_TOKEN_VALUE, null);
2727
}
2828
}
2929
}

0 commit comments

Comments
 (0)