| 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; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 import org.chromium.chrome.R; | 37 import org.chromium.chrome.R; |
| 38 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback; | 38 import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback; |
| 39 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac
k; | 39 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac
k; |
| 40 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; | 40 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; |
| 41 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; | 41 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; |
| 42 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; | 42 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; |
| 43 import org.chromium.chrome.browser.ntp.MostVisitedItem.MostVisitedItemManager; | 43 import org.chromium.chrome.browser.ntp.MostVisitedItem.MostVisitedItemManager; |
| 44 import org.chromium.chrome.browser.ntp.NewTabPage.OnSearchBoxScrollListener; | 44 import org.chromium.chrome.browser.ntp.NewTabPage.OnSearchBoxScrollListener; |
| 45 import org.chromium.chrome.browser.ntp.cards.NewTabPageAdapter; | 45 import org.chromium.chrome.browser.ntp.cards.NewTabPageAdapter; |
| 46 import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView; | 46 import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView; |
| 47 import org.chromium.chrome.browser.ntp.snippets.SnippetItemDecoration; |
| 47 import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge.SnippetsObserver; | 48 import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge.SnippetsObserver; |
| 48 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse
rver; | 49 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse
rver; |
| 49 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; | 50 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; |
| 50 import org.chromium.chrome.browser.util.ViewUtils; | 51 import org.chromium.chrome.browser.util.ViewUtils; |
| 51 import org.chromium.chrome.browser.widget.RoundedIconGenerator; | 52 import org.chromium.chrome.browser.widget.RoundedIconGenerator; |
| 52 | 53 |
| 53 import jp.tomorrowkey.android.gifplayer.BaseGifImage; | 54 import jp.tomorrowkey.android.gifplayer.BaseGifImage; |
| 54 | 55 |
| 55 /** | 56 /** |
| 56 * The native new tab page, represented by some basic data such as title and url
, and an Android | 57 * The native new tab page, represented by some basic data such as title and url
, and an Android |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 @Override | 379 @Override |
| 379 public void onScrollStateChanged(RecyclerView recyclerView, int
newState) { | 380 public void onScrollStateChanged(RecyclerView recyclerView, int
newState) { |
| 380 if (newState != RecyclerView.SCROLL_STATE_DRAGGING) return; | 381 if (newState != RecyclerView.SCROLL_STATE_DRAGGING) return; |
| 381 RecordUserAction.record("MobileNTP.Snippets.Scrolled"); | 382 RecordUserAction.record("MobileNTP.Snippets.Scrolled"); |
| 382 if (mScrolledOnce) return; | 383 if (mScrolledOnce) return; |
| 383 mScrolledOnce = true; | 384 mScrolledOnce = true; |
| 384 NewTabPageUma.recordSnippetAction(NewTabPageUma.SNIPPETS_ACT
ION_SCROLLED); | 385 NewTabPageUma.recordSnippetAction(NewTabPageUma.SNIPPETS_ACT
ION_SCROLLED); |
| 385 } | 386 } |
| 386 }); | 387 }); |
| 387 initializeSearchBoxRecyclerViewScrollHandling(); | 388 initializeSearchBoxRecyclerViewScrollHandling(); |
| 389 mRecyclerView.addItemDecoration(new SnippetItemDecoration(getContext
())); |
| 388 } else { | 390 } else { |
| 389 initializeSearchBoxScrollHandling(); | 391 initializeSearchBoxScrollHandling(); |
| 390 } | 392 } |
| 391 } | 393 } |
| 392 | 394 |
| 393 private void updateSearchBoxOnScroll() { | 395 private void updateSearchBoxOnScroll() { |
| 394 if (mDisableUrlFocusChangeAnimations) return; | 396 if (mDisableUrlFocusChangeAnimations) return; |
| 395 | 397 |
| 396 float percentage = 0; | 398 float percentage = 0; |
| 397 // During startup the view may not be fully initialized, so we only calc
ulate the current | 399 // During startup the view may not be fully initialized, so we only calc
ulate the current |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 966 } | 968 } |
| 967 | 969 |
| 968 private int getVerticalScroll() { | 970 private int getVerticalScroll() { |
| 969 if (mUseCardsUi) { | 971 if (mUseCardsUi) { |
| 970 return mRecyclerView.computeVerticalScrollOffset(); | 972 return mRecyclerView.computeVerticalScrollOffset(); |
| 971 } else { | 973 } else { |
| 972 return mScrollView.getScrollY(); | 974 return mScrollView.getScrollY(); |
| 973 } | 975 } |
| 974 } | 976 } |
| 975 } | 977 } |
| OLD | NEW |