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

Commit d9be23fa authored by Paul Jensen's avatar Paul Jensen
Browse files

Report invalid network after one failed attempt.

Also, blame UID requesting re-evaluation for first 5 attempts.

Bug:19648073
Change-Id: Ia04eeb1aeb59fcb21de098193dfad832d5fbe3a2
parent c1a9436d
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -190,10 +190,8 @@ public class NetworkMonitor extends StateMachine {
    private int mReevaluateToken = 0;
    private static final int INVALID_UID = -1;
    private int mUidResponsibleForReeval = INVALID_UID;
    // When network has been evaluated this many times:
    //   1. report NETWORK_TEST_RESULT_INVALID
    //   2. stop blaming UID that requested re-evaluation for further attempts
    private static final int INITIAL_EVALUATION_ATTEMPTS = 3;
    // Stop blaming UID that requested re-evaluation after this many attempts.
    private static final int BLAME_FOR_EVALUATION_ATTEMPTS = 5;

    private final Context mContext;
    private final Handler mConnectivityServiceHandler;
@@ -438,12 +436,12 @@ public class NetworkMonitor extends StateMachine {
                    } else if (httpResponseCode >= 200 && httpResponseCode <= 399) {
                        transitionTo(mCaptivePortalState);
                    } else {
                        Message msg = obtainMessage(CMD_REEVALUATE, ++mReevaluateToken, 0);
                        final Message msg = obtainMessage(CMD_REEVALUATE, ++mReevaluateToken, 0);
                        sendMessageDelayed(msg, mReevaluateDelayMs);
                        if (mAttempts >= INITIAL_EVALUATION_ATTEMPTS) {
                        mConnectivityServiceHandler.sendMessage(obtainMessage(
                                EVENT_NETWORK_TESTED, NETWORK_TEST_RESULT_INVALID, 0,
                                mNetworkAgentInfo));
                        if (mAttempts >= BLAME_FOR_EVALUATION_ATTEMPTS) {
                            // Don't continue to blame UID forever.
                            TrafficStats.clearThreadStatsUid();
                        }