From 6735e5075b01224c6eccc7e513d26cdacc8d07c9 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Fri, 4 May 2018 12:05:09 +0100
Subject: [PATCH] Add crash button to UI in debug mode.

---
 .../android/settings/SettingsFragment.java    | 15 ++++++++--
 briar-android/src/main/res/xml/settings.xml   | 30 ++++++++++++-------
 2 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
index 8f8c444040..94d1cc63b3 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
@@ -12,6 +12,7 @@ import android.support.v7.preference.CheckBoxPreference;
 import android.support.v7.preference.ListPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceFragmentCompat;
+import android.support.v7.preference.PreferenceGroup;
 import android.widget.Toast;
 
 import org.acra.ACRA;
@@ -149,9 +150,17 @@ public class SettingsFragment extends PreferenceFragmentCompat
 					return true;
 				});
 
-		Preference testData = findPreference("pref_key_test_data");
-		if (!IS_DEBUG_BUILD) {
-			testData.setVisible(false);
+		if (IS_DEBUG_BUILD) {
+			findPreference("pref_key_explode").setOnPreferenceClickListener(
+					preference -> {
+						throw new RuntimeException("Boom!");
+					}
+			);
+		} else {
+			PreferenceGroup testing =
+					findPreference("pref_key_explode").getParent();
+			if (testing == null) throw new AssertionError();
+			testing.setVisible(false);
 		}
 
 		loadSettings();
diff --git a/briar-android/src/main/res/xml/settings.xml b/briar-android/src/main/res/xml/settings.xml
index a758e8b5e6..4528150143 100644
--- a/briar-android/src/main/res/xml/settings.xml
+++ b/briar-android/src/main/res/xml/settings.xml
@@ -111,21 +111,29 @@
 
 	<PreferenceCategory
 		android:layout="@layout/preferences_category"
-		android:title="@string/feedback_settings_title">
+		android:title="@string/feedback_settings_title"/>
+
+	<Preference
+		android:key="pref_key_send_feedback"
+		android:title="@string/send_feedback"/>
+
+	<PreferenceCategory
+		android:layout="@layout/preferences_category"
+		android:title="Testing">
 
 		<Preference
-			android:key="pref_key_send_feedback"
-			android:title="@string/send_feedback"/>
+			android:key="pref_key_test_data"
+			android:title="Create Test Data">
 
-	</PreferenceCategory>
+			<intent
+				android:targetClass="org.briarproject.briar.android.test.TestDataActivity"
+				android:targetPackage="@string/app_package"/>
+		</Preference>
 
-	<Preference
-		android:key="pref_key_test_data"
-		android:title="Create Test Data">
+		<Preference
+			android:key="pref_key_explode"
+			android:title="Crash"/>
 
-		<intent
-			android:targetClass="org.briarproject.briar.android.test.TestDataActivity"
-			android:targetPackage="@string/app_package"/>
-	</Preference>
+	</PreferenceCategory>
 
 </PreferenceScreen>
-- 
GitLab