From 581bfdaf092ef31bb525cf15862a059d01b244f7 Mon Sep 17 00:00:00 2001 From: Stefan Niedermann Date: Tue, 27 Apr 2021 17:45:35 +0200 Subject: =?UTF-8?q?Fix=20#1014=20-=20=F0=9F=94=8C=20Handle=20offline=20sta?= =?UTF-8?q?te=20when=20adding=20accounts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../owncloud/notes/importaccount/ImportAccountActivity.java | 1 + .../main/java/it/niedermann/owncloud/notes/main/MainActivity.java | 6 ++++++ fastlane/metadata/android/en-US/changelogs/3004001.txt | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/it/niedermann/owncloud/notes/importaccount/ImportAccountActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/importaccount/ImportAccountActivity.java index e996da53..e64a370d 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/importaccount/ImportAccountActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/importaccount/ImportAccountActivity.java @@ -104,6 +104,7 @@ public class ImportAccountActivity extends AppCompatActivity { runOnUiThread(() -> { restoreCleanState(); if (e instanceof UnknownErrorException && e.getMessage().contains("No address associated with hostname")) { + // https://github.com/stefan-niedermann/nextcloud-notes/issues/1014 binding.status.setText(R.string.you_have_to_be_connected_to_the_internet_in_order_to_add_an_account); binding.status.setVisibility(View.VISIBLE); } else { 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 da93e648..e0300be1 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 @@ -41,6 +41,7 @@ import com.nextcloud.android.sso.exceptions.AccountImportCancelledException; import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException; import com.nextcloud.android.sso.exceptions.NoCurrentAccountSelectedException; import com.nextcloud.android.sso.exceptions.TokenMismatchException; +import com.nextcloud.android.sso.exceptions.UnknownErrorException; import com.nextcloud.android.sso.helper.SingleAccountHelper; import java.util.Collection; @@ -71,6 +72,7 @@ import it.niedermann.owncloud.notes.main.navigation.NavigationClickListener; import it.niedermann.owncloud.notes.main.navigation.NavigationItem; import it.niedermann.owncloud.notes.persistence.CapabilitiesClient; import it.niedermann.owncloud.notes.persistence.CapabilitiesWorker; +import it.niedermann.owncloud.notes.persistence.SSOClient; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.persistence.entity.Note; import it.niedermann.owncloud.notes.shared.model.Capabilities; @@ -641,6 +643,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A }).start(); })); } catch (Exception e) { + SSOClient.invalidateAPICache(ssoAccount); // Happens when importing an already existing account the second time if (e instanceof TokenMismatchException && mainViewModel.getLocalAccountByAccountName(ssoAccount.name) != null) { Log.w(TAG, "Received " + TokenMismatchException.class.getSimpleName() + " and the given ssoAccount.name (" + ssoAccount.name + ") does already exist in the database. Assume that this account has already been imported."); @@ -649,6 +652,9 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A // TODO there is already a sync in progress and results in displaying a TokenMissMatchException snackbar which conflicts with this one coordinatorLayout.post(() -> BrandedSnackbar.make(coordinatorLayout, R.string.account_already_imported, Snackbar.LENGTH_LONG).show()); }); + } else if (e instanceof UnknownErrorException && e.getMessage().contains("No address associated with hostname")) { + // https://github.com/stefan-niedermann/nextcloud-notes/issues/1014 + runOnUiThread(() -> Snackbar.make(coordinatorLayout, R.string.you_have_to_be_connected_to_the_internet_in_order_to_add_an_account, Snackbar.LENGTH_LONG).show()); } else { e.printStackTrace(); runOnUiThread(() -> { diff --git a/fastlane/metadata/android/en-US/changelogs/3004001.txt b/fastlane/metadata/android/en-US/changelogs/3004001.txt index 42471085..b1d2dee0 100644 --- a/fastlane/metadata/android/en-US/changelogs/3004001.txt +++ b/fastlane/metadata/android/en-US/changelogs/3004001.txt @@ -1,3 +1,4 @@ - ⚠️️ Display confirm dialog when deleting an account with unsynchronized changes (#989) - by @AlpAcA0072 - ➖ Allow dashes in note titles (#1104) -- 🌐 Support links in tables (#1115) \ No newline at end of file +- 🌐 Support links in tables (#1115) +- 🔌 Handle offline state when adding accounts (#1014) \ No newline at end of file -- cgit v1.2.3