| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser; | 5 package org.chromium.chrome.browser; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 import android.text.TextUtils; | 8 import android.text.TextUtils; |
| 9 import android.view.ActionMode; | 9 import android.view.ActionMode; |
| 10 import android.view.Menu; | 10 import android.view.Menu; |
| 11 import android.view.MenuItem; | 11 import android.view.MenuItem; |
| 12 | 12 |
| 13 import org.chromium.base.metrics.RecordUserAction; | 13 import org.chromium.base.metrics.RecordUserAction; |
| 14 import org.chromium.chrome.browser.firstrun.FirstRunStatus; | |
| 15 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; | 14 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; |
| 16 import org.chromium.chrome.browser.search_engines.TemplateUrlService; | 15 import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
| 17 import org.chromium.chrome.browser.tab.Tab; | 16 import org.chromium.chrome.browser.tab.Tab; |
| 18 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; | 17 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; |
| 19 import org.chromium.content.R; | 18 import org.chromium.content.R; |
| 20 import org.chromium.content_public.browser.ActionModeCallbackHelper; | 19 import org.chromium.content_public.browser.ActionModeCallbackHelper; |
| 21 import org.chromium.content_public.browser.LoadUrlParams; | 20 import org.chromium.content_public.browser.LoadUrlParams; |
| 22 import org.chromium.ui.base.PageTransition; | 21 import org.chromium.ui.base.PageTransition; |
| 23 | 22 |
| 24 /** | 23 /** |
| 25 * A class that handles selection action mode for an associated {@link Tab}. | 24 * A class that handles selection action mode for an associated {@link Tab}. |
| 26 */ | 25 */ |
| 27 public class ChromeActionModeCallback implements ActionMode.Callback { | 26 public class ChromeActionModeCallback implements ActionMode.Callback { |
| 28 private final Context mContext; | 27 private final Context mContext; |
| 29 private final Tab mTab; | 28 private final Tab mTab; |
| 30 private final ActionModeCallbackHelper mHelper; | 29 private final ActionModeCallbackHelper mHelper; |
| 31 | 30 |
| 32 public ChromeActionModeCallback(Context context, Tab tab, ActionModeCallback
Helper helper) { | 31 public ChromeActionModeCallback(Context context, Tab tab, ActionModeCallback
Helper helper) { |
| 33 mContext = context; | 32 mContext = context; |
| 34 mTab = tab; | 33 mTab = tab; |
| 35 mHelper = helper; | 34 mHelper = helper; |
| 36 } | 35 } |
| 37 | 36 |
| 38 @Override | 37 @Override |
| 39 public boolean onCreateActionMode(ActionMode mode, Menu menu) { | 38 public boolean onCreateActionMode(ActionMode mode, Menu menu) { |
| 40 notifyContextualActionBarVisibilityChanged(true); | 39 notifyContextualActionBarVisibilityChanged(true); |
| 41 | |
| 42 int allowedActionModes = ActionModeCallbackHelper.MENU_ITEM_PROCESS_TEXT | |
| 43 | ActionModeCallbackHelper.MENU_ITEM_SHARE; | |
| 44 // Disable options that expose additional Chrome functionality prior to
the FRE being | |
| 45 // completed (i.e. creation of a new tab). | |
| 46 if (FirstRunStatus.getFirstRunFlowComplete()) { | |
| 47 allowedActionModes |= ActionModeCallbackHelper.MENU_ITEM_WEB_SEARCH; | |
| 48 } | |
| 49 mHelper.setAllowedMenuItems(allowedActionModes); | |
| 50 | |
| 51 mHelper.onCreateActionMode(mode, menu); | 40 mHelper.onCreateActionMode(mode, menu); |
| 52 return true; | 41 return true; |
| 53 } | 42 } |
| 54 | 43 |
| 55 @Override | 44 @Override |
| 56 public boolean onPrepareActionMode(ActionMode mode, Menu menu) { | 45 public boolean onPrepareActionMode(ActionMode mode, Menu menu) { |
| 57 notifyContextualActionBarVisibilityChanged(true); | 46 notifyContextualActionBarVisibilityChanged(true); |
| 58 return mHelper.onPrepareActionMode(mode, menu); | 47 return mHelper.onPrepareActionMode(mode, menu); |
| 59 } | 48 } |
| 60 | 49 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 String headers = GeolocationHeader.getGeoHeader(mContext.getApplicationC
ontext(), | 84 String headers = GeolocationHeader.getGeoHeader(mContext.getApplicationC
ontext(), |
| 96 url, mTab.isIncognito()); | 85 url, mTab.isIncognito()); |
| 97 | 86 |
| 98 LoadUrlParams loadUrlParams = new LoadUrlParams(url); | 87 LoadUrlParams loadUrlParams = new LoadUrlParams(url); |
| 99 loadUrlParams.setVerbatimHeaders(headers); | 88 loadUrlParams.setVerbatimHeaders(headers); |
| 100 loadUrlParams.setTransitionType(PageTransition.GENERATED); | 89 loadUrlParams.setTransitionType(PageTransition.GENERATED); |
| 101 mTab.getTabModelSelector().openNewTab(loadUrlParams, | 90 mTab.getTabModelSelector().openNewTab(loadUrlParams, |
| 102 TabLaunchType.FROM_LONGPRESS_FOREGROUND, mTab, mTab.isIncognito(
)); | 91 TabLaunchType.FROM_LONGPRESS_FOREGROUND, mTab, mTab.isIncognito(
)); |
| 103 } | 92 } |
| 104 } | 93 } |
| OLD | NEW |