package com.fastaccess.ui.modules.repos;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import com.fastaccess.data.dao.model.Repo;
import com.fastaccess.ui.base.mvp.BaseMvp;
import com.fastaccess.ui.modules.filter.chooser.FilterAddChooserListener;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import it.sephiroth.android.library.bottomnavigation.BottomNavigation;
/**
* Created by Kosh on 09 Dec 2016, 4:16 PM
*/
public interface RepoPagerMvp {
int CODE = 0;
int ISSUES = 1;
int PULL_REQUEST = 2;
int PROFILE = 3;
@IntDef({
CODE,
ISSUES,
PULL_REQUEST,
PROFILE
})
@Retention(RetentionPolicy.SOURCE) @interface RepoNavigationType {}
interface View extends BaseMvp.FAView, FilterAddChooserListener {
void onNavigationChanged(@RepoNavigationType int navType);
void onFinishActivity();
void onInitRepo();
void onRepoWatched(boolean isWatched);
void onRepoStarred(boolean isStarred);
void onRepoForked(boolean isForked);
void onRepoPinned(boolean isPinned);
void onEnableDisableWatch(boolean isEnabled);
void onEnableDisableStar(boolean isEnabled);
void onEnableDisableFork(boolean isEnabled);
void onChangeWatchedCount(boolean isWatched);
void onChangeStarCount(boolean isStarred);
void onChangeForkCount(boolean isForked);
boolean hasUserInteractedWithView();
}
interface Presenter extends BaseMvp.FAPresenter, BottomNavigation.OnMenuItemSelectionListener {
void onActivityCreate(@NonNull String repoId, @NonNull String login, @RepoPagerMvp.RepoNavigationType int navTyp);
@NonNull String repoId();
@NonNull String login();
@Nullable Repo getRepo();
boolean isWatched();
boolean isStarred();
boolean isForked();
boolean isRepoOwner();
void onWatch();
void onStar();
void onFork();
void onCheckWatching();
void onCheckStarring();
void onWorkOffline();
void onModuleChanged(@NonNull FragmentManager fragmentManager, @RepoNavigationType int type);
void onShowHideFragment(@NonNull FragmentManager fragmentManager, @NonNull Fragment toShow, @NonNull Fragment toHide);
void onAddAndHide(@NonNull FragmentManager fragmentManager, @NonNull Fragment toAdd, @NonNull Fragment toHide);
void onDeleteRepo();
void onPinUnpinRepo();
}
interface TabsBadgeListener {
void onSetBadge(int tabIndex, int count);
}
}