Niedzielski has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229026

Change subject: Add crash button to dev settings
......................................................................

Add crash button to dev settings

Add button for intentionally crashing the app to the developer settings
screen. This button is used to test the crash handler.

Change-Id: I00b99a9b724acfe2d828b09a2e1e55f22886184f
---
M wikipedia/res/values/dev_settings_strings.xml
M wikipedia/res/xml/developer_preferences.xml
M 
wikipedia/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
3 files changed, 45 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/26/229026/1

diff --git a/wikipedia/res/values/dev_settings_strings.xml 
b/wikipedia/res/values/dev_settings_strings.xml
index 3a3c14b..a86d333 100644
--- a/wikipedia/res/values/dev_settings_strings.xml
+++ b/wikipedia/res/values/dev_settings_strings.xml
@@ -8,4 +8,7 @@
     <string name="preferences_developer_misc_heading">Miscellaneous</string>
     <string name="preferences_developer_onboarding_heading">Onboarding</string>
     <string name="preferences_developer_feature_testing_heading">A/B feature 
testing</string>
-</resources>
\ No newline at end of file
+    <string name="preferences_developer_crash_key">crash</string>
+    <string name="preferences_developer_crash_title">Crash</string>
+    <string name="preferences_developer_crash_summary">Tap here to crash the 
app</string>
+</resources>
diff --git a/wikipedia/res/xml/developer_preferences.xml 
b/wikipedia/res/xml/developer_preferences.xml
index 29470ac..2e16b43 100644
--- a/wikipedia/res/xml/developer_preferences.xml
+++ b/wikipedia/res/xml/developer_preferences.xml
@@ -79,6 +79,10 @@
             android:key="@string/preference_key_show_developer_settings"
             android:title="@string/preference_key_show_developer_settings" />
 
+        <Preference android:key="@string/preferences_developer_crash_key"
+            android:title="@string/preferences_developer_crash_title"
+            android:summary="@string/preferences_developer_crash_summary" />
+
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git 
a/wikipedia/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
 
b/wikipedia/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
index 1bb3e08..903e5e2 100644
--- 
a/wikipedia/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
+++ 
b/wikipedia/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
@@ -1,5 +1,9 @@
 package org.wikipedia.settings;
 
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.os.Build;
+import android.preference.Preference;
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceFragment;
 import android.support.annotation.NonNull;
@@ -7,16 +11,48 @@
 import org.wikipedia.R;
 
 /*package*/ class DeveloperSettingsPreferenceLoader extends 
BasePreferenceLoader {
+    @NonNull private Context context;
+
     /*package*/ DeveloperSettingsPreferenceLoader(@NonNull PreferenceActivity 
activity) {
         super(activity);
+        init(activity);
     }
 
-    /*package*/ DeveloperSettingsPreferenceLoader(@NonNull PreferenceFragment 
fragment) {
+    /*package*/
+    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
+    DeveloperSettingsPreferenceLoader(@NonNull PreferenceFragment fragment) {
         super(fragment);
+        init(fragment.getActivity());
     }
 
     @Override
     public void loadPreferences() {
         loadPreferences(R.xml.developer_preferences);
+        setupCrashButton(findPreference(getCrashButtonKey()));
+    }
+
+    private void setupCrashButton(Preference crashButton) {
+        
crashButton.setOnPreferenceClickListener(buildCrashButtonClickListener());
+    }
+
+    private Preference.OnPreferenceClickListener 
buildCrashButtonClickListener() {
+        return new Preference.OnPreferenceClickListener() {
+            @Override
+            public boolean onPreferenceClick(Preference preference) {
+                throw new NullPointerException(buildCrashMessage());
+            }
+        };
+    }
+
+    private String buildCrashMessage() {
+        return "Crash test from " + getClass().getName();
+    }
+
+    private String getCrashButtonKey() {
+        return context.getString(R.string.preferences_developer_crash_key);
+    }
+
+    private void init(@NonNull Context context) {
+        this.context = context.getApplicationContext();
     }
 }
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/229026
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I00b99a9b724acfe2d828b09a2e1e55f22886184f
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Niedzielski <sniedziel...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to