@Override public boolean test(@NonNull Connectivity connectivity) throws Exception { for (NetworkInfo.State state : states) { if (connectivity.state() == state) { return true; } } return false; } };
protected static Connectivity create(@NonNull Context context, ConnectivityManager manager) { Preconditions.checkNotNull(context, "context == null"); if (manager == null) { return create(); } final NetworkInfo networkInfo = manager.getActiveNetworkInfo(); return (networkInfo == null) ? create() : create(networkInfo); }
@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())); }
public static Connectivity create(@NonNull Context context) { Preconditions.checkNotNull(context, "context == null"); return create(context, getConnectivityManager(context)); }
@Test public void shouldCreateConnectivity() { // when Connectivity connectivity = Connectivity.create(); // then assertThat(connectivity).isNotNull(); assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.DISCONNECTED); assertThat(connectivity.detailedState()).isEqualTo(NetworkInfo.DetailedState.IDLE); assertThat(connectivity.type()).isEqualTo(Connectivity.UNKNOWN_TYPE); assertThat(connectivity.subType()).isEqualTo(Connectivity.UNKNOWN_SUB_TYPE); assertThat(connectivity.available()).isFalse(); assertThat(connectivity.failover()).isFalse(); assertThat(connectivity.roaming()).isFalse(); assertThat(connectivity.typeName()).isEqualTo(TYPE_NAME_NONE); assertThat(connectivity.subTypeName()).isEqualTo(TYPE_NAME_NONE); assertThat(connectivity.reason()).isEmpty(); assertThat(connectivity.extraInfo()).isEmpty(); }
@Test public void typeShouldBeEqualToGivenValue() throws Exception { // given final Connectivity connectivity = Connectivity.state(NetworkInfo.State.CONNECTED) .type(ConnectivityManager.TYPE_WIFI) .typeName(TYPE_NAME_WIFI) .build(); // note that unknown type is added initially by the ConnectivityPredicate#hasType method final int givenTypes[] = { connectivity.type(), Connectivity.UNKNOWN_TYPE }; // when final Predicate<Connectivity> equalTo = ConnectivityPredicate.hasType(givenTypes); final Boolean shouldBeEqualToGivenStatus = equalTo.test(connectivity); // then assertThat(shouldBeEqualToGivenStatus).isTrue(); }
@Test public void shouldReturnProperToStringValue() { // given final String expectedToString = "Connectivity{" + "state=DISCONNECTED, " + "detailedState=IDLE, " + "type=-1, " + "subType=-1, " + "available=false, " + "failover=false, " + "roaming=false, " + "typeName='NONE', " + "subTypeName='NONE', " + "reason='', " + "extraInfo=''}"; // when Connectivity connectivity = Connectivity.create(); // then assertThat(connectivity.toString()).isEqualTo(expectedToString); }
@Test public void connectivityShouldNotBeEqualToAnotherOne() { Connectivity connectivityOne = Connectivity.state(NetworkInfo.State.CONNECTED) .detailedState(NetworkInfo.DetailedState.CONNECTED) .type(ConnectivityManager.TYPE_WIFI) .build(); Connectivity connectivityTwo = Connectivity.state(NetworkInfo.State.DISCONNECTED) .detailedState(NetworkInfo.DetailedState.DISCONNECTED) .type(ConnectivityManager.TYPE_MOBILE) final boolean isAnotherConnectivityTheSame = connectivityOne.equals(connectivityTwo);
private Connectivity() { this(builder()); }
@Test public void twoDefaultObjectsShouldBeInTheSameBucket() { // given final Connectivity connectivityOne = Connectivity.create(); final Connectivity connectivityTwo = Connectivity.create(); // when boolean hashCodesAreEqual = connectivityOne.hashCode() == connectivityTwo.hashCode(); // then assertThat(hashCodesAreEqual).isTrue(); }
@Test public void theSameConnectivityObjectsShouldBeEqual() { // given final Connectivity connectivityOne = Connectivity.create(); final Connectivity connectivityTwo = Connectivity.create(); // when boolean objectsAreEqual = connectivityOne.equals(connectivityTwo); // then assertThat(objectsAreEqual).isTrue(); }
@Override public boolean test(@NonNull Connectivity connectivity) throws Exception { for (int type : extendedTypes) { if (connectivity.type() == type) { return true; } } return false; } };
public Connectivity build() { return new Connectivity(this); } }
@Test public void shouldCreateDefaultConnectivityWhenConnectivityManagerIsNull() { // given final Context context = RuntimeEnvironment.application.getApplicationContext(); final ConnectivityManager connectivityManager = null; // when Connectivity connectivity = Connectivity.create(context, connectivityManager); // then assertThat(connectivity.type()).isEqualTo(Connectivity.UNKNOWN_TYPE); assertThat(connectivity.subType()).isEqualTo(Connectivity.UNKNOWN_SUB_TYPE); assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.DISCONNECTED); assertThat(connectivity.detailedState()).isEqualTo(NetworkInfo.DetailedState.IDLE); assertThat(connectivity.available()).isFalse(); assertThat(connectivity.failover()).isFalse(); assertThat(connectivity.roaming()).isFalse(); assertThat(connectivity.typeName()).isEqualTo(TYPE_NAME_NONE); assertThat(connectivity.subTypeName()).isEqualTo(TYPE_NAME_NONE); assertThat(connectivity.reason()).isEmpty(); assertThat(connectivity.extraInfo()).isEmpty(); } }
public static Builder failover(boolean failover) { return builder().failover(failover); }
Connectivity connectivity = Connectivity.state(state) .detailedState(detailedState) .type(type) assertThat(connectivity.state()).isEqualTo(state); assertThat(connectivity.detailedState()).isEqualTo(detailedState); assertThat(connectivity.type()).isEqualTo(type); assertThat(connectivity.subType()).isEqualTo(subType); assertThat(connectivity.available()).isTrue(); assertThat(connectivity.failover()).isFalse(); assertThat(connectivity.roaming()).isTrue(); assertThat(connectivity.typeName()).isEqualTo(typeName); assertThat(connectivity.subTypeName()).isEqualTo(subTypeName); assertThat(connectivity.reason()).isEqualTo(reason); assertThat(connectivity.extraInfo()).isEqualTo(extraInfo);
@Override public void accept(Connectivity connectivity) throws Exception { // then assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.CONNECTED); } });
@Override public void onAvailable(Network network) { onNext(Connectivity.create(context)); }
public static Builder typeName(String typeName) { return builder().typeName(typeName); }
@Override public void accept(Connectivity connectivity) throws Exception { // then assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.CONNECTED); } });