Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java

Issue 2838833002: 🔍 Introduce default search engine dialog (Closed)
Patch Set: COmments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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.locale; 5 package org.chromium.chrome.browser.locale;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.content.Intent; 8 import android.content.Intent;
9 import android.content.SharedPreferences; 9 import android.content.SharedPreferences;
10 import android.support.annotation.IntDef; 10 import android.support.annotation.IntDef;
11 import android.support.annotation.Nullable; 11 import android.support.annotation.Nullable;
12 12
13 import org.chromium.base.Callback;
13 import org.chromium.base.ContextUtils; 14 import org.chromium.base.ContextUtils;
14 import org.chromium.base.ThreadUtils; 15 import org.chromium.base.ThreadUtils;
15 import org.chromium.chrome.R; 16 import org.chromium.chrome.R;
16 import org.chromium.chrome.browser.AppHooks; 17 import org.chromium.chrome.browser.AppHooks;
17 import org.chromium.chrome.browser.ChromeFeatureList; 18 import org.chromium.chrome.browser.ChromeFeatureList;
18 import org.chromium.chrome.browser.preferences.PreferencesLauncher; 19 import org.chromium.chrome.browser.preferences.PreferencesLauncher;
19 import org.chromium.chrome.browser.preferences.SearchEnginePreference; 20 import org.chromium.chrome.browser.preferences.SearchEnginePreference;
20 import org.chromium.chrome.browser.snackbar.Snackbar; 21 import org.chromium.chrome.browser.snackbar.Snackbar;
21 import org.chromium.chrome.browser.snackbar.SnackbarManager; 22 import org.chromium.chrome.browser.snackbar.SnackbarManager;
22 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController; 23 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 addSpecialSearchEngines(); 172 addSpecialSearchEngines();
172 } 173 }
173 preferences.edit().putBoolean(PREF_WAS_IN_SPECIAL_LOCALE, isInSpecialLoc ale).apply(); 174 preferences.edit().putBoolean(PREF_WAS_IN_SPECIAL_LOCALE, isInSpecialLoc ale).apply();
174 } 175 }
175 176
176 /** 177 /**
177 * Shows a promotion dialog about search engines depending on Locale and oth er conditions. 178 * Shows a promotion dialog about search engines depending on Locale and oth er conditions.
178 * See {@link LocaleManager#getSearchEnginePromoShowType()} for possible typ es and logic. 179 * See {@link LocaleManager#getSearchEnginePromoShowType()} for possible typ es and logic.
179 * 180 *
180 * @param context Context showing the dialog. 181 * @param context Context showing the dialog.
181 * @param onDismissed Run when the dialog has been dismissed. 182 * @param onDismissed Notified when the dialog is dismissed and whether the user acted on it.
182 * @return Whether such dialog is needed. 183 * @return Whether such dialog is needed.
183 */ 184 */
184 public boolean showSearchEnginePromoIfNeeded(Context context, @Nullable Runn able onDismissed) { 185 public boolean showSearchEnginePromoIfNeeded(
186 Context context, @Nullable Callback<Boolean> onDismissed) {
185 int shouldShow = getSearchEnginePromoShowType(); 187 int shouldShow = getSearchEnginePromoShowType();
186 switch (shouldShow) { 188 switch (shouldShow) {
187 case SEARCH_ENGINE_PROMO_DONT_SHOW: 189 case SEARCH_ENGINE_PROMO_DONT_SHOW:
188 return false; 190 return false;
189 case SEARCH_ENGINE_PROMO_SHOW_SOGOU: 191 case SEARCH_ENGINE_PROMO_SHOW_SOGOU:
190 new SogouPromoDialog(context, this, onDismissed).show(); 192 new SogouPromoDialog(context, this, onDismissed).show();
191 return true; 193 return true;
192 case SEARCH_ENGINE_PROMO_SHOW_EXISTING: 194 case SEARCH_ENGINE_PROMO_SHOW_EXISTING:
193 case SEARCH_ENGINE_PROMO_SHOW_NEW: 195 case SEARCH_ENGINE_PROMO_SHOW_NEW:
194 // TODO(dfalcantara): Show the search engine dialog. 196 DefaultSearchEnginePromoDialog.show(context, shouldShow, onDismi ssed);
195 return false; 197 return true;
196 default: 198 default:
197 assert false; 199 assert false;
198 return false; 200 return false;
199 } 201 }
200 } 202 }
201 203
202 /** 204 /**
203 * @return Whether auto switch for search engine is enabled. 205 * @return Whether auto switch for search engine is enabled.
204 */ 206 */
205 public boolean isSearchEngineAutoSwitchEnabled() { 207 public boolean isSearchEngineAutoSwitchEnabled() {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 return SEARCH_ENGINE_PROMO_DONT_SHOW; 255 return SEARCH_ENGINE_PROMO_DONT_SHOW;
254 } 256 }
255 return SEARCH_ENGINE_PROMO_SHOW_SOGOU; 257 return SEARCH_ENGINE_PROMO_SHOW_SOGOU;
256 } 258 }
257 259
258 private SpecialLocaleHandler getSpecialLocaleHandler() { 260 private SpecialLocaleHandler getSpecialLocaleHandler() {
259 if (mLocaleHandler == null) mLocaleHandler = new SpecialLocaleHandler(ge tSpecialLocaleId()); 261 if (mLocaleHandler == null) mLocaleHandler = new SpecialLocaleHandler(ge tSpecialLocaleId());
260 return mLocaleHandler; 262 return mLocaleHandler;
261 } 263 }
262 } 264 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698