Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
index 4d7f29bcc236d03f5ad8256594400875b7c45070..1e6fe13b49554c0f4bc62348cf8cc8c780296d81 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
@@ -4,6 +4,7 @@ |
package org.chromium.chrome.browser; |
+import android.app.Activity; |
import android.app.ActivityManager; |
import android.app.SearchManager; |
import android.content.Context; |
@@ -172,6 +173,22 @@ public class ChromeTabbedActivity extends ChromeActivity implements ActionBarDel |
// Time at which an intent was received and handled. |
private long mIntentHandlingTimeMs = 0; |
+ private class TabbedAssistStatusHandler extends AssistStatusHandler { |
+ public TabbedAssistStatusHandler(Activity activity) { |
+ super(activity); |
+ } |
+ |
+ @Override |
+ public boolean isAssistSupported() { |
+ // If we are in the tab switcher and any incognito tabs are present, disable assist. |
+ if (isInOverviewMode() && mTabModelSelectorImpl != null |
+ && mTabModelSelectorImpl.getModel(true).getCount() > 0) { |
+ return false; |
+ } |
+ return super.isAssistSupported(); |
+ } |
+ } |
+ |
@Override |
public void initializeCompositor() { |
try { |
@@ -346,6 +363,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements ActionBarDel |
return (ChromeTabCreator) tabCreator; |
} |
+ @Override |
+ protected AssistStatusHandler createAssistStatusHandler() { |
+ return new TabbedAssistStatusHandler(this); |
+ } |
+ |
private void handleDebugIntent(Intent intent) { |
if (ACTION_CLOSE_TABS.equals(intent.getAction())) { |
getTabModelSelector().closeAllTabs(); |
@@ -1264,7 +1286,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements ActionBarDel |
@Override |
public boolean isInOverviewMode() { |
- return mLayoutManager.overviewVisible(); |
+ return mLayoutManager != null && mLayoutManager.overviewVisible(); |
} |
@Override |
@@ -1273,22 +1295,25 @@ public class ChromeTabbedActivity extends ChromeActivity implements ActionBarDel |
} |
@Override |
- public void onOverviewModeStartedShowing(boolean showToolbar) { |
- if (mFindToolbarManager != null) mFindToolbarManager.hideToolbar(); |
- } |
- |
- @Override |
public void onSceneChange(Layout layout) { |
super.onSceneChange(layout); |
if (!layout.shouldDisplayContentOverlay()) mTabModelSelectorImpl.onTabsViewShown(); |
} |
@Override |
- public void onOverviewModeFinishedShowing() { } |
+ public void onOverviewModeStartedShowing(boolean showToolbar) { |
+ if (mFindToolbarManager != null) mFindToolbarManager.hideToolbar(); |
+ if (getAssistStatusHandler() != null) getAssistStatusHandler().updateAssistState(); |
+ } |
+ |
+ @Override |
+ public void onOverviewModeFinishedShowing() {} |
@Override |
public void onOverviewModeStartedHiding(boolean showToolbar, boolean delayAnimation) {} |
@Override |
- public void onOverviewModeFinishedHiding() {} |
+ public void onOverviewModeFinishedHiding() { |
+ if (getAssistStatusHandler() != null) getAssistStatusHandler().updateAssistState(); |
+ } |
} |