package org.aisen.weibo.sina.ui.activity.base; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.view.View; import org.aisen.android.ui.activity.basic.BaseActivityHelper; import org.aisen.weibo.sina.base.AppSettings; import org.aisen.weibo.sina.support.utils.ThemeUtils; import org.aisen.weibo.sina.ui.widget.swipeback.SwipeBackActivityBase; import org.aisen.weibo.sina.ui.widget.swipeback.SwipeBackActivityHelper; import org.aisen.weibo.sina.ui.widget.swipeback.SwipeBackLayout; import org.aisen.weibo.sina.ui.widget.swipeback.Utils; /** * Created by wangdan on 15/4/14. */ public class AisenActivityHelper extends BaseActivityHelper implements SwipeBackActivityBase { public boolean swipeback = true; private SwipeBackActivityHelper mHelper; private SwipeBackLayout mSwipeBackLayout; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getActivity() instanceof EnableSwipeback) { swipeback = ((EnableSwipeback) getActivity()).canSwipe(); } // swipeback = false; if (swipeback) { mHelper = new SwipeBackActivityHelper(getActivity()); mHelper.onActivityCreate(); mSwipeBackLayout = getSwipeBackLayout(); mSwipeBackLayout.addSwipeListener(new SwipeBackLayout.SwipeListener() { @Override public void onScrollStateChange(int state, float scrollPercent) { } @Override public void onEdgeTouch(int edgeFlag) { } @Override public void onScrollOverThreshold() { } }); } } @Override public void onResume() { super.onResume(); if (swipeback) setSwipebackEdgeMode(); setScreenOrientation(); } @Override public void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); if (swipeback) mHelper.onPostCreate(); } @Override public View findViewById(int id) { if (swipeback) { View v = super.findViewById(id); if (v == null && mHelper != null) return mHelper.findViewById(id); return v; } return null; } @Override public SwipeBackLayout getSwipeBackLayout() { return mHelper.getSwipeBackLayout(); } @Override public void setSwipeBackEnable(boolean enable) { getSwipeBackLayout().setEnableGesture(enable); } @Override public void scrollToFinishActivity() { Utils.convertActivityToTranslucent(getActivity()); getSwipeBackLayout().scrollToFinishActivity(); } public void setSwipebackEdgeMode() { if (swipeback) { int mode = AppSettings.getSwipebackEdgeMode(); switch (mode) { case 0: mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT); break; case 1: mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_RIGHT); break; case 2: mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_BOTTOM); break; case 3: mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_ALL); break; } } } @Override protected int configTheme() { return ThemeUtils.themeArr[AppSettings.getThemeColor()][0]; } private void setScreenOrientation() { // 开启屏幕旋转 if (AppSettings.isScreenRotate()) { getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); } else { if (getActivity().getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_SENSOR) getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } } public interface EnableSwipeback { boolean canSwipe(); } }