@Override public Scheduler getScheduler() { return 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(); } }); } } }
@OnClick(R.id.btn_start_operation) public void startLongOperation() { _progress.setVisibility(View.VISIBLE); _log("Button Clicked"); DisposableObserver<Boolean> d = _getDisposableObserver(); _getObservable() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(d); _disposables.add(d); }
void onRunSchedulerExampleButtonClicked() { disposables.add(sampleObservable() // Run on a background thread .subscribeOn(Schedulers.io()) // Be notified on the main thread .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(new DisposableObserver<String>() { @Override public void onComplete() { Log.d(TAG, "onComplete()"); } @Override public void onError(Throwable e) { Log.e(TAG, "onError()", e); } @Override public void onNext(String string) { Log.d(TAG, "onNext(" + string + ")"); } })); }
@OnClick(R.id.btn_demo_timeout_1_2s) public void onStart2sTask() { _disposable = _getEventCompletionObserver(); _getObservableTask_2sToComplete() .timeout(3, TimeUnit.SECONDS) .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(_disposable); }
@OnClick(R.id.btn_demo_timeout_1_5s) public void onStart5sTask() { _disposable = _getEventCompletionObserver(); _getObservableTask_5sToComplete() .timeout(3, TimeUnit.SECONDS, _onTimeoutObservable()) .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(_disposable); }
private Observable<Page<NotificationThread>> getPageAndNext(int i) { return ServiceGenerator.createService(getActivity(), NotificationService.class) .getNotifications(filters, i) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .flatMapObservable(response -> { Page<NotificationThread> page = response.body(); if (page.next() == null) { return Observable.just(page); } return Observable.just(page).concatWith(getPageAndNext(page.next())); }); }
private void loadMarkdown(String raw, Repository repo) { MarkdownLoader.load(getActivity(), raw, repo, imageGetter, true) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(rendered -> { bodyText.setText(rendered); showLoading(false); } , e -> ToastUtils.show(getActivity(), R.string.error_rendering_markdown)); } }
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); _setupLogger(); _disposable = RxTextView.textChangeEvents(_inputSearchText) .debounce(400, TimeUnit.MILLISECONDS) // default Scheduler is Computation .filter(changes -> isNotNullOrEmpty(changes.text().toString())) .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(_getSearchObserver()); }
@Override public void onItemClick(@NonNull Item item, @NonNull View view) { if (item instanceof UserItem) { User result = ((UserItem) item).getUser(); ServiceGenerator.createService(getContext(), UserService.class) .getUser(result.login()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> startActivity(UserViewActivity.createIntent(response.body()))); } }
@Override public void onItemClick(@NonNull Item item, @NonNull View view) { if (item instanceof ContributorItem) { User contributor = ((ContributorItem) item).getUser(); ServiceGenerator.createService(getContext(), UserService.class) .getUser(contributor.login()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> startActivity(UserViewActivity.createIntent(response.body()))); } }
@Override public void readNotification(@NonNull NotificationThread thread) { ServiceGenerator.createService(getActivity(), NotificationService.class) .markNotificationRead(thread.id()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> refresh(), Throwable::printStackTrace); }
private void forkRepository() { ServiceGenerator.createService(this, RepositoryForkService.class) .createFork(repository.owner().login(), repository.name()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> { Repository repo = response.body(); UriLauncherActivity.launchUri(this, Uri.parse(repo.htmlUrl())); }, e -> ToastUtils.show(this, R.string.error_forking_repository)); }
@Test public void mainThreadCallsThroughToHook() { final AtomicInteger called = new AtomicInteger(); final Scheduler newScheduler = new EmptyScheduler(); RxAndroidPlugins.setMainThreadSchedulerHandler(new Function<Scheduler, Scheduler>() { @Override public Scheduler apply(Scheduler scheduler) { called.getAndIncrement(); return newScheduler; } }); assertSame(newScheduler, AndroidSchedulers.mainThread()); assertEquals(1, called.get()); assertSame(newScheduler, AndroidSchedulers.mainThread()); assertEquals(2, called.get()); }
private void starGist() { ToastUtils.show(getActivity(), R.string.starring_gist); ServiceGenerator.createService(getActivity(), GistService.class) .starGist(gistId) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> starred = response.code() == 204, e -> ToastUtils.show((Activity) getContext(), e.getMessage())); }
private void unstarGist() { ToastUtils.show(getActivity(), R.string.unstarring_gist); ServiceGenerator.createService(getActivity(), GistService.class) .unstarGist(gistId) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> starred = !(response.code() == 204), e -> ToastUtils.show((Activity) getContext(), e.getMessage())); }
@Override protected void createComment(String comment) { CommentRequest commentRequest = CommentRequest.builder() .body(comment) .build(); ServiceGenerator.createService(this, IssueCommentService.class) .createIssueComment(repositoryId.owner().login(), repositoryId.name(), issueNumber, commentRequest) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> finish(response.body())); }
@Override public void readNotifications(@Nullable Repository repository) { ServiceGenerator.createService(getActivity(), NotificationService.class) .markAllRepositoryNotificationsRead(repository.owner().login(), repository.name(), NotificationReadRequest.builder().build()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> refresh(), Throwable::printStackTrace); }
private void checkFollowingUserStatus() { followingStatusChecked = false; ServiceGenerator.createService(this, UserFollowerService.class) .isFollowing(user.login()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> { isFollowing = response.code() == 204; followingStatusChecked = true; invalidateOptionsMenu(); }); } }
private void checkStarredRepositoryStatus() { starredStatusChecked = false; ServiceGenerator.createService(this, StarringService.class) .checkIfRepositoryIsStarred(repository.owner().login(), repository.name()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .as(AutoDisposeUtils.bindToLifecycle(this)) .subscribe(response -> { isStarred = response.code() == 204; starredStatusChecked = true; invalidateOptionsMenu(); }); }