Request left drawer locked state after scene view created

This commit is contained in:
seven332 committed 2016-03-06 20:31:59 +08:00
1 parent f213254e2b
commit 5b85a9ddef
7 files changed
+42 -12

No files matched your search

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