1
0
mirror of https://github.com/TwidereProject/Twidere-Android synced 2025-02-17 04:00:48 +01:00

fixed home drawer toggle

This commit is contained in:
Mariotaku Lee 2015-09-05 12:52:10 +08:00
parent 54c8254040
commit 6f3d7af4c0

View File

@ -45,7 +45,6 @@ import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v4.widget.DrawerLayout;
import android.support.v4.widget.DrawerLayoutTrojan;
import android.support.v7.app.ThemedAppCompatDelegateFactory;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.KeyEvent;
@ -309,6 +308,37 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen
return super.handleKeyboardShortcutRepeat(handler, keyCode, repeatCount, event);
}
@Override
public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_MENU: {
final DrawerLayout drawer = mDrawerLayout;
if (isDrawerOpen()) {
drawer.closeDrawers();
} else {
drawer.openDrawer(Gravity.LEFT);
}
return true;
}
case KeyEvent.KEYCODE_BACK: {
final DrawerLayout drawer = mDrawerLayout;
if (isDrawerOpen()) {
drawer.closeDrawers();
} else {
onBackPressed();
}
return true;
}
}
return super.onKeyUp(keyCode, event);
}
private boolean isDrawerOpen() {
final DrawerLayout drawer = mDrawerLayout;
if (drawer == null) return false;
return drawer.isDrawerOpen(GravityCompat.START) || drawer.isDrawerOpen(GravityCompat.END);
}
/**
* Called when the context is first created.
*/
@ -384,31 +414,6 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen
initUnreadCount();
updateActionsButton();
updateSlidingMenuTouchMode();
getDelegate().setKeyListener(new ThemedAppCompatDelegateFactory.KeyListener() {
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return false;
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
// Steal MENU key event
switch (keyCode) {
case KeyEvent.KEYCODE_MENU: {
if (mDrawerLayout != null) {
if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
mDrawerLayout.closeDrawers();
} else {
mDrawerLayout.openDrawer(GravityCompat.START);
}
return true;
}
break;
}
}
return false;
}
});
if (savedInstanceState == null) {
if (refreshOnStart) {
@ -595,16 +600,6 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen
super.onDestroy();
}
@Override
public void onBackPressed() {
//TODO handle secondary drawer
if (mDrawerLayout != null && mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
mDrawerLayout.closeDrawers();
return;
}
super.onBackPressed();
}
@Override
public float getControlBarOffset() {
if (mTabColumns > 1) {