@Override protected void onResume() { super.onResume(); networkDisposable = ReactiveNetwork.observeNetworkConnectivity(getApplicationContext()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(connectivity -> { Log.d(TAG, connectivity.toString()); final NetworkInfo.State state = connectivity.state(); final String name = connectivity.typeName(); tvConnectivityStatus.setText(String.format("state: %s, typeName: %s", state, name)); }); internetDisposable = ReactiveNetwork.observeInternetConnectivity() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(isConnected -> tvInternetStatus.setText(isConnected.toString())); }
private void networkConnectivityObservableShouldNotBeNull() { // given final Context context = RuntimeEnvironment.application; // when Observable<Connectivity> observable; observable = ReactiveNetwork.observeNetworkConnectivity(context); // then assertThat(observable).isNotNull(); }
@Test(expected = IllegalArgumentException.class) public void observeNetworkConnectivityShouldThrowAnExceptionForNullStrategy() { // given final Context context = RuntimeEnvironment.application; final NetworkObservingStrategy strategy = null; // when ReactiveNetwork.observeNetworkConnectivity(context, strategy); // then an exception is thrown }
@Test(expected = IllegalArgumentException.class) public void observeNetworkConnectivityShouldThrowAnExceptionForNullContext() { // given final Context context = null; final NetworkObservingStrategy strategy = new LollipopNetworkObservingStrategy(); // when ReactiveNetwork.observeNetworkConnectivity(context, strategy); // then an exception is thrown }
@Test public void observeNetworkConnectivityWithStrategyShouldNotBeNull() { // given final Context context = RuntimeEnvironment.application; NetworkObservingStrategy strategy = new LollipopNetworkObservingStrategy(); // when Observable<Connectivity> observable; observable = ReactiveNetwork.observeNetworkConnectivity(context, strategy); // then assertThat(observable).isNotNull(); }
@Test public void observeNetworkConnectivityShouldBeConnectedOnStartWhenNetworkIsAvailable() { // given final Application context = RuntimeEnvironment.application; // when Connectivity connectivity = ReactiveNetwork.observeNetworkConnectivity(context).blockingFirst(); // then assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.CONNECTED); }
/** * Observes network connectivity. Information about network state, type and typeName are contained * in * observed Connectivity object. * * @param context Context of the activity or an application * @return RxJava Observable with Connectivity class containing information about network state, * type and typeName */ @RequiresPermission(Manifest.permission.ACCESS_NETWORK_STATE) public static Observable<Connectivity> observeNetworkConnectivity(final Context context) { final NetworkObservingStrategy strategy; if (Preconditions.isAtLeastAndroidMarshmallow()) { strategy = new MarshmallowNetworkObservingStrategy(); } else if (Preconditions.isAtLeastAndroidLollipop()) { strategy = new LollipopNetworkObservingStrategy(); } else { strategy = new PreLollipopNetworkObservingStrategy(); } return observeNetworkConnectivity(context, strategy); }