diff --git a/src/com/android/settings/applications/AppStatePowerBridge.java b/src/com/android/settings/applications/AppStatePowerBridge.java index 16de600ee50..ce0354412e7 100644 --- a/src/com/android/settings/applications/AppStatePowerBridge.java +++ b/src/com/android/settings/applications/AppStatePowerBridge.java @@ -15,11 +15,11 @@ */ package com.android.settings.applications; -import com.android.settings.fuelgauge.PowerWhitelistBackend; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState.AppEntry; import com.android.settingslib.applications.ApplicationsState.AppFilter; import com.android.settingslib.applications.ApplicationsState.CompoundFilter; +import com.android.settingslib.fuelgauge.PowerWhitelistBackend; import java.util.ArrayList; diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java index 7371294e124..d19c4722b9f 100644 --- a/src/com/android/settings/applications/manageapplications/ManageApplications.java +++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java @@ -101,7 +101,6 @@ import com.android.settings.core.FeatureFlags; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.dashboard.SummaryLoader; import com.android.settings.fuelgauge.HighPowerDetail; -import com.android.settings.fuelgauge.PowerWhitelistBackend; import com.android.settings.notification.AppNotificationSettings; import com.android.settings.notification.ConfigureNotificationSettings; import com.android.settings.notification.NotificationBackend; @@ -114,6 +113,7 @@ import com.android.settingslib.applications.ApplicationsState.AppFilter; import com.android.settingslib.applications.ApplicationsState.CompoundFilter; import com.android.settingslib.applications.ApplicationsState.VolumeFilter; import com.android.settingslib.applications.StorageStatsSource; +import com.android.settingslib.fuelgauge.PowerWhitelistBackend; import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.wrapper.PackageManagerWrapper; diff --git a/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java b/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java index 14aba85a948..6323715355f 100644 --- a/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java @@ -37,6 +37,7 @@ import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.wrapper.DevicePolicyManagerWrapper; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.fuelgauge.PowerWhitelistBackend; /** * Controller to control whether an app can run in the background diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceController.java index 10e428028cf..da5b6c6dec3 100644 --- a/src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceController.java @@ -25,6 +25,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.applications.manageapplications.ManageApplications; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.fuelgauge.PowerWhitelistBackend; /** * Controller that jumps to high power optimization fragment diff --git a/src/com/android/settings/fuelgauge/HighPowerDetail.java b/src/com/android/settings/fuelgauge/HighPowerDetail.java index a0869869b93..9cafbcba491 100644 --- a/src/com/android/settings/fuelgauge/HighPowerDetail.java +++ b/src/com/android/settings/fuelgauge/HighPowerDetail.java @@ -36,6 +36,7 @@ import com.android.settings.applications.AppInfoBase; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.applications.ApplicationsState.AppEntry; +import com.android.settingslib.fuelgauge.PowerWhitelistBackend; public class HighPowerDetail extends InstrumentedDialogFragment implements OnClickListener, View.OnClickListener { diff --git a/src/com/android/settings/fuelgauge/PowerWhitelistBackend.java b/src/com/android/settings/fuelgauge/PowerWhitelistBackend.java deleted file mode 100644 index 5590a46f4d1..00000000000 --- a/src/com/android/settings/fuelgauge/PowerWhitelistBackend.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.settings.fuelgauge; - -import android.os.IDeviceIdleController; -import android.os.RemoteException; -import android.os.ServiceManager; -import android.support.annotation.VisibleForTesting; - -import android.util.ArraySet; -import android.util.Log; - - -/** - * Handles getting/changing the whitelist for the exceptions to battery saving features. - */ -public class PowerWhitelistBackend { - - private static final String TAG = "PowerWhitelistBackend"; - - private static final String DEVICE_IDLE_SERVICE = "deviceidle"; - - private static PowerWhitelistBackend sInstance; - - private final IDeviceIdleController mDeviceIdleService; - private final ArraySet mWhitelistedApps = new ArraySet<>(); - private final ArraySet mSysWhitelistedApps = new ArraySet<>(); - - public PowerWhitelistBackend() { - mDeviceIdleService = IDeviceIdleController.Stub.asInterface( - ServiceManager.getService(DEVICE_IDLE_SERVICE)); - refreshList(); - } - - public int getWhitelistSize() { - return mWhitelistedApps.size(); - } - - public boolean isSysWhitelisted(String pkg) { - return mSysWhitelistedApps.contains(pkg); - } - - public boolean isWhitelisted(String pkg) { - return mWhitelistedApps.contains(pkg); - } - - public void addApp(String pkg) { - try { - mDeviceIdleService.addPowerSaveWhitelistApp(pkg); - mWhitelistedApps.add(pkg); - } catch (RemoteException e) { - Log.w(TAG, "Unable to reach IDeviceIdleController", e); - } - } - - public void removeApp(String pkg) { - try { - mDeviceIdleService.removePowerSaveWhitelistApp(pkg); - mWhitelistedApps.remove(pkg); - } catch (RemoteException e) { - Log.w(TAG, "Unable to reach IDeviceIdleController", e); - } - } - - @VisibleForTesting - void refreshList() { - mSysWhitelistedApps.clear(); - mWhitelistedApps.clear(); - try { - String[] whitelistedApps = mDeviceIdleService.getFullPowerWhitelist(); - for (String app : whitelistedApps) { - mWhitelistedApps.add(app); - } - String[] sysWhitelistedApps = mDeviceIdleService.getSystemPowerWhitelist(); - for (String app : sysWhitelistedApps) { - mSysWhitelistedApps.add(app); - } - } catch (RemoteException e) { - Log.w(TAG, "Unable to reach IDeviceIdleController", e); - } - } - - public static PowerWhitelistBackend getInstance() { - if (sInstance == null) { - sInstance = new PowerWhitelistBackend(); - } - return sInstance; - } - -} diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java index 092f6025578..3d04ac51d64 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java @@ -41,6 +41,7 @@ import com.android.settings.TestConfig; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.wrapper.DevicePolicyManagerWrapper; +import com.android.settingslib.fuelgauge.PowerWhitelistBackend; import org.junit.Before; import org.junit.Test; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceControllerTest.java index 77e3198661e..426f3cbfd33 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceControllerTest.java @@ -120,10 +120,11 @@ public class BatteryOptimizationPreferenceControllerTest { /** * Create this test class so we could mock it */ - public static class TestPowerWhitelistBackend extends PowerWhitelistBackend { + public static class TestPowerWhitelistBackend extends + com.android.settingslib.fuelgauge.PowerWhitelistBackend { @Override - void refreshList() { + public void refreshList() { // Do nothing so we could mock it without error } }