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 |