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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninView.java

Issue 1774243003: Re-use NoUnderlineClickableSpan which shows a clickable link with underlines turned off (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@webusb_android_chooser
Patch Set: rebase Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.signin; 5 package org.chromium.chrome.browser.signin;
6 6
7 import android.app.FragmentManager; 7 import android.app.FragmentManager;
8 import android.content.Context; 8 import android.content.Context;
9 import android.graphics.Bitmap; 9 import android.graphics.Bitmap;
10 import android.graphics.drawable.Drawable; 10 import android.graphics.drawable.Drawable;
11 import android.os.Bundle; 11 import android.os.Bundle;
12 import android.text.TextPaint;
13 import android.text.TextUtils; 12 import android.text.TextUtils;
14 import android.text.method.LinkMovementMethod; 13 import android.text.method.LinkMovementMethod;
15 import android.text.style.ClickableSpan;
16 import android.util.AttributeSet; 14 import android.util.AttributeSet;
17 import android.view.View; 15 import android.view.View;
18 import android.widget.AdapterView; 16 import android.widget.AdapterView;
19 import android.widget.ArrayAdapter; 17 import android.widget.ArrayAdapter;
20 import android.widget.Button; 18 import android.widget.Button;
21 import android.widget.ImageView; 19 import android.widget.ImageView;
22 import android.widget.LinearLayout; 20 import android.widget.LinearLayout;
23 import android.widget.Spinner; 21 import android.widget.Spinner;
24 import android.widget.TextView; 22 import android.widget.TextView;
25 23
26 import org.chromium.base.ApiCompatibilityUtils; 24 import org.chromium.base.ApiCompatibilityUtils;
27 import org.chromium.base.metrics.RecordUserAction; 25 import org.chromium.base.metrics.RecordUserAction;
28 import org.chromium.chrome.R; 26 import org.chromium.chrome.R;
29 import org.chromium.chrome.browser.firstrun.FirstRunView; 27 import org.chromium.chrome.browser.firstrun.FirstRunView;
30 import org.chromium.chrome.browser.firstrun.ImageCarousel; 28 import org.chromium.chrome.browser.firstrun.ImageCarousel;
31 import org.chromium.chrome.browser.firstrun.ImageCarousel.ImageCarouselPositionC hangeListener; 29 import org.chromium.chrome.browser.firstrun.ImageCarousel.ImageCarouselPositionC hangeListener;
32 import org.chromium.chrome.browser.firstrun.ProfileDataCache; 30 import org.chromium.chrome.browser.firstrun.ProfileDataCache;
33 import org.chromium.chrome.browser.preferences.PrefServiceBridge; 31 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
34 import org.chromium.chrome.browser.profiles.ProfileDownloader; 32 import org.chromium.chrome.browser.profiles.ProfileDownloader;
35 import org.chromium.chrome.browser.signin.AccountTrackerService.OnSystemAccounts SeededListener; 33 import org.chromium.chrome.browser.signin.AccountTrackerService.OnSystemAccounts SeededListener;
36 import org.chromium.chrome.browser.sync.ui.ConfirmImportSyncDataDialog; 34 import org.chromium.chrome.browser.sync.ui.ConfirmImportSyncDataDialog;
37 import org.chromium.chrome.browser.sync.ui.ConfirmImportSyncDataDialog.ImportSyn cType; 35 import org.chromium.chrome.browser.sync.ui.ConfirmImportSyncDataDialog.ImportSyn cType;
38 import org.chromium.signin.InvestigatedScenario; 36 import org.chromium.signin.InvestigatedScenario;
39 import org.chromium.sync.signin.AccountManagerHelper; 37 import org.chromium.sync.signin.AccountManagerHelper;
38 import org.chromium.ui.text.NoUnderlineClickableSpan;
40 import org.chromium.ui.text.SpanApplier; 39 import org.chromium.ui.text.SpanApplier;
41 import org.chromium.ui.text.SpanApplier.SpanInfo; 40 import org.chromium.ui.text.SpanApplier.SpanInfo;
42 41
43 import java.util.List; 42 import java.util.List;
44 43
45 /** 44 /**
46 * This view allows the user to select an account to log in to, add an account, 45 * This view allows the user to select an account to log in to, add an account,
47 * cancel account selection, etc. Users of this class should 46 * cancel account selection, etc. Users of this class should
48 * {@link AccountSigninView#setListener(Listener)} and 47 * {@link AccountSigninView#setListener(Listener)} and
49 * {@link AccountSigninView#setDelegate(Delegate)} after the view has been infla ted. 48 * {@link AccountSigninView#setDelegate(Delegate)} after the view has been infla ted.
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 486
488 private void showConfirmSigninPage() { 487 private void showConfirmSigninPage() {
489 mSignedIn = true; 488 mSignedIn = true;
490 updateProfileName(); 489 updateProfileName();
491 490
492 configureSpinner(false); 491 configureSpinner(false);
493 setUpConfirmButton(); 492 setUpConfirmButton();
494 setUpUndoButton(); 493 setUpUndoButton();
495 494
496 if (mShowSettingsSpan) { 495 if (mShowSettingsSpan) {
497 ClickableSpan settingsSpan = new ClickableSpan() { 496 NoUnderlineClickableSpan settingsSpan = new NoUnderlineClickableSpan () {
498 @Override 497 @Override
499 public void onClick(View widget) { 498 public void onClick(View widget) {
500 mListener.onAccountSelected(mAccountName, true); 499 mListener.onAccountSelected(mAccountName, true);
501 } 500 }
502
503 @Override
504 public void updateDrawState(TextPaint textPaint) {
505 textPaint.setColor(getResources().getColor(R.color.ui_link_t ext_color));
506 textPaint.setUnderlineText(false);
507 }
508 }; 501 };
509 mDescriptionText.setText(SpanApplier.applySpans(getSignedInDescripti on(mIsChildAccount), 502 mDescriptionText.setText(SpanApplier.applySpans(getSignedInDescripti on(mIsChildAccount),
510 new SpanInfo(SETTINGS_LINK_OPEN, SETTINGS_LINK_CLOSE, settin gsSpan))); 503 new SpanInfo(SETTINGS_LINK_OPEN, SETTINGS_LINK_CLOSE, settin gsSpan)));
511 } else { 504 } else {
512 // If we aren't showing the span, get rid of the LINK1 annotations. 505 // If we aren't showing the span, get rid of the LINK1 annotations.
513 mDescriptionText.setText(getSignedInDescription(mIsChildAccount) 506 mDescriptionText.setText(getSignedInDescription(mIsChildAccount)
514 .replace(SETTINGS_LINK_OPEN, "") 507 .replace(SETTINGS_LINK_OPEN, "")
515 .replace(SETTINGS_LINK_CLOSE, "")); 508 .replace(SETTINGS_LINK_CLOSE, ""));
516 } 509 }
517 510
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 public boolean isInForcedAccountMode() { 661 public boolean isInForcedAccountMode() {
669 return mForcedAccountName != null; 662 return mForcedAccountName != null;
670 } 663 }
671 664
672 @Override 665 @Override
673 public void onPositionChanged(int i) { 666 public void onPositionChanged(int i) {
674 mPositionSetProgrammatically = true; 667 mPositionSetProgrammatically = true;
675 mSpinner.setSelection(i); 668 mSpinner.setSelection(i);
676 } 669 }
677 } 670 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698