/*
 * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
 */
package kr.co.zumo.app.lifeplus.network;

import android.content.Context;

import io.reactivex.Observable;
import io.reactivex.Single;

/**
 * NetworkWatcher
 * <pre>
 * </pre>
 *
 * @author 민효동
 * @version 1.0
 * @history 민효동   [2018. 9. 19.]   [최초 작성]
 * @since 2018. 9. 19.
 */
public class NetworkWatcher {

  /**
   * 네트워크 장치 연결과 인터넷 연결이 됐는지 확인한다.
   * - Single 을 반환하므로 subscribe 하여 boolean 값을 참고하여 진행한다.
   *
   * @param context
   * @return rx Single with Boolean
   */
  public static Single<Boolean> check(Context context) {
    return Single.fromCallable(() -> true);
  }

  /**
   * 네트워크 장치 연결과 인터넷 연결이 됐는지 감시한다.
   * - 변경이 있을 때 발행한다.
   *
   * @param networkStatus
   * @return rx Observable with Boolean
   */
  public static Single<Boolean> check(NetworkStatus networkStatus) {
    return Single.fromCallable(() -> true);
  }

  /**
   * 네트워크 장치 연결과 인터넷 연결이 됐는지 감시한다.
   * - 변경이 있을 때 발행한다.
   *
   * @param context
   * @return rx Observable with Boolean
   */
  public static Observable<Boolean> watch(Context context) {
    return Observable.create(emitter -> emitter.onNext(true));
  }

  /**
   * 네트워크 장치 연결과 인터넷 연결이 됐는지 감시한다.
   * - 변경이 있을 때 발행한다.
   *
   * @param network
   * @param internet
   * @return rx Observable with Boolean
   */
  public static Observable<Boolean> watch(Observable<Boolean> network, Observable<Boolean> internet) {
    return Observable.create(emitter -> emitter.onNext(true));
  }
}
