OSDN Git Service

Plumb context object to PowerWhitelistBackend.
authorFan Zhang <zhfan@google.com>
Tue, 29 May 2018 18:14:42 +0000 (11:14 -0700)
committerFan Zhang <zhfan@google.com>
Tue, 29 May 2018 22:33:01 +0000 (22:33 +0000)
Change-Id: Ice0d037625d47f1f668b00499a7f1ad2302cc0ba
Merged-In: Ice0d037625d47f1f668b00499a7f1ad2302cc0ba
Fixes: 76435804
Test: robotests

src/com/android/settings/applications/AppStatePowerBridge.java
src/com/android/settings/applications/manageapplications/ManageApplications.java
src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java
src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceController.java
src/com/android/settings/fuelgauge/HighPowerDetail.java
src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java
tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizationPreferenceControllerTest.java

index ce03544..31412a7 100644 (file)
@@ -15,6 +15,8 @@
  */
 package com.android.settings.applications;
 
+import android.content.Context;
+
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.applications.ApplicationsState.AppEntry;
 import com.android.settingslib.applications.ApplicationsState.AppFilter;
@@ -28,10 +30,11 @@ import java.util.ArrayList;
  */
 public class AppStatePowerBridge extends AppStateBaseBridge {
 
-    private final PowerWhitelistBackend mBackend = PowerWhitelistBackend.getInstance();
+    private final PowerWhitelistBackend mBackend;
 
-    public AppStatePowerBridge(ApplicationsState appState, Callback callback) {
+    public AppStatePowerBridge(Context context, ApplicationsState appState, Callback callback) {
         super(appState, callback);
+        mBackend = PowerWhitelistBackend.getInstance(context);
     }
 
     @Override
@@ -50,11 +53,6 @@ public class AppStatePowerBridge extends AppStateBaseBridge {
         app.extraInfo = mBackend.isWhitelisted(pkg) ? Boolean.TRUE : Boolean.FALSE;
     }
 
-    public static class HighPowerState {
-        public boolean isHighPower;
-        public boolean isSystemHighPower;
-    }
-
     public static final AppFilter FILTER_POWER_WHITELISTED = new CompoundFilter(
             ApplicationsState.FILTER_WITHOUT_DISABLED_UNTIL_USED, new AppFilter() {
         @Override
index a00ea8e..51b24e1 100644 (file)
@@ -884,7 +884,7 @@ public class ManageApplications extends InstrumentedFragment
             } else if (mManageApplications.mListType == LIST_TYPE_USAGE_ACCESS) {
                 mExtraInfoBridge = new AppStateUsageBridge(mContext, mState, this);
             } else if (mManageApplications.mListType == LIST_TYPE_HIGH_POWER) {
-                mExtraInfoBridge = new AppStatePowerBridge(mState, this);
+                mExtraInfoBridge = new AppStatePowerBridge(mContext, mState, this);
             } else if (mManageApplications.mListType == LIST_TYPE_OVERLAY) {
                 mExtraInfoBridge = new AppStateOverlayBridge(mContext, mState, this);
             } else if (mManageApplications.mListType == LIST_TYPE_WRITE_SETTINGS) {
@@ -1276,7 +1276,8 @@ public class ManageApplications extends InstrumentedFragment
                 return true;
             }
             ApplicationsState.AppEntry entry = mEntries.get(position);
-            return !PowerWhitelistBackend.getInstance().isSysWhitelisted(entry.info.packageName);
+            return !PowerWhitelistBackend.getInstance(mContext)
+                    .isSysWhitelisted(entry.info.packageName);
         }
 
         @Override
index 69b5e9e..092f627 100644 (file)
@@ -56,7 +56,7 @@ public class BackgroundActivityPreferenceController extends AbstractPreferenceCo
 
     public BackgroundActivityPreferenceController(Context context,
             InstrumentedPreferenceFragment fragment, int uid, String packageName) {
-        this(context, fragment, uid, packageName, PowerWhitelistBackend.getInstance());
+        this(context, fragment, uid, packageName, PowerWhitelistBackend.getInstance(context));
     }
 
     @VisibleForTesting
index ab3ce8d..d526f4b 100644 (file)
@@ -48,7 +48,7 @@ public class BatteryOptimizationPreferenceController extends AbstractPreferenceC
         mFragment = fragment;
         mSettingsActivity = settingsActivity;
         mPackageName = packageName;
-        mBackend = PowerWhitelistBackend.getInstance();
+        mBackend = PowerWhitelistBackend.getInstance(mSettingsActivity);
     }
 
     @VisibleForTesting
index 4f70700..7dfa0be 100644 (file)
@@ -67,12 +67,13 @@ public class HighPowerDetail extends InstrumentedDialogFragment implements OnCli
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mBatteryUtils = BatteryUtils.getInstance(getContext());
-        mBackend = PowerWhitelistBackend.getInstance();
+        final Context context = getContext();
+        mBatteryUtils = BatteryUtils.getInstance(context);
+        mBackend = PowerWhitelistBackend.getInstance(context);
 
         mPackageName = getArguments().getString(AppInfoBase.ARG_PACKAGE_NAME);
         mPackageUid = getArguments().getInt(AppInfoBase.ARG_PACKAGE_UID);
-        PackageManager pm = getContext().getPackageManager();
+        final PackageManager pm = context.getPackageManager();
         try {
             mLabel = pm.getApplicationInfo(mPackageName, 0).loadLabel(pm);
         } catch (NameNotFoundException e) {
@@ -171,10 +172,10 @@ public class HighPowerDetail extends InstrumentedDialogFragment implements OnCli
     }
 
     public static CharSequence getSummary(Context context, String pkg) {
-        PowerWhitelistBackend powerWhitelist = PowerWhitelistBackend.getInstance();
+        PowerWhitelistBackend powerWhitelist = PowerWhitelistBackend.getInstance(context);
         return context.getString(powerWhitelist.isSysWhitelisted(pkg) ? R.string.high_power_system
                 : powerWhitelist.isWhitelisted(pkg) ? R.string.high_power_on
-                : R.string.high_power_off);
+                        : R.string.high_power_off);
     }
 
     public static void show(Fragment caller, int uid, String packageName, int requestCode) {
index 84ef864..55081cd 100644 (file)
@@ -30,12 +30,8 @@ import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
 import android.os.Bundle;
-import android.os.Process;
 import android.os.StatsDimensionsValue;
-import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
 import android.support.annotation.GuardedBy;
@@ -44,7 +40,6 @@ import android.util.Log;
 import android.util.Pair;
 
 import com.android.internal.logging.nano.MetricsProto;
-import com.android.internal.os.BatteryStatsHelper;
 import com.android.internal.util.ArrayUtils;
 import com.android.settings.R;
 import com.android.settings.fuelgauge.BatteryUtils;
@@ -101,7 +96,8 @@ public class AnomalyDetectionJobService extends JobService {
             final BatteryUtils batteryUtils = BatteryUtils.getInstance(this);
             final ContentResolver contentResolver = getContentResolver();
             final UserManager userManager = getSystemService(UserManager.class);
-            final PowerWhitelistBackend powerWhitelistBackend = PowerWhitelistBackend.getInstance();
+            final PowerWhitelistBackend powerWhitelistBackend =
+                    PowerWhitelistBackend.getInstance(context);
             final PowerUsageFeatureProvider powerUsageFeatureProvider = FeatureFactory
                     .getFactory(this).getPowerUsageFeatureProvider(this);
             final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory
index b454416..dec9c6a 100644 (file)
@@ -115,6 +115,10 @@ public class BatteryOptimizationPreferenceControllerTest {
      */
     public static class TestPowerWhitelistBackend extends PowerWhitelistBackend {
 
+        public TestPowerWhitelistBackend(Context context) {
+            super(context);
+        }
+
         @Override
         public void refreshList() {
             // Do nothing so we could mock it without error