OSDN Git Service

Use "except-idle" whitelist for force-app-standby
authorMakoto Onuki <omakoto@google.com>
Tue, 16 Jan 2018 22:15:44 +0000 (14:15 -0800)
committerMakoto Onuki <omakoto@google.com>
Wed, 17 Jan 2018 19:03:45 +0000 (11:03 -0800)
Bug: 71911050
Test: Manual test with:
- dumpsys alarm  | grep 'Whitelist appids'
- dumpsys deviceidle except-idle-whitelist +com.android.chrome
- dumpsys deviceidle except-idle-whitelist +com.google.android.dialer
- dumpsys deviceidle except-idle-whitelist reset

Change-Id: I6d5d8c350bad53a22adf247eb82a0e7f0d664c19

services/core/java/com/android/server/DeviceIdleController.java
services/core/java/com/android/server/ForceAppStandbyTracker.java

index 985f16d..a12c85a 100644 (file)
@@ -1591,6 +1591,8 @@ public class DeviceIdleController extends SystemService
                     mPowerSaveWhitelistExceptIdleAppIdArray = buildAppIdArray(
                             mPowerSaveWhitelistAppsExceptIdle, mPowerSaveWhitelistUserApps,
                             mPowerSaveWhitelistExceptIdleAppIds);
+
+                    passWhiteListToForceAppStandbyTrackerLocked();
                 }
                 return true;
             } catch (PackageManager.NameNotFoundException e) {
@@ -1608,6 +1610,8 @@ public class DeviceIdleController extends SystemService
                         mPowerSaveWhitelistAppsExceptIdle, mPowerSaveWhitelistUserApps,
                         mPowerSaveWhitelistExceptIdleAppIds);
                 mPowerSaveWhitelistUserAppsExceptIdle.clear();
+
+                passWhiteListToForceAppStandbyTrackerLocked();
             }
         }
     }
@@ -2572,7 +2576,7 @@ public class DeviceIdleController extends SystemService
 
     private void passWhiteListToForceAppStandbyTrackerLocked() {
         ForceAppStandbyTracker.getInstance(getContext()).setPowerSaveWhitelistAppIds(
-                mPowerSaveWhitelistAllAppIdArray,
+                mPowerSaveWhitelistExceptIdleAppIdArray,
                 mTempWhitelistAppIdArray);
     }
 
index 8776f3a..a75a367 100644 (file)
@@ -98,6 +98,9 @@ public class ForceAppStandbyTracker {
     @GuardedBy("mLock")
     final SparseBooleanArray mForegroundUids = new SparseBooleanArray();
 
+    /**
+     * System except-idle + user whitelist in the device idle controller.
+     */
     @GuardedBy("mLock")
     private int[] mPowerWhitelistedAllAppIds = new int[0];