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

Commit 20af5eef authored by Chalard Jean's avatar Chalard Jean Committed by android-build-merger
Browse files

Merge "Delay global alerts by 1s for high thresholds" am: afffa372

am: 65fef348

Change-Id: Iaabb31586e9e747871a526dc7ebb7deeb65d8f83
parents 96bf2131 65fef348
Loading
Loading
Loading
Loading
+21 −12
Original line number Original line Diff line number Diff line
@@ -159,8 +159,10 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
    static final boolean LOGD = Log.isLoggable(TAG, Log.DEBUG);
    static final boolean LOGD = Log.isLoggable(TAG, Log.DEBUG);
    static final boolean LOGV = Log.isLoggable(TAG, Log.VERBOSE);
    static final boolean LOGV = Log.isLoggable(TAG, Log.VERBOSE);


    // Perform polling and persist all (FLAG_PERSIST_ALL).
    private static final int MSG_PERFORM_POLL = 1;
    private static final int MSG_PERFORM_POLL = 1;
    private static final int MSG_REGISTER_GLOBAL_ALERT = 2;
    // Perform polling, persist network, and register the global alert again.
    private static final int MSG_PERFORM_POLL_REGISTER_ALERT = 2;


    /** Flags to control detail level of poll event. */
    /** Flags to control detail level of poll event. */
    private static final int FLAG_PERSIST_NETWORK = 0x1;
    private static final int FLAG_PERSIST_NETWORK = 0x1;
@@ -168,6 +170,14 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
    private static final int FLAG_PERSIST_ALL = FLAG_PERSIST_NETWORK | FLAG_PERSIST_UID;
    private static final int FLAG_PERSIST_ALL = FLAG_PERSIST_NETWORK | FLAG_PERSIST_UID;
    private static final int FLAG_PERSIST_FORCE = 0x100;
    private static final int FLAG_PERSIST_FORCE = 0x100;


    /**
     * When global alert quota is high, wait for this delay before processing each polling,
     * and do not schedule further polls once there is already one queued.
     * This avoids firing the global alert too often on devices with high transfer speeds and
     * high quota.
     */
    private static final int PERFORM_POLL_DELAY_MS = 1000;

    private static final String TAG_NETSTATS_ERROR = "netstats_error";
    private static final String TAG_NETSTATS_ERROR = "netstats_error";


    private final Context mContext;
    private final Context mContext;
@@ -920,7 +930,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
        }
        }


        // Create baseline stats
        // Create baseline stats
        mHandler.sendMessage(mHandler.obtainMessage(MSG_PERFORM_POLL, FLAG_PERSIST_ALL));
        mHandler.sendMessage(mHandler.obtainMessage(MSG_PERFORM_POLL));


        return normalizedRequest;
        return normalizedRequest;
   }
   }
@@ -1061,13 +1071,12 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
            mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
            mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);


            if (LIMIT_GLOBAL_ALERT.equals(limitName)) {
            if (LIMIT_GLOBAL_ALERT.equals(limitName)) {
                // kick off background poll to collect network stats; UID stats
                // kick off background poll to collect network stats unless there is already
                // are handled during normal polling interval.
                // such a call pending; UID stats are handled during normal polling interval.
                final int flags = FLAG_PERSIST_NETWORK;
                if (!mHandler.hasMessages(MSG_PERFORM_POLL_REGISTER_ALERT)) {
                mHandler.obtainMessage(MSG_PERFORM_POLL, flags, 0).sendToTarget();
                    mHandler.sendEmptyMessageDelayed(MSG_PERFORM_POLL_REGISTER_ALERT,

                            PERFORM_POLL_DELAY_MS);
                // re-arm global alert for next update
                }
                mHandler.obtainMessage(MSG_REGISTER_GLOBAL_ALERT).sendToTarget();
            }
            }
        }
        }
    };
    };
@@ -1679,11 +1688,11 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
        public boolean handleMessage(Message msg) {
        public boolean handleMessage(Message msg) {
            switch (msg.what) {
            switch (msg.what) {
                case MSG_PERFORM_POLL: {
                case MSG_PERFORM_POLL: {
                    final int flags = msg.arg1;
                    mService.performPoll(FLAG_PERSIST_ALL);
                    mService.performPoll(flags);
                    return true;
                    return true;
                }
                }
                case MSG_REGISTER_GLOBAL_ALERT: {
                case MSG_PERFORM_POLL_REGISTER_ALERT: {
                    mService.performPoll(FLAG_PERSIST_NETWORK);
                    mService.registerGlobalAlert();
                    mService.registerGlobalAlert();
                    return true;
                    return true;
                }
                }