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