Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(204)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java

Issue 601433002: Use Manifest.icons instead of favicon in ShortcutHelper when possible. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@manifest_icons_sizes
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/android/shortcut_helper.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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; 5 package org.chromium.chrome.browser;
6 6
7 import android.app.ActivityManager; 7 import android.app.ActivityManager;
8 import android.content.Context; 8 import android.content.Context;
9 import android.content.Intent; 9 import android.content.Intent;
10 import android.graphics.Bitmap; 10 import android.graphics.Bitmap;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 } 115 }
116 116
117 /** 117 /**
118 * Called when we have to fire an Intent to add a shortcut to the homescreen . 118 * Called when we have to fire an Intent to add a shortcut to the homescreen .
119 * If the webpage indicated that it was capable of functioning as a webapp, it is added as a 119 * If the webpage indicated that it was capable of functioning as a webapp, it is added as a
120 * shortcut to a webapp Activity rather than as a general bookmark. User is sent to the 120 * shortcut to a webapp Activity rather than as a general bookmark. User is sent to the
121 * homescreen as soon as the shortcut is created. 121 * homescreen as soon as the shortcut is created.
122 */ 122 */
123 @SuppressWarnings("unused") 123 @SuppressWarnings("unused")
124 @CalledByNative 124 @CalledByNative
125 private static void addShortcut(Context context, String url, String title, B itmap favicon, 125 private static void addShortcut(Context context, String url, String title, B itmap icon,
126 int red, int green, int blue, boolean isWebappCapable, int orientati on) { 126 int red, int green, int blue, boolean isWebappCapable, int orientati on) {
127 assert sFullScreenAction != null; 127 assert sFullScreenAction != null;
128 128
129 Intent shortcutIntent; 129 Intent shortcutIntent;
130 if (isWebappCapable) { 130 if (isWebappCapable) {
131 // Encode the favicon as a base64 string (Launcher drops Bitmaps in the Intent). 131 // Encode the icon as a base64 string (Launcher drops Bitmaps in the Intent).
132 String encodedIcon = ""; 132 String encodedIcon = "";
133 if (favicon != null) { 133 if (icon != null) {
134 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutpu tStream(); 134 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutpu tStream();
135 favicon.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutput Stream); 135 icon.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStr eam);
136 byte[] byteArray = byteArrayOutputStream.toByteArray(); 136 byte[] byteArray = byteArrayOutputStream.toByteArray();
137 encodedIcon = Base64.encodeToString(byteArray, Base64.DEFAULT); 137 encodedIcon = Base64.encodeToString(byteArray, Base64.DEFAULT);
138 } 138 }
139 139
140 // Add the shortcut as a launcher icon for a full-screen Activity. 140 // Add the shortcut as a launcher icon for a full-screen Activity.
141 shortcutIntent = new Intent(); 141 shortcutIntent = new Intent();
142 shortcutIntent.setAction(sFullScreenAction); 142 shortcutIntent.setAction(sFullScreenAction);
143 shortcutIntent.putExtra(EXTRA_ICON, encodedIcon); 143 shortcutIntent.putExtra(EXTRA_ICON, encodedIcon);
144 shortcutIntent.putExtra(EXTRA_ID, UUID.randomUUID().toString()); 144 shortcutIntent.putExtra(EXTRA_ID, UUID.randomUUID().toString());
145 shortcutIntent.putExtra(EXTRA_TITLE, title); 145 shortcutIntent.putExtra(EXTRA_TITLE, title);
146 shortcutIntent.putExtra(EXTRA_URL, url); 146 shortcutIntent.putExtra(EXTRA_URL, url);
147 shortcutIntent.putExtra(EXTRA_ORIENTATION, orientation); 147 shortcutIntent.putExtra(EXTRA_ORIENTATION, orientation);
148 148
149 // The only reason we convert to a String here is because Android in explicably eats a 149 // The only reason we convert to a String here is because Android in explicably eats a
150 // byte[] when adding the shortcut -- the Bundle received by the lau nched Activity even 150 // byte[] when adding the shortcut -- the Bundle received by the lau nched Activity even
151 // lacks the key for the extra. 151 // lacks the key for the extra.
152 byte[] mac = WebappAuthenticator.getMacForUrl(context, url); 152 byte[] mac = WebappAuthenticator.getMacForUrl(context, url);
153 String encodedMac = Base64.encodeToString(mac, Base64.DEFAULT); 153 String encodedMac = Base64.encodeToString(mac, Base64.DEFAULT);
154 shortcutIntent.putExtra(EXTRA_MAC, encodedMac); 154 shortcutIntent.putExtra(EXTRA_MAC, encodedMac);
155 } else { 155 } else {
156 // Add the shortcut as a launcher icon to open in the browser Activi ty. 156 // Add the shortcut as a launcher icon to open in the browser Activi ty.
157 shortcutIntent = BookmarkUtils.createShortcutIntent(context, url); 157 shortcutIntent = BookmarkUtils.createShortcutIntent(context, url);
158 } 158 }
159 159
160 shortcutIntent.setPackage(context.getPackageName()); 160 shortcutIntent.setPackage(context.getPackageName());
161 context.sendBroadcast(BookmarkUtils.createAddToHomeIntent(context, short cutIntent, title, 161 context.sendBroadcast(BookmarkUtils.createAddToHomeIntent(context, short cutIntent, title,
162 favicon, red, green, blue)); 162 icon, red, green, blue));
163 163
164 // User is sent to the homescreen as soon as the shortcut is created. 164 // User is sent to the homescreen as soon as the shortcut is created.
165 Intent homeIntent = new Intent(Intent.ACTION_MAIN); 165 Intent homeIntent = new Intent(Intent.ACTION_MAIN);
166 homeIntent.addCategory(Intent.CATEGORY_HOME); 166 homeIntent.addCategory(Intent.CATEGORY_HOME);
167 homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 167 homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
168 context.startActivity(homeIntent); 168 context.startActivity(homeIntent);
169 } 169 }
170 170
171 private native long nativeInitialize(long tabAndroidPtr); 171 private native long nativeInitialize(long tabAndroidPtr);
172 private native void nativeAddShortcut(long nativeShortcutHelper, String user RequestedTitle, 172 private native void nativeAddShortcut(long nativeShortcutHelper, String user RequestedTitle,
173 int launcherLargeIconSize); 173 int launcherLargeIconSize);
174 private native void nativeTearDown(long nativeShortcutHelper); 174 private native void nativeTearDown(long nativeShortcutHelper);
175 } 175 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/android/shortcut_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698