From 49d01e0ca3e77de396417603b735c3ccd6c16847 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Sat, 2 Jan 2016 13:23:24 +1100 Subject: [PATCH] Use custom layout for ACRA report dialog, not default one. Styling the default dialog was difficult and it doesn't obey some of the guidelines provided by the Android design docs: https://www.google.com/design/spec/components/dialogs.html#dialogs-specs (see "Content Guidelines") This change introduces a custom dialog extending the base ACRA reporting activity. Specifically, it introduces a padding of 24dp around the dialog contents. --- F-Droid/AndroidManifest.xml | 3 +- F-Droid/res/layout/crash_report_dialog.xml | 36 +++++++++++++++ .../fdroid/fdroid/CrashReportActivity.java | 45 +++++++++++++++++++ F-Droid/src/org/fdroid/fdroid/FDroidApp.java | 4 +- 4 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 F-Droid/res/layout/crash_report_dialog.xml create mode 100644 F-Droid/src/org/fdroid/fdroid/CrashReportActivity.java diff --git a/F-Droid/AndroidManifest.xml b/F-Droid/AndroidManifest.xml index 76f6e7659..7e4efbac5 100644 --- a/F-Droid/AndroidManifest.xml +++ b/F-Droid/AndroidManifest.xml @@ -376,7 +376,8 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".FDroid" /> - + + + + + + + + + \ No newline at end of file diff --git a/F-Droid/src/org/fdroid/fdroid/CrashReportActivity.java b/F-Droid/src/org/fdroid/fdroid/CrashReportActivity.java new file mode 100644 index 000000000..983383101 --- /dev/null +++ b/F-Droid/src/org/fdroid/fdroid/CrashReportActivity.java @@ -0,0 +1,45 @@ +package org.fdroid.fdroid; + +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.v7.app.AlertDialog; +import android.widget.EditText; + +import org.acra.BaseCrashReportDialog; + +public class CrashReportActivity extends BaseCrashReportDialog implements DialogInterface.OnDismissListener, DialogInterface.OnClickListener { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + final AlertDialog dialog = new AlertDialog.Builder(this) + .setTitle(R.string.crash_dialog_title) + .setIcon(android.R.drawable.ic_dialog_alert) + .setView(R.layout.crash_report_dialog) + .setPositiveButton(R.string.ok, this) + .setNegativeButton(R.string.cancel, this) + .create(); + + dialog.setCanceledOnTouchOutside(false); + dialog.setOnDismissListener(this); + dialog.show(); + } + + @Override + public void onDismiss(DialogInterface dialog) { + finish(); + } + + @Override + public void onClick(DialogInterface dialog, int which) { + if (which == DialogInterface.BUTTON_POSITIVE) { + final String comment = ((EditText) findViewById(android.R.id.input)).getText().toString(); + sendCrash(comment, ""); + } else { + cancelReports(); + } + finish(); + } + +} \ No newline at end of file diff --git a/F-Droid/src/org/fdroid/fdroid/FDroidApp.java b/F-Droid/src/org/fdroid/fdroid/FDroidApp.java index 5e6b856ef..abbd702b4 100644 --- a/F-Droid/src/org/fdroid/fdroid/FDroidApp.java +++ b/F-Droid/src/org/fdroid/fdroid/FDroidApp.java @@ -67,9 +67,7 @@ import sun.net.www.protocol.bluetooth.Handler; @ReportsCrashes(mailTo = "reports@f-droid.org", mode = ReportingInteractionMode.DIALOG, - resDialogTitle = R.string.crash_dialog_title, - resDialogText = R.string.crash_dialog_text, - resDialogCommentPrompt = R.string.crash_dialog_comment_prompt + reportDialogClass = CrashReportActivity.class ) public class FDroidApp extends Application {