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

Commit f122a93e authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add power consumption footer in screen timeout page." into main

parents e5dc6a5c 027db802
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2656,6 +2656,8 @@
    <string name="adaptive_sleep_contextual_slice_title">Turn on screen attention</string>
    <!-- Description about the contextual adaptive sleep card [CHAR LIMIT=NONE]-->
    <string name="adaptive_sleep_contextual_slice_summary">Keep screen on when looking at it</string>
    <!-- Description about the power consumption implication in screen timeout footer [CHAR LIMIT=NONE]-->
    <string name="power_consumption_footer_summary">Longer screen timeout will use more battery.</string>
    <!-- auto_rotate settings screen, title about the camera privacy lock enabled [CHAR LIMIT=NONE]-->
    <string name="auto_rotate_camera_lock_title">Camera is locked</string>
    <!-- Description feature's privacy sensitive details to make sure users understand what feature users, what it saves/sends etc [CHAR LIMIT=NONE]-->
+18 −0
Original line number Diff line number Diff line
@@ -92,6 +92,9 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
    @VisibleForTesting
    FooterPreference mDisableOptionsPreference;

    @VisibleForTesting
    FooterPreference mPowerConsumptionPreference;

    @VisibleForTesting
    AdaptiveSleepPermissionPreferenceController mAdaptiveSleepPermissionController;

@@ -216,6 +219,9 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
        if (mAdmin != null) {
            setupDisabledFooterPreference();
            screen.addPreference(mDisableOptionsPreference);
        } else {
            setupPowerConsumptionFooterPreference();
            screen.addPreference(mPowerConsumptionPreference);
        }
    }

@@ -236,8 +242,20 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
        mDisableOptionsPreference.setIcon(R.drawable.ic_info_outline_24dp);

        // The 'disabled by admin' preference should always be at the end of the setting page.
        mPrivacyPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE - 1);
        mDisableOptionsPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE);
    }

    @VisibleForTesting
    void setupPowerConsumptionFooterPreference() {
        mPowerConsumptionPreference = new FooterPreference(getContext());
        mPowerConsumptionPreference.setTitle(R.string.power_consumption_footer_summary);
        mPowerConsumptionPreference.setSelectable(false);
        mPowerConsumptionPreference.setIcon(R.drawable.ic_info_outline_24dp);

        // The 'Longer screen timeout' preference should always be at the end of the setting page.
        mPrivacyPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE - 1);
        mPowerConsumptionPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE);
    }

    @Override
+20 −0
Original line number Diff line number Diff line
@@ -92,6 +92,9 @@ public class ScreenTimeoutSettingsTest {
    @Mock
    FooterPreference mDisableOptionsPreference;

    @Mock
    FooterPreference mPowerConsumptionPreference;

    @Mock
    private PackageManager mPackageManager;

@@ -182,11 +185,28 @@ public class ScreenTimeoutSettingsTest {
    public void updateCandidates_enforcedAdmin_showDisabledByAdminPreference() {
        mSettings.mAdmin = new RestrictedLockUtils.EnforcedAdmin();
        mSettings.mDisableOptionsPreference = mDisableOptionsPreference;
        mSettings.mPowerConsumptionPreference = mPowerConsumptionPreference;
        doNothing().when(mSettings).setupDisabledFooterPreference();
        doNothing().when(mSettings).setupPowerConsumptionFooterPreference();

        mSettings.updateCandidates();

        verify(mPreferenceScreen, atLeast(1)).addPreference(mDisableOptionsPreference);
        verify(mPreferenceScreen, never()).addPreference(mPowerConsumptionPreference);
    }

    @Test
    public void updateCandidates_withoutAdmin_showPowerConsumptionPreference() {
        mSettings.mAdmin = null;
        mSettings.mDisableOptionsPreference = mDisableOptionsPreference;
        mSettings.mPowerConsumptionPreference = mPowerConsumptionPreference;
        doNothing().when(mSettings).setupDisabledFooterPreference();
        doNothing().when(mSettings).setupPowerConsumptionFooterPreference();

        mSettings.updateCandidates();

        verify(mPreferenceScreen, never()).addPreference(mDisableOptionsPreference);
        verify(mPreferenceScreen, atLeast(1)).addPreference(mPowerConsumptionPreference);
    }

    @Test