Merge "Refactor PowerWhitelistBackend"
diff --git a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerWhitelistBackend.java b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerWhitelistBackend.java
index 9feacac..eeb6cb0 100644
--- a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerWhitelistBackend.java
+++ b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerWhitelistBackend.java
@@ -75,20 +75,32 @@
return true;
}
+ if (isDefaultActiveApp(pkg)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Check if it is default active app in multiple area(i.e. SMS, Dialer, Device admin..)
+ */
+ public boolean isDefaultActiveApp(String pkg) {
// Additionally, check if pkg is default dialer/sms. They are considered essential apps and
// should be automatically whitelisted (otherwise user may be able to set restriction on
// them, leading to bad device behavior.)
- if (!mAppContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
- return false;
- }
+
+ final boolean hasTelephony = mAppContext.getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_TELEPHONY);
final ComponentName defaultSms = SmsApplication.getDefaultSmsApplication(mAppContext,
true /* updateIfNeeded */);
- if (defaultSms != null && TextUtils.equals(pkg, defaultSms.getPackageName())) {
+ if (hasTelephony && defaultSms != null && TextUtils.equals(pkg,
+ defaultSms.getPackageName())) {
return true;
}
final String defaultDialer = DefaultDialerManager.getDefaultDialerApplication(mAppContext);
- if (TextUtils.equals(pkg, defaultDialer)) {
+ if (hasTelephony && TextUtils.equals(pkg, defaultDialer)) {
return true;
}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java
index bbf807d2..44ee423 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java
@@ -118,6 +118,7 @@
ShadowSmsApplication.setDefaultSmsApplication(new ComponentName(testSms, "receiver"));
assertThat(mPowerWhitelistBackend.isWhitelisted(testSms)).isTrue();
+ assertThat(mPowerWhitelistBackend.isDefaultActiveApp(testSms)).isTrue();
}
@Test
@@ -126,6 +127,7 @@
ShadowDefaultDialerManager.setDefaultDialerApplication(testDialer);
assertThat(mPowerWhitelistBackend.isWhitelisted(testDialer)).isTrue();
+ assertThat(mPowerWhitelistBackend.isDefaultActiveApp(testDialer)).isTrue();
}
@Test
@@ -133,6 +135,7 @@
doReturn(true).when(mDevicePolicyManager).packageHasActiveAdmins(PACKAGE_ONE);
assertThat(mPowerWhitelistBackend.isWhitelisted(PACKAGE_ONE)).isTrue();
+ assertThat(mPowerWhitelistBackend.isDefaultActiveApp(PACKAGE_ONE)).isTrue();
}
@Test