package com.fastaccess.ui.modules.main;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.NavigationView;
import android.support.design.widget.NavigationView.OnNavigationItemSelectedListener;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import com.fastaccess.ui.base.mvp.BaseMvp;
import com.google.android.gms.appinvite.AppInviteInvitationResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.ResultCallback;
import com.google.firebase.auth.FirebaseUser;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import it.sephiroth.android.library.bottomnavigation.BottomNavigation;
import it.sephiroth.android.library.bottomnavigation.BottomNavigation.OnMenuItemSelectionListener;
/**
* Created by Kosh on 10 Oct 2016, 10:56 PM
*/
public interface MainMvp {
int DEVICE_APPS = 0;
int FOLDERS = 1;
int SELECTED_APPS = 2;
@IntDef({
DEVICE_APPS,
FOLDERS,
SELECTED_APPS,
})
@Retention(RetentionPolicy.SOURCE) @interface NavigationType {}
interface View extends GoogleApiClient.OnConnectionFailedListener {
void onNavigationChanged(@NavigationType int navType);
void onOpenDrawer();
void onCloseDrawer();
void onOpenSettings();
void onStartService();
void onStopService();
void onShowBadge(@IdRes int itemId);
void onHideBadge(@IdRes int itemId);
void onSelectMenuItem(@IdRes int itemId);
void onBackup();
void onRestore();
void onShareBackup();
void onRestoreFromUserId(@NonNull String userId);
void onOpenRate();
}
interface Presenter extends BaseMvp.FAPresenter<View>, OnNavigationItemSelectedListener,
OnMenuItemSelectionListener, ResultCallback<AppInviteInvitationResult> {
void onActivityStarted(@Nullable Bundle savedInstance, @NonNull MainView mainView,
@NonNull BottomNavigation bottomNavigation,
@NonNull NavigationView navigationView);
boolean canBackPress(@NonNull DrawerLayout drawerLayout);
void onModuleChanged(@NonNull FragmentManager fragmentManager, @NavigationType 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 onFilterResult(@NonNull FragmentManager supportFragmentManager, @Nullable String text);
void onCreateNewFolder(@NonNull FragmentManager supportFragmentManager);
void onHandleShortcuts(@NonNull MainView mainView, @Nullable Intent intent);
void onBackupRestore(int backupType, @NonNull MainView mainView);
void onShareUserBackup(@NonNull MainView mainView, @NonNull FirebaseUser currentUser);
}
}