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