Init PowerWhitelistbackend to stop crash

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

Fixes: 129955147
Test: Manual
Change-Id: Ib80d68d6d2b6bc4ced4a72483859e675b7e7e61c
This commit is contained in:
Lei Yu
2019-04-04 12:53:55 -07:00
parent 254afc0da0
commit 033fe6eec0
3 changed files with 27 additions and 4 deletions

View File

@@ -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,

View File

@@ -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);
}

View File

@@ -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));
}
}