diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-08-29 02:33:06 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2012-08-29 06:15:23 -0700 |
commit | b2b54eec86bc5b5830e4480407cbd1fccfd21256 (patch) | |
tree | d7a6cf99c66cfc54bd47676651d645f5590483a1 | |
parent | c6015d2f593d0e5ef909d7157df4b15831236acb (diff) | |
download | packages_apps_Settings-b2b54eec86bc5b5830e4480407cbd1fccfd21256.zip packages_apps_Settings-b2b54eec86bc5b5830e4480407cbd1fccfd21256.tar.gz packages_apps_Settings-b2b54eec86bc5b5830e4480407cbd1fccfd21256.tar.bz2 |
Add new setting to control overlay displays.
Change-Id: I9582bb149dca716699ef5977ef8f84bb3136e0c0
-rw-r--r-- | res/values/arrays.xml | 18 | ||||
-rw-r--r-- | res/values/strings.xml | 3 | ||||
-rw-r--r-- | res/xml/development_prefs.xml | 7 | ||||
-rw-r--r-- | src/com/android/settings/DevelopmentSettings.java | 35 |
4 files changed, 63 insertions, 0 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 3367a57..e699dc2 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -652,6 +652,24 @@ <item>10</item> </string-array> + <!-- Titles for overlay display devices preference. [CHAR LIMIT=35] --> + <string-array name="overlay_display_devices_entries"> + <item>None</item> + <item>720x480 mdpi</item> + <item>1280x720 tvdpi</item> + <item>1920x1080 xhdpi</item> + <item>1280x720 tvdpi and 1920x1080 xhdpi</item> + </string-array> + + <!-- Values for overlay display devices preference. --> + <string-array name="overlay_display_devices_values" translatable="false" > + <item></item> + <item>720x480/160</item> + <item>1280x720/213</item> + <item>1920x1080/320</item> + <item>1280x720/213;1920x1080/320</item> + </string-array> + <!-- Titles for app process limit preference. [CHAR LIMIT=35] --> <string-array name="app_process_limit_entries"> <item>Standard limit</item> diff --git a/res/values/strings.xml b/res/values/strings.xml index 4e1a8b1..73b760b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3813,6 +3813,9 @@ <!-- UI debug setting: scaling factor for all Animator-based animations [CHAR LIMIT=25] --> <string name="animator_duration_scale_title">Animator duration scale</string> + <!-- UI debug setting: simulate secondary display devices using overlays [CHAR LIMIT=25] --> + <string name="overlay_display_devices_title">Simulate secondary displays</string> + <!-- Preference category for application debugging development settings. [CHAR LIMIT=25] --> <string name="debug_applications_category">Apps</string> diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml index e9a15be..34c0ae3 100644 --- a/res/xml/development_prefs.xml +++ b/res/xml/development_prefs.xml @@ -146,6 +146,13 @@ android:title="@string/force_hw_ui" android:summary="@string/force_hw_ui_summary"/> + <ListPreference + android:key="overlay_display_devices" + android:title="@string/overlay_display_devices_title" + android:persistent="false" + android:entries="@array/overlay_display_devices_entries" + android:entryValues="@array/overlay_display_devices_values" /> + </PreferenceCategory> <PreferenceCategory android:key="debug_monitoring_category" diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 97a6165..7708aa7 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -97,6 +97,7 @@ public class DevelopmentSettings extends PreferenceFragment private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale"; private static final String TRANSITION_ANIMATION_SCALE_KEY = "transition_animation_scale"; private static final String ANIMATOR_DURATION_SCALE_KEY = "animator_duration_scale"; + private static final String OVERLAY_DISPLAY_DEVICES_KEY = "overlay_display_devices"; private static final String ENABLE_TRACES_KEY = "enable_traces"; @@ -144,6 +145,7 @@ public class DevelopmentSettings extends PreferenceFragment private ListPreference mWindowAnimationScale; private ListPreference mTransitionAnimationScale; private ListPreference mAnimatorDurationScale; + private ListPreference mOverlayDisplayDevices; private MultiCheckPreference mEnableTracesPref; private CheckBoxPreference mImmediatelyDestroyActivities; @@ -204,6 +206,9 @@ public class DevelopmentSettings extends PreferenceFragment mAnimatorDurationScale = (ListPreference) findPreference(ANIMATOR_DURATION_SCALE_KEY); mAllPrefs.add(mAnimatorDurationScale); mAnimatorDurationScale.setOnPreferenceChangeListener(this); + mOverlayDisplayDevices = (ListPreference) findPreference(OVERLAY_DISPLAY_DEVICES_KEY); + mAllPrefs.add(mOverlayDisplayDevices); + mOverlayDisplayDevices.setOnPreferenceChangeListener(this); mEnableTracesPref = (MultiCheckPreference)findPreference(ENABLE_TRACES_KEY); String[] traceValues = new String[Trace.TRACE_TAGS.length]; for (int i=Trace.TRACE_FLAGS_START_BIT; i<traceValues.length; i++) { @@ -360,6 +365,7 @@ public class DevelopmentSettings extends PreferenceFragment updateShowHwLayersUpdatesOptions(); updateDebugLayoutOptions(); updateAnimationScaleOptions(); + updateOverlayDisplayDevicesOptions(); updateEnableTracesOptions(); updateImmediatelyDestroyActivitiesOptions(); updateAppProcessLimitOptions(); @@ -379,6 +385,7 @@ public class DevelopmentSettings extends PreferenceFragment writeAnimationScaleOption(0, mWindowAnimationScale, null); writeAnimationScaleOption(1, mTransitionAnimationScale, null); writeAnimationScaleOption(2, mAnimatorDurationScale, null); + writeOverlayDisplayDevicesOptions(null); writeEnableTracesOptions(0); writeAppProcessLimitOptions(null); mHaveDebugSettings = false; @@ -683,6 +690,31 @@ public class DevelopmentSettings extends PreferenceFragment } } + private void updateOverlayDisplayDevicesOptions() { + String value = Settings.System.getString(getActivity().getContentResolver(), + Settings.Secure.OVERLAY_DISPLAY_DEVICES); + if (value == null) { + value = ""; + } + + CharSequence[] values = mOverlayDisplayDevices.getEntryValues(); + for (int i = 0; i < values.length; i++) { + if (value.contentEquals(values[i])) { + mOverlayDisplayDevices.setValueIndex(i); + mOverlayDisplayDevices.setSummary(mOverlayDisplayDevices.getEntries()[i]); + return; + } + } + mOverlayDisplayDevices.setValueIndex(0); + mOverlayDisplayDevices.setSummary(mOverlayDisplayDevices.getEntries()[0]); + } + + private void writeOverlayDisplayDevicesOptions(Object newValue) { + Settings.System.putString(getActivity().getContentResolver(), + Settings.Secure.OVERLAY_DISPLAY_DEVICES, (String)newValue); + updateOverlayDisplayDevicesOptions(); + } + private void updateAppProcessLimitOptions() { try { int limit = ActivityManagerNative.getDefault().getProcessLimit(); @@ -898,6 +930,9 @@ public class DevelopmentSettings extends PreferenceFragment } else if (preference == mAnimatorDurationScale) { writeAnimationScaleOption(2, mAnimatorDurationScale, newValue); return true; + } else if (preference == mOverlayDisplayDevices) { + writeOverlayDisplayDevicesOptions(newValue); + return true; } else if (preference == mEnableTracesPref) { writeEnableTracesOptions(); return true; |