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); } }