summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DevelopmentSettings.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2012-10-18 17:37:43 -0700
committerRomain Guy <romainguy@google.com>2012-10-18 17:37:43 -0700
commit025cafcfa153fe0f8dab2bfe07c392ff5403d326 (patch)
tree47266f73010b443bcf6b639f7808a3d41543405d /src/com/android/settings/DevelopmentSettings.java
parent7a1c4cdfae66e8b110de3988e65586871a969c04 (diff)
downloadpackages_apps_settings-025cafcfa153fe0f8dab2bfe07c392ff5403d326.zip
packages_apps_settings-025cafcfa153fe0f8dab2bfe07c392ff5403d326.tar.gz
packages_apps_settings-025cafcfa153fe0f8dab2bfe07c392ff5403d326.tar.bz2
Control OpenGL traces from Developer Options in Settings
This change adds a new entry to the developer options screen in settings that lets you choose what OpenGL traces you want. Change-Id: Ie789fa20dbbabee1e509b697106072464e9f9d2b
Diffstat (limited to 'src/com/android/settings/DevelopmentSettings.java')
-rw-r--r--src/com/android/settings/DevelopmentSettings.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 0ad6a91..a98230f 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -95,6 +95,7 @@ public class DevelopmentSettings extends PreferenceFragment
private static final String HARDWARE_UI_PROPERTY = "persist.sys.ui.hw";
private static final String MSAA_PROPERTY = "debug.egl.force_msaa";
private static final String BUGREPORT_IN_POWER_KEY = "bugreport_in_power";
+ private static final String OPENGL_TRACES_PROPERTY = "debug.egl.trace";
private static final String DEBUG_APP_KEY = "debug_app";
private static final String WAIT_FOR_DEBUGGER_KEY = "wait_for_debugger";
@@ -117,6 +118,7 @@ public class DevelopmentSettings extends PreferenceFragment
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 DEBUG_DEBUGGING_CATEGORY_KEY = "debug_debugging_category";
+ private static final String OPENGL_TRACES_KEY = "enable_opengl_traces";
private static final String ENABLE_TRACES_KEY = "enable_traces";
@@ -170,6 +172,7 @@ public class DevelopmentSettings extends PreferenceFragment
private ListPreference mTransitionAnimationScale;
private ListPreference mAnimatorDurationScale;
private ListPreference mOverlayDisplayDevices;
+ private ListPreference mOpenGLTraces;
private MultiCheckPreference mEnableTracesPref;
private CheckBoxPreference mImmediatelyDestroyActivities;
@@ -245,6 +248,9 @@ public class DevelopmentSettings extends PreferenceFragment
mOverlayDisplayDevices = (ListPreference) findPreference(OVERLAY_DISPLAY_DEVICES_KEY);
mAllPrefs.add(mOverlayDisplayDevices);
mOverlayDisplayDevices.setOnPreferenceChangeListener(this);
+ mOpenGLTraces = (ListPreference) findPreference(OPENGL_TRACES_KEY);
+ mAllPrefs.add(mOpenGLTraces);
+ mOpenGLTraces.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++) {
@@ -405,6 +411,7 @@ public class DevelopmentSettings extends PreferenceFragment
updateDebugLayoutOptions();
updateAnimationScaleOptions();
updateOverlayDisplayDevicesOptions();
+ updateOpenGLTracesOptions();
updateEnableTracesOptions();
updateImmediatelyDestroyActivitiesOptions();
updateAppProcessLimitOptions();
@@ -811,6 +818,30 @@ public class DevelopmentSettings extends PreferenceFragment
updateOverlayDisplayDevicesOptions();
}
+ private void updateOpenGLTracesOptions() {
+ String value = SystemProperties.get(OPENGL_TRACES_PROPERTY);
+ if (value == null) {
+ value = "";
+ }
+
+ CharSequence[] values = mOpenGLTraces.getEntryValues();
+ for (int i = 0; i < values.length; i++) {
+ if (value.contentEquals(values[i])) {
+ mOpenGLTraces.setValueIndex(i);
+ mOpenGLTraces.setSummary(mOpenGLTraces.getEntries()[i]);
+ return;
+ }
+ }
+ mOpenGLTraces.setValueIndex(0);
+ mOpenGLTraces.setSummary(mOpenGLTraces.getEntries()[0]);
+ }
+
+ private void writeOpenGLTracesOptions(Object newValue) {
+ SystemProperties.set(OPENGL_TRACES_PROPERTY, newValue == null ? "" : newValue.toString());
+ pokeSystemProperties();
+ updateOpenGLTracesOptions();
+ }
+
private void updateAppProcessLimitOptions() {
try {
int limit = ActivityManagerNative.getDefault().getProcessLimit();
@@ -1037,6 +1068,9 @@ public class DevelopmentSettings extends PreferenceFragment
} else if (preference == mOverlayDisplayDevices) {
writeOverlayDisplayDevicesOptions(newValue);
return true;
+ } else if (preference == mOpenGLTraces) {
+ writeOpenGLTracesOptions(newValue);
+ return true;
} else if (preference == mEnableTracesPref) {
writeEnableTracesOptions();
return true;