diff --git a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java index bc0e37c7d..bbf1aca2a 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java @@ -251,13 +251,9 @@ public final class MainActivity extends StageActivity } } - public void setDrawerLayoutEnable(boolean enable) { + public void setDrawerLockMode(int lockMode, int edgeGravity) { if (mDrawerLayout != null) { - if (enable) { - mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); - } else { - mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); - } + mDrawerLayout.setDrawerLockMode(lockMode, edgeGravity); } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java index 232e9f440..13db7910f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java @@ -20,6 +20,8 @@ import android.os.Bundle; import android.support.annotation.IdRes; import android.support.annotation.Nullable; import android.support.v4.app.FragmentActivity; +import android.support.v4.widget.DrawerLayout; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -31,10 +33,10 @@ public abstract class BaseScene extends SceneFragment { private boolean mViewCreated; - public void setDrawerLayoutEnable(boolean enable) { + public void setDrawerLockMode(int lockMode, int edgeGravity) { FragmentActivity activity = getActivity(); if (activity instanceof MainActivity) { - ((MainActivity) activity).setDrawerLayoutEnable(enable); + ((MainActivity) activity).setDrawerLockMode(lockMode, edgeGravity); } } @@ -69,6 +71,10 @@ public abstract class BaseScene extends SceneFragment { } } + public boolean needShowLeftDrawer() { + return true; + } + public View onCreateDrawerView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return null; @@ -81,6 +87,13 @@ public abstract class BaseScene extends SceneFragment { public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mViewCreated = true; + + // Update left drawer locked state + if (needShowLeftDrawer()) { + setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.LEFT); + } else { + setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.LEFT); + } } @Override diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java index 41cf98533..2a328ae6b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java @@ -29,6 +29,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; @@ -994,7 +995,8 @@ public class DownloadsScene extends ToolbarScene mFabLayout.setExpanded(true); } // Lock drawer - setDrawerLayoutEnable(false); + setDrawerLockMode(Gravity.LEFT, DrawerLayout.LOCK_MODE_LOCKED_CLOSED); + setDrawerLockMode(Gravity.RIGHT, DrawerLayout.LOCK_MODE_LOCKED_CLOSED); } @Override @@ -1006,7 +1008,8 @@ public class DownloadsScene extends ToolbarScene mFabLayout.setExpanded(false); } // Unlock drawer - setDrawerLayoutEnable(true); + setDrawerLockMode(Gravity.LEFT, DrawerLayout.LOCK_MODE_UNLOCKED); + setDrawerLockMode(Gravity.RIGHT, DrawerLayout.LOCK_MODE_UNLOCKED); } @Override diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java index b00db5ee2..163b56357 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java @@ -27,6 +27,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; @@ -654,7 +655,8 @@ public class FavoritesScene extends BaseScene implements mHelper.setRefreshLayoutEnable(false); } // Lock drawer - setDrawerLayoutEnable(false); + setDrawerLockMode(Gravity.LEFT, DrawerLayout.LOCK_MODE_LOCKED_CLOSED); + setDrawerLockMode(Gravity.RIGHT, DrawerLayout.LOCK_MODE_LOCKED_CLOSED); } @Override @@ -667,7 +669,8 @@ public class FavoritesScene extends BaseScene implements mHelper.setRefreshLayoutEnable(true); } // Unlock drawer - setDrawerLayoutEnable(true); + setDrawerLockMode(Gravity.LEFT, DrawerLayout.LOCK_MODE_UNLOCKED); + setDrawerLockMode(Gravity.RIGHT, DrawerLayout.LOCK_MODE_UNLOCKED); } @Override diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/LoginScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/LoginScene.java index d3ba64d86..ccbc1d06b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/LoginScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/LoginScene.java @@ -70,6 +70,11 @@ public final class LoginScene extends BaseScene implements EditText.OnEditorActi private int mRequestId; + @Override + public boolean needShowLeftDrawer() { + return false; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/ProgressScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/ProgressScene.java index e11ce3214..504a280ef 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/ProgressScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/ProgressScene.java @@ -64,6 +64,11 @@ public final class ProgressScene extends BaseScene implements View.OnClickListen private TextView mTipText; private ViewTransition mViewTransition; + @Override + public boolean needShowLeftDrawer() { + return false; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/WarningScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/WarningScene.java index 5063337d5..74303ea86 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/WarningScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/WarningScene.java @@ -46,6 +46,11 @@ public final class WarningScene extends BaseScene implements View.OnClickListene @ViewLifeCircle private View mOk; + @Override + public boolean needShowLeftDrawer() { + return false; + } + @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,