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

Commit 5cd3a729 authored by ykhung's avatar ykhung Committed by YK Hung
Browse files

Disable the optimization mode preference if the app is not settable

https://screenshot.googleplex.com/BbQyEv6YCjPVwUF (allowlist)
https://screenshot.googleplex.com/3hTb8TQwGMQqcwS
https://screenshot.googleplex.com/6hdTAT2yNFucD9N (system app)
https://screenshot.googleplex.com/77T5JyAD5nZJpDT (normal app)

Fix: 281566984
Test: make test RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.*
Change-Id: If7aa4b61bc806daa570187da24b7f454cd069dec
parent 62193a6f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -343,7 +343,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
        final String stateString;
        final String footerString;

        if (!mBatteryOptimizeUtils.isValidPackageName()) {
        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
            // Present optimized only string when the package name is invalid.
            stateString = context.getString(R.string.manager_battery_usage_optimized_only);
            footerString = context.getString(
+4 −5
Original line number Diff line number Diff line
@@ -128,11 +128,10 @@ public class BatteryOptimizeUtils {
                mContext, mode, mUid, mPackageName, mBatteryUtils, mPowerAllowListBackend, action);
    }

    /**
     * Return {@code true} if package name is valid (can get an uid).
     */
    public boolean isValidPackageName() {
        return mBatteryUtils.getPackageUid(mPackageName) != BatteryUtils.UID_NULL;
    /** Return {@code true} if it is disabled for default optimized mode only. */
    public boolean isDisabledForOptimizeModeOnly() {
        return getAllowList(mContext).contains(mPackageName)
                || mBatteryUtils.getPackageUid(mPackageName) == BatteryUtils.UID_NULL;
    }

    /**
+2 −2
Original line number Diff line number Diff line
@@ -46,8 +46,8 @@ public class OptimizedPreferenceController extends AbstractPreferenceController

    @Override
    public void updateState(Preference preference) {
        if (!mBatteryOptimizeUtils.isValidPackageName()) {
            Log.d(TAG, "invalid package name, optimized states only");
        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
            Log.d(TAG, "disable preference for " + mBatteryOptimizeUtils.getPackageName());
            preference.setEnabled(true);
            ((SelectorWithWidgetPreference) preference).setChecked(true);
            return;
+2 −3
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@
 * limitations under the License.
 */


package com.android.settings.fuelgauge;

import android.content.Context;
@@ -43,8 +42,8 @@ public class RestrictedPreferenceController extends AbstractPreferenceController
    @Override
    public void updateState(Preference preference) {

        if (!mBatteryOptimizeUtils.isValidPackageName()) {
            Log.d(TAG, "invalid package name, disable pref");
        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
            Log.d(TAG, "disable preference for " + mBatteryOptimizeUtils.getPackageName());
            preference.setEnabled(false);
            return;
        } else {
+2 −2
Original line number Diff line number Diff line
@@ -42,8 +42,8 @@ public class UnrestrictedPreferenceController extends AbstractPreferenceControll
    @Override
    public void updateState(Preference preference) {

        if (!mBatteryOptimizeUtils.isValidPackageName()) {
            Log.d(TAG, "invalid package name, disable pref");
        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
            Log.d(TAG, "disable preference for " + mBatteryOptimizeUtils.getPackageName());
            preference.setEnabled(false);
            return;
        } else {
Loading