Skip to content

Commit 93922da

Browse files
committed
Remove public getPermissionSubscriptionState
* Replace getPermissionSubscriptionState with getDeviceState * Add isEmaiSubscribed method to OSDeviceState * Delete OSPermissionSubscriptionState class
1 parent 2c069cf commit 93922da

File tree

8 files changed

+67
-160
lines changed

8 files changed

+67
-160
lines changed

Examples/OneSignalDemo/app/src/main/java/com/onesignal/sdktest/model/MainActivityViewModel.java

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import android.widget.Switch;
2020
import android.widget.TextView;
2121

22+
import com.onesignal.OSDeviceState;
2223
import com.onesignal.OSEmailSubscriptionStateChanges;
2324
import com.onesignal.OSPermissionStateChanges;
2425
import com.onesignal.OSSubscriptionStateChanges;
@@ -299,11 +300,8 @@ public void onOSEmailSubscriptionChanged(OSEmailSubscriptionStateChanges stateCh
299300

300301
@Override
301302
public void onOSPermissionChanged(OSPermissionStateChanges stateChanges) {
302-
final boolean isSubscribed = OneSignal.getPermissionSubscriptionState() != null &&
303-
OneSignal
304-
.getPermissionSubscriptionState()
305-
.getSubscriptionStatus()
306-
.isSubscribed();
303+
OSDeviceState deviceState = OneSignal.getDeviceState();
304+
final boolean isSubscribed = deviceState != null && deviceState.isSubscribed();
307305

308306
boolean isPermissionEnabled = stateChanges.getTo().areNotificationsEnabled();
309307
subscriptionSwitch.setEnabled(isPermissionEnabled);
@@ -459,19 +457,9 @@ public void setupSettingsLayout() {
459457
}
460458

461459
private void setupSubscriptionSwitch() {
462-
boolean isPermissionEnabled = OneSignal
463-
.getPermissionSubscriptionState() != null &&
464-
OneSignal
465-
.getPermissionSubscriptionState()
466-
.getPermissionStatus()
467-
.areNotificationsEnabled();
468-
469-
final boolean isSubscribed = OneSignal
470-
.getPermissionSubscriptionState() != null &&
471-
OneSignal
472-
.getPermissionSubscriptionState()
473-
.getSubscriptionStatus()
474-
.isSubscribed();
460+
OSDeviceState deviceState = OneSignal.getDeviceState();
461+
boolean isPermissionEnabled = deviceState != null && deviceState.areNotificationsEnabled();
462+
final boolean isSubscribed = deviceState != null && deviceState.isSubscribed();
475463

476464
subscriptionSwitch.setEnabled(isPermissionEnabled);
477465
subscriptionSwitch.setChecked(isSubscribed);

Examples/OneSignalDemo/app/src/main/java/com/onesignal/sdktest/notification/OneSignalNotificationSender.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import android.util.Log;
44

5-
import com.onesignal.OSPermissionSubscriptionState;
5+
import com.onesignal.OSDeviceState;
66
import com.onesignal.OneSignal;
77
import com.onesignal.sdktest.constant.Tag;
88
import com.onesignal.sdktest.type.Notification;
@@ -14,9 +14,9 @@ public class OneSignalNotificationSender {
1414

1515
public static void sendDeviceNotification(final Notification notification) {
1616
new Thread(() -> {
17-
OSPermissionSubscriptionState status = OneSignal.getPermissionSubscriptionState();
18-
String userId = status.getSubscriptionStatus().getUserId();
19-
boolean isSubscribed = status.getSubscriptionStatus().isSubscribed();
17+
OSDeviceState deviceState = OneSignal.getDeviceState();
18+
String userId = deviceState != null ? deviceState.getUserId() : null;
19+
boolean isSubscribed = deviceState != null && deviceState.isSubscribed();
2020

2121
if (!isSubscribed)
2222
return;

Examples/OneSignalDemo/app/src/main/java/com/onesignal/sdktest/user/CurrentUser.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.content.Context;
44
import android.util.Log;
55

6+
import com.onesignal.OSDeviceState;
67
import com.onesignal.OneSignal;
78
import com.onesignal.sdktest.callback.EmailUpdateCallback;
89
import com.onesignal.sdktest.constant.Tag;
@@ -13,11 +14,9 @@ public class CurrentUser {
1314
private static CurrentUser currentUser;
1415

1516
public String getEmail() {
16-
if (OneSignal.getPermissionSubscriptionState() != null)
17-
return OneSignal
18-
.getPermissionSubscriptionState()
19-
.getEmailSubscriptionStatus()
20-
.getEmailAddress();
17+
OSDeviceState deviceState = OneSignal.getDeviceState();
18+
if (deviceState != null)
19+
return deviceState.getEmailAddress();
2120
return null;
2221
}
2322

@@ -53,10 +52,8 @@ public void removeEmail(final EmailUpdateCallback callback) {
5352
}
5453

5554
public boolean isEmailSet() {
56-
return OneSignal
57-
.getPermissionSubscriptionState() != null && OneSignal
58-
.getPermissionSubscriptionState().getEmailSubscriptionStatus()
59-
.getEmailAddress() != null;
55+
OSDeviceState deviceState = OneSignal.getDeviceState();
56+
return deviceState != null && deviceState.getEmailAddress() != null;
6057
}
6158

6259
public boolean isExternalUserIdSet(Context context) {

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,21 @@ public class OSDeviceState {
3434
private final boolean areNotificationsEnabled;
3535
private final boolean pushDisabled;
3636
private final boolean subscribed;
37+
private final boolean emailSubscribed;
3738
private final String userId;
3839
private final String pushToken;
3940
private final String emailUserId;
4041
private final String emailAddress;
4142

42-
public OSDeviceState(OSPermissionSubscriptionState permissionSubscriptionState) {
43-
OSSubscriptionState subscriptionStatus = permissionSubscriptionState.subscriptionStatus;
44-
OSPermissionState permissionStatus = permissionSubscriptionState.permissionStatus;
45-
OSEmailSubscriptionState emailSubscriptionStatus = permissionSubscriptionState.emailSubscriptionStatus;
46-
43+
public OSDeviceState(OSSubscriptionState subscriptionStatus, OSPermissionState permissionStatus, OSEmailSubscriptionState emailSubscriptionStatus) {
4744
areNotificationsEnabled = permissionStatus.areNotificationsEnabled();
4845
pushDisabled = subscriptionStatus.isPushDisabled();
4946
subscribed = subscriptionStatus.isSubscribed();
5047
userId = subscriptionStatus.getUserId();
5148
pushToken = subscriptionStatus.getPushToken();
5249
emailUserId = emailSubscriptionStatus.getEmailUserId();
5350
emailAddress = emailSubscriptionStatus.getEmailAddress();
51+
emailSubscribed = emailSubscriptionStatus.getSubscribed();
5452
}
5553

5654
/**
@@ -98,6 +96,15 @@ public String getPushToken() {
9896
return pushToken;
9997
}
10098

99+
/**
100+
* Get whether the user email is subscribed
101+
*
102+
* @return true if {@link #getEmailUserId} and {@link #getEmailAddress} are not null, otherwise false
103+
*/
104+
public boolean isEmailSubscribed() {
105+
return emailSubscribed;
106+
}
107+
101108
/**
102109
* Get the user email id
103110
*
@@ -125,6 +132,7 @@ public JSONObject toJSONObject() {
125132
mainObj.put("isSubscribed", subscribed);
126133
mainObj.put("userId", userId);
127134
mainObj.put("pushToken", pushToken);
135+
mainObj.put("isEmailSubscribed", emailSubscribed);
128136
mainObj.put("emailUserId", emailUserId);
129137
mainObj.put("emailAddress", emailAddress);
130138
} catch (Throwable t) {

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

Lines changed: 0 additions & 68 deletions
This file was deleted.

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

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,9 @@ private static OSEmailSubscriptionState getCurrentEmailSubscriptionState(Context
462462

463463
return currentEmailSubscriptionState;
464464
}
465+
static OSEmailSubscriptionState getEmailSubscriptionState() {
466+
return getCurrentEmailSubscriptionState(appContext);
467+
}
465468

466469
static OSEmailSubscriptionState lastEmailSubscriptionState;
467470
private static OSEmailSubscriptionState getLastEmailSubscriptionState(Context context) {
@@ -482,11 +485,20 @@ static OSObservable<OSEmailSubscriptionObserver, OSEmailSubscriptionStateChanges
482485
}
483486
// End EmailSubscriptionState
484487

488+
/**
489+
* Get the current user data, notification and permissions state.
490+
*/
485491
@Nullable
486492
public static OSDeviceState getDeviceState() {
487-
if (getPermissionSubscriptionState() == null)
493+
if (appContext == null) {
494+
logger.error("OneSignal.initWithContext has not been called. Could not get OSDeviceState");
488495
return null;
489-
return new OSDeviceState(getPermissionSubscriptionState());
496+
}
497+
498+
OSSubscriptionState subscriptionStatus = getCurrentSubscriptionState(appContext);
499+
OSPermissionState permissionStatus = getCurrentPermissionState(appContext);
500+
OSEmailSubscriptionState emailSubscriptionStatus = getCurrentEmailSubscriptionState(appContext);
501+
return new OSDeviceState(subscriptionStatus, permissionStatus, emailSubscriptionStatus);
490502
}
491503

492504
private static class IAPUpdateJob {
@@ -2685,35 +2697,6 @@ public static void removeEmailSubscriptionObserver(@NonNull OSEmailSubscriptionO
26852697
getEmailSubscriptionStateChangesObserver().removeObserver(observer);
26862698
}
26872699

2688-
/**
2689-
* Get the current notification and permission state.
2690-
*<br/><br/>
2691-
* {@code permissionStatus} - {@link OSPermissionState} - Android Notification Permissions State
2692-
* <br/>
2693-
* {@code subscriptionStatus} - {@link OSSubscriptionState} - Google and OneSignal subscription state
2694-
* <br/>
2695-
* {@code emailSubscriptionStatus} - {@link OSEmailSubscriptionState} - Email subscription state
2696-
* @return a {@link OSPermissionSubscriptionState} as described above
2697-
*/
2698-
public static OSPermissionSubscriptionState getPermissionSubscriptionState() {
2699-
2700-
// If applicable, check if the user provided privacy consent
2701-
if (shouldLogUserPrivacyConsentErrorMessageForMethodName("getPermissionSubscriptionState()"))
2702-
return null;
2703-
2704-
if (appContext == null) {
2705-
logger.error("OneSignal.initWithContext has not been called. Could not get OSPermissionSubscriptionState");
2706-
return null;
2707-
}
2708-
2709-
OSPermissionSubscriptionState status = new OSPermissionSubscriptionState();
2710-
status.subscriptionStatus = getCurrentSubscriptionState(appContext);
2711-
status.permissionStatus = getCurrentPermissionState(appContext);
2712-
status.emailSubscriptionStatus = getCurrentEmailSubscriptionState(appContext);
2713-
2714-
return status;
2715-
}
2716-
27172700
/** In-App Message Triggers */
27182701

27192702
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ void logoutEmail() {
142142
toSyncUserState.syncValues.remove("external_user_id");
143143
toSyncUserState.persistState();
144144

145-
OneSignal.getPermissionSubscriptionState().emailSubscriptionStatus.clearEmailAndId();
145+
OneSignal.getEmailSubscriptionState().clearEmailAndId();
146146
}
147147

148148
@Override

0 commit comments

Comments
 (0)