@imatis/react-native-notifications 4.3.3-imatis.1 → 4.3.3-imatis.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/android/app/src/main/AndroidManifest.xml +1 -0
- package/lib/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java +1 -1
- package/lib/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsPackage.java +8 -3
- package/lib/android/app/src/main/java/com/wix/reactnativenotifications/core/JsIOHelper.java +1 -1
- package/lib/android/app/src/main/java/com/wix/reactnativenotifications/core/NotificationIntentAdapter.java +3 -11
- package/lib/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java +27 -7
- package/lib/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotificationProps.java +8 -0
- package/lib/android/app/src/reactNative59/java/com/wix/reactnativenotifications/NotificationManagerCompatFacade.java +2 -2
- package/package.json +2 -2
- package/.detoxrc.json +0 -37
- package/lib/android/.gradle/6.1.1/executionHistory/executionHistory.lock +0 -0
- package/lib/android/.gradle/6.1.1/fileChanges/last-build.bin +0 -0
- package/lib/android/.gradle/6.1.1/fileHashes/fileHashes.bin +0 -0
- package/lib/android/.gradle/6.1.1/fileHashes/fileHashes.lock +0 -0
- package/lib/android/.gradle/6.1.1/gc.properties +0 -0
- package/lib/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/lib/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/lib/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/lib/android/.gradle/checksums/checksums.lock +0 -0
- package/lib/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/lib/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/lib/android/.gradle/vcs-1/gc.properties +0 -0
- package/lib/android/local.properties +0 -8
- package/lib/dist/DTO/Notification.d.ts +0 -11
- package/lib/dist/DTO/Notification.js +0 -28
- package/lib/dist/DTO/Notification.test.d.ts +0 -1
- package/lib/dist/DTO/Notification.test.js +0 -52
- package/lib/dist/DTO/NotificationAndroid.d.ts +0 -7
- package/lib/dist/DTO/NotificationAndroid.js +0 -20
- package/lib/dist/DTO/NotificationAndroid.test.d.ts +0 -1
- package/lib/dist/DTO/NotificationAndroid.test.js +0 -25
- package/lib/dist/DTO/NotificationFactory.d.ts +0 -4
- package/lib/dist/DTO/NotificationFactory.js +0 -18
- package/lib/dist/DTO/NotificationIOS.d.ts +0 -12
- package/lib/dist/DTO/NotificationIOS.js +0 -40
- package/lib/dist/DTO/NotificationIOS.test.d.ts +0 -1
- package/lib/dist/DTO/NotificationIOS.test.js +0 -58
- package/lib/dist/Notifications.d.ts +0 -65
- package/lib/dist/Notifications.js +0 -98
- package/lib/dist/NotificationsAndroid.d.ts +0 -14
- package/lib/dist/NotificationsAndroid.js +0 -32
- package/lib/dist/NotificationsIOS.d.ts +0 -51
- package/lib/dist/NotificationsIOS.js +0 -83
- package/lib/dist/adapters/CompletionCallbackWrapper.d.ts +0 -11
- package/lib/dist/adapters/CompletionCallbackWrapper.js +0 -44
- package/lib/dist/adapters/NativeCommandsSender.d.ts +0 -31
- package/lib/dist/adapters/NativeCommandsSender.js +0 -73
- package/lib/dist/adapters/NativeEventsReceiver.d.ts +0 -19
- package/lib/dist/adapters/NativeEventsReceiver.js +0 -47
- package/lib/dist/adapters/UniqueIdProvider.d.ts +0 -3
- package/lib/dist/adapters/UniqueIdProvider.js +0 -10
- package/lib/dist/commands/Commands.d.ts +0 -32
- package/lib/dist/commands/Commands.js +0 -79
- package/lib/dist/commands/Commands.test.d.ts +0 -1
- package/lib/dist/commands/Commands.test.js +0 -201
- package/lib/dist/events/EventsRegistry.d.ts +0 -18
- package/lib/dist/events/EventsRegistry.js +0 -28
- package/lib/dist/events/EventsRegistry.test.d.ts +0 -1
- package/lib/dist/events/EventsRegistry.test.js +0 -183
- package/lib/dist/events/EventsRegistryIOS.d.ts +0 -12
- package/lib/dist/events/EventsRegistryIOS.js +0 -19
- package/lib/dist/events/EventsRegistryIOS.test.d.ts +0 -1
- package/lib/dist/events/EventsRegistryIOS.test.js +0 -53
- package/lib/dist/index.d.ts +0 -7
- package/lib/dist/index.js +0 -12
- package/lib/dist/interfaces/EventSubscription.d.ts +0 -3
- package/lib/dist/interfaces/EventSubscription.js +0 -2
- package/lib/dist/interfaces/NotificationActionResponse.d.ts +0 -5
- package/lib/dist/interfaces/NotificationActionResponse.js +0 -10
- package/lib/dist/interfaces/NotificationCategory.d.ts +0 -18
- package/lib/dist/interfaces/NotificationCategory.js +0 -20
- package/lib/dist/interfaces/NotificationChannel.d.ts +0 -14
- package/lib/dist/interfaces/NotificationChannel.js +0 -2
- package/lib/dist/interfaces/NotificationCompletion.d.ts +0 -10
- package/lib/dist/interfaces/NotificationCompletion.js +0 -9
- package/lib/dist/interfaces/NotificationEvents.d.ts +0 -18
- package/lib/dist/interfaces/NotificationEvents.js +0 -2
- package/lib/dist/interfaces/NotificationPermissions.d.ts +0 -14
- package/lib/dist/interfaces/NotificationPermissions.js +0 -2
- package/lib/ios/RNNotifications.xcodeproj/project.xcworkspace/xcuserdata/troy.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/package-lock.json +0 -13507
package/lib/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java
CHANGED
|
@@ -63,7 +63,7 @@ public class RNNotificationsModule extends ReactContextBaseJavaModule implements
|
|
|
63
63
|
@Override
|
|
64
64
|
public void onNewIntent(Intent intent) {
|
|
65
65
|
if (NotificationIntentAdapter.canHandleIntent(intent)) {
|
|
66
|
-
Bundle notificationData =
|
|
66
|
+
Bundle notificationData = NotificationIntentAdapter.extractPendingNotificationDataFromIntent(intent);
|
|
67
67
|
final IPushNotification notification = PushNotification.get(getReactApplicationContext().getApplicationContext(), notificationData);
|
|
68
68
|
if (notification != null) {
|
|
69
69
|
notification.onOpened();
|
package/lib/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsPackage.java
CHANGED
|
@@ -19,6 +19,7 @@ import com.wix.reactnativenotifications.core.notification.IPushNotification;
|
|
|
19
19
|
import com.wix.reactnativenotifications.core.notification.PushNotification;
|
|
20
20
|
import com.wix.reactnativenotifications.core.notificationdrawer.IPushNotificationsDrawer;
|
|
21
21
|
import com.wix.reactnativenotifications.core.notificationdrawer.PushNotificationsDrawer;
|
|
22
|
+
import com.wix.reactnativenotifications.core.ReactAppLifecycleFacade;
|
|
22
23
|
|
|
23
24
|
import java.util.Arrays;
|
|
24
25
|
import java.util.Collections;
|
|
@@ -66,7 +67,12 @@ public class RNNotificationsPackage implements ReactPackage, AppLifecycleFacade.
|
|
|
66
67
|
|
|
67
68
|
@Override
|
|
68
69
|
public void onActivityStarted(Activity activity) {
|
|
69
|
-
|
|
70
|
+
boolean isReactInitialized = false;
|
|
71
|
+
if (AppLifecycleFacadeHolder.get() instanceof ReactAppLifecycleFacade) {
|
|
72
|
+
isReactInitialized = AppLifecycleFacadeHolder.get().isReactInitialized();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (InitialNotificationHolder.getInstance().get() == null && !isReactInitialized) {
|
|
70
76
|
callOnOpenedIfNeed(activity);
|
|
71
77
|
}
|
|
72
78
|
}
|
|
@@ -95,8 +101,7 @@ public class RNNotificationsPackage implements ReactPackage, AppLifecycleFacade.
|
|
|
95
101
|
Intent intent = activity.getIntent();
|
|
96
102
|
if (NotificationIntentAdapter.canHandleIntent(intent)) {
|
|
97
103
|
Context appContext = mApplication.getApplicationContext();
|
|
98
|
-
Bundle notificationData = NotificationIntentAdapter.
|
|
99
|
-
intent.getExtras() : NotificationIntentAdapter.extractPendingNotificationDataFromIntent(intent);
|
|
104
|
+
Bundle notificationData = NotificationIntentAdapter.extractPendingNotificationDataFromIntent(intent);
|
|
100
105
|
final IPushNotification pushNotification = PushNotification.get(appContext, notificationData);
|
|
101
106
|
if (pushNotification != null) {
|
|
102
107
|
pushNotification.onOpened();
|
|
@@ -14,17 +14,9 @@ public class NotificationIntentAdapter {
|
|
|
14
14
|
|
|
15
15
|
@SuppressLint("UnspecifiedImmutableFlag")
|
|
16
16
|
public static PendingIntent createPendingNotificationIntent(Context appContext, PushNotificationProps notification) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return PendingIntent.getService(appContext, (int) System.currentTimeMillis(), intent, PendingIntent.FLAG_ONE_SHOT);
|
|
21
|
-
} else {
|
|
22
|
-
Intent mainActivityIntent = appContext.getPackageManager().getLaunchIntentForPackage(appContext.getPackageName());
|
|
23
|
-
mainActivityIntent.putExtra(PUSH_NOTIFICATION_EXTRA_NAME, notification.asBundle());
|
|
24
|
-
TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(appContext);
|
|
25
|
-
taskStackBuilder.addNextIntentWithParentStack(mainActivityIntent);
|
|
26
|
-
return taskStackBuilder.getPendingIntent((int) System.currentTimeMillis(), PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);
|
|
27
|
-
}
|
|
17
|
+
Intent intent = appContext.getPackageManager().getLaunchIntentForPackage(appContext.getPackageName());
|
|
18
|
+
intent.putExtra(PUSH_NOTIFICATION_EXTRA_NAME, notification.asBundle());
|
|
19
|
+
return PendingIntent.getActivity(appContext, (int) System.currentTimeMillis(), intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);
|
|
28
20
|
}
|
|
29
21
|
|
|
30
22
|
public static boolean canHandleTrampolineActivity(Context appContext) {
|
|
@@ -15,6 +15,8 @@ import android.net.Uri;
|
|
|
15
15
|
import android.os.Build;
|
|
16
16
|
import android.os.Bundle;
|
|
17
17
|
import android.os.PowerManager;
|
|
18
|
+
import android.os.VibrationEffect;
|
|
19
|
+
import android.os.Vibrator;
|
|
18
20
|
import android.util.Log;
|
|
19
21
|
|
|
20
22
|
import com.facebook.react.bridge.ReactContext;
|
|
@@ -200,8 +202,15 @@ public class PushNotification implements IPushNotification {
|
|
|
200
202
|
String channelId = mNotificationProps.getChannelId();
|
|
201
203
|
channelId = channelId != null ? channelId : DEFAULT_CHANNEL_ID + sound;
|
|
202
204
|
NotificationChannel channel = notificationManager.getNotificationChannel(channelId);
|
|
203
|
-
if (channel == null
|
|
205
|
+
if (channel == null) {
|
|
204
206
|
initDefaultChannel(mContext, channelId, soundUri);
|
|
207
|
+
} else {
|
|
208
|
+
if (soundUri != null) {
|
|
209
|
+
AudioAttributes audioAttributes = new AudioAttributes.Builder()
|
|
210
|
+
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
|
|
211
|
+
.build();
|
|
212
|
+
channel.setSound(soundUri, audioAttributes);
|
|
213
|
+
}
|
|
205
214
|
}
|
|
206
215
|
notification.setChannelId(channelId);
|
|
207
216
|
}
|
|
@@ -214,19 +223,31 @@ public class PushNotification implements IPushNotification {
|
|
|
214
223
|
Log.d(LOGTAG, e.getMessage());
|
|
215
224
|
}
|
|
216
225
|
|
|
217
|
-
if(mNotificationProps.getCriticalAlert()){
|
|
226
|
+
if(mNotificationProps.getCriticalAlert() || mNotificationProps.getOverridemute()){
|
|
218
227
|
try {
|
|
219
228
|
MediaPlayer mMediaPlayer = new MediaPlayer();
|
|
220
229
|
mMediaPlayer.setDataSource(mContext.getApplicationContext(), soundUri);
|
|
221
230
|
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
|
|
222
231
|
|
|
223
232
|
mMediaPlayer.prepare();
|
|
224
|
-
mMediaPlayer.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
mMediaPlayer.
|
|
233
|
+
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
|
|
234
|
+
@Override
|
|
235
|
+
public void onCompletion(MediaPlayer mp) {
|
|
236
|
+
mMediaPlayer.release(); // Release resources when playback completes
|
|
228
237
|
}
|
|
229
238
|
});
|
|
239
|
+
mMediaPlayer.start(); // Start playback immediately after preparing
|
|
240
|
+
|
|
241
|
+
Vibrator v = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
|
|
242
|
+
// Vibrate with wave form
|
|
243
|
+
long[] timings = new long[]{0, 1000, 500, 1000};
|
|
244
|
+
int amplitude = VibrationEffect.DEFAULT_AMPLITUDE;
|
|
245
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
246
|
+
v.vibrate(VibrationEffect.createWaveform(timings, amplitude));
|
|
247
|
+
} else {
|
|
248
|
+
//deprecated in API 26
|
|
249
|
+
v.vibrate(3000);
|
|
250
|
+
}
|
|
230
251
|
} catch (Exception e) {
|
|
231
252
|
Log.d(LOGTAG, e.getMessage());
|
|
232
253
|
}
|
|
@@ -314,7 +335,6 @@ public class PushNotification implements IPushNotification {
|
|
|
314
335
|
defaultChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
|
|
315
336
|
if (soundUri != null) {
|
|
316
337
|
AudioAttributes audioAttributes = new AudioAttributes.Builder()
|
|
317
|
-
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
|
|
318
338
|
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
|
|
319
339
|
.build();
|
|
320
340
|
defaultChannel.setSound(soundUri, audioAttributes);
|
|
@@ -58,6 +58,14 @@ public class PushNotificationProps {
|
|
|
58
58
|
return 0.0;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
public Boolean getOverridemute() {
|
|
62
|
+
String val = mBundle.getString("overridemute");
|
|
63
|
+
if(val != null && !val.isEmpty()){
|
|
64
|
+
return val.toLowerCase().equals("true");
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
|
|
61
69
|
public Boolean getOngoing() {
|
|
62
70
|
return mBundle.getBoolean("ongoing");
|
|
63
71
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
package com.wix.reactnativenotifications;
|
|
3
3
|
|
|
4
4
|
import android.content.Context;
|
|
5
|
-
import
|
|
6
|
-
import
|
|
5
|
+
import androidx.annotation.NonNull;
|
|
6
|
+
import androidx.core.app.NotificationManagerCompat;
|
|
7
7
|
|
|
8
8
|
public abstract class NotificationManagerCompatFacade {
|
|
9
9
|
public static NotificationManagerCompat from(@NonNull Context context) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@imatis/react-native-notifications",
|
|
3
|
-
"version": "4.3.3-imatis.
|
|
3
|
+
"version": "4.3.3-imatis.10",
|
|
4
4
|
"description": "Advanced Push Notifications (Silent, interactive notifications) for iOS & Android",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -114,4 +114,4 @@
|
|
|
114
114
|
"html"
|
|
115
115
|
]
|
|
116
116
|
}
|
|
117
|
-
}
|
|
117
|
+
}
|
package/.detoxrc.json
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"testRunner": "jest",
|
|
3
|
-
"runnerConfig": "e2e/config.json",
|
|
4
|
-
"skipLegacyWorkersInjection": true,
|
|
5
|
-
"devices": {
|
|
6
|
-
"simulator": {
|
|
7
|
-
"type": "ios.simulator",
|
|
8
|
-
"device": {
|
|
9
|
-
"type": "iPhone 12 Pro Max"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
"apps": {
|
|
14
|
-
"ios.release": {
|
|
15
|
-
"name": "RNNotifications",
|
|
16
|
-
"type": "ios.app",
|
|
17
|
-
"binaryPath": "example/ios/DerivedData/NotificationsExampleApp/Build/Products/Release-iphonesimulator/NotificationsExampleApp.app",
|
|
18
|
-
"build": "RCT_NO_LAUNCH_PACKAGER=true xcodebuild build -scheme NotificationsExampleApp_release -workspace example/ios/NotificationsExampleApp.xcworkspace -sdk iphonesimulator -configuration Release -derivedDataPath example/ios/DerivedData/NotificationsExampleApp ONLY_ACTIVE_ARCH=YES -quiet -UseModernBuildSystem=NO"
|
|
19
|
-
},
|
|
20
|
-
"ios.debug": {
|
|
21
|
-
"name": "RNNotificationsDebug",
|
|
22
|
-
"type": "ios.app",
|
|
23
|
-
"binaryPath": "example/ios/DerivedData/NotificationsExampleApp/Build/Products/Debug-iphonesimulator/NotificationsExampleApp.app",
|
|
24
|
-
"build": "RCT_NO_LAUNCH_PACKAGER=true xcodebuild build -scheme NotificationsExampleApp -workspace example/ios/NotificationsExampleApp.xcworkspace -sdk iphonesimulator -configuration Debug -derivedDataPath example/ios/DerivedData/NotificationsExampleApp ONLY_ACTIVE_ARCH=YES -quiet -UseModernBuildSystem=NO"
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
"configurations": {
|
|
28
|
-
"ios.sim.release": {
|
|
29
|
-
"device": "simulator",
|
|
30
|
-
"app": "ios.release"
|
|
31
|
-
},
|
|
32
|
-
"ios.sim.debug": {
|
|
33
|
-
"device": "simulator",
|
|
34
|
-
"app": "ios.debug"
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
## This file must *NOT* be checked into Version Control Systems,
|
|
2
|
-
# as it contains information specific to your local configuration.
|
|
3
|
-
#
|
|
4
|
-
# Location of the SDK. This is only used by Gradle.
|
|
5
|
-
# For customization when using a Version Control System, please read the
|
|
6
|
-
# header note.
|
|
7
|
-
#Mon Jul 12 10:26:56 ICT 2021
|
|
8
|
-
sdk.dir=/Users/troy/Library/Android/sdk
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Notification = void 0;
|
|
4
|
-
class Notification {
|
|
5
|
-
constructor(payload) {
|
|
6
|
-
this.payload = payload;
|
|
7
|
-
this.identifier = this.payload.identifier;
|
|
8
|
-
}
|
|
9
|
-
get title() {
|
|
10
|
-
return this.payload.title;
|
|
11
|
-
}
|
|
12
|
-
get body() {
|
|
13
|
-
return this.payload.body;
|
|
14
|
-
}
|
|
15
|
-
get sound() {
|
|
16
|
-
return this.payload.sound;
|
|
17
|
-
}
|
|
18
|
-
get badge() {
|
|
19
|
-
return this.payload.badge;
|
|
20
|
-
}
|
|
21
|
-
get type() {
|
|
22
|
-
return this.payload.type;
|
|
23
|
-
}
|
|
24
|
-
get thread() {
|
|
25
|
-
return this.payload.thread;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.Notification = Notification;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Notification_1 = require("./Notification");
|
|
4
|
-
const NotificationIOS_1 = require("./NotificationIOS");
|
|
5
|
-
const NotificationAndroid_1 = require("./NotificationAndroid");
|
|
6
|
-
describe('Notification', () => {
|
|
7
|
-
it('Should create notification with payload', () => {
|
|
8
|
-
const payload = { p: 'p' };
|
|
9
|
-
const notification = new Notification_1.Notification(payload);
|
|
10
|
-
expect(notification.payload).toEqual(payload);
|
|
11
|
-
});
|
|
12
|
-
it('Should create iOS notification with identifier', () => {
|
|
13
|
-
const payload = { identifier: 'identifier' };
|
|
14
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
15
|
-
expect(notification.identifier).toEqual(payload.identifier);
|
|
16
|
-
});
|
|
17
|
-
it('Should create Android notification with identifier', () => {
|
|
18
|
-
const payload = { 'google.message_id': 'identifier' };
|
|
19
|
-
const notification = new NotificationAndroid_1.NotificationAndroid(payload);
|
|
20
|
-
expect(notification.identifier).toEqual('identifier');
|
|
21
|
-
});
|
|
22
|
-
it('Should return title from payload', () => {
|
|
23
|
-
const payload = { title: 'title' };
|
|
24
|
-
const notification = new Notification_1.Notification(payload);
|
|
25
|
-
expect(notification.title).toEqual(payload.title);
|
|
26
|
-
});
|
|
27
|
-
it('Should return body from payload', () => {
|
|
28
|
-
const payload = { body: 'body' };
|
|
29
|
-
const notification = new Notification_1.Notification(payload);
|
|
30
|
-
expect(notification.body).toEqual(payload.body);
|
|
31
|
-
});
|
|
32
|
-
it('Should return sound from payload', () => {
|
|
33
|
-
const payload = { sound: 'sound.mp4' };
|
|
34
|
-
const notification = new Notification_1.Notification(payload);
|
|
35
|
-
expect(notification.sound).toEqual(payload.sound);
|
|
36
|
-
});
|
|
37
|
-
it('Should return badge from payload', () => {
|
|
38
|
-
const payload = { badge: 1 };
|
|
39
|
-
const notification = new Notification_1.Notification(payload);
|
|
40
|
-
expect(notification.badge).toEqual(payload.badge);
|
|
41
|
-
});
|
|
42
|
-
it('Should return type from payload', () => {
|
|
43
|
-
const payload = { type: 'type' };
|
|
44
|
-
const notification = new Notification_1.Notification(payload);
|
|
45
|
-
expect(notification.type).toEqual(payload.type);
|
|
46
|
-
});
|
|
47
|
-
it('Should return thread from payload', () => {
|
|
48
|
-
const payload = { thread: 'thread' };
|
|
49
|
-
const notification = new Notification_1.Notification(payload);
|
|
50
|
-
expect(notification.thread).toEqual(payload.thread);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NotificationAndroid = void 0;
|
|
4
|
-
const Notification_1 = require("./Notification");
|
|
5
|
-
class NotificationAndroid extends Notification_1.Notification {
|
|
6
|
-
constructor(payload) {
|
|
7
|
-
super(payload);
|
|
8
|
-
this.identifier = this.payload["google.message_id"];
|
|
9
|
-
}
|
|
10
|
-
get title() {
|
|
11
|
-
return this.payload.title;
|
|
12
|
-
}
|
|
13
|
-
get body() {
|
|
14
|
-
return this.payload.body;
|
|
15
|
-
}
|
|
16
|
-
get sound() {
|
|
17
|
-
return this.payload.sound;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.NotificationAndroid = NotificationAndroid;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const NotificationAndroid_1 = require("./NotificationAndroid");
|
|
4
|
-
describe('Notification', () => {
|
|
5
|
-
it('Should create notification with payload', () => {
|
|
6
|
-
const payload = { p: 'p' };
|
|
7
|
-
const notification = new NotificationAndroid_1.NotificationAndroid(payload);
|
|
8
|
-
expect(notification.payload).toEqual(payload);
|
|
9
|
-
});
|
|
10
|
-
it('Should return title from payload', () => {
|
|
11
|
-
const payload = { title: 'title', body: 'body' };
|
|
12
|
-
const notification = new NotificationAndroid_1.NotificationAndroid(payload);
|
|
13
|
-
expect(notification.title).toEqual('title');
|
|
14
|
-
});
|
|
15
|
-
it('Should return body from payload', () => {
|
|
16
|
-
const payload = { title: 'title', body: 'body' };
|
|
17
|
-
const notification = new NotificationAndroid_1.NotificationAndroid(payload);
|
|
18
|
-
expect(notification.body).toEqual('body');
|
|
19
|
-
});
|
|
20
|
-
it('Should return sound from payload', () => {
|
|
21
|
-
const payload = { title: 'title', sound: 'sound.wav' };
|
|
22
|
-
const notification = new NotificationAndroid_1.NotificationAndroid(payload);
|
|
23
|
-
expect(notification.sound).toEqual('sound.wav');
|
|
24
|
-
});
|
|
25
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NotificationFactory = void 0;
|
|
4
|
-
const Notification_1 = require("./Notification");
|
|
5
|
-
const NotificationIOS_1 = require("./NotificationIOS");
|
|
6
|
-
const NotificationAndroid_1 = require("./NotificationAndroid");
|
|
7
|
-
const react_native_1 = require("react-native");
|
|
8
|
-
class NotificationFactory {
|
|
9
|
-
fromPayload(payload) {
|
|
10
|
-
if (react_native_1.Platform.OS === 'ios') {
|
|
11
|
-
return payload.aps ? new NotificationIOS_1.NotificationIOS(payload) : new Notification_1.Notification(payload);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return new NotificationAndroid_1.NotificationAndroid(payload);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.NotificationFactory = NotificationFactory;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Notification } from './Notification';
|
|
2
|
-
export declare class NotificationIOS extends Notification {
|
|
3
|
-
identifier: string;
|
|
4
|
-
constructor(payload: object);
|
|
5
|
-
get aps(): any;
|
|
6
|
-
get alert(): any;
|
|
7
|
-
get title(): string;
|
|
8
|
-
get body(): string;
|
|
9
|
-
get sound(): string;
|
|
10
|
-
get badge(): number;
|
|
11
|
-
get thread(): string;
|
|
12
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NotificationIOS = void 0;
|
|
4
|
-
const Notification_1 = require("./Notification");
|
|
5
|
-
const _ = require("lodash");
|
|
6
|
-
class NotificationIOS extends Notification_1.Notification {
|
|
7
|
-
constructor(payload) {
|
|
8
|
-
super(payload);
|
|
9
|
-
this.identifier = this.payload.identifier;
|
|
10
|
-
}
|
|
11
|
-
get aps() {
|
|
12
|
-
return this.payload.aps || {};
|
|
13
|
-
}
|
|
14
|
-
get alert() {
|
|
15
|
-
if (_.isObject(this.aps.alert)) {
|
|
16
|
-
return this.aps.alert;
|
|
17
|
-
}
|
|
18
|
-
else if (_.isString(this.aps.alert)) {
|
|
19
|
-
return {
|
|
20
|
-
body: this.aps.alert
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
get title() {
|
|
25
|
-
return this.alert.title;
|
|
26
|
-
}
|
|
27
|
-
get body() {
|
|
28
|
-
return this.alert.body;
|
|
29
|
-
}
|
|
30
|
-
get sound() {
|
|
31
|
-
return this.aps.sound;
|
|
32
|
-
}
|
|
33
|
-
get badge() {
|
|
34
|
-
return this.aps.badge;
|
|
35
|
-
}
|
|
36
|
-
get thread() {
|
|
37
|
-
return this.aps.thread;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.NotificationIOS = NotificationIOS;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const NotificationIOS_1 = require("./NotificationIOS");
|
|
4
|
-
describe('Notification', () => {
|
|
5
|
-
it('Should create notification with payload', () => {
|
|
6
|
-
const payload = { p: 'p' };
|
|
7
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
8
|
-
expect(notification.payload).toEqual(payload);
|
|
9
|
-
});
|
|
10
|
-
it('Should create notification with valid aps', () => {
|
|
11
|
-
const aps = { alert: {} };
|
|
12
|
-
const payload = { aps };
|
|
13
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
14
|
-
expect(notification.aps).toEqual(aps);
|
|
15
|
-
});
|
|
16
|
-
it('Should create notification with empy aps', () => {
|
|
17
|
-
const payload = { aps: undefined };
|
|
18
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
19
|
-
expect(notification.aps).toEqual({});
|
|
20
|
-
});
|
|
21
|
-
it('Should return alert object', () => {
|
|
22
|
-
const payload = { aps: { alert: { title: 'title' } } };
|
|
23
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
24
|
-
expect(notification.alert).toEqual(payload.aps.alert);
|
|
25
|
-
});
|
|
26
|
-
it('Should return alert object when alert is string', () => {
|
|
27
|
-
const payload = { aps: { alert: 'title' } };
|
|
28
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
29
|
-
expect(notification.alert).toEqual({
|
|
30
|
-
body: 'title'
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
it('Should return title from alert', () => {
|
|
34
|
-
const payload = { aps: { alert: { title: 'title' } } };
|
|
35
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
36
|
-
expect(notification.title).toEqual('title');
|
|
37
|
-
});
|
|
38
|
-
it('Should return body from alert', () => {
|
|
39
|
-
const payload = { aps: { alert: { title: 'title', body: 'body' } } };
|
|
40
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
41
|
-
expect(notification.body).toEqual('body');
|
|
42
|
-
});
|
|
43
|
-
it('Should return badge from aps', () => {
|
|
44
|
-
const payload = { aps: { badge: 0 } };
|
|
45
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
46
|
-
expect(notification.badge).toEqual(0);
|
|
47
|
-
});
|
|
48
|
-
it('Should return sound from aps', () => {
|
|
49
|
-
const payload = { aps: { sound: 'sound.wav' } };
|
|
50
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
51
|
-
expect(notification.sound).toEqual('sound.wav');
|
|
52
|
-
});
|
|
53
|
-
it('Should return thread from aps', () => {
|
|
54
|
-
const payload = { aps: { thread: 'thread' } };
|
|
55
|
-
const notification = new NotificationIOS_1.NotificationIOS(payload);
|
|
56
|
-
expect(notification.thread).toEqual('thread');
|
|
57
|
-
});
|
|
58
|
-
});
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { EventsRegistry } from './events/EventsRegistry';
|
|
2
|
-
import { Notification } from './DTO/Notification';
|
|
3
|
-
import { NotificationCategory } from './interfaces/NotificationCategory';
|
|
4
|
-
import { NotificationChannel } from './interfaces/NotificationChannel';
|
|
5
|
-
import { NotificationsIOS } from './NotificationsIOS';
|
|
6
|
-
import { NotificationsAndroid } from './NotificationsAndroid';
|
|
7
|
-
import { NotificationPermissionOptions } from './interfaces/NotificationPermissions';
|
|
8
|
-
export declare class NotificationsRoot {
|
|
9
|
-
readonly _ios: NotificationsIOS;
|
|
10
|
-
readonly _android: NotificationsAndroid;
|
|
11
|
-
private readonly notificationFactory;
|
|
12
|
-
private readonly nativeEventsReceiver;
|
|
13
|
-
private readonly nativeCommandsSender;
|
|
14
|
-
private readonly commands;
|
|
15
|
-
private readonly eventsRegistry;
|
|
16
|
-
private readonly eventsRegistryIOS;
|
|
17
|
-
private readonly uniqueIdProvider;
|
|
18
|
-
private readonly completionCallbackWrapper;
|
|
19
|
-
constructor();
|
|
20
|
-
/**
|
|
21
|
-
* registerRemoteNotifications
|
|
22
|
-
*/
|
|
23
|
-
registerRemoteNotifications(options?: NotificationPermissionOptions): void;
|
|
24
|
-
/**
|
|
25
|
-
* postLocalNotification
|
|
26
|
-
*/
|
|
27
|
-
postLocalNotification(notification: Notification, id?: number): number;
|
|
28
|
-
/**
|
|
29
|
-
* getInitialNotification
|
|
30
|
-
*/
|
|
31
|
-
getInitialNotification(): Promise<Notification | undefined>;
|
|
32
|
-
/**
|
|
33
|
-
* getLastAction
|
|
34
|
-
*/
|
|
35
|
-
getLastAction(): Promise<Notification | undefined>;
|
|
36
|
-
/**
|
|
37
|
-
* setCategories
|
|
38
|
-
*/
|
|
39
|
-
setCategories(categories: [NotificationCategory?]): void;
|
|
40
|
-
/**
|
|
41
|
-
* cancelLocalNotification
|
|
42
|
-
*/
|
|
43
|
-
cancelLocalNotification(notificationId: number): void;
|
|
44
|
-
/**
|
|
45
|
-
* removeAllDeliveredNotifications
|
|
46
|
-
*/
|
|
47
|
-
removeAllDeliveredNotifications(): void;
|
|
48
|
-
/**
|
|
49
|
-
* isRegisteredForRemoteNotifications
|
|
50
|
-
*/
|
|
51
|
-
isRegisteredForRemoteNotifications(): Promise<boolean>;
|
|
52
|
-
/**
|
|
53
|
-
* setNotificationChannel
|
|
54
|
-
*/
|
|
55
|
-
setNotificationChannel(notificationChannel: NotificationChannel): void;
|
|
56
|
-
/**
|
|
57
|
-
* Obtain the events registry instance
|
|
58
|
-
*/
|
|
59
|
-
events(): EventsRegistry;
|
|
60
|
-
/**
|
|
61
|
-
* ios/android getters
|
|
62
|
-
*/
|
|
63
|
-
get ios(): NotificationsIOS;
|
|
64
|
-
get android(): NotificationsAndroid;
|
|
65
|
-
}
|