diff --git a/CHANGELOG.md b/CHANGELOG.md index 3281842b0..f88235c3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ### 0.98 (upcoming release) +* Add opt-in crash reporting via ACRA + * Add support for HTTP basic authentication of repos * Fix repo updating on older devices with little memory diff --git a/F-Droid/AndroidManifest.xml b/F-Droid/AndroidManifest.xml index 7237aea99..76f6e7659 100644 --- a/F-Droid/AndroidManifest.xml +++ b/F-Droid/AndroidManifest.xml @@ -376,6 +376,12 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".FDroid" /> + Light Dark Night + + F-Droid has crashed + An unexpected error occurred + forcing the application to stop. Would you like to e-mail the + details to help fix the issue? + You can add extra information and comments here: diff --git a/F-Droid/src/org/fdroid/fdroid/FDroidApp.java b/F-Droid/src/org/fdroid/fdroid/FDroidApp.java index 87ce5a83e..da1eade0a 100644 --- a/F-Droid/src/org/fdroid/fdroid/FDroidApp.java +++ b/F-Droid/src/org/fdroid/fdroid/FDroidApp.java @@ -43,6 +43,9 @@ import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.utils.StorageUtils; +import org.acra.ACRA; +import org.acra.ReportingInteractionMode; +import org.acra.annotation.ReportsCrashes; import org.apache.commons.net.util.SubnetUtils; import org.fdroid.fdroid.Preferences.ChangeListener; @@ -62,6 +65,12 @@ import java.util.Locale; import sun.net.www.protocol.bluetooth.Handler; +@ReportsCrashes(mailTo = "team@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 + ) public class FDroidApp extends Application { private static final String TAG = "FDroidApp"; @@ -183,6 +192,7 @@ public class FDroidApp extends Application { } updateLanguage(); super.onCreate(); + ACRA.init(this); // Needs to be setup before anything else tries to access it. // Perhaps the constructor is a better place, but then again,