Loading packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerWhitelistBackend.java +18 −11 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ public class PowerWhitelistBackend { private final ArraySet<String> mWhitelistedApps = new ArraySet<>(); private final ArraySet<String> mSysWhitelistedApps = new ArraySet<>(); private final ArraySet<String> mSysWhitelistedAppsExceptIdle = new ArraySet<>(); private final ArraySet<String> mDefaultActiveApps = new ArraySet<>(); public PowerWhitelistBackend(Context context) { this(context, IDeviceIdleController.Stub.asInterface( Loading Loading @@ -90,17 +91,7 @@ public class PowerWhitelistBackend { // should be automatically whitelisted (otherwise user may be able to set restriction on // them, leading to bad device behavior.) final boolean hasTelephony = mAppContext.getPackageManager().hasSystemFeature( PackageManager.FEATURE_TELEPHONY); final ComponentName defaultSms = SmsApplication.getDefaultSmsApplication(mAppContext, true /* updateIfNeeded */); if (hasTelephony && defaultSms != null && TextUtils.equals(pkg, defaultSms.getPackageName())) { return true; } final String defaultDialer = DefaultDialerManager.getDefaultDialerApplication(mAppContext); if (hasTelephony && TextUtils.equals(pkg, defaultDialer)) { if (mDefaultActiveApps.contains(pkg)) { return true; } Loading Loading @@ -166,6 +157,7 @@ public class PowerWhitelistBackend { mSysWhitelistedApps.clear(); mSysWhitelistedAppsExceptIdle.clear(); mWhitelistedApps.clear(); mDefaultActiveApps.clear(); if (mDeviceIdleService == null) { return; } Loading @@ -183,6 +175,21 @@ public class PowerWhitelistBackend { for (String app : sysWhitelistedAppsExceptIdle) { mSysWhitelistedAppsExceptIdle.add(app); } final boolean hasTelephony = mAppContext.getPackageManager().hasSystemFeature( PackageManager.FEATURE_TELEPHONY); final ComponentName defaultSms = SmsApplication.getDefaultSmsApplication(mAppContext, true /* updateIfNeeded */); final String defaultDialer = DefaultDialerManager.getDefaultDialerApplication( mAppContext); if (hasTelephony) { if (defaultSms != null) { mDefaultActiveApps.add(defaultSms.getPackageName()); } if (!TextUtils.isEmpty(defaultDialer)) { mDefaultActiveApps.add(defaultDialer); } } } catch (RemoteException e) { Log.w(TAG, "Unable to reach IDeviceIdleController", e); } Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -117,6 +117,8 @@ public class PowerWhitelistBackendTest { final String testSms = "com.android.test.defaultsms"; ShadowSmsApplication.setDefaultSmsApplication(new ComponentName(testSms, "receiver")); mPowerWhitelistBackend.refreshList(); assertThat(mPowerWhitelistBackend.isWhitelisted(testSms)).isTrue(); assertThat(mPowerWhitelistBackend.isDefaultActiveApp(testSms)).isTrue(); } Loading @@ -126,6 +128,8 @@ public class PowerWhitelistBackendTest { final String testDialer = "com.android.test.defaultdialer"; ShadowDefaultDialerManager.setDefaultDialerApplication(testDialer); mPowerWhitelistBackend.refreshList(); assertThat(mPowerWhitelistBackend.isWhitelisted(testDialer)).isTrue(); assertThat(mPowerWhitelistBackend.isDefaultActiveApp(testDialer)).isTrue(); } Loading Loading
packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerWhitelistBackend.java +18 −11 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ public class PowerWhitelistBackend { private final ArraySet<String> mWhitelistedApps = new ArraySet<>(); private final ArraySet<String> mSysWhitelistedApps = new ArraySet<>(); private final ArraySet<String> mSysWhitelistedAppsExceptIdle = new ArraySet<>(); private final ArraySet<String> mDefaultActiveApps = new ArraySet<>(); public PowerWhitelistBackend(Context context) { this(context, IDeviceIdleController.Stub.asInterface( Loading Loading @@ -90,17 +91,7 @@ public class PowerWhitelistBackend { // should be automatically whitelisted (otherwise user may be able to set restriction on // them, leading to bad device behavior.) final boolean hasTelephony = mAppContext.getPackageManager().hasSystemFeature( PackageManager.FEATURE_TELEPHONY); final ComponentName defaultSms = SmsApplication.getDefaultSmsApplication(mAppContext, true /* updateIfNeeded */); if (hasTelephony && defaultSms != null && TextUtils.equals(pkg, defaultSms.getPackageName())) { return true; } final String defaultDialer = DefaultDialerManager.getDefaultDialerApplication(mAppContext); if (hasTelephony && TextUtils.equals(pkg, defaultDialer)) { if (mDefaultActiveApps.contains(pkg)) { return true; } Loading Loading @@ -166,6 +157,7 @@ public class PowerWhitelistBackend { mSysWhitelistedApps.clear(); mSysWhitelistedAppsExceptIdle.clear(); mWhitelistedApps.clear(); mDefaultActiveApps.clear(); if (mDeviceIdleService == null) { return; } Loading @@ -183,6 +175,21 @@ public class PowerWhitelistBackend { for (String app : sysWhitelistedAppsExceptIdle) { mSysWhitelistedAppsExceptIdle.add(app); } final boolean hasTelephony = mAppContext.getPackageManager().hasSystemFeature( PackageManager.FEATURE_TELEPHONY); final ComponentName defaultSms = SmsApplication.getDefaultSmsApplication(mAppContext, true /* updateIfNeeded */); final String defaultDialer = DefaultDialerManager.getDefaultDialerApplication( mAppContext); if (hasTelephony) { if (defaultSms != null) { mDefaultActiveApps.add(defaultSms.getPackageName()); } if (!TextUtils.isEmpty(defaultDialer)) { mDefaultActiveApps.add(defaultDialer); } } } catch (RemoteException e) { Log.w(TAG, "Unable to reach IDeviceIdleController", e); } Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -117,6 +117,8 @@ public class PowerWhitelistBackendTest { final String testSms = "com.android.test.defaultsms"; ShadowSmsApplication.setDefaultSmsApplication(new ComponentName(testSms, "receiver")); mPowerWhitelistBackend.refreshList(); assertThat(mPowerWhitelistBackend.isWhitelisted(testSms)).isTrue(); assertThat(mPowerWhitelistBackend.isDefaultActiveApp(testSms)).isTrue(); } Loading @@ -126,6 +128,8 @@ public class PowerWhitelistBackendTest { final String testDialer = "com.android.test.defaultdialer"; ShadowDefaultDialerManager.setDefaultDialerApplication(testDialer); mPowerWhitelistBackend.refreshList(); assertThat(mPowerWhitelistBackend.isWhitelisted(testDialer)).isTrue(); assertThat(mPowerWhitelistBackend.isDefaultActiveApp(testDialer)).isTrue(); } Loading