code: @RequiresPermission(Manifest.permission.ACCESS_NETWORK_STATE)
    public static Observable<Connectivity> observeNetworkConnectivity(final Context context,
        final NetworkObservingStrategy strategy) {
      Preconditions.checkNotNull(context, "context == null");
      Preconditions.checkNotNull(strategy, "strategy == null");
      return strategy.observeNetworkConnectivity(context);
    }
docs: Observes network connectivity. Information about network state, type and typeName are contained
  in observed Connectivity object. Moreover, allows you to define NetworkObservingStrategy.
  
  @param context Context of the activity or an application
  @param strategy NetworkObserving strategy to be applied - you can use one of the existing
  strategies {@link PreLollipopNetworkObservingStrategy},
  {@link LollipopNetworkObservingStrategy} or create your own custom strategy
  @return RxJava Observable with Connectivity class containing information about network state,
  type and typeName