Merge "Update uid state used for bucketizing data in fg vs bg states." into pi-dev

This commit is contained in:
Sudheer Shanka
2018-04-02 17:34:16 +00:00
committed by Android (Google) Code Review
3 changed files with 11 additions and 16 deletions

View File

@@ -37,8 +37,6 @@ interface INetworkPolicyManager {
int getUidPolicy(int uid);
int[] getUidsWithPolicy(int policy);
boolean isUidForeground(int uid);
void registerListener(INetworkPolicyListener listener);
void unregisterListener(INetworkPolicyListener listener);

View File

@@ -107,6 +107,9 @@ public class NetworkPolicyManager {
private static final boolean ALLOW_PLATFORM_APP_POLICY = true;
public static final int FOREGROUND_THRESHOLD_STATE =
ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE;
/**
* {@link Intent} extra that indicates which {@link NetworkTemplate} rule it
* applies to.
@@ -331,7 +334,7 @@ public class NetworkPolicyManager {
* to access network when the device is idle or in battery saver mode. Otherwise, false.
*/
public static boolean isProcStateAllowedWhileIdleOrPowerSaveMode(int procState) {
return procState <= ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE;
return procState <= FOREGROUND_THRESHOLD_STATE;
}
/**
@@ -339,7 +342,7 @@ public class NetworkPolicyManager {
* to access network when the device is in data saver mode. Otherwise, false.
*/
public static boolean isProcStateAllowedWhileOnRestrictBackground(int procState) {
return procState <= ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE;
return procState <= FOREGROUND_THRESHOLD_STATE;
}
public static String resolveNetworkId(WifiConfiguration config) {

View File

@@ -3218,20 +3218,14 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
this, in, out, err, args, callback, resultReceiver);
}
@Override
@VisibleForTesting
public boolean isUidForeground(int uid) {
mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
synchronized (mUidRulesFirstLock) {
return isUidForegroundUL(uid);
return isUidStateForeground(
mUidState.get(uid, ActivityManager.PROCESS_STATE_CACHED_EMPTY));
}
}
private boolean isUidForegroundUL(int uid) {
return isUidStateForegroundUL(
mUidState.get(uid, ActivityManager.PROCESS_STATE_CACHED_EMPTY));
}
private boolean isUidForegroundOnRestrictBackgroundUL(int uid) {
final int procState = mUidState.get(uid, ActivityManager.PROCESS_STATE_CACHED_EMPTY);
return isProcStateAllowedWhileOnRestrictBackground(procState);
@@ -3242,9 +3236,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
return isProcStateAllowedWhileIdleOrPowerSaveMode(procState);
}
private boolean isUidStateForegroundUL(int state) {
private boolean isUidStateForeground(int state) {
// only really in foreground when screen is also on
return state <= ActivityManager.PROCESS_STATE_TOP;
return state <= NetworkPolicyManager.FOREGROUND_THRESHOLD_STATE;
}
/**
@@ -3271,7 +3265,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
}
updateRulesForPowerRestrictionsUL(uid);
}
updateNetworkStats(uid, isUidStateForegroundUL(uidState));
updateNetworkStats(uid, isUidStateForeground(uidState));
}
} finally {
Trace.traceEnd(Trace.TRACE_TAG_NETWORK);