| 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 |