Merge "Don't wait for drawer is idle to switch view" into ub-contactsdialer-h-dev
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index 79d0fe2..b786940 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -24,6 +24,7 @@
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.os.Bundle;
+import android.os.Handler;
import android.provider.ContactsContract.Intents;
import android.support.annotation.LayoutRes;
import android.support.design.widget.NavigationView;
@@ -112,11 +113,11 @@
private static final String KEY_NEW_GROUP_ACCOUNT = "newGroupAccount";
private static final String KEY_CONTACTS_VIEW = "contactsView";
+ private static final long DRAWER_CLOSE_DELAY = 300L;
+
protected ContactsView mCurrentView;
private class ContactsActionBarDrawerToggle extends ActionBarDrawerToggle {
-
- private Runnable mRunnable;
private boolean mMenuClickedBefore = SharedPreferenceUtil.getHamburgerMenuClickedBefore(
ContactsDrawerActivity.this);
@@ -177,16 +178,8 @@
if (newState != DrawerLayout.STATE_IDLE) {
updateStatusBarBackground();
}
- if (mRunnable != null && newState == DrawerLayout.STATE_IDLE) {
- mRunnable.run();
- mRunnable = null;
- }
initializeAssistantNewBadge();
}
-
- public void runWhenIdle(Runnable runnable) {
- mRunnable = runnable;
- }
}
protected ContactListFilterController mContactListFilterController;
@@ -437,14 +430,9 @@
menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
- mToggle.runWhenIdle(new Runnable() {
- @Override
- public void run() {
- onGroupMenuItemClicked(groupListItem.getGroupId(),
- groupListItem.getTitle());
- updateMenuSelection(menuItem);
- }
- });
+ onGroupMenuItemClicked(groupListItem.getGroupId(),
+ groupListItem.getTitle());
+ updateMenuSelection(menuItem);
mDrawer.closeDrawer(GravityCompat.START);
return true;
}
@@ -464,12 +452,7 @@
menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
- mToggle.runWhenIdle(new Runnable() {
- @Override
- public void run() {
- onCreateGroupMenuItemClicked();
- }
- });
+ onCreateGroupMenuItemClicked();
mDrawer.closeDrawer(GravityCompat.START);
return true;
}
@@ -562,13 +545,8 @@
menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
- mToggle.runWhenIdle(new Runnable() {
- @Override
- public void run() {
- onFilterMenuItemClicked(intent);
- updateMenuSelection(menuItem);
- }
- });
+ onFilterMenuItemClicked(intent);
+ updateMenuSelection(menuItem);
mDrawer.closeDrawer(GravityCompat.START);
return true;
}
@@ -614,28 +592,29 @@
@Override
public boolean onNavigationItemSelected(final MenuItem item) {
final int id = item.getItemId();
- mToggle.runWhenIdle(new Runnable() {
- @Override
- public void run() {
- if (id == R.id.nav_settings) {
+
+ if (id == R.id.nav_settings) {
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
startActivity(createPreferenceIntent());
- } else if (id == R.id.nav_help) {
- HelpUtils.launchHelpAndFeedbackForMainScreen(ContactsDrawerActivity.this);
- } else if (id == R.id.nav_all_contacts) {
- switchToAllContacts();
- } else if (id == R.id.nav_assistant) {
- if (!isAssistantView()) {
- launchAssistant();
- updateMenuSelection(item);
- }
- } else if (item.getIntent() != null) {
- ImplicitIntentsUtil.startActivityInApp(ContactsDrawerActivity.this,
- item.getIntent());
- } else {
- Log.w(TAG, "Unhandled navigation view item selection");
}
+ }, DRAWER_CLOSE_DELAY);
+ } else if (id == R.id.nav_help) {
+ HelpUtils.launchHelpAndFeedbackForMainScreen(ContactsDrawerActivity.this);
+ } else if (id == R.id.nav_all_contacts) {
+ switchToAllContacts();
+ } else if (id == R.id.nav_assistant) {
+ if (!isAssistantView()) {
+ launchAssistant();
+ updateMenuSelection(item);
}
- });
+ } else if (item.getIntent() != null) {
+ ImplicitIntentsUtil.startActivityInApp(ContactsDrawerActivity.this,
+ item.getIntent());
+ } else {
+ Log.w(TAG, "Unhandled navigation view item selection");
+ }
mDrawer.closeDrawer(GravityCompat.START);
return true;