Disable right drawer when scroll FastScroller

This commit is contained in:
seven332 committed 2016-03-08 12:34:06 +08:00
1 parent f674e2331e
commit 2e5efa1cd6
5 files changed
+56 -11

No files matched your search

@@ -310,6 +310,14 @@ public final class MainActivity extends StageActivity
}
}
public int getDrawerLockMode(int edgeGravity) {
if (mDrawerLayout != null) {
return mDrawerLayout.getDrawerLockMode(edgeGravity);
} else {
return DrawerLayout.LOCK_MODE_UNLOCKED;
}
}
public void setDrawerLockMode(int lockMode, int edgeGravity) {
if (mDrawerLayout != null) {
mDrawerLayout.setDrawerLockMode(lockMode, edgeGravity);
@@ -41,6 +41,15 @@ public abstract class BaseScene extends SceneFragment {
}
}
public int getDrawerLockMode(int edgeGravity) {
FragmentActivity activity = getActivity();
if (activity instanceof MainActivity) {
return ((MainActivity) activity).getDrawerLockMode(edgeGravity);
} else {
return DrawerLayout.LOCK_MODE_UNLOCKED;
}
}
public void openDrawer(int drawerGravity) {
FragmentActivity activity = getActivity();
if (activity instanceof MainActivity) {
@@ -90,7 +90,7 @@ public class DownloadsScene extends ToolbarScene
implements DownloadManager.DownloadInfoListener,
EasyRecyclerView.OnItemClickListener,
EasyRecyclerView.OnItemLongClickListener,
FabLayout.OnClickFabListener {
FabLayout.OnClickFabListener, FastScroller.OnDragHandlerListener {
public static final String KEY_ACTION = "action";
private static final String KEY_LABEL = "label";
@@ -237,6 +237,7 @@ public class DownloadsScene extends ToolbarScene
HandlerDrawable drawable = new HandlerDrawable();
drawable.setColor(ResourcesUtils.getAttrColor(getContext(), R.attr.colorAccent));
fastScroller.setHandlerDrawable(drawable);
fastScroller.setOnDragHandlerListener(this);
mFabLayout.setExpanded(false, false);
mFabLayout.setHidePrimaryFab(true);
@@ -404,6 +405,20 @@ public class DownloadsScene extends ToolbarScene
}
}
@Override
public void onStartDragHandler() {
// Lock right drawer
setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT);
}
@Override
public void onEndDragHandler() {
// Restore right drawer
if (null != mRecyclerView && !mRecyclerView.isInCustomChoice()) {
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.RIGHT);
}
}
@Override
public boolean onItemClick(EasyRecyclerView parent, View view, int position, long id) {
EasyRecyclerView recyclerView = mRecyclerView;
@@ -1009,8 +1024,8 @@ public class DownloadsScene extends ToolbarScene
mFabLayout.setExpanded(true);
}
// Lock drawer
setDrawerLockMode(Gravity.LEFT, DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
setDrawerLockMode(Gravity.RIGHT, DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.LEFT);
setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT);
}
@Override
@@ -1022,8 +1037,8 @@ public class DownloadsScene extends ToolbarScene
mFabLayout.setExpanded(false);
}
// Unlock drawer
setDrawerLockMode(Gravity.LEFT, DrawerLayout.LOCK_MODE_UNLOCKED);
setDrawerLockMode(Gravity.RIGHT, DrawerLayout.LOCK_MODE_UNLOCKED);
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.LEFT);
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.RIGHT);
}
@Override
@@ -146,7 +146,6 @@ public class FavoritesScene extends BaseScene implements
@WholeLifeCircle
private FavListUrlBuilder mUrlBuilder;
public int[] countArray; // Size 10
public int current; // -1 for error
public int limit; // -1 for error
@@ -453,11 +452,18 @@ public class FavoritesScene extends BaseScene implements
@Override
@Implemented(FastScroller.OnDragHandlerListener.class)
public void onStartDragHandler() {
// Lock right drawer
setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT);
}
@Override
@Implemented(FastScroller.OnDragHandlerListener.class)
public void onEndDragHandler() {
// Restore right drawer
if (null != mRecyclerView && !mRecyclerView.isInCustomChoice()) {
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.RIGHT);
}
if (mSearchBarMover != null) {
mSearchBarMover.returnSearchBarPosition();
}
@@ -654,8 +660,8 @@ public class FavoritesScene extends BaseScene implements
mHelper.setRefreshLayoutEnable(false);
}
// Lock drawer
setDrawerLockMode(Gravity.LEFT, DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
setDrawerLockMode(Gravity.RIGHT, DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.LEFT);
setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT);
}
@Override
@@ -668,8 +674,8 @@ public class FavoritesScene extends BaseScene implements
mHelper.setRefreshLayoutEnable(true);
}
// Unlock drawer
setDrawerLockMode(Gravity.LEFT, DrawerLayout.LOCK_MODE_UNLOCKED);
setDrawerLockMode(Gravity.RIGHT, DrawerLayout.LOCK_MODE_UNLOCKED);
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.LEFT);
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.RIGHT);
}
@Override
@@ -30,6 +30,7 @@ import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
@@ -653,10 +654,16 @@ public final class GalleryListScene extends BaseScene
}
@Override
public void onStartDragHandler() {}
public void onStartDragHandler() {
// Lock right drawer
setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT);
}
@Override
public void onEndDragHandler() {
// Restore right drawer
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.RIGHT);
mSearchBarMover.returnSearchBarPosition();
}