OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/webapps/add_to_homescreen_manager.h" | 5 #include "chrome/browser/android/webapps/add_to_homescreen_manager.h" |
6 | 6 |
7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
9 #include "base/guid.h" | 9 #include "base/guid.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 base::android::ConvertUTF16ToJavaString(env, user_title); | 161 base::android::ConvertUTF16ToJavaString(env, user_title); |
162 Java_AddToHomescreenManager_onUserTitleAvailable(env, | 162 Java_AddToHomescreenManager_onUserTitleAvailable(env, |
163 java_ref_, | 163 java_ref_, |
164 j_user_title); | 164 j_user_title); |
165 } | 165 } |
166 | 166 |
167 void AddToHomescreenManager::OnDataAvailable(const ShortcutInfo& info, | 167 void AddToHomescreenManager::OnDataAvailable(const ShortcutInfo& info, |
168 const SkBitmap& primary_icon, | 168 const SkBitmap& primary_icon, |
169 const SkBitmap& badge_icon) { | 169 const SkBitmap& badge_icon) { |
170 if (is_webapk_compatible_) { | 170 if (is_webapk_compatible_) { |
171 // TODO(zpeng): Add badge to WebAPK installation flow. | |
172 WebApkInstallService* install_service = | 171 WebApkInstallService* install_service = |
173 WebApkInstallService::Get( | 172 WebApkInstallService::Get( |
174 data_fetcher_->web_contents()->GetBrowserContext()); | 173 data_fetcher_->web_contents()->GetBrowserContext()); |
175 if (install_service->IsInstallInProgress(info.manifest_url)) | 174 if (install_service->IsInstallInProgress(info.manifest_url)) |
176 ShortcutHelper::ShowWebApkInstallInProgressToast(); | 175 ShortcutHelper::ShowWebApkInstallInProgressToast(); |
177 else | 176 else |
178 CreateInfoBarForWebApk(info, primary_icon); | 177 CreateInfoBarForWebApk(info, primary_icon, badge_icon); |
179 return; | 178 return; |
180 } | 179 } |
181 | 180 |
182 JNIEnv* env = base::android::AttachCurrentThread(); | 181 JNIEnv* env = base::android::AttachCurrentThread(); |
183 ScopedJavaLocalRef<jobject> java_bitmap; | 182 ScopedJavaLocalRef<jobject> java_bitmap; |
184 if (!primary_icon.drawsNothing()) | 183 if (!primary_icon.drawsNothing()) |
185 java_bitmap = gfx::ConvertToJavaBitmap(&primary_icon); | 184 java_bitmap = gfx::ConvertToJavaBitmap(&primary_icon); |
186 | 185 |
187 Java_AddToHomescreenManager_onReadyToAdd(env, java_ref_, java_bitmap); | 186 Java_AddToHomescreenManager_onReadyToAdd(env, java_ref_, java_bitmap); |
188 | 187 |
189 if (add_shortcut_pending_) | 188 if (add_shortcut_pending_) |
190 AddShortcut(info, primary_icon); | 189 AddShortcut(info, primary_icon); |
191 } | 190 } |
192 | 191 |
193 void AddToHomescreenManager::CreateInfoBarForWebApk(const ShortcutInfo& info, | 192 void AddToHomescreenManager::CreateInfoBarForWebApk( |
194 const SkBitmap& icon) { | 193 const ShortcutInfo& info, |
| 194 const SkBitmap& primary_icon, |
| 195 const SkBitmap& badge_icon) { |
195 banners::AppBannerInfoBarDelegateAndroid::Create( | 196 banners::AppBannerInfoBarDelegateAndroid::Create( |
196 data_fetcher_->web_contents(), nullptr, info.user_title, | 197 data_fetcher_->web_contents(), nullptr, info.user_title, |
197 base::MakeUnique<ShortcutInfo>(info), base::MakeUnique<SkBitmap>(icon), | 198 base::MakeUnique<ShortcutInfo>(info), |
198 -1 /* event_request_id */, webapk::INSTALL_SOURCE_MENU); | 199 base::MakeUnique<SkBitmap>(primary_icon), |
| 200 base::MakeUnique<SkBitmap>(badge_icon), -1 /* event_request_id */, |
| 201 webapk::INSTALL_SOURCE_MENU); |
199 } | 202 } |
200 | 203 |
201 SkBitmap AddToHomescreenManager::FinalizeLauncherIconInBackground( | 204 SkBitmap AddToHomescreenManager::FinalizeLauncherIconInBackground( |
202 const SkBitmap& bitmap, | 205 const SkBitmap& bitmap, |
203 const GURL& url, | 206 const GURL& url, |
204 bool* is_generated) { | 207 bool* is_generated) { |
205 DCHECK(content::BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread()); | 208 DCHECK(content::BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread()); |
206 | 209 |
207 return ShortcutHelper::FinalizeLauncherIconInBackground(bitmap, url, | 210 return ShortcutHelper::FinalizeLauncherIconInBackground(bitmap, url, |
208 is_generated); | 211 is_generated); |
209 } | 212 } |
OLD | NEW |