summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-08-29 02:33:06 -0700
committerJeff Brown <jeffbrown@google.com>2012-08-29 06:15:23 -0700
commitb2b54eec86bc5b5830e4480407cbd1fccfd21256 (patch)
treed7a6cf99c66cfc54bd47676651d645f5590483a1
parentc6015d2f593d0e5ef909d7157df4b15831236acb (diff)
downloadpackages_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.xml18
-rw-r--r--res/values/strings.xml3
-rw-r--r--res/xml/development_prefs.xml7
-rw-r--r--src/com/android/settings/DevelopmentSettings.java35
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;