Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8303baf4 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

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

parents ce5f2b3e d993dcfe
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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);

+5 −2
Original line number Diff line number Diff line
@@ -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) {
+6 −12
Original line number Diff line number Diff line
@@ -3218,19 +3218,13 @@ 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);
        }
    }

    private boolean isUidForegroundUL(int uid) {
        return isUidStateForegroundUL(
            return isUidStateForeground(
                    mUidState.get(uid, ActivityManager.PROCESS_STATE_CACHED_EMPTY));
        }
    }

    private boolean isUidForegroundOnRestrictBackgroundUL(int uid) {
        final int procState = mUidState.get(uid, ActivityManager.PROCESS_STATE_CACHED_EMPTY);
@@ -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);