summaryrefslogtreecommitdiffstats
path: root/src/com/android/mail
diff options
context:
space:
mode:
authorJin Cao <jinyan@google.com>2014-10-15 17:24:38 -0700
committerJin Cao <jinyan@google.com>2014-10-15 17:24:38 -0700
commit9fa7c236530a430f9ad359c0b7770c2d65361b05 (patch)
tree1cdd7402c53a6beec2107bbac4aa0a290812bb7e /src/com/android/mail
parent96062c365b04fd90a78c30f1301e6069697aa47d (diff)
downloadandroid_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.java30
-rw-r--r--src/com/android/mail/ui/MailActivity.java14
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