New dev setting to turn off HW overlays.

Change-Id: I747ac6d90dfb8a7a0bbf547ce7cae8ee86f8d5d0
This commit is contained in:
Dianne Hackborn
2012-02-06 21:21:39 -08:00
parent 057cbfdad6
commit e44f44d679
3 changed files with 40 additions and 4 deletions

View File

@@ -3504,6 +3504,11 @@
<!-- UI debug setting: show screen updates summary [CHAR LIMIT=50] --> <!-- UI debug setting: show screen updates summary [CHAR LIMIT=50] -->
<string name="show_screen_updates_summary">Flash areas of screen when they update</string> <string name="show_screen_updates_summary">Flash areas of screen when they update</string>
<!-- UI debug setting: disable use of overlays? [CHAR LIMIT=25] -->
<string name="disable_overlays">Disable overlays</string>
<!-- UI debug setting: disable use of overlays summary [CHAR LIMIT=50] -->
<string name="disable_overlays_summary">Don\'t use overlays for screen compositing</string>
<!-- UI debug setting: show how CPU is being used? [CHAR LIMIT=25] --> <!-- UI debug setting: show how CPU is being used? [CHAR LIMIT=25] -->
<string name="show_cpu_usage">Show CPU usage</string> <string name="show_cpu_usage">Show CPU usage</string>
<!-- UI debug setting: show cpu usage summary [CHAR LIMIT=50] --> <!-- UI debug setting: show cpu usage summary [CHAR LIMIT=50] -->

View File

@@ -80,6 +80,11 @@
android:title="@string/show_screen_updates" android:title="@string/show_screen_updates"
android:summary="@string/show_screen_updates_summary"/> android:summary="@string/show_screen_updates_summary"/>
<CheckBoxPreference
android:key="disable_overlays"
android:title="@string/disable_overlays"
android:summary="@string/disable_overlays_summary"/>
<CheckBoxPreference <CheckBoxPreference
android:key="show_cpu_usage" android:key="show_cpu_usage"
android:title="@string/show_cpu_usage" android:title="@string/show_cpu_usage"

View File

@@ -42,7 +42,6 @@ import android.os.SystemProperties;
import android.preference.CheckBoxPreference; import android.preference.CheckBoxPreference;
import android.preference.ListPreference; import android.preference.ListPreference;
import android.preference.Preference; import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment; import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen; import android.preference.PreferenceScreen;
import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceChangeListener;
@@ -74,6 +73,7 @@ public class DevelopmentSettings extends PreferenceFragment
private static final String POINTER_LOCATION_KEY = "pointer_location"; private static final String POINTER_LOCATION_KEY = "pointer_location";
private static final String SHOW_TOUCHES_KEY = "show_touches"; private static final String SHOW_TOUCHES_KEY = "show_touches";
private static final String SHOW_SCREEN_UPDATES_KEY = "show_screen_updates"; private static final String SHOW_SCREEN_UPDATES_KEY = "show_screen_updates";
private static final String DISABLE_OVERLAYS_KEY = "disable_overlays";
private static final String SHOW_CPU_USAGE_KEY = "show_cpu_usage"; 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 FORCE_HARDWARE_UI_KEY = "force_hw_ui";
private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale"; private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale";
@@ -101,6 +101,7 @@ public class DevelopmentSettings extends PreferenceFragment
private CheckBoxPreference mPointerLocation; private CheckBoxPreference mPointerLocation;
private CheckBoxPreference mShowTouches; private CheckBoxPreference mShowTouches;
private CheckBoxPreference mShowScreenUpdates; private CheckBoxPreference mShowScreenUpdates;
private CheckBoxPreference mDisableOverlays;
private CheckBoxPreference mShowCpuUsage; private CheckBoxPreference mShowCpuUsage;
private CheckBoxPreference mForceHardwareUi; private CheckBoxPreference mForceHardwareUi;
private ListPreference mWindowAnimationScale; private ListPreference mWindowAnimationScale;
@@ -156,6 +157,9 @@ public class DevelopmentSettings extends PreferenceFragment
mShowScreenUpdates = (CheckBoxPreference) findPreference(SHOW_SCREEN_UPDATES_KEY); mShowScreenUpdates = (CheckBoxPreference) findPreference(SHOW_SCREEN_UPDATES_KEY);
mAllPrefs.add(mShowScreenUpdates); mAllPrefs.add(mShowScreenUpdates);
mResetCbPrefs.add(mShowScreenUpdates); mResetCbPrefs.add(mShowScreenUpdates);
mDisableOverlays = (CheckBoxPreference) findPreference(DISABLE_OVERLAYS_KEY);
mAllPrefs.add(mDisableOverlays);
mResetCbPrefs.add(mDisableOverlays);
mShowCpuUsage = (CheckBoxPreference) findPreference(SHOW_CPU_USAGE_KEY); mShowCpuUsage = (CheckBoxPreference) findPreference(SHOW_CPU_USAGE_KEY);
mAllPrefs.add(mShowCpuUsage); mAllPrefs.add(mShowCpuUsage);
mResetCbPrefs.add(mShowCpuUsage); mResetCbPrefs.add(mShowCpuUsage);
@@ -391,6 +395,8 @@ public class DevelopmentSettings extends PreferenceFragment
mShowScreenUpdates.setChecked(showUpdates != 0); mShowScreenUpdates.setChecked(showUpdates != 0);
@SuppressWarnings("unused") @SuppressWarnings("unused")
int showBackground = reply.readInt(); int showBackground = reply.readInt();
int disableOverlays = reply.readInt();
mDisableOverlays.setChecked(disableOverlays != 0);
reply.recycle(); reply.recycle();
data.recycle(); data.recycle();
} }
@@ -398,13 +404,14 @@ public class DevelopmentSettings extends PreferenceFragment
} }
} }
private void writeFlingerOptions() { private void writeShowUpdatesOption() {
try { try {
IBinder flinger = ServiceManager.getService("SurfaceFlinger"); IBinder flinger = ServiceManager.getService("SurfaceFlinger");
if (flinger != null) { if (flinger != null) {
Parcel data = Parcel.obtain(); Parcel data = Parcel.obtain();
data.writeInterfaceToken("android.ui.ISurfaceComposer"); data.writeInterfaceToken("android.ui.ISurfaceComposer");
data.writeInt(mShowScreenUpdates.isChecked() ? 1 : 0); final int showUpdates = mShowScreenUpdates.isChecked() ? 1 : 0;
data.writeInt(showUpdates);
flinger.transact(1002, data, null, 0); flinger.transact(1002, data, null, 0);
data.recycle(); data.recycle();
@@ -414,6 +421,23 @@ public class DevelopmentSettings extends PreferenceFragment
} }
} }
private void writeDisableOverlaysOption() {
try {
IBinder flinger = ServiceManager.getService("SurfaceFlinger");
if (flinger != null) {
Parcel data = Parcel.obtain();
data.writeInterfaceToken("android.ui.ISurfaceComposer");
final int disableOverlays = mDisableOverlays.isChecked() ? 1 : 0;
data.writeInt(disableOverlays);
flinger.transact(1008, data, null, 0);
data.recycle();
updateFlingerOptions();
}
} catch (RemoteException ex) {
}
}
private void updateHardwareUiOptions() { private void updateHardwareUiOptions() {
mForceHardwareUi.setChecked(SystemProperties.getBoolean(HARDWARE_UI_PROPERTY, false)); mForceHardwareUi.setChecked(SystemProperties.getBoolean(HARDWARE_UI_PROPERTY, false));
} }
@@ -590,7 +614,9 @@ public class DevelopmentSettings extends PreferenceFragment
} else if (preference == mShowTouches) { } else if (preference == mShowTouches) {
writeShowTouchesOptions(); writeShowTouchesOptions();
} else if (preference == mShowScreenUpdates) { } else if (preference == mShowScreenUpdates) {
writeFlingerOptions(); writeShowUpdatesOption();
} else if (preference == mDisableOverlays) {
writeDisableOverlaysOption();
} else if (preference == mShowCpuUsage) { } else if (preference == mShowCpuUsage) {
writeCpuUsageOptions(); writeCpuUsageOptions();
} else if (preference == mImmediatelyDestroyActivities) { } else if (preference == mImmediatelyDestroyActivities) {