| Index: chrome/android/java/src/org/chromium/chrome/browser/locale/DefaultSearchEnginePromoDialog.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/locale/DefaultSearchEnginePromoDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/locale/DefaultSearchEnginePromoDialog.java
|
| index dac7902b92883e08d5be85eeae254a9ad107cbf2..4ddd6861fbd881c717bc07355d287e1260af6bac 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/locale/DefaultSearchEnginePromoDialog.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/locale/DefaultSearchEnginePromoDialog.java
|
| @@ -4,6 +4,7 @@
|
|
|
| package org.chromium.chrome.browser.locale;
|
|
|
| +import android.annotation.SuppressLint;
|
| import android.app.Activity;
|
| import android.content.DialogInterface;
|
| import android.os.Bundle;
|
| @@ -26,6 +27,9 @@ public class DefaultSearchEnginePromoDialog extends PromoDialog {
|
| }
|
| private static DefaultSearchEnginePromoDialogObserver sObserver;
|
|
|
| + @SuppressLint("StaticFieldLeak")
|
| + private static DefaultSearchEnginePromoDialog sCurrentDialog;
|
| +
|
| /** Used to determine the promo dialog contents. */
|
| @SearchEnginePromoType
|
| private final int mDialogType;
|
| @@ -90,6 +94,9 @@ public class DefaultSearchEnginePromoDialog extends PromoDialog {
|
| @Override
|
| public void show() {
|
| super.show();
|
| + if (sCurrentDialog != null) sCurrentDialog.dismiss();
|
| + setCurrentDialog(this);
|
| +
|
| if (mDialogType == LocaleManager.SEARCH_ENGINE_PROMO_SHOW_NEW) {
|
| RecordUserAction.record("SearchEnginePromo.NewDevice.Shown.Dialog");
|
| } else if (mDialogType == LocaleManager.SEARCH_ENGINE_PROMO_SHOW_EXISTING) {
|
| @@ -109,6 +116,8 @@ public class DefaultSearchEnginePromoDialog extends PromoDialog {
|
| if (mOnDismissed != null) {
|
| mOnDismissed.onResult(mHelper.getCurrentlySelectedKeyword() != null);
|
| }
|
| +
|
| + if (sCurrentDialog == this) setCurrentDialog(null);
|
| }
|
|
|
| /** See {@link #sObserver}. */
|
| @@ -117,4 +126,13 @@ public class DefaultSearchEnginePromoDialog extends PromoDialog {
|
| public static void setObserverForTests(DefaultSearchEnginePromoDialogObserver observer) {
|
| sObserver = observer;
|
| }
|
| +
|
| + /** @return The current visible Default Search Engine dialog. */
|
| + static DefaultSearchEnginePromoDialog getCurrentDialog() {
|
| + return sCurrentDialog;
|
| + }
|
| +
|
| + private static void setCurrentDialog(DefaultSearchEnginePromoDialog dialog) {
|
| + sCurrentDialog = dialog;
|
| + }
|
| }
|
|
|