| Index: chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java
|
| index 60ce22285bd46ea26c954ad668e63636801e2376..88f61933a34d98ab5e5af5f751a5a6a6d1b14102 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java
|
| @@ -5,6 +5,7 @@
|
| package org.chromium.chrome.browser.signin;
|
|
|
| import android.app.Activity;
|
| +import android.app.FragmentManager;
|
| import android.content.Context;
|
| import android.graphics.Bitmap;
|
| import android.text.TextUtils;
|
| @@ -81,9 +82,17 @@ public class AccountSigninView extends FrameLayout implements ProfileDownloader.
|
| */
|
| public interface Delegate {
|
| /**
|
| - * Provides an Activity for the view to create dialogs.
|
| + * Provides an Activity for the View to check GMSCore version.
|
| */
|
| public Activity getActivity();
|
| +
|
| + /**
|
| + * Provides a FragmentManager for the View to create dialogs. This is done through a
|
| + * different mechanism than getActivity().getFragmentManager() as a potential fix to
|
| + * https://crbug.com/646978 on the theory that getActivity() and getFragmentManager()
|
| + * return null at different times.
|
| + */
|
| + public FragmentManager getFragmentManager();
|
| }
|
|
|
| private static final String TAG = "AccountSigninView";
|
| @@ -256,7 +265,7 @@ public class AccountSigninView extends FrameLayout implements ProfileDownloader.
|
| // Any dialogs that may have been showing are now invalid (they were created for the
|
| // previously selected account).
|
| ConfirmSyncDataStateMachine
|
| - .cancelAllDialogs(mDelegate.getActivity().getFragmentManager());
|
| + .cancelAllDialogs(mDelegate.getFragmentManager());
|
|
|
| if (mAccountNames.containsAll(oldAccountNames)) {
|
| // A new account has been added and no accounts have been deleted. We will have
|
| @@ -386,7 +395,7 @@ public class AccountSigninView extends FrameLayout implements ProfileDownloader.
|
| String accountName = getSelectedAccountName();
|
| ConfirmSyncDataStateMachine.run(PrefServiceBridge.getInstance().getSyncLastAccountName(),
|
| accountName, ImportSyncType.PREVIOUS_DATA_FOUND,
|
| - mDelegate.getActivity().getFragmentManager(),
|
| + mDelegate.getFragmentManager(),
|
| getContext(), new ConfirmImportSyncDataDialog.Listener() {
|
| @Override
|
| public void onConfirm(boolean wipeData) {
|
|
|