content: package <%= appPackage %>.util.schedulers;
  
  import android.support.annotation.NonNull;
  import android.support.annotation.Nullable;
  
  import io.reactivex.Scheduler;
  import io.reactivex.android.schedulers.AndroidSchedulers;
  import io.reactivex.schedulers.Schedulers;
  
  
  /**
   * Provides different types of schedulers.
   */
  public class SchedulerProvider implements BaseSchedulerProvider {
  
      @Nullable
      private static SchedulerProvider INSTANCE;
  
      // Prevent direct instantiation.
      private SchedulerProvider() {
      }
  
      public static synchronized SchedulerProvider getInstance() {
          if (INSTANCE == null) {
              INSTANCE = new SchedulerProvider();
          }
          return INSTANCE;
      }
  
      @Override
      @NonNull
      public Scheduler computation() {
          return Schedulers.computation();
      }
  
      @Override
      @NonNull
      public Scheduler io() {
          return Schedulers.io();
      }
  
      @Override
      @NonNull
      public Scheduler ui() {
          return AndroidSchedulers.mainThread();
      }
  }
  