/** * Handle network available update on API level >= 21. */ private synchronized void onNetworkLost(Network network) { /* * We will have WIFI network available event before we lose mobile network. * This notification scheme is similar to the old connectivity receiver implementation. */ AppCenterLog.debug(LOG_TAG, "Network lost netId: " + network); mAvailableNetworks.remove(network); AppCenterLog.debug(LOG_TAG, "Available networks netIds: " + mAvailableNetworks); notifyNetworkStateUpdated(false); if (!mAvailableNetworks.isEmpty()) { notifyNetworkStateUpdated(true); } }
/** * Handle network state update on API level < 21. */ private synchronized void handleNetworkStateUpdate() { /* * This code is used to notify listeners only when the network state goes from * connected to disconnected and vice versa * (without duplicate calls, the sequence will be consistent). */ String previousNetworkType = mNetworkType; updateNetworkType(); boolean networkTypeChanged = previousNetworkType == null ? mNetworkType != null : !previousNetworkType.equals(mNetworkType); if (networkTypeChanged) { boolean connected = isNetworkConnected(); if (connected && previousNetworkType != null) { notifyNetworkStateUpdated(false); } notifyNetworkStateUpdated(connected); } }
/** * Handle network available update on API level >= 21. */ private synchronized void onNetworkAvailable(Network network) { AppCenterLog.debug(LOG_TAG, "Network available netId: " + network); mAvailableNetworks.add(network); AppCenterLog.debug(LOG_TAG, "Available networks netIds: " + mAvailableNetworks); /* * Trigger event only once if we gain a new network while one was already * available. Special logic is handled in network lost events. */ if (mAvailableNetworks.size() == 1) { notifyNetworkStateUpdated(true); } }