diff options
author | stefan-niedermann <info@niedermann.it> | 2020-03-16 01:53:19 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2020-03-16 01:53:19 +0300 |
commit | 27899c11b5e1649ef23041130d46e99dc3c40252 (patch) | |
tree | ad5fdee7854e4d01fd54a4d68649a3b9a55271c9 /app/src/main/java/it/niedermann/nextcloud/deck/ui/exception | |
parent | ba3684fa3d6ef7001795d16fe9d314458669de9a (diff) |
Enhance exception handling
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/exception')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java | 58 |
1 files changed, 10 insertions, 48 deletions
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 f82d58e41..18712f896 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 @@ -2,83 +2,45 @@ package it.niedermann.nextcloud.deck.ui.exception; import android.content.ClipData; import android.content.ClipboardManager; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; import android.os.Bundle; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; -import com.nextcloud.android.sso.helper.VersionCheckHelper; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Objects; - import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ActivityExceptionBinding; +import it.niedermann.nextcloud.deck.util.ExceptionUtil; public class ExceptionActivity extends AppCompatActivity { - - private ActivityExceptionBinding binding; + private String debugInfo; public static final String KEY_THROWABLE = "T"; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { - binding = ActivityExceptionBinding.inflate(getLayoutInflater()); + ActivityExceptionBinding binding = ActivityExceptionBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); super.onCreate(savedInstanceState); - binding.copy.setOnClickListener((v) -> copyStacktraceToClipboard()); - binding.close.setOnClickListener((v) -> finish()); - Throwable throwable = ((Throwable) getIntent().getSerializableExtra(KEY_THROWABLE)); throwable.printStackTrace(); + setSupportActionBar(binding.toolbar); - Objects.requireNonNull(getSupportActionBar()).setTitle(R.string.error); + binding.toolbar.setTitle(R.string.error); binding.message.setText(throwable.getMessage()); + debugInfo = ExceptionUtil.getDebugInfos(this, throwable); - String debugInfo = ""; - - try { - PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); - debugInfo += "App Version: " + pInfo.versionName; - debugInfo += "\nApp Version Code: " + pInfo.versionCode; - } catch (PackageManager.NameNotFoundException e) { - debugInfo += "\nApp Version: " + e.getMessage(); - e.printStackTrace(); - } + binding.stacktrace.setText(debugInfo); - try { - debugInfo += "\nFiles App Version Code: " + VersionCheckHelper.getNextcloudFilesVersionCode(this); - } catch (PackageManager.NameNotFoundException e) { - debugInfo += "\nFiles App Version Code: " + e.getMessage(); - e.printStackTrace(); - } - - debugInfo += "\n\n---\n"; - debugInfo += "\nOS Version: " + System.getProperty("os.version") + "(" + android.os.Build.VERSION.INCREMENTAL + ")"; - debugInfo += "\nOS API Level: " + android.os.Build.VERSION.SDK_INT; - debugInfo += "\nDevice: " + android.os.Build.DEVICE; - debugInfo += "\nModel (and Product): " + android.os.Build.MODEL + " (" + android.os.Build.PRODUCT + ")"; - - debugInfo += "\n\n---"; - - binding.stacktrace.setText(debugInfo + "\n\n" + getStacktraceOf(throwable)); - } - - private String getStacktraceOf(Throwable e) { - StringWriter sw = new StringWriter(); - e.printStackTrace(new PrintWriter(sw)); - return sw.toString(); + binding.copy.setOnClickListener((v) -> copyStacktraceToClipboard()); + binding.close.setOnClickListener((v) -> finish()); } private void copyStacktraceToClipboard() { final android.content.ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); - ClipData clipData = ClipData.newPlainText(getString(R.string.simple_exception), "```\n" + binding.stacktrace.getText() + "\n```"); + ClipData clipData = ClipData.newPlainText(getString(R.string.simple_exception), "```\n" + debugInfo + "\n```"); clipboardManager.setPrimaryClip(clipData); Toast.makeText(this, R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show(); } |