@Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(INTENT)) { boolean connectedToInternet = intent.getBooleanExtra(INTENT_EXTRA, false); onPostReceive(connectedToInternet, context); } }
public void onPostReceive(boolean connectedToInternet, Context context) { ConnectivityStatus connectivityStatus = (connectedToInternet) ? ConnectivityStatus.WIFI_CONNECTED_HAS_INTERNET : ConnectivityStatus.WIFI_CONNECTED_HAS_NO_INTERNET; if (statusNotChanged(connectivityStatus)) { return; } // we are checking if device is connected to WiFi again, // because connectivityStatus may change in a short period of time // after receiving it if (context != null && !isConnectedToWifi(context)) { return; } postConnectivityChanged(connectivityStatus); }
@Before public void setUp() throws Exception { this.busWrapper = new OttoBusWrapper(new Bus(ThreadEnforcer.ANY)); Logger logger = Mockito.mock(Logger.class); Context context = Mockito.mock(Context.class); this.receiver = new InternetConnectionChangeReceiver(busWrapper, logger, context); this.connectivityChangeEvents = new ArrayList<>(); }
/** * Initializes NetworkEvents object. * * @param context Android context * @param busWrapper Wrapper fo event bus * @param logger message logger (NetworkEventsLogger logs messages to LogCat) */ public NetworkEvents(Context context, BusWrapper busWrapper, Logger logger) { checkNotNull(context, "context == null"); checkNotNull(busWrapper, "busWrapper == null"); checkNotNull(logger, "logger == null"); this.context = context; this.onlineChecker = new OnlineCheckerImpl(context); this.networkConnectionChangeReceiver = new NetworkConnectionChangeReceiver(busWrapper, logger, context, onlineChecker); this.internetConnectionChangeReceiver = new InternetConnectionChangeReceiver(busWrapper, logger, context); this.wifiSignalStrengthChangeReceiver = new WifiSignalStrengthChangeReceiver(busWrapper, logger, context); }
private void onPostReceiveAndSleep(boolean connectedToInternet) throws InterruptedException { // in this case, for unit tests, we should pass Context as null in onPostReceive(...) // to avoid non-deterministic calls to Android SDK receiver.onPostReceive(connectedToInternet, null); Thread.sleep(2000); // wait a while for async operation }