OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |