Add new dev settings to debug hardware layers
Change-Id: I2668552d70911a90e173efdf75bc44139ed394c8
This commit is contained in:
@@ -3745,6 +3745,11 @@
|
|||||||
<!-- UI debug setting: show GPU rendering screen updates summary [CHAR LIMIT=50] -->
|
<!-- UI debug setting: show GPU rendering screen updates summary [CHAR LIMIT=50] -->
|
||||||
<string name="show_hw_screen_updates_summary">Flash views inside windows when drawn with the GPU</string>
|
<string name="show_hw_screen_updates_summary">Flash views inside windows when drawn with the GPU</string>
|
||||||
|
|
||||||
|
<!-- UI debug setting: show when hardware layers get updated [CHAR LIMIT=25] -->
|
||||||
|
<string name="show_hw_layers_updates">Show hardware layers updates</string>
|
||||||
|
<!-- UI debug setting: show hardware layers updates summary [CHAR LIMIT=50] -->
|
||||||
|
<string name="show_hw_layers_updates_summary">Flash hardware layers green when they update</string>
|
||||||
|
|
||||||
<!-- UI debug setting: disable use of overlays? [CHAR LIMIT=25] -->
|
<!-- UI debug setting: disable use of overlays? [CHAR LIMIT=25] -->
|
||||||
<string name="disable_overlays">Disable HW overlays</string>
|
<string name="disable_overlays">Disable HW overlays</string>
|
||||||
<!-- UI debug setting: disable use of overlays summary [CHAR LIMIT=50] -->
|
<!-- UI debug setting: disable use of overlays summary [CHAR LIMIT=50] -->
|
||||||
|
@@ -100,6 +100,11 @@
|
|||||||
android:title="@string/show_hw_screen_updates"
|
android:title="@string/show_hw_screen_updates"
|
||||||
android:summary="@string/show_hw_screen_updates_summary"/>
|
android:summary="@string/show_hw_screen_updates_summary"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="show_hw_layers_udpates"
|
||||||
|
android:title="@string/show_hw_layers_updates"
|
||||||
|
android:summary="@string/show_hw_layers_updates_summary"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="show_screen_updates"
|
android:key="show_screen_updates"
|
||||||
android:title="@string/show_screen_updates"
|
android:title="@string/show_screen_updates"
|
||||||
|
@@ -91,6 +91,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
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 TRACK_FRAME_TIME_KEY = "track_frame_time";
|
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 SHOW_HW_SCREEN_UPDATES_KEY = "show_hw_screen_udpates";
|
||||||
|
private static final String SHOW_HW_LAYERS_UPDATES_KEY = "show_hw_layers_udpates";
|
||||||
private static final String DEBUG_LAYOUT_KEY = "debug_layout";
|
private static final String DEBUG_LAYOUT_KEY = "debug_layout";
|
||||||
private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale";
|
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 TRANSITION_ANIMATION_SCALE_KEY = "transition_animation_scale";
|
||||||
@@ -136,6 +137,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
private CheckBoxPreference mForceHardwareUi;
|
private CheckBoxPreference mForceHardwareUi;
|
||||||
private CheckBoxPreference mTrackFrameTime;
|
private CheckBoxPreference mTrackFrameTime;
|
||||||
private CheckBoxPreference mShowHwScreenUpdates;
|
private CheckBoxPreference mShowHwScreenUpdates;
|
||||||
|
private CheckBoxPreference mShowHwLayersUpdates;
|
||||||
private CheckBoxPreference mDebugLayout;
|
private CheckBoxPreference mDebugLayout;
|
||||||
private ListPreference mWindowAnimationScale;
|
private ListPreference mWindowAnimationScale;
|
||||||
private ListPreference mTransitionAnimationScale;
|
private ListPreference mTransitionAnimationScale;
|
||||||
@@ -188,6 +190,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY);
|
mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY);
|
||||||
mTrackFrameTime = findAndInitCheckboxPref(TRACK_FRAME_TIME_KEY);
|
mTrackFrameTime = findAndInitCheckboxPref(TRACK_FRAME_TIME_KEY);
|
||||||
mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY);
|
mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY);
|
||||||
|
mShowHwLayersUpdates = findAndInitCheckboxPref(SHOW_HW_LAYERS_UPDATES_KEY);
|
||||||
mDebugLayout = findAndInitCheckboxPref(DEBUG_LAYOUT_KEY);
|
mDebugLayout = findAndInitCheckboxPref(DEBUG_LAYOUT_KEY);
|
||||||
mWindowAnimationScale = (ListPreference) findPreference(WINDOW_ANIMATION_SCALE_KEY);
|
mWindowAnimationScale = (ListPreference) findPreference(WINDOW_ANIMATION_SCALE_KEY);
|
||||||
mAllPrefs.add(mWindowAnimationScale);
|
mAllPrefs.add(mWindowAnimationScale);
|
||||||
@@ -335,7 +338,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
Settings.Secure.ADB_ENABLED, 0) != 0);
|
Settings.Secure.ADB_ENABLED, 0) != 0);
|
||||||
updateCheckBox(mKeepScreenOn, Settings.System.getInt(cr,
|
updateCheckBox(mKeepScreenOn, Settings.System.getInt(cr,
|
||||||
Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0) != 0);
|
Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0) != 0);
|
||||||
updateCheckBox(mEnforceReadExternal, isPermissionEnforced(context, READ_EXTERNAL_STORAGE));
|
updateCheckBox(mEnforceReadExternal, isPermissionEnforced(READ_EXTERNAL_STORAGE));
|
||||||
updateCheckBox(mAllowMockLocation, Settings.Secure.getInt(cr,
|
updateCheckBox(mAllowMockLocation, Settings.Secure.getInt(cr,
|
||||||
Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0);
|
Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0);
|
||||||
updateHdcpValues();
|
updateHdcpValues();
|
||||||
@@ -349,6 +352,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
updateHardwareUiOptions();
|
updateHardwareUiOptions();
|
||||||
updateTrackFrameTimeOptions();
|
updateTrackFrameTimeOptions();
|
||||||
updateShowHwScreenUpdatesOptions();
|
updateShowHwScreenUpdatesOptions();
|
||||||
|
updateShowHwLayersUpdatesOptions();
|
||||||
updateDebugLayoutOptions();
|
updateDebugLayoutOptions();
|
||||||
updateAnimationScaleOptions();
|
updateAnimationScaleOptions();
|
||||||
updateEnableTracesOptions();
|
updateEnableTracesOptions();
|
||||||
@@ -581,7 +585,18 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
|
|
||||||
private void writeShowHwScreenUpdatesOptions() {
|
private void writeShowHwScreenUpdatesOptions() {
|
||||||
SystemProperties.set(HardwareRenderer.DEBUG_DIRTY_REGIONS_PROPERTY,
|
SystemProperties.set(HardwareRenderer.DEBUG_DIRTY_REGIONS_PROPERTY,
|
||||||
mShowHwScreenUpdates.isChecked() ? "true" : "false");
|
mShowHwScreenUpdates.isChecked() ? "true" : null);
|
||||||
|
pokeSystemProperties();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateShowHwLayersUpdatesOptions() {
|
||||||
|
updateCheckBox(mShowHwLayersUpdates, SystemProperties.getBoolean(
|
||||||
|
HardwareRenderer.DEBUG_SHOW_LAYERS_UPDATES_PROPERTY, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeShowHwLayersUpdatesOptions() {
|
||||||
|
SystemProperties.set(HardwareRenderer.DEBUG_SHOW_LAYERS_UPDATES_PROPERTY,
|
||||||
|
mShowHwLayersUpdates.isChecked() ? "true" : null);
|
||||||
pokeSystemProperties();
|
pokeSystemProperties();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -705,7 +720,6 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateEnableTracesOptions() {
|
private void updateEnableTracesOptions() {
|
||||||
String strValue = SystemProperties.get(Trace.PROPERTY_TRACE_TAG_ENABLEFLAGS);
|
|
||||||
long flags = SystemProperties.getLong(Trace.PROPERTY_TRACE_TAG_ENABLEFLAGS, 0);
|
long flags = SystemProperties.getLong(Trace.PROPERTY_TRACE_TAG_ENABLEFLAGS, 0);
|
||||||
String[] values = mEnableTracesPref.getEntryValues();
|
String[] values = mEnableTracesPref.getEntryValues();
|
||||||
int numSet = 0;
|
int numSet = 0;
|
||||||
@@ -850,6 +864,8 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
writeTrackFrameTimeOptions();
|
writeTrackFrameTimeOptions();
|
||||||
} else if (preference == mShowHwScreenUpdates) {
|
} else if (preference == mShowHwScreenUpdates) {
|
||||||
writeShowHwScreenUpdatesOptions();
|
writeShowHwScreenUpdatesOptions();
|
||||||
|
} else if (preference == mShowHwLayersUpdates) {
|
||||||
|
writeShowHwLayersUpdatesOptions();
|
||||||
} else if (preference == mDebugLayout) {
|
} else if (preference == mDebugLayout) {
|
||||||
writeDebugLayoutOptions();
|
writeDebugLayoutOptions();
|
||||||
}
|
}
|
||||||
@@ -941,6 +957,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
|
|
||||||
void pokeSystemProperties() {
|
void pokeSystemProperties() {
|
||||||
if (!mDontPokeProperties) {
|
if (!mDontPokeProperties) {
|
||||||
|
//noinspection unchecked
|
||||||
(new SystemPropPoker()).execute();
|
(new SystemPropPoker()).execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -970,7 +987,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dialog to confirm enforcement of {@link #READ_EXTERNAL_STORAGE}.
|
* Dialog to confirm enforcement of {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}.
|
||||||
*/
|
*/
|
||||||
public static class ConfirmEnforceFragment extends DialogFragment {
|
public static class ConfirmEnforceFragment extends DialogFragment {
|
||||||
public static void show(DevelopmentSettings parent) {
|
public static void show(DevelopmentSettings parent) {
|
||||||
@@ -1005,9 +1022,9 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isPermissionEnforced(Context context, String permission) {
|
private static boolean isPermissionEnforced(String permission) {
|
||||||
try {
|
try {
|
||||||
return ActivityThread.getPackageManager().isPermissionEnforced(READ_EXTERNAL_STORAGE);
|
return ActivityThread.getPackageManager().isPermissionEnforced(permission);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw new RuntimeException("Problem talking with PackageManager", e);
|
throw new RuntimeException("Problem talking with PackageManager", e);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user