Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java |
| index be13cdd29a2557eec51aab66d90220208b2845c1..cc0b913baf95757e5c0d350c388a019a8c3e7aaa 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java |
| @@ -27,6 +27,7 @@ import org.chromium.base.VisibleForTesting; |
| import org.chromium.base.library_loader.LibraryLoader; |
| import org.chromium.chrome.R; |
| import org.chromium.chrome.browser.IntentHandler; |
| +import org.chromium.chrome.browser.firstrun.FirstRunFlowSequencer; |
| import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
| import org.chromium.chrome.browser.search_engines.TemplateUrlService.LoadListener; |
| import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrlServiceObserver; |
| @@ -168,7 +169,7 @@ public class SearchWidgetProvider extends AppWidgetProvider { |
| @Override |
| public void run() { |
| if (IntentHandler.isIntentChromeOrFirstParty(intent)) { |
| - handleAction(intent.getAction()); |
| + handleAction(intent); |
| } else { |
| SearchWidgetProvider.super.onReceive(context, intent); |
| } |
| @@ -188,11 +189,12 @@ public class SearchWidgetProvider extends AppWidgetProvider { |
| /** Handles the intent actions to the widget. */ |
| @VisibleForTesting |
| - static void handleAction(String action) { |
| + static void handleAction(Intent intent) { |
| + String action = intent.getAction(); |
| if (ACTION_START_TEXT_QUERY.equals(action)) { |
| - startSearchActivity(false); |
| + startSearchActivity(intent, false); |
| } else if (ACTION_START_VOICE_QUERY.equals(action)) { |
| - startSearchActivity(true); |
| + startSearchActivity(intent, true); |
| } else if (ACTION_UPDATE_ALL_WIDGETS.equals(action)) { |
| performUpdate(null); |
| } else { |
| @@ -200,10 +202,13 @@ public class SearchWidgetProvider extends AppWidgetProvider { |
| } |
| } |
| - private static void startSearchActivity(boolean startVoiceSearch) { |
| + private static void startSearchActivity(Intent intent, boolean startVoiceSearch) { |
| Log.d(TAG, "Launching SearchActivity: VOICE=" + startVoiceSearch); |
| Context context = getDelegate().getContext(); |
| + // Abort if the user needs to go through First Run. |
| + if (FirstRunFlowSequencer.launch(context, intent, true)) return; |
|
Yusuf
2017/04/20 18:19:10
when we abort here and user goes through FRE, wher
gone
2017/04/21 00:23:53
We end up back here because the Intent that was us
|
| + |
| // Launch the SearchActivity. |
| Intent searchIntent = new Intent(); |
| searchIntent.setClass(context, SearchActivity.class); |