/** A {@link Scheduler} which executes actions on {@code looper}. */ public static Scheduler from(Looper looper) { return from(looper, false); }
@Override public Worker createWorker() { return new HandlerWorker(handler, async); }
@Override public Scheduler getScheduler() { return AndroidSchedulers.mainThread(); } }
public HandlerSchedulerTest(boolean async) { this.scheduler = new HandlerScheduler(new Handler(Looper.getMainLooper()), async); }
@Override public Disposable scheduleDirect(Runnable run, long delay, TimeUnit unit) { if (run == null) throw new NullPointerException("run == null"); if (unit == null) throw new NullPointerException("unit == null"); run = RxJavaPlugins.onSchedule(run); ScheduledRunnable scheduled = new ScheduledRunnable(handler, run); handler.postDelayed(scheduled, unit.toMillis(delay)); return scheduled; }
@Override public void run() { super.run(); if (get() == 2) { throw new RuntimeException("Broken!"); } } };
@Override public void run() { super.run(); if (get() == 2) { throw new RuntimeException("Broken!"); } } };
@Override public void run() { super.run(); if (get() == 2) { disposableRef.get().dispose(); } } };
@Override public void run() { super.run(); if (get() == 2) { disposableRef.get().dispose(); } } };
@Override public Scheduler ui() { return AndroidSchedulers.mainThread(); }
@Test public void fromReturnsUsableScheduler() { assertNotNull(AndroidSchedulers.from(Looper.getMainLooper())); }
@Override public ObservableSource<T> apply(Observable<T> observable) { return observable.observeOn(AndroidSchedulers.mainThread()); } };
@Test public void fromNullThrows() { try { AndroidSchedulers.from(null); fail(); } catch (NullPointerException e) { assertEquals("looper == null", e.getMessage()); } }
@Override public ObservableSource<T> apply(Observable<T> observable) { return observable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } };
@Test public void fromNullThrowsTwoArg() { try { AndroidSchedulers.from(null, false); fail(); } catch (NullPointerException e) { assertEquals("looper == null", e.getMessage()); } }
@Override public Publisher<T> apply(Flowable<T> flowable) { return flowable.observeOn(AndroidSchedulers.mainThread()); } };
@Override public Publisher<T> apply(Flowable<T> flowable) { return flowable.observeOn(AndroidSchedulers.mainThread()); } };
@Override public Publisher<T> apply(Flowable<T> flowable) { return flowable.observeOn(AndroidSchedulers.mainThread()); } };
@Override public ObservableSource<T> apply(Observable<T> observable) { return observable.subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()); } };
@Override public final void dispose() { if (unsubscribed.compareAndSet(false, true)) { if (Looper.myLooper() == Looper.getMainLooper()) { onDispose(); } else { AndroidSchedulers.mainThread().scheduleDirect(new Runnable() { @Override public void run() { onDispose(); } }); } } }