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

Commit 033fe6ee authored by Lei Yu's avatar Lei Yu
Browse files

Init PowerWhitelistbackend to stop crash

Also update text to "unavailable" to reflect its current status.

Fixes: 129955147
Test: Manual
Change-Id: Ib80d68d6d2b6bc4ced4a72483859e675b7e7e61c
parent 254afc0d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -952,6 +952,7 @@ public class ManageApplications extends InstrumentedFragment
            mContext = manageApplications.getActivity();
            mIconDrawableFactory = IconDrawableFactory.newInstance(mContext);
            mAppFilter = appFilter;
            mBackend = PowerWhitelistBackend.getInstance(mContext);
            if (mManageApplications.mListType == LIST_TYPE_NOTIFICATION) {
                mExtraInfoBridge = new AppStateNotificationBridge(mContext, mState, this,
                        manageApplications.mUsageStatsManager,
+12 −4
Original line number Diff line number Diff line
@@ -173,9 +173,17 @@ public class HighPowerDetail extends InstrumentedDialogFragment implements OnCli
    }

    public static CharSequence getSummary(Context context, String pkg) {
        PowerWhitelistBackend powerWhitelist = PowerWhitelistBackend.getInstance(context);
        return context.getString(powerWhitelist.isSysWhitelisted(pkg) ? R.string.high_power_system
                : powerWhitelist.isWhitelisted(pkg) ? R.string.high_power_on
        return getSummary(context, PowerWhitelistBackend.getInstance(context), pkg);
    }

    @VisibleForTesting
    static CharSequence getSummary(Context context, PowerWhitelistBackend powerWhitelist,
            String pkg) {
        return context.getString(
                powerWhitelist.isSysWhitelisted(pkg) || powerWhitelist.isDefaultActiveApp(pkg)
                        ? R.string.high_power_system
                        : powerWhitelist.isWhitelisted(pkg)
                                ? R.string.high_power_on
                                : R.string.high_power_off);
    }

+14 −0
Original line number Diff line number Diff line
@@ -16,8 +16,11 @@

package com.android.settings.fuelgauge;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -27,6 +30,7 @@ import android.content.Context;
import android.content.DialogInterface;

import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.fuelgauge.PowerWhitelistBackend;

@@ -46,6 +50,7 @@ public class HighPowerDetailTest {
    private FakeFeatureFactory mFeatureFactory;
    private HighPowerDetail mFragment;

    private Context mContext;
    @Mock
    private PowerWhitelistBackend mPowerWhitelistBackend;
    @Mock
@@ -56,6 +61,7 @@ public class HighPowerDetailTest {
        mFeatureFactory = FakeFeatureFactory.setupForTest();

        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        mFragment = spy(new HighPowerDetail());
        mFragment.mBackend = mPowerWhitelistBackend;
        mFragment.mBatteryUtils = mBatteryUtils;
@@ -84,4 +90,12 @@ public class HighPowerDetailTest {
        verify(mBatteryUtils).setForceAppStandby(TEST_UID, TEST_PACKAGE,
                AppOpsManager.MODE_ALLOWED);
    }

    @Test
    public void getSummary_defaultActivePackage_returnUnavailable() {
        doReturn(true).when(mPowerWhitelistBackend).isDefaultActiveApp(TEST_PACKAGE);

        assertThat(HighPowerDetail.getSummary(mContext, mPowerWhitelistBackend, TEST_PACKAGE))
                .isEqualTo(mContext.getString(R.string.high_power_system));
    }
}