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

Side by Side Diff: chrome/browser/android/shortcut_helper.cc

Issue 2671853002: Rename best icon to best primary icon in Web app related code. (Closed)
Patch Set: Removing java changes Created 3 years, 10 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
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 #include "chrome/browser/android/shortcut_helper.h" 5 #include "chrome/browser/android/shortcut_helper.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
(...skipping 28 matching lines...) Expand all
39 39
40 int g_default_rgb_icon_value = 145; 40 int g_default_rgb_icon_value = 145;
41 41
42 // Retrieves and caches the ideal and minimum sizes of the Home screen icon 42 // Retrieves and caches the ideal and minimum sizes of the Home screen icon
43 // and the splash screen image. 43 // and the splash screen image.
44 void GetHomescreenIconAndSplashImageSizes() { 44 void GetHomescreenIconAndSplashImageSizes() {
45 JNIEnv* env = base::android::AttachCurrentThread(); 45 JNIEnv* env = base::android::AttachCurrentThread();
46 ScopedJavaLocalRef<jintArray> java_size_array = 46 ScopedJavaLocalRef<jintArray> java_size_array =
47 Java_ShortcutHelper_getHomeScreenIconAndSplashImageSizes(env); 47 Java_ShortcutHelper_getHomeScreenIconAndSplashImageSizes(env);
48 std::vector<int> sizes; 48 std::vector<int> sizes;
49 base::android::JavaIntArrayToIntVector( 49 base::android::JavaIntArrayToIntVector(env, java_size_array.obj(), &sizes);
50 env, java_size_array.obj(), &sizes);
51 50
52 // Check that the size returned is what is expected. 51 // Check that the size returned is what is expected.
53 DCHECK(sizes.size() == 5); 52 DCHECK(sizes.size() == 5);
54 53
55 // This ordering must be kept up to date with the Java ShortcutHelper. 54 // This ordering must be kept up to date with the Java ShortcutHelper.
56 g_ideal_homescreen_icon_size = sizes[0]; 55 g_ideal_homescreen_icon_size = sizes[0];
57 g_minimum_homescreen_icon_size = sizes[1]; 56 g_minimum_homescreen_icon_size = sizes[1];
58 g_ideal_splash_image_size = sizes[2]; 57 g_ideal_splash_image_size = sizes[2];
59 g_minimum_splash_image_size = sizes[3]; 58 g_minimum_splash_image_size = sizes[3];
60 g_ideal_badge_icon_size = sizes[4]; 59 g_ideal_badge_icon_size = sizes[4];
61 60
62 // Try to ensure that the data returned is sane. 61 // Try to ensure that the data returned is sane.
63 DCHECK(g_minimum_homescreen_icon_size <= g_ideal_homescreen_icon_size); 62 DCHECK(g_minimum_homescreen_icon_size <= g_ideal_homescreen_icon_size);
64 DCHECK(g_minimum_splash_image_size <= g_ideal_splash_image_size); 63 DCHECK(g_minimum_splash_image_size <= g_ideal_splash_image_size);
65 } 64 }
66 65
67 } // anonymous namespace 66 } // anonymous namespace
68 67
69 // static 68 // static
70 void ShortcutHelper::AddToLauncherWithSkBitmap( 69 void ShortcutHelper::AddToLauncherWithSkBitmap(
71 content::BrowserContext* browser_context, 70 content::BrowserContext* browser_context,
72 const ShortcutInfo& info, 71 const ShortcutInfo& info,
73 const std::string& webapp_id, 72 const std::string& webapp_id,
74 const SkBitmap& icon_bitmap, 73 const SkBitmap& icon_bitmap,
75 const base::Closure& splash_image_callback) { 74 const base::Closure& splash_image_callback) {
76 if (info.display == blink::WebDisplayModeStandalone || 75 if (info.display == blink::WebDisplayModeStandalone ||
77 info.display == blink::WebDisplayModeFullscreen) { 76 info.display == blink::WebDisplayModeFullscreen) {
(...skipping 26 matching lines...) Expand all
104 ScopedJavaLocalRef<jstring> java_url = 103 ScopedJavaLocalRef<jstring> java_url =
105 base::android::ConvertUTF8ToJavaString(env, info.url.spec()); 104 base::android::ConvertUTF8ToJavaString(env, info.url.spec());
106 ScopedJavaLocalRef<jstring> java_scope_url = 105 ScopedJavaLocalRef<jstring> java_scope_url =
107 base::android::ConvertUTF8ToJavaString(env, info.scope.spec()); 106 base::android::ConvertUTF8ToJavaString(env, info.scope.spec());
108 ScopedJavaLocalRef<jstring> java_user_title = 107 ScopedJavaLocalRef<jstring> java_user_title =
109 base::android::ConvertUTF16ToJavaString(env, info.user_title); 108 base::android::ConvertUTF16ToJavaString(env, info.user_title);
110 ScopedJavaLocalRef<jstring> java_name = 109 ScopedJavaLocalRef<jstring> java_name =
111 base::android::ConvertUTF16ToJavaString(env, info.name); 110 base::android::ConvertUTF16ToJavaString(env, info.name);
112 ScopedJavaLocalRef<jstring> java_short_name = 111 ScopedJavaLocalRef<jstring> java_short_name =
113 base::android::ConvertUTF16ToJavaString(env, info.short_name); 112 base::android::ConvertUTF16ToJavaString(env, info.short_name);
114 ScopedJavaLocalRef<jstring> java_best_icon_url = 113 ScopedJavaLocalRef<jstring> java_best_primary_icon_url =
115 base::android::ConvertUTF8ToJavaString(env, info.best_icon_url.spec()); 114 base::android::ConvertUTF8ToJavaString(env,
115 info.best_primary_icon_url.spec());
116 ScopedJavaLocalRef<jobject> java_bitmap; 116 ScopedJavaLocalRef<jobject> java_bitmap;
117 if (icon_bitmap.getSize()) 117 if (icon_bitmap.getSize())
118 java_bitmap = gfx::ConvertToJavaBitmap(&icon_bitmap); 118 java_bitmap = gfx::ConvertToJavaBitmap(&icon_bitmap);
119 119
120 // The callback will need to be run after shortcut creation completes in order 120 // The callback will need to be run after shortcut creation completes in order
121 // to download the splash image and save it to the WebappDataStorage. Create a 121 // to download the splash image and save it to the WebappDataStorage. Create a
122 // copy of the callback here and send the pointer to Java, which will send it 122 // copy of the callback here and send the pointer to Java, which will send it
123 // back once the asynchronous shortcut creation process finishes. 123 // back once the asynchronous shortcut creation process finishes.
124 uintptr_t callback_pointer = 124 uintptr_t callback_pointer =
125 reinterpret_cast<uintptr_t>(new base::Closure(splash_image_callback)); 125 reinterpret_cast<uintptr_t>(new base::Closure(splash_image_callback));
126 126
127 Java_ShortcutHelper_addWebapp(env, java_webapp_id, java_url, java_scope_url, 127 Java_ShortcutHelper_addWebapp(
128 java_user_title, java_name, java_short_name, 128 env, java_webapp_id, java_url, java_scope_url, java_user_title, java_name,
129 java_best_icon_url, java_bitmap, info.display, 129 java_short_name, java_best_primary_icon_url, java_bitmap, info.display,
130 info.orientation, info.source, info.theme_color, 130 info.orientation, info.source, info.theme_color, info.background_color,
131 info.background_color, callback_pointer); 131 callback_pointer);
132 } 132 }
133 133
134 void ShortcutHelper::AddShortcutWithSkBitmap( 134 void ShortcutHelper::AddShortcutWithSkBitmap(const ShortcutInfo& info,
135 const ShortcutInfo& info, 135 const SkBitmap& icon_bitmap) {
136 const SkBitmap& icon_bitmap) {
137 JNIEnv* env = base::android::AttachCurrentThread(); 136 JNIEnv* env = base::android::AttachCurrentThread();
138 ScopedJavaLocalRef<jstring> java_url = 137 ScopedJavaLocalRef<jstring> java_url =
139 base::android::ConvertUTF8ToJavaString(env, info.url.spec()); 138 base::android::ConvertUTF8ToJavaString(env, info.url.spec());
140 ScopedJavaLocalRef<jstring> java_user_title = 139 ScopedJavaLocalRef<jstring> java_user_title =
141 base::android::ConvertUTF16ToJavaString(env, info.user_title); 140 base::android::ConvertUTF16ToJavaString(env, info.user_title);
142 ScopedJavaLocalRef<jobject> java_bitmap; 141 ScopedJavaLocalRef<jobject> java_bitmap;
143 if (icon_bitmap.getSize()) 142 if (icon_bitmap.getSize())
144 java_bitmap = gfx::ConvertToJavaBitmap(&icon_bitmap); 143 java_bitmap = gfx::ConvertToJavaBitmap(&icon_bitmap);
145 144
146 Java_ShortcutHelper_addShortcut(env, java_url, java_user_title, java_bitmap, 145 Java_ShortcutHelper_addShortcut(env, java_url, java_user_title, java_bitmap,
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 const std::string& webapp_id) { 190 const std::string& webapp_id) {
192 // This is a fire and forget task. It is not vital for the splash screen image 191 // This is a fire and forget task. It is not vital for the splash screen image
193 // to be downloaded so if the downloader returns false there is no fallback. 192 // to be downloaded so if the downloader returns false there is no fallback.
194 ManifestIconDownloader::Download( 193 ManifestIconDownloader::Download(
195 web_contents, image_url, ideal_splash_image_size_in_px, 194 web_contents, image_url, ideal_splash_image_size_in_px,
196 minimum_splash_image_size_in_px, 195 minimum_splash_image_size_in_px,
197 base::Bind(&ShortcutHelper::StoreWebappSplashImage, webapp_id)); 196 base::Bind(&ShortcutHelper::StoreWebappSplashImage, webapp_id));
198 } 197 }
199 198
200 // static 199 // static
201 void ShortcutHelper::StoreWebappSplashImage( 200 void ShortcutHelper::StoreWebappSplashImage(const std::string& webapp_id,
202 const std::string& webapp_id, 201 const SkBitmap& splash_image) {
203 const SkBitmap& splash_image) {
204 if (splash_image.drawsNothing()) 202 if (splash_image.drawsNothing())
205 return; 203 return;
206 204
207 JNIEnv* env = base::android::AttachCurrentThread(); 205 JNIEnv* env = base::android::AttachCurrentThread();
208 ScopedJavaLocalRef<jstring> java_webapp_id = 206 ScopedJavaLocalRef<jstring> java_webapp_id =
209 base::android::ConvertUTF8ToJavaString(env, webapp_id); 207 base::android::ConvertUTF8ToJavaString(env, webapp_id);
210 ScopedJavaLocalRef<jobject> java_splash_image = 208 ScopedJavaLocalRef<jobject> java_splash_image =
211 gfx::ConvertToJavaBitmap(&splash_image); 209 gfx::ConvertToJavaBitmap(&splash_image);
212 210
213 Java_ShortcutHelper_storeWebappSplashImage(env, java_webapp_id, 211 Java_ShortcutHelper_storeWebappSplashImage(env, java_webapp_id,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 // static 257 // static
260 std::string ShortcutHelper::QueryWebApkPackage(const GURL& url) { 258 std::string ShortcutHelper::QueryWebApkPackage(const GURL& url) {
261 JNIEnv* env = base::android::AttachCurrentThread(); 259 JNIEnv* env = base::android::AttachCurrentThread();
262 ScopedJavaLocalRef<jstring> java_url = 260 ScopedJavaLocalRef<jstring> java_url =
263 base::android::ConvertUTF8ToJavaString(env, url.spec()); 261 base::android::ConvertUTF8ToJavaString(env, url.spec());
264 ScopedJavaLocalRef<jstring> java_webapk_package_name = 262 ScopedJavaLocalRef<jstring> java_webapk_package_name =
265 Java_ShortcutHelper_queryWebApkPackage(env, java_url); 263 Java_ShortcutHelper_queryWebApkPackage(env, java_url);
266 264
267 std::string webapk_package_name = ""; 265 std::string webapk_package_name = "";
268 if (java_webapk_package_name.obj()) { 266 if (java_webapk_package_name.obj()) {
269 webapk_package_name = base::android::ConvertJavaStringToUTF8( 267 webapk_package_name =
270 env, java_webapk_package_name); 268 base::android::ConvertJavaStringToUTF8(env, java_webapk_package_name);
271 } 269 }
272 return webapk_package_name; 270 return webapk_package_name;
273 } 271 }
274 272
275 // static 273 // static
276 bool ShortcutHelper::IsWebApkInstalled( 274 bool ShortcutHelper::IsWebApkInstalled(content::BrowserContext* browser_context,
277 content::BrowserContext* browser_context, 275 const GURL& start_url,
278 const GURL& start_url, 276 const GURL& manifest_url) {
279 const GURL& manifest_url) {
280 return !QueryWebApkPackage(start_url).empty() || 277 return !QueryWebApkPackage(start_url).empty() ||
281 WebApkInstallService::Get(browser_context) 278 WebApkInstallService::Get(browser_context)
282 ->IsInstallInProgress(manifest_url); 279 ->IsInstallInProgress(manifest_url);
283 } 280 }
284 281
285 GURL ShortcutHelper::GetScopeFromURL(const GURL& url) { 282 GURL ShortcutHelper::GetScopeFromURL(const GURL& url) {
286 JNIEnv* env = base::android::AttachCurrentThread(); 283 JNIEnv* env = base::android::AttachCurrentThread();
287 ScopedJavaLocalRef<jstring> java_url = 284 ScopedJavaLocalRef<jstring> java_url =
288 base::android::ConvertUTF8ToJavaString(env, url.spec()); 285 base::android::ConvertUTF8ToJavaString(env, url.spec());
289 ScopedJavaLocalRef<jstring> java_scope_url = 286 ScopedJavaLocalRef<jstring> java_scope_url =
290 Java_ShortcutHelper_getScopeFromUrl(env, java_url); 287 Java_ShortcutHelper_getScopeFromUrl(env, java_url);
291 return GURL(base::android::ConvertJavaStringToUTF16(env, java_scope_url)); 288 return GURL(base::android::ConvertJavaStringToUTF16(env, java_scope_url));
292 } 289 }
(...skipping 11 matching lines...) Expand all
304 DCHECK(jsplash_image_callback); 301 DCHECK(jsplash_image_callback);
305 base::Closure* splash_image_callback = 302 base::Closure* splash_image_callback =
306 reinterpret_cast<base::Closure*>(jsplash_image_callback); 303 reinterpret_cast<base::Closure*>(jsplash_image_callback);
307 splash_image_callback->Run(); 304 splash_image_callback->Run();
308 delete splash_image_callback; 305 delete splash_image_callback;
309 } 306 }
310 307
311 bool ShortcutHelper::RegisterShortcutHelper(JNIEnv* env) { 308 bool ShortcutHelper::RegisterShortcutHelper(JNIEnv* env) {
312 return RegisterNativesImpl(env); 309 return RegisterNativesImpl(env);
313 } 310 }
OLDNEW
« no previous file with comments | « chrome/browser/android/banners/app_banner_manager_android.cc ('k') | chrome/browser/android/shortcut_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698