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

Commit 7e8d79b3 authored by Wesley Wang's avatar Wesley Wang
Browse files

Update battery optimize page states condition

 - Keep apps optimize state as what it set even it's a system or default
   app
 - Previously we force system/defualt apps present as Unrestricted mode
   only and disable other options but that can not shows that apps
   actual optimize states, it's possible to be other states even it's a
   system or default apps, so we change the UI logic back to: present
   it's actual states and disable other options when it's a system or
   default apps.

Bug: 234419032
Test: make SettingsRoboTests
Change-Id: Ib5b6cb0aacb570cb8d15b1bb9ac2d480356eda49
parent d3bead82
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -53,16 +53,16 @@ public class OptimizedPreferenceController extends AbstractPreferenceController
            return;
        }

        if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
            Log.d(TAG, "is system or default app, disable pref");
            ((SelectorWithWidgetPreference) preference).setChecked(false);
            preference.setEnabled(false);
        } else if (mBatteryOptimizeUtils.getAppOptimizationMode()
        if (mBatteryOptimizeUtils.getAppOptimizationMode()
                == BatteryOptimizeUtils.MODE_OPTIMIZED) {
            Log.d(TAG, "is optimized states");
            ((SelectorWithWidgetPreference) preference).setChecked(true);
        } else {
            ((SelectorWithWidgetPreference) preference).setChecked(false);
            if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
                Log.d(TAG, "is system or default app, disable pref");
                preference.setEnabled(false);
            }
        }
    }

+5 −5
Original line number Diff line number Diff line
@@ -51,16 +51,16 @@ public class RestrictedPreferenceController extends AbstractPreferenceController
            preference.setEnabled(true);
        }

        if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
            Log.d(TAG, "is system or default app, disable pref");
            ((SelectorWithWidgetPreference) preference).setChecked(false);
            preference.setEnabled(false);
        } else if (mBatteryOptimizeUtils.getAppOptimizationMode()
        if (mBatteryOptimizeUtils.getAppOptimizationMode()
                == BatteryOptimizeUtils.MODE_RESTRICTED) {
            Log.d(TAG, "is restricted states");
            ((SelectorWithWidgetPreference) preference).setChecked(true);
        } else {
            ((SelectorWithWidgetPreference) preference).setChecked(false);
            if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
                Log.d(TAG, "is system or default app, disable pref");
                preference.setEnabled(false);
            }
        }
    }

+5 −4
Original line number Diff line number Diff line
@@ -50,15 +50,16 @@ public class UnrestrictedPreferenceController extends AbstractPreferenceControll
            preference.setEnabled(true);
        }

        if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
            Log.d(TAG, "is system or default app, unrestricted states only");
            ((SelectorWithWidgetPreference) preference).setChecked(true);
        } else if (mBatteryOptimizeUtils.getAppOptimizationMode()
        if (mBatteryOptimizeUtils.getAppOptimizationMode()
                == BatteryOptimizeUtils.MODE_UNRESTRICTED) {
            Log.d(TAG, "is unrestricted states");
            ((SelectorWithWidgetPreference) preference).setChecked(true);
        } else {
            ((SelectorWithWidgetPreference) preference).setChecked(false);
            if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
                Log.d(TAG, "is system or default app, disable pref");
                preference.setEnabled(false);
            }
        }
    }

+12 −0
Original line number Diff line number Diff line
@@ -60,6 +60,18 @@ public class OptimizedPreferenceControllerTest {
        assertThat(mPreference.isChecked()).isTrue();
    }

    @Test
    public void testUpdateState_isSystemOrDefaultAppAndOptimizeStates_prefChecked() {
        when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true);
        when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
        when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(
                BatteryOptimizeUtils.MODE_OPTIMIZED);

        mController.updateState(mPreference);

        assertThat(mPreference.isChecked()).isTrue();
    }

    @Test
    public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() {
        when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true);
+13 −1
Original line number Diff line number Diff line
@@ -69,7 +69,19 @@ public class RestrictedPreferenceControllerTest {
    }

    @Test
    public void testUpdateState_isSystemOrDefaultApp_prefChecked() {
    public void testUpdateState_isSystemOrDefaultAppAndRestrictedStates_prefChecked() {
        when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true);
        when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
        when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(
                BatteryOptimizeUtils.MODE_RESTRICTED);

        mController.updateState(mPreference);

        assertThat(mPreference.isChecked()).isTrue();
    }

    @Test
    public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() {
        when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true);
        when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);

Loading