summaryrefslogtreecommitdiffstats
path: root/src/com/android/mail/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/mail/ui')
-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