Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cdc2c553 authored by Romain Guy's avatar Romain Guy
Browse files

Add new dev settings to debug hardware layers

Change-Id: I2668552d70911a90e173efdf75bc44139ed394c8
parent 0a837485
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -3745,6 +3745,11 @@
    <!-- 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>

    <!-- 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] -->
    <string name="disable_overlays">Disable HW overlays</string>
    <!-- UI debug setting: disable use of overlays summary [CHAR LIMIT=50] -->
+5 −0
Original line number Diff line number Diff line
@@ -100,6 +100,11 @@
            android:title="@string/show_hw_screen_updates"
            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
            android:key="show_screen_updates"
            android:title="@string/show_screen_updates"
+23 −6
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ public class DevelopmentSettings extends PreferenceFragment
    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 SHOW_HW_LAYERS_UPDATES_KEY = "show_hw_layers_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";
@@ -136,6 +137,7 @@ public class DevelopmentSettings extends PreferenceFragment
    private CheckBoxPreference mForceHardwareUi;
    private CheckBoxPreference mTrackFrameTime;
    private CheckBoxPreference mShowHwScreenUpdates;
    private CheckBoxPreference mShowHwLayersUpdates;
    private CheckBoxPreference mDebugLayout;
    private ListPreference mWindowAnimationScale;
    private ListPreference mTransitionAnimationScale;
@@ -188,6 +190,7 @@ public class DevelopmentSettings extends PreferenceFragment
        mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY);
        mTrackFrameTime = findAndInitCheckboxPref(TRACK_FRAME_TIME_KEY);
        mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY);
        mShowHwLayersUpdates = findAndInitCheckboxPref(SHOW_HW_LAYERS_UPDATES_KEY);
        mDebugLayout = findAndInitCheckboxPref(DEBUG_LAYOUT_KEY);
        mWindowAnimationScale = (ListPreference) findPreference(WINDOW_ANIMATION_SCALE_KEY);
        mAllPrefs.add(mWindowAnimationScale);
@@ -335,7 +338,7 @@ public class DevelopmentSettings extends PreferenceFragment
                Settings.Secure.ADB_ENABLED, 0) != 0);
        updateCheckBox(mKeepScreenOn, Settings.System.getInt(cr,
                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,
                Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0);
        updateHdcpValues();
@@ -349,6 +352,7 @@ public class DevelopmentSettings extends PreferenceFragment
        updateHardwareUiOptions();
        updateTrackFrameTimeOptions();
        updateShowHwScreenUpdatesOptions();
        updateShowHwLayersUpdatesOptions();
        updateDebugLayoutOptions();
        updateAnimationScaleOptions();
        updateEnableTracesOptions();
@@ -581,7 +585,18 @@ public class DevelopmentSettings extends PreferenceFragment

    private void writeShowHwScreenUpdatesOptions() {
        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();
    }

@@ -705,7 +720,6 @@ public class DevelopmentSettings extends PreferenceFragment
    }

    private void updateEnableTracesOptions() {
        String strValue = SystemProperties.get(Trace.PROPERTY_TRACE_TAG_ENABLEFLAGS);
        long flags = SystemProperties.getLong(Trace.PROPERTY_TRACE_TAG_ENABLEFLAGS, 0);
        String[] values = mEnableTracesPref.getEntryValues();
        int numSet = 0;
@@ -850,6 +864,8 @@ public class DevelopmentSettings extends PreferenceFragment
            writeTrackFrameTimeOptions();
        } else if (preference == mShowHwScreenUpdates) {
            writeShowHwScreenUpdatesOptions();
        } else if (preference == mShowHwLayersUpdates) {
            writeShowHwLayersUpdatesOptions();
        } else if (preference == mDebugLayout) {
            writeDebugLayoutOptions();
        }
@@ -941,6 +957,7 @@ public class DevelopmentSettings extends PreferenceFragment

    void pokeSystemProperties() {
        if (!mDontPokeProperties) {
            //noinspection unchecked
            (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 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 {
            return ActivityThread.getPackageManager().isPermissionEnforced(READ_EXTERNAL_STORAGE);
            return ActivityThread.getPackageManager().isPermissionEnforced(permission);
        } catch (RemoteException e) {
            throw new RuntimeException("Problem talking with PackageManager", e);
        }