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