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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.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, 8 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.ntp; 5 package org.chromium.chrome.browser.ntp;
6 6
7 import android.annotation.SuppressLint; 7 import android.annotation.SuppressLint;
8 import android.content.Context; 8 import android.content.Context;
9 import android.content.res.Resources; 9 import android.content.res.Resources;
10 import android.graphics.Bitmap; 10 import android.graphics.Bitmap;
11 import android.graphics.BitmapFactory; 11 import android.graphics.BitmapFactory;
12 import android.graphics.Canvas; 12 import android.graphics.Canvas;
13 import android.graphics.Color; 13 import android.graphics.Color;
14 import android.graphics.Rect; 14 import android.graphics.Rect;
15 import android.graphics.drawable.BitmapDrawable; 15 import android.graphics.drawable.BitmapDrawable;
16 import android.net.Uri; 16 import android.net.Uri;
17 import android.os.Build; 17 import android.os.Build;
18 import android.support.v4.graphics.drawable.RoundedBitmapDrawable; 18 import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
19 import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory; 19 import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
20 import android.support.v7.widget.LinearLayoutManager; 20 import android.support.v7.widget.LinearLayoutManager;
21 import android.support.v7.widget.RecyclerView; 21 import android.support.v7.widget.RecyclerView;
22 import android.text.Editable; 22 import android.text.Editable;
23 import android.text.TextUtils; 23 import android.text.TextUtils;
24 import android.text.TextWatcher; 24 import android.text.TextWatcher;
25 import android.text.method.LinkMovementMethod; 25 import android.text.method.LinkMovementMethod;
26 import android.text.style.ClickableSpan;
27 import android.util.AttributeSet; 26 import android.util.AttributeSet;
28 import android.view.LayoutInflater; 27 import android.view.LayoutInflater;
29 import android.view.MotionEvent; 28 import android.view.MotionEvent;
30 import android.view.View; 29 import android.view.View;
31 import android.view.View.OnLayoutChangeListener; 30 import android.view.View.OnLayoutChangeListener;
32 import android.view.ViewGroup; 31 import android.view.ViewGroup;
33 import android.view.ViewStub; 32 import android.view.ViewStub;
34 import android.widget.Button; 33 import android.widget.Button;
35 import android.widget.FrameLayout; 34 import android.widget.FrameLayout;
36 import android.widget.ImageView; 35 import android.widget.ImageView;
(...skipping 11 matching lines...) Expand all
48 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; 47 import org.chromium.chrome.browser.ntp.LogoBridge.Logo;
49 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; 48 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver;
50 import org.chromium.chrome.browser.ntp.MostVisitedItem.MostVisitedItemManager; 49 import org.chromium.chrome.browser.ntp.MostVisitedItem.MostVisitedItemManager;
51 import org.chromium.chrome.browser.ntp.NewTabPage.OnSearchBoxScrollListener; 50 import org.chromium.chrome.browser.ntp.NewTabPage.OnSearchBoxScrollListener;
52 import org.chromium.chrome.browser.ntp.snippets.SnippetsManager; 51 import org.chromium.chrome.browser.ntp.snippets.SnippetsManager;
53 import org.chromium.chrome.browser.preferences.DocumentModeManager; 52 import org.chromium.chrome.browser.preferences.DocumentModeManager;
54 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse rver; 53 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse rver;
55 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; 54 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback;
56 import org.chromium.chrome.browser.util.ViewUtils; 55 import org.chromium.chrome.browser.util.ViewUtils;
57 import org.chromium.chrome.browser.widget.RoundedIconGenerator; 56 import org.chromium.chrome.browser.widget.RoundedIconGenerator;
57 import org.chromium.ui.text.NoUnderlineClickableSpan;
58 import org.chromium.ui.text.SpanApplier; 58 import org.chromium.ui.text.SpanApplier;
59 import org.chromium.ui.text.SpanApplier.SpanInfo; 59 import org.chromium.ui.text.SpanApplier.SpanInfo;
60 60
61 import java.util.Locale; 61 import java.util.Locale;
62 62
63 import jp.tomorrowkey.android.gifplayer.BaseGifImage; 63 import jp.tomorrowkey.android.gifplayer.BaseGifImage;
64 64
65 /** 65 /**
66 * The native new tab page, represented by some basic data such as title and url , and an Android 66 * The native new tab page, represented by some basic data such as title and url , and an Android
67 * View that displays the page. 67 * View that displays the page.
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 return R.drawable.tabs_moved_nexus; 388 return R.drawable.tabs_moved_nexus;
389 } 389 }
390 } 390 }
391 391
392 private void showOptOutPromo() { 392 private void showOptOutPromo() {
393 ViewStub optOutPromoStub = (ViewStub) findViewById(R.id.opt_out_promo_st ub); 393 ViewStub optOutPromoStub = (ViewStub) findViewById(R.id.opt_out_promo_st ub);
394 mOptOutView = optOutPromoStub.inflate(); 394 mOptOutView = optOutPromoStub.inflate();
395 // Fill in opt-out text with Settings link 395 // Fill in opt-out text with Settings link
396 TextView optOutText = (TextView) mOptOutView.findViewById(R.id.opt_out_t ext); 396 TextView optOutText = (TextView) mOptOutView.findViewById(R.id.opt_out_t ext);
397 397
398 ClickableSpan settingsLink = new ClickableSpan() { 398 NoUnderlineClickableSpan settingsLink = new NoUnderlineClickableSpan() {
399 @Override 399 @Override
400 public void onClick(View view) { 400 public void onClick(View view) {
401 mManager.optOutPromoClicked(true); 401 mManager.optOutPromoClicked(true);
402 } 402 }
403
404 // Disable underline on the link text.
405 @Override
406 public void updateDrawState(android.text.TextPaint textPaint) {
407 super.updateDrawState(textPaint);
408 textPaint.setUnderlineText(false);
409 }
410 }; 403 };
411 404
412 optOutText.setText(SpanApplier.applySpans( 405 optOutText.setText(SpanApplier.applySpans(
413 getContext().getString(R.string.tabs_and_apps_opt_out_text), 406 getContext().getString(R.string.tabs_and_apps_opt_out_text),
414 new SpanInfo("<link>", "</link>", settingsLink))); 407 new SpanInfo("<link>", "</link>", settingsLink)));
415 optOutText.setMovementMethod(LinkMovementMethod.getInstance()); 408 optOutText.setMovementMethod(LinkMovementMethod.getInstance());
416 409
417 ImageView illustration = (ImageView) mOptOutView.findViewById(R.id.tabs_ moved_illustration); 410 ImageView illustration = (ImageView) mOptOutView.findViewById(R.id.tabs_ moved_illustration);
418 int resourceId = getTabsMovedIllustration(); 411 int resourceId = getTabsMovedIllustration();
419 if (resourceId != 0) { 412 if (resourceId != 0) {
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after
1019 if (item.getUrl().equals(url)) { 1012 if (item.getUrl().equals(url)) {
1020 LargeIconCallback iconCallback = new LargeIconCallbackImpl( 1013 LargeIconCallback iconCallback = new LargeIconCallbackImpl(
1021 item, (MostVisitedItemView) item.getView(), false); 1014 item, (MostVisitedItemView) item.getView(), false);
1022 mManager.getLargeIconForUrl(url, mMinIconSize, iconCallback) ; 1015 mManager.getLargeIconForUrl(url, mMinIconSize, iconCallback) ;
1023 break; 1016 break;
1024 } 1017 }
1025 } 1018 }
1026 } 1019 }
1027 } 1020 }
1028 } 1021 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698