summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DevelopmentSettings.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2012-04-27 15:27:54 -0700
committerRomain Guy <romainguy@google.com>2012-04-27 15:27:54 -0700
commitc1fa3e64b88ab81cf1faeaccb40cbc73e9f1f829 (patch)
treeebf615d75a601912e8905b5abd8db7e8d28df65a /src/com/android/settings/DevelopmentSettings.java
parentbd4bac327b27ab42ba3bdc87d8655c9c21bfda5d (diff)
downloadpackages_apps_Settings-c1fa3e64b88ab81cf1faeaccb40cbc73e9f1f829.zip
packages_apps_Settings-c1fa3e64b88ab81cf1faeaccb40cbc73e9f1f829.tar.gz
packages_apps_Settings-c1fa3e64b88ab81cf1faeaccb40cbc73e9f1f829.tar.bz2
Add three new developer settings
- Show hw screen updates: show where apps udpate the screen when running with hw acceleration - Profile hw rendering: add extra profiling info to dumpsys gfxinfo for performance tracking - Debug layout: show layout info on screen Change-Id: I6f7cad762d65ec3be2debfb4a88c25d35bf11079
Diffstat (limited to 'src/com/android/settings/DevelopmentSettings.java')
-rw-r--r--src/com/android/settings/DevelopmentSettings.java111
1 files changed, 74 insertions, 37 deletions
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index d235633..d32cbc7 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -49,7 +49,9 @@ import android.preference.Preference.OnPreferenceChangeListener;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.Gravity;
+import android.view.HardwareRenderer;
import android.view.IWindowManager;
+import android.view.View;
import android.widget.CompoundButton;
import android.widget.Switch;
@@ -79,6 +81,9 @@ public class DevelopmentSettings extends PreferenceFragment
private static final String DISABLE_OVERLAYS_KEY = "disable_overlays";
private static final String SHOW_CPU_USAGE_KEY = "show_cpu_usage";
private static final String FORCE_HARDWARE_UI_KEY = "force_hw_ui";
+ private static final String TRACK_FRAME_TIME_KEY = "track_frame_time";
+ private static final String SHOW_HW_SCREEN_UPDATES_KEY = "show_hw_screen_udpates";
+ private static final String DEBUG_LAYOUT_KEY = "debug_layout";
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";
@@ -113,6 +118,9 @@ public class DevelopmentSettings extends PreferenceFragment
private CheckBoxPreference mDisableOverlays;
private CheckBoxPreference mShowCpuUsage;
private CheckBoxPreference mForceHardwareUi;
+ private CheckBoxPreference mTrackFrameTime;
+ private CheckBoxPreference mShowHwScreenUpdates;
+ private CheckBoxPreference mDebugLayout;
private ListPreference mWindowAnimationScale;
private ListPreference mTransitionAnimationScale;
private ListPreference mAnimatorDurationScale;
@@ -141,45 +149,25 @@ public class DevelopmentSettings extends PreferenceFragment
addPreferencesFromResource(R.xml.development_prefs);
- mEnableAdb = (CheckBoxPreference) findPreference(ENABLE_ADB);
- mAllPrefs.add(mEnableAdb);
- mResetCbPrefs.add(mEnableAdb);
- mKeepScreenOn = (CheckBoxPreference) findPreference(KEEP_SCREEN_ON);
- mAllPrefs.add(mKeepScreenOn);
- mResetCbPrefs.add(mKeepScreenOn);
- mAllowMockLocation = (CheckBoxPreference) findPreference(ALLOW_MOCK_LOCATION);
- mAllPrefs.add(mAllowMockLocation);
- mResetCbPrefs.add(mAllowMockLocation);
+ mEnableAdb = findAndInitCheckboxPref(ENABLE_ADB);
+ mKeepScreenOn = findAndInitCheckboxPref(KEEP_SCREEN_ON);
+ mAllowMockLocation = findAndInitCheckboxPref(ALLOW_MOCK_LOCATION);
mPassword = (PreferenceScreen) findPreference(LOCAL_BACKUP_PASSWORD);
mAllPrefs.add(mPassword);
mDebugAppPref = findPreference(DEBUG_APP_KEY);
mAllPrefs.add(mDebugAppPref);
- mWaitForDebugger = (CheckBoxPreference) findPreference(WAIT_FOR_DEBUGGER_KEY);
- mAllPrefs.add(mWaitForDebugger);
- mResetCbPrefs.add(mWaitForDebugger);
-
- mStrictMode = (CheckBoxPreference) findPreference(STRICT_MODE_KEY);
- mAllPrefs.add(mStrictMode);
- mResetCbPrefs.add(mStrictMode);
- mPointerLocation = (CheckBoxPreference) findPreference(POINTER_LOCATION_KEY);
- mAllPrefs.add(mPointerLocation);
- mResetCbPrefs.add(mPointerLocation);
- mShowTouches = (CheckBoxPreference) findPreference(SHOW_TOUCHES_KEY);
- mAllPrefs.add(mShowTouches);
- mResetCbPrefs.add(mShowTouches);
- mShowScreenUpdates = (CheckBoxPreference) findPreference(SHOW_SCREEN_UPDATES_KEY);
- mAllPrefs.add(mShowScreenUpdates);
- mResetCbPrefs.add(mShowScreenUpdates);
- mDisableOverlays = (CheckBoxPreference) findPreference(DISABLE_OVERLAYS_KEY);
- mAllPrefs.add(mDisableOverlays);
- mResetCbPrefs.add(mDisableOverlays);
- mShowCpuUsage = (CheckBoxPreference) findPreference(SHOW_CPU_USAGE_KEY);
- mAllPrefs.add(mShowCpuUsage);
- mResetCbPrefs.add(mShowCpuUsage);
- mForceHardwareUi = (CheckBoxPreference) findPreference(FORCE_HARDWARE_UI_KEY);
- mAllPrefs.add(mForceHardwareUi);
- mResetCbPrefs.add(mForceHardwareUi);
+ mWaitForDebugger = findAndInitCheckboxPref(WAIT_FOR_DEBUGGER_KEY);
+ mStrictMode = findAndInitCheckboxPref(STRICT_MODE_KEY);
+ mPointerLocation = findAndInitCheckboxPref(POINTER_LOCATION_KEY);
+ mShowTouches = findAndInitCheckboxPref(SHOW_TOUCHES_KEY);
+ mShowScreenUpdates = findAndInitCheckboxPref(SHOW_SCREEN_UPDATES_KEY);
+ mDisableOverlays = findAndInitCheckboxPref(DISABLE_OVERLAYS_KEY);
+ mShowCpuUsage = findAndInitCheckboxPref(SHOW_CPU_USAGE_KEY);
+ mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY);
+ mTrackFrameTime = findAndInitCheckboxPref(TRACK_FRAME_TIME_KEY);
+ mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY);
+ mDebugLayout = findAndInitCheckboxPref(DEBUG_LAYOUT_KEY);
mWindowAnimationScale = (ListPreference) findPreference(WINDOW_ANIMATION_SCALE_KEY);
mAllPrefs.add(mWindowAnimationScale);
mWindowAnimationScale.setOnPreferenceChangeListener(this);
@@ -217,6 +205,16 @@ public class DevelopmentSettings extends PreferenceFragment
removeHdcpOptionsForProduction();
}
+ private CheckBoxPreference findAndInitCheckboxPref(String key) {
+ CheckBoxPreference pref = (CheckBoxPreference) findPreference(key);
+ if (pref == null) {
+ throw new IllegalArgumentException("Cannot find preference with key = " + key);
+ }
+ mAllPrefs.add(pref);
+ mResetCbPrefs.add(pref);
+ return pref;
+ }
+
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
@@ -262,7 +260,7 @@ public class DevelopmentSettings extends PreferenceFragment
}
private void setPrefsEnabledState(boolean enabled) {
- for (int i=0; i<mAllPrefs.size(); i++) {
+ for (int i = 0; i < mAllPrefs.size(); i++) {
mAllPrefs.get(i).setEnabled(enabled);
}
updateAllOptions();
@@ -296,6 +294,9 @@ public class DevelopmentSettings extends PreferenceFragment
updateFlingerOptions();
updateCpuUsageOptions();
updateHardwareUiOptions();
+ updateTrackFrameTimeOptions();
+ updateShowHwScreenUpdatesOptions();
+ updateDebugLayoutOptions();
updateAnimationScaleOptions();
updateImmediatelyDestroyActivitiesOptions();
updateAppProcessLimitOptions();
@@ -357,7 +358,7 @@ public class DevelopmentSettings extends PreferenceFragment
}
}
- private void resetDebuggerOptions() {
+ private static void resetDebuggerOptions() {
try {
ActivityManagerNative.getDefault().setDebugApp(
null, false, true);
@@ -393,7 +394,7 @@ public class DevelopmentSettings extends PreferenceFragment
// 0: not explicitly set one way or another
// 1: on
// 2: off
- private int currentStrictModeActiveIndex() {
+ private static int currentStrictModeActiveIndex() {
if (TextUtils.isEmpty(SystemProperties.get(StrictMode.VISUAL_PROPERTY))) {
return 0;
}
@@ -501,6 +502,36 @@ public class DevelopmentSettings extends PreferenceFragment
SystemProperties.set(HARDWARE_UI_PROPERTY, mForceHardwareUi.isChecked() ? "true" : "false");
}
+ private void updateTrackFrameTimeOptions() {
+ mTrackFrameTime.setChecked(
+ SystemProperties.getBoolean(HardwareRenderer.PROFILE_PROPERTY, false));
+ }
+
+ private void writeTrackFrameTimeOptions() {
+ SystemProperties.set(HardwareRenderer.PROFILE_PROPERTY,
+ mTrackFrameTime.isChecked() ? "true" : "false");
+ }
+
+ private void updateShowHwScreenUpdatesOptions() {
+ mShowHwScreenUpdates.setChecked(
+ SystemProperties.getBoolean(HardwareRenderer.DEBUG_DIRTY_REGIONS_PROPERTY, false));
+ }
+
+ private void writeShowHwScreenUpdatesOptions() {
+ SystemProperties.set(HardwareRenderer.DEBUG_DIRTY_REGIONS_PROPERTY,
+ mShowHwScreenUpdates.isChecked() ? "true" : "false");
+ }
+
+ private void updateDebugLayoutOptions() {
+ mDebugLayout.setChecked(
+ SystemProperties.getBoolean(View.DEBUG_LAYOUT_PROPERTY, false));
+ }
+
+ private void writeDebugLayoutOptions() {
+ SystemProperties.set(View.DEBUG_LAYOUT_PROPERTY,
+ mDebugLayout.isChecked() ? "true" : "false");
+ }
+
private void updateCpuUsageOptions() {
mShowCpuUsage.setChecked(Settings.System.getInt(getActivity().getContentResolver(),
Settings.System.SHOW_PROCESSES, 0) != 0);
@@ -697,6 +728,12 @@ public class DevelopmentSettings extends PreferenceFragment
writeShowAllANRsOptions();
} else if (preference == mForceHardwareUi) {
writeHardwareUiOptions();
+ } else if (preference == mTrackFrameTime) {
+ writeTrackFrameTimeOptions();
+ } else if (preference == mShowHwScreenUpdates) {
+ writeShowHwScreenUpdatesOptions();
+ } else if (preference == mDebugLayout) {
+ writeDebugLayoutOptions();
}
return false;