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; |
} |
/** |