From da470bf0cfc27478476fccb7954dc3601e69f499 Mon Sep 17 00:00:00 2001 From: Stefan Niedermann Date: Fri, 26 Nov 2021 10:40:59 +0100 Subject: #1165 Refactor PushNotifications Signed-off-by: Stefan Niedermann --- .../deck/ui/PushNotificationViewModel.java | 30 +++++++++++++--------- 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationViewModel.java index f58b42272..170af1a4a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationViewModel.java @@ -67,7 +67,7 @@ public class PushNotificationViewModel extends AndroidViewModel { syncManager.synchronizeCard(new ResponseCallback<>(account) { @Override public void onResponse(Boolean response) { - final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId, bundle); + final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId); if (boardLocalId.isPresent()) { callback.onResponse(new CardInformation(account, boardLocalId.get(), card.get().getLocalId())); } else { @@ -79,7 +79,7 @@ public class PushNotificationViewModel extends AndroidViewModel { @Override public void onError(Throwable throwable) { super.onError(throwable); - final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId, bundle); + final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId); if (boardLocalId.isPresent()) { Toast.makeText(getApplication(), R.string.card_outdated, Toast.LENGTH_LONG).show(); callback.onResponse(new CardInformation(account, boardLocalId.get(), card.get().getLocalId())); @@ -90,7 +90,7 @@ public class PushNotificationViewModel extends AndroidViewModel { } }, card.get()); } else { - final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId, bundle); + final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId); if (boardLocalId.isPresent()) { DeckLog.info("Card is not yet available locally. Synchronize board with localId", boardLocalId); syncManager.synchronizeBoard(boardLocalId.get(), new ResponseCallback<>(account) { @@ -119,7 +119,7 @@ public class PushNotificationViewModel extends AndroidViewModel { public void onResponse(Boolean response) { final var card = syncManager.getCardByRemoteIDDirectly(account.getId(), cardRemoteId); if (card.isPresent()) { - final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId, bundle); + final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId); if (boardLocalId.isPresent()) { callback.onResponse(new CardInformation(account, boardLocalId.get(), card.get().getLocalId())); } else { @@ -143,7 +143,7 @@ public class PushNotificationViewModel extends AndroidViewModel { public void onResponse(Boolean response) { final var card = syncManager.getCardByRemoteIDDirectly(account.getId(), cardRemoteId); if (card.isPresent()) { - final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId, bundle); + final var boardLocalId = extractBoardLocalId(syncManager, account.getId(), cardRemoteId); if (boardLocalId.isPresent()) { callback.onResponse(new CardInformation(account, boardLocalId.get(), card.get().getLocalId())); } else { @@ -195,12 +195,17 @@ public class PushNotificationViewModel extends AndroidViewModel { try { final String cardRemoteIdString = bundle.getString(KEY_CARD_REMOTE_ID); return Optional.of(Long.parseLong(cardRemoteIdString)); - } catch (NumberFormatException e) { - DeckLog.warn(e); - final long[] ids = ProjectUtil.extractBoardIdAndCardIdFromUrl(bundle.getString(KEY_LINK)); - return ids.length == 2 - ? Optional.of(ids[1]) - : Optional.empty(); + } catch (NumberFormatException nfe) { + DeckLog.warn(nfe); + try { + final long[] ids = ProjectUtil.extractBoardIdAndCardIdFromUrl(bundle.getString(KEY_LINK)); + return ids.length == 2 + ? Optional.of(ids[1]) + : Optional.empty(); + } catch (IllegalArgumentException iae) { + DeckLog.warn(iae); + return Optional.empty(); + } } } @@ -208,7 +213,7 @@ public class PushNotificationViewModel extends AndroidViewModel { return Optional.ofNullable(readAccountSyncManager.readAccountDirectly(bundle.getString(KEY_ACCOUNT))); } - private Optional extractBoardLocalId(@NonNull SyncManager syncManager, long accountId, long cardRemoteId, @NonNull Bundle bundle) { + private Optional extractBoardLocalId(@NonNull SyncManager syncManager, long accountId, long cardRemoteId) { return Optional.ofNullable(syncManager.getBoardLocalIdByAccountAndCardRemoteIdDirectly(accountId, cardRemoteId)); } @@ -219,6 +224,7 @@ public class PushNotificationViewModel extends AndroidViewModel { ? Optional.of(ids[0]) : Optional.empty(); } catch (IllegalArgumentException e) { + DeckLog.warn(e); return Optional.empty(); } } -- cgit v1.2.3