diff --git a/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java b/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java index 34980305b..2890acfea 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java +++ b/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java @@ -235,17 +235,17 @@ public class PushUtils { List users = userManager.getUsers().blockingGet(); - for (User user : users) { - if (!user.getScheduledForDeletion()) { - Map nextcloudRegisterPushMap = new HashMap<>(); - nextcloudRegisterPushMap.put("format", "json"); - nextcloudRegisterPushMap.put("pushTokenHash", pushTokenHash); - nextcloudRegisterPushMap.put("devicePublicKey", devicePublicKeyBase64); - nextcloudRegisterPushMap.put("proxyServer", proxyServer); + for (User user : users) { + if (!user.getScheduledForDeletion()) { + Map nextcloudRegisterPushMap = new HashMap<>(); + nextcloudRegisterPushMap.put("format", "json"); + nextcloudRegisterPushMap.put("pushTokenHash", pushTokenHash); + nextcloudRegisterPushMap.put("devicePublicKey", devicePublicKeyBase64); + nextcloudRegisterPushMap.put("proxyServer", proxyServer); - registerDeviceWithNextcloud(ncApi, nextcloudRegisterPushMap, token, user); - } + registerDeviceWithNextcloud(ncApi, nextcloudRegisterPushMap, token, user); } + } } } else { @@ -260,9 +260,9 @@ public class PushUtils { String credentials = ApiUtils.getCredentials(user.getUsername(), user.getToken()); ncApi.registerDeviceForNotificationsWithNextcloud( - credentials, - ApiUtils.getUrlNextcloudPush(user.getBaseUrl()), - nextcloudRegisterPushMap) + credentials, + ApiUtils.getUrlNextcloudPush(user.getBaseUrl()), + nextcloudRegisterPushMap) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -338,26 +338,31 @@ public class PushUtils { pushConfigurationState.setUserPublicKey(proxyMap.get("userPublicKey")); pushConfigurationState.setUsesRegularPass(Boolean.FALSE); - userManager.updatePushState(user.getId(), pushConfigurationState).subscribe(new SingleObserver() { - @Override - public void onSubscribe(Disposable d) { - // unused atm - } + if (user.getId() != null) { + userManager.updatePushState(user.getId(), pushConfigurationState).subscribe(new SingleObserver() { + @Override + public void onSubscribe(Disposable d) { + // unused atm + } - @Override - public void onSuccess(Integer integer) { - eventBus.post(new EventStatus(UserIdUtils.INSTANCE.getIdForUser(user), - EventStatus.EventType.PUSH_REGISTRATION, - true)); - } + @Override + public void onSuccess(Integer integer) { + eventBus.post(new EventStatus(UserIdUtils.INSTANCE.getIdForUser(user), + EventStatus.EventType.PUSH_REGISTRATION, + true)); + } + + @Override + public void onError(Throwable e) { + eventBus.post(new EventStatus(UserIdUtils.INSTANCE.getIdForUser(user), + EventStatus.EventType.PUSH_REGISTRATION, + false)); + } + }); + } else { + Log.e(TAG, "failed to update updatePushStateForUser. user.getId() was null"); + } - @Override - public void onError(Throwable e) { - eventBus.post(new EventStatus(UserIdUtils.INSTANCE.getIdForUser(user), - EventStatus.EventType.PUSH_REGISTRATION, - false)); - } - }); } private Key readKeyFromString(boolean readPublicKey, String keyString) {