diff options
author | Jin Cao <jinyan@google.com> | 2014-10-15 17:24:38 -0700 |
---|---|---|
committer | Jin Cao <jinyan@google.com> | 2014-10-15 17:24:38 -0700 |
commit | 9fa7c236530a430f9ad359c0b7770c2d65361b05 (patch) | |
tree | 1cdd7402c53a6beec2107bbac4aa0a290812bb7e /src/com/android/mail | |
parent | 96062c365b04fd90a78c30f1301e6069697aa47d (diff) | |
download | android_packages_apps_UnifiedEmail-9fa7c236530a430f9ad359c0b7770c2d65361b05.tar.gz android_packages_apps_UnifiedEmail-9fa7c236530a430f9ad359c0b7770c2d65361b05.tar.bz2 android_packages_apps_UnifiedEmail-9fa7c236530a430f9ad359c0b7770c2d65361b05.zip |
Reset search button visibility on account change
b/17982775
Change-Id: Ia27a7364f49b7cf8a1cbfc158123b543d6b8b7fc
Diffstat (limited to 'src/com/android/mail')
-rw-r--r-- | src/com/android/mail/ui/CustomViewToolbar.java | 30 | ||||
-rw-r--r-- | src/com/android/mail/ui/MailActivity.java | 14 |
2 files changed, 35 insertions, 9 deletions
diff --git a/src/com/android/mail/ui/CustomViewToolbar.java b/src/com/android/mail/ui/CustomViewToolbar.java index 0f2bad4c8..6fe712af0 100644 --- a/src/com/android/mail/ui/CustomViewToolbar.java +++ b/src/com/android/mail/ui/CustomViewToolbar.java @@ -28,6 +28,8 @@ import android.widget.TextView; import com.android.mail.R; import com.android.mail.analytics.Analytics; +import com.android.mail.providers.Account; +import com.android.mail.providers.AccountObserver; import com.android.mail.utils.ViewUtils; /** @@ -40,6 +42,12 @@ public class CustomViewToolbar extends Toolbar implements ViewMode.ModeChangeLis private ControllableActivity mActivity; private ActivityController mController; private ViewMode mViewMode; + private AccountObserver mAccountObserver = new AccountObserver() { + @Override + public void onChanged(Account newAccount) { + setSearchButtonVisibility(newAccount); + } + }; protected View mCustomView; protected TextView mActionBarTitle; @@ -59,6 +67,8 @@ public class CustomViewToolbar extends Toolbar implements ViewMode.ModeChangeLis mController = controller; mViewMode = viewMode; mViewMode.addListener(this); + + mAccountObserver.initialize(mActivity.getAccountController()); } @Override @@ -80,11 +90,23 @@ public class CustomViewToolbar extends Toolbar implements ViewMode.ModeChangeLis }); } + protected void onDestroy() { + mAccountObserver.unregisterAndDestroy(); + } + + /** + * Sets the search button visibility based on the current account. + */ private void setSearchButtonVisibility() { - // Search button is ONLY visible in conversation list mode - final boolean visible = mController.shouldShowSearchMenuItem() && - mActivity.getAccountController().getAccount().supportsSearch(); - mSearchButton.setVisibility(visible ? VISIBLE : INVISIBLE); + setSearchButtonVisibility(mActivity.getAccountController().getAccount()); + } + + private void setSearchButtonVisibility(Account account) { + if (mSearchButton != null) { + final boolean visible = mController.shouldShowSearchMenuItem() && + account.supportsSearch(); + mSearchButton.setVisibility(visible ? VISIBLE : INVISIBLE); + } } @Override diff --git a/src/com/android/mail/ui/MailActivity.java b/src/com/android/mail/ui/MailActivity.java index 554576f89..c497cc671 100644 --- a/src/com/android/mail/ui/MailActivity.java +++ b/src/com/android/mail/ui/MailActivity.java @@ -17,7 +17,6 @@ package com.android.mail.ui; -import android.annotation.SuppressLint; import android.app.Dialog; import android.content.ContentResolver; import android.content.Context; @@ -35,7 +34,6 @@ import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; -import android.view.Window; import android.view.accessibility.AccessibilityManager; import com.android.bitmap.BitmapCache; @@ -91,6 +89,8 @@ public class MailActivity extends AbstractMailActivity implements ControllableAc private BitmapCache mSendersImageCache; + private CustomViewToolbar mCustomViewToolbar; + /** * Create an NFC message (in the NDEF: Nfc Data Exchange Format) to instruct the recepient to * send an email to the current account. @@ -178,9 +178,9 @@ public class MailActivity extends AbstractMailActivity implements ControllableAc final Toolbar toolbar = (Toolbar) findViewById(R.id.mail_toolbar); if (toolbar instanceof CustomViewToolbar) { // Tablets use CustomViewToolbar to override the default search menu item positioning. - final CustomViewToolbar customViewToolbar = (CustomViewToolbar) toolbar; - customViewToolbar.setController(this, mController, mViewMode); - mController.addConversationListLayoutListener(customViewToolbar); + mCustomViewToolbar = (CustomViewToolbar) toolbar; + mCustomViewToolbar.setController(this, mController, mViewMode); + mController.addConversationListLayoutListener(mCustomViewToolbar); } setSupportActionBar(toolbar); @@ -331,6 +331,10 @@ public class MailActivity extends AbstractMailActivity implements ControllableAc protected void onDestroy() { super.onDestroy(); mController.onDestroy(); + + if (mCustomViewToolbar != null) { + mCustomViewToolbar.onDestroy(); + } } @Override |