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

Commit 57e383b1 authored by Robert Greenwalt's avatar Robert Greenwalt Committed by Android (Google) Code Review
Browse files

Merge "Don't send NetworkMonitor bcast until systemReady" into lmp-dev

parents eb0cefa9 fb68f8fb
Loading
Loading
Loading
Loading
+16 −0
Original line number Original line Diff line number Diff line
@@ -372,6 +372,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
     */
     */
    private static final int EVENT_EXPIRE_NET_TRANSITION_WAKELOCK = 24;
    private static final int EVENT_EXPIRE_NET_TRANSITION_WAKELOCK = 24;


    /**
     * Used internally to indicate the system is ready.
     */
    private static final int EVENT_SYSTEM_READY = 25;



    /** Handler used for internal events. */
    /** Handler used for internal events. */
    final private InternalHandler mHandler;
    final private InternalHandler mHandler;
@@ -1437,6 +1442,8 @@ public class ConnectivityService extends IConnectivityManager.Stub {
            final IntentFilter filter = new IntentFilter(Intent.ACTION_USER_PRESENT);
            final IntentFilter filter = new IntentFilter(Intent.ACTION_USER_PRESENT);
            mContext.registerReceiver(mUserPresentReceiver, filter);
            mContext.registerReceiver(mUserPresentReceiver, filter);
        }
        }

        mHandler.sendMessage(mHandler.obtainMessage(EVENT_SYSTEM_READY));
    }
    }


    private BroadcastReceiver mUserPresentReceiver = new BroadcastReceiver() {
    private BroadcastReceiver mUserPresentReceiver = new BroadcastReceiver() {
@@ -2270,6 +2277,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                    handleReleaseNetworkRequest((NetworkRequest) msg.obj, msg.arg1);
                    handleReleaseNetworkRequest((NetworkRequest) msg.obj, msg.arg1);
                    break;
                    break;
                }
                }
                case EVENT_SYSTEM_READY: {
                    for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
                        nai.networkMonitor.systemReady = true;
                    }
                    break;
                }
            }
            }
        }
        }
    }
    }
@@ -4108,6 +4121,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {
            new NetworkInfo(networkInfo), new LinkProperties(linkProperties),
            new NetworkInfo(networkInfo), new LinkProperties(linkProperties),
            new NetworkCapabilities(networkCapabilities), currentScore, mContext, mTrackerHandler,
            new NetworkCapabilities(networkCapabilities), currentScore, mContext, mTrackerHandler,
            networkMisc);
            networkMisc);
        synchronized (this) {
            nai.networkMonitor.systemReady = mSystemReady;
        }
        if (VDBG) log("registerNetworkAgent " + nai);
        if (VDBG) log("registerNetworkAgent " + nai);
        mHandler.sendMessage(mHandler.obtainMessage(EVENT_REGISTER_NETWORK_AGENT, nai));
        mHandler.sendMessage(mHandler.obtainMessage(EVENT_REGISTER_NETWORK_AGENT, nai));
    }
    }
+4 −0
Original line number Original line Diff line number Diff line
@@ -217,6 +217,8 @@ public class NetworkMonitor extends StateMachine {
    private String mServer;
    private String mServer;
    private boolean mIsCaptivePortalCheckEnabled = false;
    private boolean mIsCaptivePortalCheckEnabled = false;


    public boolean systemReady = false;

    private State mDefaultState = new DefaultState();
    private State mDefaultState = new DefaultState();
    private State mOfflineState = new OfflineState();
    private State mOfflineState = new OfflineState();
    private State mValidatedState = new ValidatedState();
    private State mValidatedState = new ValidatedState();
@@ -709,6 +711,8 @@ public class NetworkMonitor extends StateMachine {
            return;
            return;
        }
        }


        if (systemReady == false) return;

        Intent latencyBroadcast = new Intent(ACTION_NETWORK_CONDITIONS_MEASURED);
        Intent latencyBroadcast = new Intent(ACTION_NETWORK_CONDITIONS_MEASURED);
        switch (mNetworkAgentInfo.networkInfo.getType()) {
        switch (mNetworkAgentInfo.networkInfo.getType()) {
            case ConnectivityManager.TYPE_WIFI:
            case ConnectivityManager.TYPE_WIFI: