Index: chrome/android/java_staging/src/org/chromium/chrome/browser/bookmark/ShortcutActivity.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/bookmark/ShortcutActivity.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/bookmark/ShortcutActivity.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..939856dc05bb0a94ef0aee23938c54df39a3beb8 |
--- /dev/null |
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/bookmark/ShortcutActivity.java |
@@ -0,0 +1,89 @@ |
+// 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.bookmark; |
+ |
+import android.content.Intent; |
+import android.graphics.Bitmap; |
+import android.graphics.Color; |
+import android.view.ViewGroup; |
+ |
+import com.google.android.apps.chrome.R; |
+ |
+import org.chromium.chrome.browser.BookmarkUtils; |
+import org.chromium.chrome.browser.UrlConstants; |
+import org.chromium.chrome.browser.favicon.FaviconHelper; |
+import org.chromium.chrome.browser.init.AsyncInitializationActivity; |
+import org.chromium.chrome.browser.ntp.BookmarksPage; |
+import org.chromium.chrome.browser.ntp.BookmarksPage.BookmarkSelectedListener; |
+import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; |
+import org.chromium.chrome.browser.profiles.Profile; |
+ |
+/** |
+ * Activity that allows the user to select a bookmark to add to their homescreen as a shortcut. |
+ */ |
+public class ShortcutActivity extends AsyncInitializationActivity implements |
+ BookmarkSelectedListener { |
+ private BookmarksPage mBookmarksPage; |
+ |
+ @Override |
+ protected void setContentView() { |
+ // We can't show anything until the native library is loaded. |
+ } |
+ |
+ @Override |
+ public void postInflationStartup() { |
+ setTitle(getResources().getString(R.string.bookmark_shortcut_choose_bookmark)); |
+ } |
+ |
+ @Override |
+ public void initializeState() { |
+ super.initializeState(); |
+ |
+ // Partner bookmarks need to be loaded explicitly. |
+ PartnerBookmarksShim.kickOffReading(this); |
+ |
+ Profile profile = Profile.getLastUsedProfile(); |
+ mBookmarksPage = BookmarksPage.buildPageInSelectBookmarkMode(this, profile, this); |
+ mBookmarksPage.updateForUrl(UrlConstants.BOOKMARKS_URL); |
+ |
+ setContentView(mBookmarksPage.getView(), new ViewGroup.LayoutParams( |
+ ViewGroup.LayoutParams.MATCH_PARENT, |
+ ViewGroup.LayoutParams.MATCH_PARENT)); |
+ } |
+ |
+ @Override |
+ public void onDestroy() { |
+ super.onDestroy(); |
+ if (mBookmarksPage != null) { |
+ mBookmarksPage.destroy(); |
+ mBookmarksPage = null; |
+ } |
+ } |
+ |
+ // BookmarkSelectedListener implementation |
+ |
+ @Override |
+ public void onNewTabOpened() { |
+ } |
+ |
+ @Override |
+ public void onBookmarkSelected(String url, String title, Bitmap favicon) { |
+ int dominantColor = FaviconHelper.getDominantColorForBitmap(favicon); |
+ Bitmap launcherIcon = BookmarkUtils.createLauncherIcon(this, favicon, url, |
+ Color.red(dominantColor), Color.green(dominantColor), Color.blue(dominantColor)); |
+ Intent intent = BookmarkUtils.createAddToHomeIntent(url, title, launcherIcon); |
+ setResult(RESULT_OK, intent); |
+ finish(); |
+ } |
+ |
+ @Override |
+ public void onResumeWithNative() { } |
+ |
+ @Override |
+ public void onPauseWithNative() { } |
+ |
+ @Override |
+ public void onStopWithNative() { } |
+} |