package com.jude.swipbackhelper;
import android.app.Activity;
import java.util.Stack;
/**
* 滑动的全局管理类
*/
public class SwipeBackHelper {
private static final Stack<SwipeBackPage> mPageStack = new Stack<>();
private static SwipeBackPage findHelperByActivity(Activity activity){
for (SwipeBackPage swipeBackPage : mPageStack) {
if (swipeBackPage.mActivity == activity) return swipeBackPage;
}
return null;
}
public static SwipeBackPage getCurrentPage(Activity activity){
SwipeBackPage page;
if ((page = findHelperByActivity(activity)) == null){
throw new RuntimeException("You Should call SwipeBackHelper.onCreate(activity) first");
}
return page;
}
public static void onCreate(Activity activity) {
SwipeBackPage page;
if ((page = findHelperByActivity(activity)) == null){
page = mPageStack.push(new SwipeBackPage(activity));
}
page.onCreate();
}
public static void onPostCreate(Activity activity){
SwipeBackPage page;
if ((page = findHelperByActivity(activity)) == null){
throw new RuntimeException("You Should call SwipeBackHelper.onCreate(activity) first");
}
page.onPostCreate();
}
public static void onDestroy(Activity activity){
SwipeBackPage page;
if ((page = findHelperByActivity(activity)) == null){
throw new RuntimeException("You Should call SwipeBackHelper.onCreate(activity) first");
}
mPageStack.remove(page);
page.mActivity=null;
}
public static void finish(Activity activity){
SwipeBackPage page;
if ((page = findHelperByActivity(activity)) == null){
throw new RuntimeException("You Should call SwipeBackHelper.onCreate(activity) first");
}
page.scrollToFinishActivity();
}
static SwipeBackPage getPrePage(SwipeBackPage activity){
int index = mPageStack.indexOf(activity);
if (index>0)return mPageStack.get(index-1);
else return null;
}
}