OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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.profiles; | 5 package org.chromium.chrome.browser.profiles; |
6 | 6 |
7 import android.graphics.Bitmap; | 7 import android.graphics.Bitmap; |
8 | 8 |
9 import org.chromium.base.annotations.CalledByNative; | 9 import org.chromium.base.annotations.CalledByNative; |
10 | 10 |
11 /** | 11 /** |
12 * Methods to bridge into native history to provide most recent urls, titles and
thumbnails. | 12 * Methods to bridge into native history to provide most recent urls, titles and
thumbnails. |
13 */ | 13 */ |
14 public class MostVisitedSites { | 14 public class MostVisitedSites { |
15 | 15 |
16 private long mNativeMostVisitedSites; | 16 private long mNativeMostVisitedSites; |
17 | 17 |
18 /** | 18 /** |
19 * Interface for receiving the list of most visited urls. | 19 * Interface for receiving the list of most visited urls. |
20 */ | 20 */ |
21 public interface MostVisitedURLsObserver { | 21 public interface MostVisitedURLsObserver { |
22 /** | 22 /** |
23 * This is called when the list of most visited URLs is initially availa
ble or updated. | 23 * This is called when the list of most visited URLs is initially availa
ble or updated. |
24 * Parameters guaranteed to be non-null. | 24 * Parameters guaranteed to be non-null. |
25 * | 25 * |
26 * @param titles Array of most visited url page titles. | 26 * @param titles Array of most visited url page titles. |
27 * @param urls Array of most visited URLs, including popular URLs if | 27 * @param urls Array of most visited URLs, including popular URLs if |
28 * available and necessary (i.e. there aren't enough most | 28 * available and necessary (i.e. there aren't enough most |
29 * visited URLs). | 29 * visited URLs). |
30 */ | 30 */ |
31 @CalledByNative("MostVisitedURLsObserver") | 31 @CalledByNative("MostVisitedURLsObserver") |
32 public void onMostVisitedURLsAvailable(String[] titles, String[] urls); | 32 public void onMostVisitedURLsAvailable(String[] titles, String[] urls); |
33 | 33 |
34 /** | 34 /** |
35 * This is called when the list of popular URLs is initially available o
r updated. | 35 * This is called when the list of popular URLs is initially available o
r updated. |
36 * Parameters guaranteed to be non-null. | 36 * Parameters guaranteed to be non-null. |
37 * | 37 * |
38 * @param urls Array of popular URLs. | 38 * @param urls Array of popular URLs. |
39 * @param faviconUrls Array of URLs for the corresponding favicons (if k
nown). | 39 * @param faviconUrls Array of URLs for the corresponding favicons (if k
nown). |
40 */ | 40 */ |
41 @CalledByNative("MostVisitedURLsObserver") | 41 @CalledByNative("MostVisitedURLsObserver") |
42 public void onPopularURLsAvailable(String[] urls, String[] faviconUrls); | 42 public void onPopularURLsAvailable(String[] urls, String[] faviconUrls); |
43 } | 43 } |
44 | 44 |
45 /** | 45 /** |
46 * Interface for receiving a thumbnail for a most visited site. | 46 * Interface for receiving a thumbnail for a most visited site. |
47 */ | 47 */ |
48 public interface ThumbnailCallback { | 48 public interface ThumbnailCallback { |
49 /** | 49 /** |
50 * Callback method for fetching thumbnail of a most visited URL. | 50 * Callback method for fetching thumbnail of a most visited URL. |
51 * Parameter may be null. | 51 * Parameter may be null. |
52 * | 52 * |
53 * @param thumbnail The bitmap thumbnail for the requested URL. | 53 * @param thumbnail The bitmap thumbnail for the requested URL. |
| 54 * @param isLocalThumbnail Whether the thumbnail was locally captured, a
s opposed to |
| 55 * server-provided. |
54 */ | 56 */ |
55 @CalledByNative("ThumbnailCallback") | 57 @CalledByNative("ThumbnailCallback") |
56 public void onMostVisitedURLsThumbnailAvailable(Bitmap thumbnail); | 58 public void onMostVisitedURLsThumbnailAvailable(Bitmap thumbnail, boolea
n isLocalThumbnail); |
57 } | 59 } |
58 | 60 |
59 /** | 61 /** |
60 * MostVisitedSites constructor requires a valid user profile object. | 62 * MostVisitedSites constructor requires a valid user profile object. |
61 * | 63 * |
62 * @param profile The profile for which to fetch most visited sites. | 64 * @param profile The profile for which to fetch most visited sites. |
63 */ | 65 */ |
64 public MostVisitedSites(Profile profile) { | 66 public MostVisitedSites(Profile profile) { |
65 mNativeMostVisitedSites = nativeInit(profile); | 67 mNativeMostVisitedSites = nativeInit(profile); |
66 } | 68 } |
67 | 69 |
68 /** | 70 /** |
69 * Cleans up the C++ side of this class. This instance must not be used afte
r calling destroy(). | 71 * Cleans up the C++ side of this class. This instance must not be used afte
r calling destroy(). |
70 */ | 72 */ |
71 public void destroy() { | 73 public void destroy() { |
72 assert mNativeMostVisitedSites != 0; | 74 assert mNativeMostVisitedSites != 0; |
73 nativeDestroy(mNativeMostVisitedSites); | 75 nativeDestroy(mNativeMostVisitedSites); |
74 mNativeMostVisitedSites = 0; | 76 mNativeMostVisitedSites = 0; |
75 } | 77 } |
76 | 78 |
77 /** | 79 /** |
78 * Sets the MostVisitedURLsObserver to receive the list of most visited site
s now or soon, and | 80 * Sets the MostVisitedURLsObserver to receive the list of most visited site
s now or soon, and |
79 * after any changes to the list. Note: the observer may be notified synchro
nously or | 81 * after any changes to the list. Note: the observer may be notified synchro
nously or |
80 * asynchronously. | 82 * asynchronously. |
81 * @param observer The MostVisitedURLsObserver to be called once when the mo
st visited sites | 83 * @param observer The MostVisitedURLsObserver to be called once when the mo
st visited sites |
82 * are initially available and again whenever the list of most vi
sited sites changes. | 84 * are initially available and again whenever the list of mo
st visited sites |
| 85 * changes. |
83 * @param numSites The maximum number of most visited sites to return. | 86 * @param numSites The maximum number of most visited sites to return. |
84 */ | 87 */ |
85 public void setMostVisitedURLsObserver(final MostVisitedURLsObserver observe
r, int numSites) { | 88 public void setMostVisitedURLsObserver(final MostVisitedURLsObserver observe
r, int numSites) { |
86 MostVisitedURLsObserver wrappedObserver = new MostVisitedURLsObserver()
{ | 89 MostVisitedURLsObserver wrappedObserver = new MostVisitedURLsObserver()
{ |
87 @Override | 90 @Override |
88 public void onMostVisitedURLsAvailable(String[] titles, String[] url
s) { | 91 public void onMostVisitedURLsAvailable(String[] titles, String[] url
s) { |
89 // Don't notify observer if we've already been destroyed. | 92 // Don't notify observer if we've already been destroyed. |
90 if (mNativeMostVisitedSites != 0) { | 93 if (mNativeMostVisitedSites != 0) { |
91 observer.onMostVisitedURLsAvailable(titles, urls); | 94 observer.onMostVisitedURLsAvailable(titles, urls); |
92 } | 95 } |
(...skipping 11 matching lines...) Expand all Loading... |
104 | 107 |
105 /** | 108 /** |
106 * Fetches thumbnail bitmap for a url returned by getMostVisitedURLs. | 109 * Fetches thumbnail bitmap for a url returned by getMostVisitedURLs. |
107 * | 110 * |
108 * @param url String representation of url. | 111 * @param url String representation of url. |
109 * @param callback Instance of a callback object. | 112 * @param callback Instance of a callback object. |
110 */ | 113 */ |
111 public void getURLThumbnail(String url, final ThumbnailCallback callback) { | 114 public void getURLThumbnail(String url, final ThumbnailCallback callback) { |
112 ThumbnailCallback wrappedCallback = new ThumbnailCallback() { | 115 ThumbnailCallback wrappedCallback = new ThumbnailCallback() { |
113 @Override | 116 @Override |
114 public void onMostVisitedURLsThumbnailAvailable(Bitmap thumbnail) { | 117 public void onMostVisitedURLsThumbnailAvailable(Bitmap thumbnail, |
| 118 boolean isLocalThumbnail) { |
115 // Don't notify callback if we've already been destroyed. | 119 // Don't notify callback if we've already been destroyed. |
116 if (mNativeMostVisitedSites != 0) { | 120 if (mNativeMostVisitedSites != 0) { |
117 callback.onMostVisitedURLsThumbnailAvailable(thumbnail); | 121 callback.onMostVisitedURLsThumbnailAvailable(thumbnail, isLo
calThumbnail); |
118 } | 122 } |
119 } | 123 } |
120 }; | 124 }; |
121 nativeGetURLThumbnail(mNativeMostVisitedSites, url, wrappedCallback); | 125 nativeGetURLThumbnail(mNativeMostVisitedSites, url, wrappedCallback); |
122 } | 126 } |
123 | 127 |
124 /** | 128 /** |
125 * Blacklist a URL from the most visited URLs list. | 129 * Blacklists a URL from the most visited URLs list. |
126 * @param url The URL to be blacklisted. | 130 * @param url The URL to be blacklisted. |
127 */ | 131 */ |
128 public void blacklistUrl(String url) { | 132 public void blacklistUrl(String url) { |
129 nativeBlacklistUrl(mNativeMostVisitedSites, url); | 133 nativeBlacklistUrl(mNativeMostVisitedSites, url); |
130 } | 134 } |
131 | 135 |
132 /** | 136 /** |
133 * Called when the loading of the Most Visited page is complete. | 137 * Records metrics about which types of tiles are displayed. |
| 138 * @param tileTypes An array of values from MostVisitedTileType indicating t
he type of each |
| 139 * tile that's currently showing. |
| 140 * @paral isIconMode Whether the icon-based version of the NTP is showing (a
s opposed to the |
| 141 * thumbnail-based version). |
134 */ | 142 */ |
135 public void onLoadingComplete() { | 143 public void recordTileTypeMetrics(int[] tileTypes, boolean isIconMode) { |
136 nativeOnLoadingComplete(mNativeMostVisitedSites); | 144 nativeRecordTileTypeMetrics(mNativeMostVisitedSites, tileTypes, isIconMo
de); |
137 } | 145 } |
138 | 146 |
139 /** | 147 /** |
140 * Record the opening of a Most Visited Item. | 148 * Records the opening of a Most Visited Item. |
141 * @param index The index of the item that was opened. | 149 * @param index The index of the item that was opened. |
| 150 * @param tileType The visual type of the item. Valid values are listed in M
ostVisitedTileType. |
142 */ | 151 */ |
143 public void recordOpenedMostVisitedItem(int index) { | 152 public void recordOpenedMostVisitedItem(int index, int tileType) { |
144 nativeRecordOpenedMostVisitedItem(mNativeMostVisitedSites, index); | 153 nativeRecordOpenedMostVisitedItem(mNativeMostVisitedSites, index, tileTy
pe); |
145 } | 154 } |
146 | 155 |
147 private native long nativeInit(Profile profile); | 156 private native long nativeInit(Profile profile); |
148 private native void nativeDestroy(long nativeMostVisitedSites); | 157 private native void nativeDestroy(long nativeMostVisitedSites); |
149 private native void nativeOnLoadingComplete(long nativeMostVisitedSites); | |
150 private native void nativeSetMostVisitedURLsObserver(long nativeMostVisitedS
ites, | 158 private native void nativeSetMostVisitedURLsObserver(long nativeMostVisitedS
ites, |
151 MostVisitedURLsObserver observer, int numSites); | 159 MostVisitedURLsObserver observer, int numSites); |
152 private native void nativeGetURLThumbnail(long nativeMostVisitedSites, Strin
g url, | 160 private native void nativeGetURLThumbnail(long nativeMostVisitedSites, Strin
g url, |
153 ThumbnailCallback callback); | 161 ThumbnailCallback callback); |
154 private native void nativeBlacklistUrl(long nativeMostVisitedSites, String u
rl); | 162 private native void nativeBlacklistUrl(long nativeMostVisitedSites, String u
rl); |
155 private native void nativeRecordOpenedMostVisitedItem(long nativeMostVisited
Sites, int index); | 163 private native void nativeRecordTileTypeMetrics(long nativeMostVisitedSites,
int[] tileTypes, |
| 164 boolean isIconMode); |
| 165 private native void nativeRecordOpenedMostVisitedItem(long nativeMostVisited
Sites, int index, |
| 166 int tileType); |
156 | 167 |
157 } | 168 } |
OLD | NEW |