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

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

Issue 2838833002: 🔍 Introduce default search engine dialog (Closed)
Patch Set: Redo how the dialog is created Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java b/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java
index 8a3b246393261a907c1314bbf108010fe2192804..6fba83e2bda90f6aeaabe4d628aa92e9dc1defd5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java
@@ -8,6 +8,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.annotation.IntDef;
+import android.support.annotation.Nullable;
import org.chromium.base.ContextUtils;
import org.chromium.base.ThreadUtils;
@@ -176,16 +177,26 @@ public class LocaleManager {
* Shows a promotion dialog about search engines depending on Locale and other conditions.
* See {@link LocaleManager#getSearchEnginePromoShowType()} for possible types and logic.
*
+ * @param context Context showing the dialog.
+ * @param onSelected Run when the dialog has been closed.
* @return Whether such dialog is needed.
*/
- public boolean showSearchEnginePromoIfNeeded(Context context) {
+ public boolean showSearchEnginePromoIfNeeded(Context context, @Nullable Runnable onSelected) {
int shouldShow = getSearchEnginePromoShowType();
-
- if (shouldShow == SEARCH_ENGINE_PROMO_SHOW_SOGOU) {
- new SogouPromoDialog(context, this).show();
- return true;
+ switch (shouldShow) {
+ case SEARCH_ENGINE_PROMO_DONT_SHOW:
+ return false;
+ case SEARCH_ENGINE_PROMO_SHOW_SOGOU:
+ new SogouPromoDialog(context, this, onSelected).show();
+ return true;
+ case SEARCH_ENGINE_PROMO_SHOW_EXISTING:
+ case SEARCH_ENGINE_PROMO_SHOW_NEW:
+ DefaultSearchEnginePromoDialog.create(context, shouldShow, onSelected);
+ return true;
+ default:
+ assert false;
+ return false;
}
- return false;
}
/**

Powered by Google App Engine
This is Rietveld 408576698