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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragment.java

Issue 1660353002: Update account and sync management UX (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add TODO in comments for an additional task for the bug 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/sync/ui/PassphraseTypeDialogFragment.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragment.java
index e9bff287b3c9d216d1eefbb4b02fb3f23d66dfc4..96d4d934865d949981c506d10cb05d0dd81c1fea 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragment.java
@@ -6,9 +6,17 @@ package org.chromium.chrome.browser.sync.ui;
import android.app.Dialog;
import android.app.DialogFragment;
+import android.content.Context;
import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
+import android.support.customtabs.CustomTabsIntent;
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.view.ViewGroup;
import android.widget.AdapterView;
@@ -16,10 +24,14 @@ import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.ListView;
+import android.widget.TextView;
+import org.chromium.base.BuildInfo;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
import org.chromium.sync.PassphraseType;
+import org.chromium.ui.text.SpanApplier;
+import org.chromium.ui.text.SpanApplier.SpanInfo;
import java.text.DateFormat;
import java.util.ArrayList;
@@ -142,8 +154,11 @@ public class PassphraseTypeDialogFragment extends DialogFragment implements
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
+ LayoutInflater inflater = getActivity().getLayoutInflater();
+ View v = inflater.inflate(R.layout.sync_passphrase_types, null);
+
// Configure the passphrase type list
- ListView list = new ListView(getActivity());
+ ListView list = (ListView) v.findViewById(R.id.passphrase_types);
Adapter adapter = createAdapter(getCurrentTypeFromArguments());
list.setAdapter(adapter);
list.setId(R.id.passphrase_type_list);
@@ -152,14 +167,39 @@ public class PassphraseTypeDialogFragment extends DialogFragment implements
PassphraseType currentType = getCurrentTypeFromArguments();
list.setSelection(adapter.getPositionForType(currentType));
+ // Configure the hint to reset the passphrase settings
+ // Only show this hint if encryption has been set to use sync passphrase
+ if (currentType == PassphraseType.CUSTOM_PASSPHRASE) {
+ TextView instructionsView = (TextView) v.findViewById(R.id.reset_sync_text);
+ instructionsView.setVisibility(View.VISIBLE);
+ instructionsView.setMovementMethod(LinkMovementMethod.getInstance());
+ instructionsView.setText(getResetText());
+ }
+
// Create and return the dialog
return new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme)
.setNegativeButton(R.string.cancel, this)
.setTitle(R.string.sync_passphrase_type_title)
- .setView(list)
+ .setView(v)
.create();
}
+ private SpannableString getResetText() {
+ final Context context = getActivity();
+ return SpanApplier.applySpans(
+ context.getString(R.string.sync_passphrase_encryption_reset_instructions),
+ new SpanInfo("<resetlink>", "</resetlink>", new ClickableSpan() {
+ @Override
+ public void onClick(View view) {
+ Uri syncDashboardUrl = Uri.parse(
+ context.getText(R.string.sync_dashboard_url).toString());
+ Intent intent = CustomTabsIntent.getViewIntentWithNoSession(
+ BuildInfo.getPackageName(context), syncDashboardUrl);
+ context.startActivity(intent);
+ }
+ }));
+ }
+
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_NEGATIVE) {

Powered by Google App Engine
This is Rietveld 408576698