package com.pluscubed.plustimer.ui.currentsession; import com.pluscubed.plustimer.base.PresenterFactory; import com.pluscubed.plustimer.model.PuzzleType; import com.pluscubed.plustimer.ui.basedrawer.DrawerPresenter; import rx.android.schedulers.AndroidSchedulers; public class CurrentSessionPresenter extends DrawerPresenter<CurrentSessionView> { @Override public void onViewAttached(CurrentSessionView view) { super.onViewAttached(view); /*PuzzleType.initialize(view.getContextCompat()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Completable.CompletableSubscriber() { @SuppressWarnings("ConstantConditions") @Override public void onCompleted() { if (isViewAttached()) { if (getView().getCurrentSessionTimerFragment() != null && getView().getCurrentSessionTimerFragment().getPresenter() != null) { getView().getCurrentSessionTimerFragment().getPresenter().initializeView(); } if (getView().getSolveListFragment() != null && getView().getSolveListFragment().getPresenter() != null) { getView().getSolveListFragment().getPresenter() .initializeView(PuzzleType.getCurrentId(), PuzzleType.getCurrent().getCurrentSessionId()); } getView().supportInvalidateOptionsMenu(); } } @Override public void onError(Throwable e) { if (isViewAttached()) { //noinspection ConstantConditions Toast.makeText(getView().getContextCompat(), e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); } } @Override public void onSubscribe(Subscription d) { } });*/ PuzzleType.getEnabledPuzzleTypes(view.getContextCompat()) .toList() .observeOn(AndroidSchedulers.mainThread()) .subscribe(list -> { String id = PuzzleType.getCurrentId(getView().getContextCompat()); int position = 0; for (int i = 0; i < list.size(); i++) { PuzzleType type = list.get(i); if (type.getId().equals(id)) { position = i; break; } } getView().initPuzzleSpinner(list, position); }); } public void onPuzzleSelected(PuzzleType newPuzzleType) { if (!isViewAttached()) { return; } PuzzleType.setCurrent(getView().getContextCompat(), newPuzzleType.getId()) .subscribe(); } public void onCreateOptionsMenu() { if (!isViewAttached()) { return; } } public static class Factory implements PresenterFactory<CurrentSessionPresenter> { @Override public CurrentSessionPresenter create() { return new CurrentSessionPresenter(); } } }