Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-04-25 15:13:06 +0300
committerStefan Niedermann <info@niedermann.it>2021-04-25 15:13:06 +0300
commit71010248cdd0941d9a68ab94874d96cc23941d62 (patch)
treefa189e3ab0b5d0a761c6f75253c55c25675098ea /app/src/main/java
parentac114f21c6ed0df62425b578c1b2a744927b7576 (diff)
- #1014 Handle offline state when adding accounts (First time import)
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/importaccount/ImportAccountActivity.java27
1 files changed, 20 insertions, 7 deletions
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 2695f08a..e996da53 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
@@ -1,16 +1,12 @@
package it.niedermann.owncloud.notes.importaccount;
import android.content.Intent;
-import android.graphics.drawable.Drawable;
-import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
-import androidx.core.content.ContextCompat;
-import androidx.core.graphics.drawable.DrawableCompat;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.ViewModelProvider;
@@ -18,6 +14,7 @@ import com.nextcloud.android.sso.AccountImporter;
import com.nextcloud.android.sso.exceptions.AccountImportCancelledException;
import com.nextcloud.android.sso.exceptions.AndroidGetAccountsPermissionNotGranted;
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledException;
+import com.nextcloud.android.sso.exceptions.UnknownErrorException;
import com.nextcloud.android.sso.helper.SingleAccountHelper;
import com.nextcloud.android.sso.ui.UiExceptionManager;
@@ -27,6 +24,7 @@ import it.niedermann.owncloud.notes.databinding.ActivityImportAccountBinding;
import it.niedermann.owncloud.notes.exception.ExceptionDialogFragment;
import it.niedermann.owncloud.notes.exception.ExceptionHandler;
import it.niedermann.owncloud.notes.persistence.CapabilitiesClient;
+import it.niedermann.owncloud.notes.persistence.SSOClient;
import it.niedermann.owncloud.notes.persistence.entity.Account;
import it.niedermann.owncloud.notes.shared.model.Capabilities;
@@ -52,6 +50,7 @@ public class ImportAccountActivity extends AppCompatActivity {
binding.welcomeText.setText(getString(R.string.welcome_text, getString(R.string.app_name)));
binding.addButton.setOnClickListener((v) -> {
binding.addButton.setEnabled(false);
+ binding.status.setVisibility(View.GONE);
try {
AccountImporter.pickNewAccount(this);
} catch (NextcloudFilesAppNotInstalledException e) {
@@ -100,15 +99,22 @@ public class ImportAccountActivity extends AppCompatActivity {
}));
} catch (Throwable e) {
e.printStackTrace();
+ SSOClient.invalidateAPICache(ssoAccount);
+ SingleAccountHelper.setCurrentAccount(this, null);
runOnUiThread(() -> {
- binding.addButton.setEnabled(true);
- ExceptionDialogFragment.newInstance(e).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
+ restoreCleanState();
+ if (e instanceof UnknownErrorException && e.getMessage().contains("No address associated with hostname")) {
+ 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 {
+ ExceptionDialogFragment.newInstance(e).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
+ }
});
}
}).start();
});
} catch (AccountImportCancelledException e) {
- runOnUiThread(() -> binding.addButton.setEnabled(true));
+ restoreCleanState();
Log.i(TAG, "Account import has been canceled.");
}
}
@@ -118,4 +124,11 @@ public class ImportAccountActivity extends AppCompatActivity {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
AccountImporter.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
+
+ private void restoreCleanState() {
+ runOnUiThread(() -> {
+ binding.addButton.setEnabled(true);
+ binding.progressCircular.setVisibility(View.GONE);
+ });
+ }
} \ No newline at end of file