Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsManager.java |
deleted file mode 100644 |
index 16d74ade3a6fa20d24fc1f42f006bc3241f95486..0000000000000000000000000000000000000000 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsManager.java |
+++ /dev/null |
@@ -1,188 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.ntp.snippets; |
- |
-import android.graphics.drawable.Drawable; |
-import android.os.AsyncTask; |
-import android.support.v7.widget.RecyclerView; |
-import android.widget.ImageView; |
- |
-import org.chromium.base.Log; |
-import org.chromium.base.StreamUtil; |
-import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; |
-import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge.SnippetsObserver; |
-import org.chromium.chrome.browser.profiles.Profile; |
- |
-import java.io.IOException; |
-import java.io.InputStream; |
-import java.net.MalformedURLException; |
-import java.net.URL; |
-import java.util.ArrayList; |
-import java.util.List; |
- |
-/** |
- * A class that stores and manages the article snippets that will be shown on the NTP. |
- */ |
-public class SnippetsManager { |
- private static final String TAG = "SnippetsManager"; |
- |
- /** |
- * Describes the header of a group of similar card snippets |
- */ |
- public static final int SNIPPET_ITEM_TYPE_HEADER = 1; |
- /** |
- * Describes a single card snippet |
- */ |
- public static final int SNIPPET_ITEM_TYPE_SNIPPET = 2; |
- |
- /** |
- * Enum values for recording {@code SNIPPETS_STATE_HISTOGRAM} histogram. |
- * Stored here as it is recorded in multiple places. |
- */ |
- public static final int SNIPPETS_SHOWN = 0; |
- public static final int SNIPPETS_SCROLLED = 1; |
- public static final int SNIPPETS_CLICKED = 2; |
- public static final int NUM_SNIPPETS_ACTIONS = 3; |
- public static final String SNIPPETS_STATE_HISTOGRAM = "NewTabPage.Snippets.Interactions"; |
- |
- private NewTabPageManager mNewTabPageManager; |
- private SnippetsAdapter mDataAdapter; |
- private SnippetsBridge mSnippetsBridge; |
- |
- /** Base type for anything to add to the snippets view |
- */ |
- public interface SnippetListItem { |
- /** |
- * Returns the type of this snippet item (SNIPPET_ITEM_TYPE_HEADER or |
- * SNIPPET_ITEM_TYPE_SNIPPET). This is so we can distinguish between different elements |
- * that are held in a single RecyclerView holder. |
- * |
- * @return the type of this list item. |
- */ |
- public int getType(); |
- } |
- |
- /** Represents the data for a header of a group of snippets |
- */ |
- public static class SnippetHeader implements SnippetListItem { |
- public final String mRecommendationBasis; |
- |
- public SnippetHeader(String recommendationBasis) { |
- mRecommendationBasis = recommendationBasis; |
- } |
- |
- @Override |
- public int getType() { |
- return SNIPPET_ITEM_TYPE_HEADER; |
- } |
- } |
- |
- /** |
- * Represents the data for a card snippet. |
- */ |
- public static class SnippetArticle implements SnippetListItem { |
- public final String mTitle; |
- public final String mPublisher; |
- public final String mPreviewText; |
- public final String mUrl; |
- public final String mThumbnailPath; |
- public final int mPosition; |
- |
- private ThumbnailRenderingTask mThumbnailRenderingTask; |
- |
- // Async task to create the thumbnail from a URL |
- // TODO(maybelle): This task to retrieve the thumbnail from the web is temporary while |
- // we are prototyping this feature for clank. For the real production feature, we |
- // will likely have to download/decode the thumbnail on the native side. |
- private static class ThumbnailRenderingTask extends AsyncTask<String, Void, Drawable> { |
- private ImageView mThumbnailView; |
- |
- ThumbnailRenderingTask(ImageView thumbnailView) { |
- mThumbnailView = thumbnailView; |
- } |
- |
- @Override |
- protected Drawable doInBackground(String... params) { |
- if (params[0].isEmpty()) return null; |
- InputStream is = null; |
- try { |
- is = (InputStream) new URL(params[0]).getContent(); |
- return Drawable.createFromStream(is, "thumbnail"); |
- } catch (MalformedURLException e) { |
- Log.e(TAG, "Could not get image thumbnail due to malformed URL", e); |
- } catch (IOException e) { |
- Log.e(TAG, "Could not get image thumbnail", e); |
- } finally { |
- StreamUtil.closeQuietly(is); |
- } |
- return null; |
- } |
- |
- @Override |
- protected void onPostExecute(Drawable thumbnail) { |
- mThumbnailView.setImageDrawable(thumbnail); |
- } |
- } |
- |
- public SnippetArticle(String title, String publisher, String previewText, String url, |
- String thumbnailPath, int position) { |
- mTitle = title; |
- mPublisher = publisher; |
- mPreviewText = previewText; |
- mUrl = url; |
- mThumbnailPath = thumbnailPath; |
- mPosition = position; |
- } |
- |
- @Override |
- public int getType() { |
- return SNIPPET_ITEM_TYPE_SNIPPET; |
- } |
- |
- /** |
- * Retrieves this SnippetArticle's thumbnail asynchronously and sets it onto the given |
- * ImageView. |
- * |
- * @param view The ImageView to set the thumbnail onto. |
- */ |
- public void setThumbnailOnView(ImageView view) { |
- if (mThumbnailRenderingTask != null) mThumbnailRenderingTask.cancel(true); |
- |
- mThumbnailRenderingTask = new ThumbnailRenderingTask(view); |
- mThumbnailRenderingTask.executeOnExecutor( |
- AsyncTask.THREAD_POOL_EXECUTOR, mThumbnailPath); |
- } |
- } |
- |
- public SnippetsManager(NewTabPageManager tabManager, Profile profile) { |
- mNewTabPageManager = tabManager; |
- mDataAdapter = new SnippetsAdapter(this); |
- mSnippetsBridge = new SnippetsBridge(profile, new SnippetsObserver() { |
- @Override |
- public void onSnippetsAvailable( |
- String[] titles, String[] urls, String[] thumbnailUrls, String[] previewText) { |
- List<SnippetListItem> listItems = new ArrayList<SnippetListItem>(); |
- for (int i = 0; i < titles.length; ++i) { |
- SnippetArticle article = new SnippetArticle( |
- titles[i], "", previewText[i], urls[i], thumbnailUrls[i], i); |
- listItems.add(article); |
- } |
- mDataAdapter.setSnippetListItems(listItems); |
- } |
- }); |
- } |
- |
- public void setSnippetsView(RecyclerView mSnippetsView) { |
- mSnippetsView.setAdapter(mDataAdapter); |
- } |
- |
- public void loadUrl(String url) { |
- mNewTabPageManager.open(url); |
- } |
- |
- public void destroy() { |
- mSnippetsBridge.destroy(); |
- } |
-} |