Merge "Add active admin app to power white list." into pi-dev

This commit is contained in:
TreeHugger Robot
2018-07-03 20:24:58 +00:00
committed by Android (Google) Code Review
2 changed files with 23 additions and 2 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settingslib.fuelgauge;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -89,6 +90,13 @@ public class PowerWhitelistBackend {
if (TextUtils.equals(pkg, defaultDialer)) {
return true;
}
final DevicePolicyManager devicePolicyManager = mAppContext.getSystemService(
DevicePolicyManager.class);
if (devicePolicyManager.packageHasActiveAdmins(pkg)) {
return true;
}
return false;
}

View File

@@ -21,8 +21,10 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -51,7 +53,8 @@ public class PowerWhitelistBackendTest {
@Mock
private IDeviceIdleController mDeviceIdleService;
@Mock
private DevicePolicyManager mDevicePolicyManager;
private PowerWhitelistBackend mPowerWhitelistBackend;
private ShadowPackageManager mPackageManager;
private Context mContext;
@@ -59,7 +62,9 @@ public class PowerWhitelistBackendTest {
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
mContext = spy(RuntimeEnvironment.application);
doReturn(mContext).when(mContext).getApplicationContext();
doReturn(mDevicePolicyManager).when(mContext).getSystemService(DevicePolicyManager.class);
doReturn(new String[] {}).when(mDeviceIdleService).getFullPowerWhitelist();
doReturn(new String[] {}).when(mDeviceIdleService).getSystemPowerWhitelist();
doReturn(new String[] {}).when(mDeviceIdleService).getSystemPowerWhitelistExceptIdle();
@@ -68,6 +73,7 @@ public class PowerWhitelistBackendTest {
mPackageManager = Shadow.extract(mContext.getPackageManager());
mPackageManager.setSystemFeature(PackageManager.FEATURE_TELEPHONY, true);
mPowerWhitelistBackend = new PowerWhitelistBackend(mContext, mDeviceIdleService);
}
@@ -122,6 +128,13 @@ public class PowerWhitelistBackendTest {
assertThat(mPowerWhitelistBackend.isWhitelisted(testDialer)).isTrue();
}
@Test
public void isWhitelisted_shouldWhitelistActiveDeviceAdminApp() {
doReturn(true).when(mDevicePolicyManager).packageHasActiveAdmins(PACKAGE_ONE);
assertThat(mPowerWhitelistBackend.isWhitelisted(PACKAGE_ONE)).isTrue();
}
@Test
public void testIsSystemWhitelisted() throws Exception {
doReturn(new String[] {PACKAGE_ONE}).when(mDeviceIdleService).getSystemPowerWhitelist();