| 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 |