Merge "Add PowerWhitelistManager.getWhitelistedAppIds." into rvc-dev am: 9d95b2bf8e
Change-Id: I435f0664005ac83266fb9118e5d0d085e581ac49
This commit is contained in:
@@ -24,6 +24,8 @@ import android.annotation.SystemService;
|
|||||||
import android.annotation.TestApi;
|
import android.annotation.TestApi;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
|
import libcore.util.EmptyArray;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -99,6 +101,28 @@ public class PowerWhitelistManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of app IDs of app that are whitelisted. This does not include temporarily
|
||||||
|
* whitelisted apps.
|
||||||
|
*
|
||||||
|
* @param includingIdle Set to true if the app should be whitelisted from device idle as well
|
||||||
|
* as other power save restrictions
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@NonNull
|
||||||
|
public int[] getWhitelistedAppIds(boolean includingIdle) {
|
||||||
|
try {
|
||||||
|
if (includingIdle) {
|
||||||
|
return mService.getAppIdWhitelist();
|
||||||
|
} else {
|
||||||
|
return mService.getAppIdWhitelistExceptIdle();
|
||||||
|
}
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
e.rethrowFromSystemServer();
|
||||||
|
return EmptyArray.INT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add an app to the temporary whitelist for a short amount of time.
|
* Add an app to the temporary whitelist for a short amount of time.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -171,7 +171,6 @@ import android.os.Environment;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerExecutor;
|
import android.os.HandlerExecutor;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
import android.os.IDeviceIdleController;
|
|
||||||
import android.os.INetworkManagementService;
|
import android.os.INetworkManagementService;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.MessageQueue.IdleHandler;
|
import android.os.MessageQueue.IdleHandler;
|
||||||
@@ -180,11 +179,11 @@ import android.os.PowerManager;
|
|||||||
import android.os.PowerManager.ServiceType;
|
import android.os.PowerManager.ServiceType;
|
||||||
import android.os.PowerManagerInternal;
|
import android.os.PowerManagerInternal;
|
||||||
import android.os.PowerSaveState;
|
import android.os.PowerSaveState;
|
||||||
|
import android.os.PowerWhitelistManager;
|
||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
import android.os.RemoteCallbackList;
|
import android.os.RemoteCallbackList;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.ResultReceiver;
|
import android.os.ResultReceiver;
|
||||||
import android.os.ServiceManager;
|
|
||||||
import android.os.ShellCallback;
|
import android.os.ShellCallback;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
@@ -411,7 +410,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
|
|
||||||
private IConnectivityManager mConnManager;
|
private IConnectivityManager mConnManager;
|
||||||
private PowerManagerInternal mPowerManagerInternal;
|
private PowerManagerInternal mPowerManagerInternal;
|
||||||
private IDeviceIdleController mDeviceIdleController;
|
private PowerWhitelistManager mPowerWhitelistManager;
|
||||||
|
|
||||||
/** Current cached value of the current Battery Saver mode's setting for restrict background. */
|
/** Current cached value of the current Battery Saver mode's setting for restrict background. */
|
||||||
@GuardedBy("mUidRulesFirstLock")
|
@GuardedBy("mUidRulesFirstLock")
|
||||||
@@ -618,8 +617,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
mContext = Objects.requireNonNull(context, "missing context");
|
mContext = Objects.requireNonNull(context, "missing context");
|
||||||
mActivityManager = Objects.requireNonNull(activityManager, "missing activityManager");
|
mActivityManager = Objects.requireNonNull(activityManager, "missing activityManager");
|
||||||
mNetworkManager = Objects.requireNonNull(networkManagement, "missing networkManagement");
|
mNetworkManager = Objects.requireNonNull(networkManagement, "missing networkManagement");
|
||||||
mDeviceIdleController = IDeviceIdleController.Stub.asInterface(ServiceManager.getService(
|
mPowerWhitelistManager = mContext.getSystemService(PowerWhitelistManager.class);
|
||||||
Context.DEVICE_IDLE_CONTROLLER));
|
|
||||||
mClock = Objects.requireNonNull(clock, "missing Clock");
|
mClock = Objects.requireNonNull(clock, "missing Clock");
|
||||||
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
|
||||||
mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
|
mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
|
||||||
@@ -651,23 +649,17 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GuardedBy("mUidRulesFirstLock")
|
@GuardedBy("mUidRulesFirstLock")
|
||||||
void updatePowerSaveWhitelistUL() {
|
private void updatePowerSaveWhitelistUL() {
|
||||||
try {
|
int[] whitelist = mPowerWhitelistManager.getWhitelistedAppIds(/* includingIdle */ false);
|
||||||
int[] whitelist = mDeviceIdleController.getAppIdWhitelistExceptIdle();
|
mPowerSaveWhitelistExceptIdleAppIds.clear();
|
||||||
mPowerSaveWhitelistExceptIdleAppIds.clear();
|
for (int uid : whitelist) {
|
||||||
if (whitelist != null) {
|
mPowerSaveWhitelistExceptIdleAppIds.put(uid, true);
|
||||||
for (int uid : whitelist) {
|
}
|
||||||
mPowerSaveWhitelistExceptIdleAppIds.put(uid, true);
|
|
||||||
}
|
whitelist = mPowerWhitelistManager.getWhitelistedAppIds(/* includingIdle */ true);
|
||||||
}
|
mPowerSaveWhitelistAppIds.clear();
|
||||||
whitelist = mDeviceIdleController.getAppIdWhitelist();
|
for (int uid : whitelist) {
|
||||||
mPowerSaveWhitelistAppIds.clear();
|
mPowerSaveWhitelistAppIds.put(uid, true);
|
||||||
if (whitelist != null) {
|
|
||||||
for (int uid : whitelist) {
|
|
||||||
mPowerSaveWhitelistAppIds.put(uid, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user