package com.fastaccess.ui.base.mvp;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
import com.fastaccess.ui.widgets.dialog.MessageDialogView;
import net.grandcentrix.thirtyinch.TiView;
import net.grandcentrix.thirtyinch.callonmainthread.CallOnMainThread;
import rx.Observable;
import rx.Subscription;
import rx.functions.Action1;
/**
* Created by Kosh on 25 May 2016, 9:09 PM
*/
public interface BaseMvp {
interface FAView extends TiView, MessageDialogView.MessageDialogViewActionCallback {
@CallOnMainThread void showProgress(@StringRes int resId);
@CallOnMainThread void hideProgress();
@CallOnMainThread void showMessage(@StringRes int titleRes, @StringRes int msgRes);
@CallOnMainThread void showMessage(@NonNull String titleRes, @NonNull String msgRes);
@CallOnMainThread void showErrorMessage(@NonNull String msgRes);
boolean isLoggedIn();
void onRequireLogin();
void onLogoutPressed();
void onThemeChanged();
void onOpenSettings();
}
interface FAPresenter {
void manageSubscription(@Nullable Subscription... subscription);
boolean isApiCalled();
void onSubscribed();
void onError(@NonNull Throwable throwable);
<T> void makeRestCall(@NonNull Observable<T> observable, @NonNull Action1<T> onNext);
}
interface PaginationListener<P> {
int getCurrentPage();
int getPreviousTotal();
void setCurrentPage(int page);
void setPreviousTotal(int previousTotal);
void onCallApi(int page, @Nullable P parameter);
}
}