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

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-10-13 12:52:34 +0300
committerStefan Niedermann <info@niedermann.it>2020-10-13 12:52:34 +0300
commit2a5894292563066ce25e15f4962c5e1acef1983f (patch)
tree3e94dfdc1e31e75ac870fc1d1aceaffa8539fd39 /app/src/main
parent830c1cf265240c97c3d03ff206b83732568ed26c (diff)
Use ExceptionUtil from nextcloud-commons library
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java8
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java25
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionHandler.java17
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/util/ExceptionUtil.java81
7 files changed, 36 insertions, 110 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java
index 854b99a6a..957743919 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java
@@ -23,6 +23,7 @@ import com.nextcloud.android.sso.exceptions.AndroidGetAccountsPermissionNotGrant
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledException;
import com.nextcloud.android.sso.helper.SingleAccountHelper;
import com.nextcloud.android.sso.model.SingleSignOnAccount;
+import com.nextcloud.android.sso.ui.UiExceptionManager;
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.R;
@@ -36,7 +37,6 @@ import it.niedermann.nextcloud.deck.persistence.sync.SyncWorker;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
-import it.niedermann.nextcloud.deck.util.ExceptionUtil;
import static com.nextcloud.android.sso.AccountImporter.REQUEST_AUTH_TOKEN_SSO;
@@ -79,7 +79,10 @@ public class ImportAccountActivity extends AppCompatActivity {
try {
AccountImporter.pickNewAccount(this);
} catch (NextcloudFilesAppNotInstalledException e) {
- ExceptionUtil.handleNextcloudFilesAppNotInstalledException(this, e);
+ UiExceptionManager.showDialogForException(this, e);
+ DeckLog.warn("=============================================================");
+ DeckLog.warn("Nextcloud app is not installed. Cannot choose account");
+ DeckLog.logError(e);
} catch (AndroidGetAccountsPermissionNotGranted e) {
binding.addButton.setEnabled(true);
AccountImporter.requestAndroidAccountPermissionsAndPickAccount(this);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java
index b685b18be..1a3e88b4a 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java
@@ -16,14 +16,15 @@ import com.bumptech.glide.request.RequestOptions;
import com.nextcloud.android.sso.AccountImporter;
import com.nextcloud.android.sso.exceptions.AndroidGetAccountsPermissionNotGranted;
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledException;
+import com.nextcloud.android.sso.ui.UiExceptionManager;
+import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.DialogAccountSwitcherBinding;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
import it.niedermann.nextcloud.deck.ui.MainViewModel;
import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment;
import it.niedermann.nextcloud.deck.ui.manageaccounts.ManageAccountsActivity;
-import it.niedermann.nextcloud.deck.util.ExceptionUtil;
import static it.niedermann.android.util.DimensionUtil.dpToPx;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
@@ -76,7 +77,10 @@ public class AccountSwitcherDialog extends BrandedDialogFragment {
try {
AccountImporter.pickNewAccount(requireActivity());
} catch (NextcloudFilesAppNotInstalledException e) {
- ExceptionUtil.handleNextcloudFilesAppNotInstalledException(requireContext(), e);
+ UiExceptionManager.showDialogForException(requireContext(), e);
+ DeckLog.warn("=============================================================");
+ DeckLog.warn("Nextcloud app is not installed. Cannot choose account");
+ DeckLog.logError(e);
} catch (AndroidGetAccountsPermissionNotGranted e) {
AccountImporter.requestAndroidAccountPermissionsAndPickAccount(requireActivity());
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java
index 9bdbbb7be..95430eef9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java
@@ -8,11 +8,10 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
-import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.ActivityExceptionBinding;
import it.niedermann.nextcloud.deck.ui.exception.tips.TipsAdapter;
-import it.niedermann.nextcloud.deck.util.ExceptionUtil;
+import it.niedermann.nextcloud.exception.ExceptionUtil;
import static it.niedermann.android.util.ClipboardUtil.copyToClipboard;
@@ -22,9 +21,12 @@ public class ExceptionActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
final ActivityExceptionBinding binding = ActivityExceptionBinding.inflate(getLayoutInflater());
+
setContentView(binding.getRoot());
- super.onCreate(savedInstanceState);
+ setSupportActionBar(binding.toolbar);
Throwable throwable = ((Throwable) getIntent().getSerializableExtra(KEY_THROWABLE));
@@ -32,23 +34,18 @@ public class ExceptionActivity extends AppCompatActivity {
throwable = new Exception("Could not get exception");
}
- DeckLog.logError(throwable);
+ final TipsAdapter adapter = new TipsAdapter(this::startActivity);
+ final String debugInfo = "Full Crash:\n\n" + ExceptionUtil.getDebugInfos(this, throwable);
- setSupportActionBar(binding.toolbar);
+ binding.tips.setAdapter(adapter);
+ binding.tips.setNestedScrollingEnabled(false);
binding.toolbar.setTitle(R.string.error);
binding.message.setText(throwable.getMessage());
-
- final String debugInfo = "Full Crash:\n\n" + ExceptionUtil.getDebugInfos(this, throwable, null);
-
binding.stacktrace.setText(debugInfo);
-
- final TipsAdapter adapter = new TipsAdapter(this::startActivity);
- binding.tips.setAdapter(adapter);
- binding.tips.setNestedScrollingEnabled(false);
- adapter.setThrowable(this, null, throwable);
-
binding.copy.setOnClickListener((v) -> copyToClipboard(this, getString(R.string.simple_exception), "```\n" + debugInfo + "\n```"));
binding.close.setOnClickListener((v) -> finish());
+
+ adapter.setThrowable(this, null, throwable);
}
@NonNull
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java
index 4b64dae06..1ee50e30b 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java
@@ -16,7 +16,7 @@ import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.DialogExceptionBinding;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.ui.exception.tips.TipsAdapter;
-import it.niedermann.nextcloud.deck.util.ExceptionUtil;
+import it.niedermann.nextcloud.exception.ExceptionUtil;
import static it.niedermann.android.util.ClipboardUtil.copyToClipboard;
@@ -52,7 +52,7 @@ public class ExceptionDialogFragment extends AppCompatDialogFragment {
final TipsAdapter adapter = new TipsAdapter((actionIntent) -> requireActivity().startActivity(actionIntent));
- final String debugInfos = ExceptionUtil.getDebugInfos(requireContext(), throwable, account);
+ final String debugInfos = ExceptionUtil.getDebugInfos(requireContext(), throwable, account == null ? null : account.getServerDeckVersion());
binding.tips.setAdapter(adapter);
binding.stacktrace.setText(debugInfos);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionHandler.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionHandler.java
index 53c99d52c..c62b23e51 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionHandler.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionHandler.java
@@ -4,19 +4,22 @@ import android.app.Activity;
import androidx.annotation.NonNull;
+import it.niedermann.nextcloud.deck.DeckLog;
+
public class ExceptionHandler implements Thread.UncaughtExceptionHandler {
- private Activity context;
+ @NonNull
+ private final Activity activity;
- public ExceptionHandler(Activity context) {
- super();
- this.context = context;
+ public ExceptionHandler(@NonNull Activity activity) {
+ this.activity = activity;
}
@Override
- public void uncaughtException(@NonNull Thread t, Throwable e) {
- context.getApplicationContext().startActivity(ExceptionActivity.createIntent(context, e));
- context.finish();
+ public void uncaughtException(@NonNull Thread t, @NonNull Throwable e) {
+ DeckLog.logError(e);
+ activity.getApplicationContext().startActivity(ExceptionActivity.createIntent(activity, e));
+ activity.finish();
Runtime.getRuntime().exit(0);
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java
index 271b60489..622b02d4d 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java
@@ -22,7 +22,7 @@ import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment;
import static android.graphics.PorterDuff.Mode;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
-import static it.niedermann.nextcloud.deck.util.ExceptionUtil.getDebugInfos;
+import static it.niedermann.nextcloud.exception.ExceptionUtil.getDebugInfos;
public class ShareProgressDialogFragment extends BrandedDialogFragment {
@@ -70,7 +70,7 @@ public class ShareProgressDialogFragment extends BrandedDialogFragment {
binding.errorReportButton.setOnClickListener((v) -> {
final StringBuilder debugInfos = new StringBuilder(exceptionsCount + " attachments failed to upload:");
for (Throwable t : exceptions) {
- debugInfos.append(getDebugInfos(requireContext(), t, null));
+ debugInfos.append(getDebugInfos(requireContext(), t));
}
ExceptionDialogFragment.newInstance(new UploadAttachmentFailedException(debugInfos.toString()), null)
.show(getChildFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/ExceptionUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/ExceptionUtil.java
deleted file mode 100644
index 8599f0b6d..000000000
--- a/app/src/main/java/it/niedermann/nextcloud/deck/util/ExceptionUtil.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package it.niedermann.nextcloud.deck.util;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.os.Build;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.UiThread;
-
-import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledException;
-import com.nextcloud.android.sso.helper.VersionCheckHelper;
-import com.nextcloud.android.sso.ui.UiExceptionManager;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import it.niedermann.nextcloud.deck.BuildConfig;
-import it.niedermann.nextcloud.deck.DeckLog;
-import it.niedermann.nextcloud.deck.model.Account;
-
-public class ExceptionUtil {
-
- private ExceptionUtil() {
-
- }
-
- public static String getDebugInfos(@NonNull Context context, Throwable throwable, @Nullable Account account) {
- return "" +
- getAppVersions(context, account) +
- "\n\n---\n" +
- getDeviceInfos() +
- "\n\n---" +
- "\n\n" +
- getStacktraceOf(throwable);
- }
-
- private static String getAppVersions(Context context, @Nullable Account account) {
- String versions = ""
- + "App Version: " + BuildConfig.VERSION_NAME + "\n"
- + "App Version Code: " + BuildConfig.VERSION_CODE + "\n"
- + "App Flavor: " + BuildConfig.FLAVOR + "\n";
-
- if (account != null) {
- versions += "\n";
- versions += "Deck Server Version: " + account.getServerDeckVersion() + "\n";
- }
-
- versions += "\n";
- try {
- versions += "Files App Version Code: " + VersionCheckHelper.getNextcloudFilesVersionCode(context);
- } catch (PackageManager.NameNotFoundException e) {
- versions += "Files App Version Code: " + e.getMessage();
- e.printStackTrace();
- }
- return versions;
- }
-
- private static String getDeviceInfos() {
- return ""
- + "\nOS Version: " + System.getProperty("os.version") + "(" + Build.VERSION.INCREMENTAL + ")"
- + "\nOS API Level: " + Build.VERSION.SDK_INT
- + "\nDevice: " + Build.DEVICE
- + "\nManufacturer: " + Build.MANUFACTURER
- + "\nModel (and Product): " + Build.MODEL + " (" + Build.PRODUCT + ")";
- }
-
- private static String getStacktraceOf(Throwable e) {
- StringWriter sw = new StringWriter();
- e.printStackTrace(new PrintWriter(sw));
- return sw.toString();
- }
-
- @UiThread
- public static void handleNextcloudFilesAppNotInstalledException(@NonNull Context context, @NonNull NextcloudFilesAppNotInstalledException exception) {
- UiExceptionManager.showDialogForException(context, exception);
- DeckLog.warn("=============================================================");
- DeckLog.warn("Nextcloud app is not installed. Cannot choose account");
- exception.printStackTrace();
- }
-}