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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/signin/ConfirmAccountChangeFragment.java

Issue 1745563002: Revert of Created the dialog offering the user to merge their account data or keep it (Closed) Base URL: maybelle.lon.corp.google.com:/usr/local/google/code/clankium/src@sync_settings
Patch Set: Created 4 years, 10 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/signin/ConfirmAccountChangeFragment.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/ConfirmAccountChangeFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/ConfirmAccountChangeFragment.java
new file mode 100644
index 0000000000000000000000000000000000000000..48a70f6cebd192ef8353ba9b4f7a169eb0fade81
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/ConfirmAccountChangeFragment.java
@@ -0,0 +1,114 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.signin;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
+import android.text.SpannableString;
+import android.text.method.LinkMovementMethod;
+import android.text.style.ClickableSpan;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.TextView;
+
+import org.chromium.base.metrics.RecordUserAction;
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.preferences.PrefServiceBridge;
+import org.chromium.chrome.browser.preferences.PreferencesLauncher;
+import org.chromium.chrome.browser.sync.ui.ClearSyncDataPreferences;
+import org.chromium.ui.text.SpanApplier;
+import org.chromium.ui.text.SpanApplier.SpanInfo;
+
+/**
+ * The fragment shown when the user was previously signed in, then disconnected their account,
+ * and is now attempting to sign in to a new account. This dialog warns the user that they should
+ * clear their browser data, or else their bookmarks etc from their old account will be merged with
+ * the new account when they sign in. This dialog assumes it is being created in the middle of the
+ * signin flow, and as such is purposefully package private.
+ */
+class ConfirmAccountChangeFragment
+ extends DialogFragment implements DialogInterface.OnClickListener {
+ private static final String KEY_OLD_ACCOUNT_NAME = "lastAccountName";
+ private static final String KEY_NEW_ACCOUNT_NAME = "newAccountName";
+
+ // Tracks whether to abort signin in onDismiss.
+ private boolean mAbortSignin = true;
+
+ public static ConfirmAccountChangeFragment newInstance(String accountName) {
+ ConfirmAccountChangeFragment dialogFragment = new ConfirmAccountChangeFragment();
+ Bundle args = new Bundle();
+ args.putString(
+ KEY_OLD_ACCOUNT_NAME, PrefServiceBridge.getInstance().getSyncLastAccountName());
+ args.putString(KEY_NEW_ACCOUNT_NAME, accountName);
+ dialogFragment.setArguments(args);
+ return dialogFragment;
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ final Activity activity = getActivity();
+ String lastSyncAccountName = getArguments().getString(KEY_OLD_ACCOUNT_NAME);
+ String currentAccountName = getArguments().getString(KEY_NEW_ACCOUNT_NAME);
+
+ LayoutInflater inflater = activity.getLayoutInflater();
+ View v = inflater.inflate(R.layout.confirm_sync_account_change_account, null);
+ final TextView textView = (TextView) v.findViewById(R.id.confirmMessage);
+ String message = activity.getString(R.string.confirm_account_change_dialog_message,
+ lastSyncAccountName, currentAccountName);
+
+ // Show clear sync data dialog when the user clicks the "settings" link.
+ SpannableString messageWithLink = SpanApplier.applySpans(
+ message, new SpanInfo("<link>", "</link>", new ClickableSpan() {
+ @Override
+ public void onClick(View widget) {
+ showClearSyncDataPreferences();
+ }
+ }));
+
+ RecordUserAction.record("Signin_Show_ImportDataPrompt");
+ textView.setText(messageWithLink);
+ textView.setMovementMethod(LinkMovementMethod.getInstance());
+ return new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme)
+ .setTitle(R.string.confirm_account_change_dialog_title)
+ .setPositiveButton(R.string.confirm_account_change_dialog_signin, this)
+ .setNegativeButton(R.string.cancel, this)
+ .setView(v)
+ .create();
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if (which == AlertDialog.BUTTON_POSITIVE) {
+ RecordUserAction.record("Signin_ImportDataPrompt_ImportData");
+ SigninManager.get(getActivity()).progressInteractiveSignInFlowAccountConfirmed();
+ mAbortSignin = false;
+ } else if (which == AlertDialog.BUTTON_NEGATIVE) {
+ RecordUserAction.record("Signin_ImportDataPrompt_Cancel");
+ }
+ }
+
+ @Override
+ public void onDismiss(DialogInterface dialogInterface) {
+ super.onDismiss(dialogInterface);
+ if (mAbortSignin) {
+ // Something other than BUTTON_POSITIVE is dismissing this fragment; abort signin.
+ SigninManager.get(getActivity()).abortSignIn();
+ }
+ }
+
+ private void showClearSyncDataPreferences() {
+ Intent intent = PreferencesLauncher.createIntentForSettingsPage(getActivity(),
+ ClearSyncDataPreferences.class.getName());
+ startActivity(intent);
+
+ RecordUserAction.record("Signin_ImportDataPrompt_DontImport");
+ dismiss();
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698