diff --git a/res/values/strings.xml b/res/values/strings.xml
index bdb86a60ffe..1aeeaaa47aa 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3389,6 +3389,12 @@ found in the list of installed applications.
Background process limit
+
+ Show all ANRs
+
+ Show Application Not Responding dialog
+ for background apps
+
Data usage
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index a73e7d1f4cb..96f8c3ebe68 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -93,6 +93,11 @@
android:entries="@array/app_process_limit_entries"
android:entryValues="@array/app_process_limit_values" />
+
+
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 380af3c1072..2ca28e926a7 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -65,6 +65,8 @@ public class DevelopmentSettings extends PreferenceFragment
= "immediately_destroy_activities";
private static final String APP_PROCESS_LIMIT_KEY = "app_process_limit";
+ private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs";
+
private IWindowManager mWindowManager;
private CheckBoxPreference mEnableAdb;
@@ -81,6 +83,8 @@ public class DevelopmentSettings extends PreferenceFragment
private CheckBoxPreference mImmediatelyDestroyActivities;
private ListPreference mAppProcessLimit;
+ private CheckBoxPreference mShowAllANRs;
+
// To track whether Yes was clicked in the adb warning dialog
private boolean mOkClicked;
@@ -112,6 +116,9 @@ public class DevelopmentSettings extends PreferenceFragment
mAppProcessLimit = (ListPreference) findPreference(APP_PROCESS_LIMIT_KEY);
mAppProcessLimit.setOnPreferenceChangeListener(this);
+ mShowAllANRs = (CheckBoxPreference) findPreference(
+ SHOW_ALL_ANRS_KEY);
+
removeHdcpOptionsForProduction();
}
@@ -144,6 +151,7 @@ public class DevelopmentSettings extends PreferenceFragment
updateAnimationScaleOptions();
updateImmediatelyDestroyActivitiesOptions();
updateAppProcessLimitOptions();
+ updateShowAllANRsOptions();
}
private void updateHdcpValues() {
@@ -330,6 +338,17 @@ public class DevelopmentSettings extends PreferenceFragment
}
}
+ private void writeShowAllANRsOptions() {
+ Settings.Secure.putInt(getActivity().getContentResolver(),
+ Settings.Secure.ANR_SHOW_BACKGROUND,
+ mShowAllANRs.isChecked() ? 1 : 0);
+ }
+
+ private void updateShowAllANRsOptions() {
+ mShowAllANRs.setChecked(Settings.Secure.getInt(
+ getActivity().getContentResolver(), Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0);
+ }
+
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
@@ -372,6 +391,8 @@ public class DevelopmentSettings extends PreferenceFragment
writeCpuUsageOptions();
} else if (preference == mImmediatelyDestroyActivities) {
writeImmediatelyDestroyActivitiesOptions();
+ } else if (preference == mShowAllANRs) {
+ writeShowAllANRsOptions();
}
return false;