Skip to content

Commit e6ccaa0

Browse files
author
Rodrigo Gomez Palacio
authored
Merge branch 'main' into patch-1
2 parents be7a3e1 + 95a04ab commit e6ccaa0

File tree

18 files changed

+1531
-1179
lines changed

18 files changed

+1531
-1179
lines changed

android/build.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ android {
1616
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
1717
}
1818
}
19+
20+
compileOptions {
21+
sourceCompatibility JavaVersion.VERSION_1_8
22+
targetCompatibility JavaVersion.VERSION_1_8
23+
}
1924
}
2025

2126
dependencies {
@@ -24,7 +29,7 @@ dependencies {
2429

2530
// api is used instead of implementation so the parent :app project can access any of the OneSignal Java
2631
// classes if needed. Such as com.onesignal.NotificationExtenderService
27-
api 'com.onesignal:OneSignal:4.1.0'
32+
api 'com.onesignal:OneSignal:4.4.0'
2833

2934
testImplementation 'junit:junit:4.12'
3035
}

android/src/main/java/com/geektime/rnonesignalandroid/RNOneSignal.java

Lines changed: 105 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -34,51 +34,46 @@ of this software and associated documentation files (the "Software"), to deal
3434

3535
package com.geektime.rnonesignalandroid;
3636

37-
import java.util.Iterator;
38-
import java.util.HashMap;
39-
4037
import android.content.Context;
38+
import android.content.pm.ApplicationInfo;
4139
import android.os.Bundle;
4240
import android.util.Log;
43-
import android.content.pm.ApplicationInfo;
4441

45-
import com.facebook.react.bridge.Promise;
4642
import com.facebook.react.bridge.Callback;
47-
import com.facebook.react.bridge.ReactMethod;
48-
import com.facebook.react.bridge.ReadableMap;
49-
import com.facebook.react.bridge.ReactContext;
50-
import com.facebook.react.bridge.ReadableArray;
51-
import com.facebook.react.bridge.WritableNativeMap;
5243
import com.facebook.react.bridge.LifecycleEventListener;
44+
import com.facebook.react.bridge.Promise;
5345
import com.facebook.react.bridge.ReactApplicationContext;
46+
import com.facebook.react.bridge.ReactContext;
5447
import com.facebook.react.bridge.ReactContextBaseJavaModule;
48+
import com.facebook.react.bridge.ReactMethod;
49+
import com.facebook.react.bridge.ReadableArray;
50+
import com.facebook.react.bridge.ReadableMap;
5551
import com.facebook.react.modules.core.DeviceEventManagerModule;
56-
57-
import com.onesignal.OSEmailSubscriptionStateChanges;
58-
import com.onesignal.OneSignal;
59-
import com.onesignal.OSOutcomeEvent;
6052
import com.onesignal.OSDeviceState;
53+
import com.onesignal.OSEmailSubscriptionObserver;
54+
import com.onesignal.OSEmailSubscriptionStateChanges;
6155
import com.onesignal.OSInAppMessageAction;
6256
import com.onesignal.OSNotification;
63-
import com.onesignal.OSNotificationReceivedEvent;
6457
import com.onesignal.OSNotificationOpenedResult;
65-
import com.onesignal.OneSignal.OutcomeCallback;
58+
import com.onesignal.OSNotificationReceivedEvent;
59+
import com.onesignal.OSOutcomeEvent;
60+
import com.onesignal.OSPermissionObserver;
61+
import com.onesignal.OSPermissionStateChanges;
62+
import com.onesignal.OSSMSSubscriptionObserver;
63+
import com.onesignal.OSSMSSubscriptionStateChanges;
64+
import com.onesignal.OSSubscriptionObserver;
65+
import com.onesignal.OSSubscriptionStateChanges;
66+
import com.onesignal.OneSignal;
6667
import com.onesignal.OneSignal.EmailUpdateError;
67-
6868
import com.onesignal.OneSignal.EmailUpdateHandler;
6969
import com.onesignal.OneSignal.OSInAppMessageClickHandler;
7070
import com.onesignal.OneSignal.OSNotificationOpenedHandler;
71+
import com.onesignal.OneSignal.OutcomeCallback;
7172

72-
import com.onesignal.OSPermissionObserver;
73-
import com.onesignal.OSSubscriptionObserver;
74-
import com.onesignal.OSEmailSubscriptionObserver;
75-
76-
import com.onesignal.OSPermissionStateChanges;
77-
import com.onesignal.OSSubscriptionStateChanges;
78-
79-
import org.json.JSONObject;
80-
import org.json.JSONArray;
8173
import org.json.JSONException;
74+
import org.json.JSONObject;
75+
76+
import java.util.HashMap;
8277

8378
public class RNOneSignal extends ReactContextBaseJavaModule
8479
implements
@@ -87,8 +82,8 @@ public class RNOneSignal extends ReactContextBaseJavaModule
8782
OSNotificationOpenedHandler,
8883
OSEmailSubscriptionObserver,
8984
LifecycleEventListener,
90-
OSInAppMessageClickHandler
91-
{
85+
OSInAppMessageClickHandler,
86+
OSSMSSubscriptionObserver {
9287

9388
public static final String HIDDEN_MESSAGE_KEY = "hidden";
9489

@@ -104,6 +99,7 @@ public class RNOneSignal extends ReactContextBaseJavaModule
10499
private boolean hasSetInAppClickedHandler = false;
105100
private boolean hasSetSubscriptionObserver = false;
106101
private boolean hasSetEmailSubscriptionObserver = false;
102+
private boolean hasSetSMSSubscriptionObserver = false;
107103
private boolean hasSetPermissionObserver = false;
108104

109105
// A native module is supposed to invoke its callback only once. It can, however, store the callback and invoke it later.
@@ -166,7 +162,7 @@ private void initOneSignal() {
166162
Context context = mReactApplicationContext.getCurrentActivity();
167163

168164
if (oneSignalInitDone) {
169-
Log.e("onesignal", "Already initialized the OneSignal React-Native SDK");
165+
Log.e("OneSignal", "Already initialized the OneSignal React-Native SDK");
170166
return;
171167
}
172168

@@ -191,22 +187,28 @@ public void setAppId(String appId) {
191187
/* Observers */
192188
@Override
193189
public void onOSPermissionChanged(OSPermissionStateChanges stateChanges) {
194-
Log.i("Onesignal", "sending permission change event");
190+
Log.i("OneSignal", "sending permission change event");
195191
sendEvent("OneSignal-permissionChanged", RNUtils.jsonToWritableMap(stateChanges.toJSONObject()));
196192
}
197193

198194
@Override
199195
public void onOSSubscriptionChanged(OSSubscriptionStateChanges stateChanges) {
200-
Log.i("Onesignal", "sending subscription change event");
196+
Log.i("OneSignal", "sending subscription change event");
201197
sendEvent("OneSignal-subscriptionChanged", RNUtils.jsonToWritableMap(stateChanges.toJSONObject()));
202198
}
203199

204200
@Override
205201
public void onOSEmailSubscriptionChanged(OSEmailSubscriptionStateChanges stateChanges) {
206-
Log.i("Onesignal", "sending email subscription change event");
202+
Log.i("OneSignal", "sending email subscription change event");
207203
sendEvent("OneSignal-emailSubscriptionChanged", RNUtils.jsonToWritableMap(stateChanges.toJSONObject()));
208204
}
209205

206+
@Override
207+
public void onSMSSubscriptionChanged(OSSMSSubscriptionStateChanges stateChanges) {
208+
Log.i("OneSignal", "sending SMS subscription change event");
209+
sendEvent("OneSignal-smsSubscriptionChanged", RNUtils.jsonToWritableMap(stateChanges.toJSONObject()));
210+
}
211+
210212
@ReactMethod
211213
public void addPermissionObserver() {
212214
if (!hasSetPermissionObserver) {
@@ -231,11 +233,24 @@ public void addEmailSubscriptionObserver() {
231233
}
232234
}
233235

236+
@ReactMethod
237+
public void addSMSSubscriptionObserver() {
238+
if (!hasSetSMSSubscriptionObserver) {
239+
OneSignal.addSMSSubscriptionObserver(this);
240+
hasSetSMSSubscriptionObserver = true;
241+
}
242+
}
243+
234244
/* Other methods */
235245

236246
@ReactMethod
237247
public void getDeviceState(Promise promise) {
238248
OSDeviceState state = OneSignal.getDeviceState();
249+
if (state == null) {
250+
Log.e("OneSignal", "getDeviceState: OSDeviceState is null");
251+
promise.reject("Null OSDeviceState", "OSDeviceState is null");
252+
return;
253+
}
239254
promise.resolve(RNUtils.jsonToWritableMap(state.toJSONObject()));
240255
}
241256

@@ -244,6 +259,11 @@ public void disablePush(boolean disable) {
244259
OneSignal.disablePush(disable);
245260
}
246261

262+
@ReactMethod
263+
public void unsubscribeWhenNotificationsAreDisabled(boolean unsubscribe) {
264+
OneSignal.unsubscribeWhenNotificationsAreDisabled(unsubscribe);
265+
}
266+
247267
@ReactMethod
248268
public void sendTag(String key, String value) {
249269
OneSignal.sendTag(key, value);
@@ -313,6 +333,44 @@ public void onFailure(EmailUpdateError error) {
313333
});
314334
}
315335

336+
@ReactMethod
337+
public void setSMSNumber(String smsNumber, String smsAuthToken, final Callback callback) {
338+
OneSignal.setSMSNumber(smsNumber, smsAuthToken, new OneSignal.OSSMSUpdateHandler() {
339+
@Override
340+
public void onSuccess(JSONObject result) {
341+
callback.invoke(RNUtils.jsonToWritableMap(result));
342+
}
343+
344+
@Override
345+
public void onFailure(OneSignal.OSSMSUpdateError error) {
346+
try {
347+
callback.invoke(RNUtils.jsonToWritableMap(jsonFromErrorMessageString(error.getMessage())));
348+
} catch (JSONException exception) {
349+
exception.printStackTrace();
350+
}
351+
}
352+
});
353+
}
354+
355+
@ReactMethod
356+
public void logoutSMSNumber(final Callback callback) {
357+
OneSignal.logoutSMSNumber(new OneSignal.OSSMSUpdateHandler() {
358+
@Override
359+
public void onSuccess(JSONObject result) {
360+
callback.invoke(RNUtils.jsonToWritableMap(result));
361+
}
362+
363+
@Override
364+
public void onFailure(OneSignal.OSSMSUpdateError error) {
365+
try {
366+
callback.invoke(RNUtils.jsonToWritableMap(jsonFromErrorMessageString(error.getMessage())));
367+
} catch (JSONException exception) {
368+
exception.printStackTrace();
369+
}
370+
}
371+
});
372+
}
373+
316374
@ReactMethod
317375
public void promptLocation() {
318376
OneSignal.promptLocation();
@@ -323,6 +381,11 @@ public void setLogLevel(int logLevel, int visualLogLevel) {
323381
OneSignal.setLogLevel(logLevel, visualLogLevel);
324382
}
325383

384+
@ReactMethod
385+
public void isLocationShared(Promise promise) {
386+
promise.resolve(OneSignal.isLocationShared());
387+
}
388+
326389
@ReactMethod
327390
public void setLocationShared(Boolean shared) {
328391
OneSignal.setLocationShared(shared);
@@ -358,6 +421,16 @@ public void removeNotification(int id) {
358421
OneSignal.removeNotification(id);
359422
}
360423

424+
@ReactMethod
425+
public void removeGroupedNotifications(String id) {
426+
OneSignal.removeGroupedNotifications(id);
427+
}
428+
429+
@ReactMethod
430+
public void requiresUserPrivacyConsent(Promise promise) {
431+
promise.resolve(OneSignal.requiresUserPrivacyConsent());
432+
}
433+
361434
@ReactMethod
362435
public void setRequiresUserPrivacyConsent(Boolean required) {
363436
OneSignal.setRequiresUserPrivacyConsent(required);

examples/RNOneSignalTS/ios/Podfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ target 'RNOneSignalTS' do
1717
#
1818
# Note that if you have use_frameworks! enabled, Flipper will not work and
1919
# you should disable these next few lines.
20-
use_flipper!
21-
post_install do |installer|
22-
flipper_post_install(installer)
23-
end
20+
# use_flipper!
21+
# post_install do |installer|
22+
# flipper_post_install(installer)
23+
# end
2424
end
2525

2626
target 'RNOneSignalTS-tvOS' do

0 commit comments

Comments
 (0)