diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-04-29 13:43:55 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-04-29 13:43:55 +0300 |
commit | 1b5b26650b696c84abf494b9402e5518d39613a5 (patch) | |
tree | bbcdeb056e6c0076036405d666acbc7c050cab4d | |
parent | 258d7734ea7038d4ad893e5991dde70d06c094fc (diff) |
#1167 Fix TokenMismatchException after last account has been deleted
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java index ef518c2b..e383091c 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java @@ -319,17 +319,26 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A final LiveData<Account> accountLiveData = mainViewModel.getCurrentAccount(); accountLiveData.observe(this, (currentAccount) -> { accountLiveData.removeObservers(this); - mainViewModel.synchronizeNotes(currentAccount, new IResponseCallback<Void>() { - @Override - public void onSuccess(Void v) { - Log.d(TAG, "Successfully synchronized notes for " + currentAccount.getAccountName()); - } + try { + // It is possible that after the deletion of the last account, this onResponse gets called before the ImportAccountActivity gets started. + if (SingleAccountHelper.getCurrentSingleSignOnAccount(this) != null) { + mainViewModel.synchronizeNotes(currentAccount, new IResponseCallback<Void>() { + @Override + public void onSuccess(Void v) { + Log.d(TAG, "Successfully synchronized notes for " + currentAccount.getAccountName()); + } - @Override - public void onError(@NonNull Throwable t) { - t.printStackTrace(); + @Override + public void onError(@NonNull Throwable t) { + t.printStackTrace(); + } + }); } - }); + } catch (NextcloudFilesAppAccountNotFoundException e) { + ExceptionDialogFragment.newInstance(e).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName()); + } catch (NoCurrentAccountSelectedException e) { + Log.i(TAG, "No current account is selected - maybe the last account has been deleted?"); + } }); super.onResume(); } |