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

Side by Side Diff: chrome/browser/android/banners/app_banner_manager_android.cc

Issue 2773353002: Make minimum PWA icon size the same accross all device densities
Patch Set: Merge branch 'master' into min_size Created 3 years, 8 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 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/banners/app_banner_manager_android.h" 5 #include "chrome/browser/android/banners/app_banner_manager_android.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 auto shortcut_info = base::MakeUnique<ShortcutInfo>(GURL()); 43 auto shortcut_info = base::MakeUnique<ShortcutInfo>(GURL());
44 if (!manifest.IsEmpty()) { 44 if (!manifest.IsEmpty()) {
45 shortcut_info->UpdateFromManifest(manifest); 45 shortcut_info->UpdateFromManifest(manifest);
46 shortcut_info->manifest_url = manifest_url; 46 shortcut_info->manifest_url = manifest_url;
47 shortcut_info->best_primary_icon_url = icon_url; 47 shortcut_info->best_primary_icon_url = icon_url;
48 shortcut_info->UpdateSource(ShortcutInfo::SOURCE_APP_BANNER); 48 shortcut_info->UpdateSource(ShortcutInfo::SOURCE_APP_BANNER);
49 } 49 }
50 50
51 shortcut_info->ideal_splash_image_size_in_px = 51 shortcut_info->ideal_splash_image_size_in_px =
52 ShortcutHelper::GetIdealSplashImageSizeInPx(); 52 ShortcutHelper::GetIdealSplashImageSizeInPx();
53 shortcut_info->minimum_splash_image_size_in_px =
54 ShortcutHelper::GetMinimumSplashImageSizeInPx();
55 shortcut_info->splash_image_url = ManifestIconSelector::FindBestMatchingIcon( 53 shortcut_info->splash_image_url = ManifestIconSelector::FindBestMatchingIcon(
56 manifest.icons, shortcut_info->ideal_splash_image_size_in_px, 54 manifest.icons, shortcut_info->ideal_splash_image_size_in_px,
57 shortcut_info->minimum_splash_image_size_in_px, 55 InstallableManager::GetMinimumIconSizeInPx(),
58 content::Manifest::Icon::IconPurpose::ANY); 56 content::Manifest::Icon::IconPurpose::ANY);
59 57
60 return shortcut_info; 58 return shortcut_info;
61 } 59 }
62 60
63 } // anonymous namespace 61 } // anonymous namespace
64 62
65 namespace banners { 63 namespace banners {
66 64
67 AppBannerManagerAndroid::AppBannerManagerAndroid( 65 AppBannerManagerAndroid::AppBannerManagerAndroid(
(...skipping 30 matching lines...) Expand all
98 native_app_data_.Reset(japp_data); 96 native_app_data_.Reset(japp_data);
99 app_title_ = ConvertJavaStringToUTF16(env, japp_title); 97 app_title_ = ConvertJavaStringToUTF16(env, japp_title);
100 native_app_package_ = ConvertJavaStringToUTF8(env, japp_package); 98 native_app_package_ = ConvertJavaStringToUTF8(env, japp_package);
101 primary_icon_url_ = GURL(ConvertJavaStringToUTF8(env, jicon_url)); 99 primary_icon_url_ = GURL(ConvertJavaStringToUTF8(env, jicon_url));
102 100
103 if (!CheckIfShouldShowBanner()) 101 if (!CheckIfShouldShowBanner())
104 return false; 102 return false;
105 103
106 return ManifestIconDownloader::Download( 104 return ManifestIconDownloader::Download(
107 web_contents(), primary_icon_url_, GetIdealPrimaryIconSizeInPx(), 105 web_contents(), primary_icon_url_, GetIdealPrimaryIconSizeInPx(),
108 GetMinimumPrimaryIconSizeInPx(), 106 InstallableManager::GetMinimumIconSizeInPx(),
109 base::Bind(&AppBannerManager::OnAppIconFetched, GetWeakPtr())); 107 base::Bind(&AppBannerManager::OnAppIconFetched, GetWeakPtr()));
110 } 108 }
111 109
112 void AppBannerManagerAndroid::RequestAppBanner(const GURL& validated_url, 110 void AppBannerManagerAndroid::RequestAppBanner(const GURL& validated_url,
113 bool is_debug_mode) { 111 bool is_debug_mode) {
114 JNIEnv* env = base::android::AttachCurrentThread(); 112 JNIEnv* env = base::android::AttachCurrentThread();
115 if (!Java_AppBannerManager_isEnabledForTab(env, java_banner_manager_)) 113 if (!Java_AppBannerManager_isEnabledForTab(env, java_banner_manager_))
116 return; 114 return;
117 115
118 AppBannerManager::RequestAppBanner(validated_url, is_debug_mode); 116 AppBannerManager::RequestAppBanner(validated_url, is_debug_mode);
(...skipping 10 matching lines...) Expand all
129 127
130 std::string AppBannerManagerAndroid::GetBannerType() { 128 std::string AppBannerManagerAndroid::GetBannerType() {
131 return native_app_data_.is_null() ? AppBannerManager::GetBannerType() 129 return native_app_data_.is_null() ? AppBannerManager::GetBannerType()
132 : "play"; 130 : "play";
133 } 131 }
134 132
135 int AppBannerManagerAndroid::GetIdealPrimaryIconSizeInPx() { 133 int AppBannerManagerAndroid::GetIdealPrimaryIconSizeInPx() {
136 return ShortcutHelper::GetIdealHomescreenIconSizeInPx(); 134 return ShortcutHelper::GetIdealHomescreenIconSizeInPx();
137 } 135 }
138 136
139 int AppBannerManagerAndroid::GetMinimumPrimaryIconSizeInPx() {
140 return ShortcutHelper::GetMinimumHomescreenIconSizeInPx();
141 }
142
143 bool AppBannerManagerAndroid::IsWebAppInstalled( 137 bool AppBannerManagerAndroid::IsWebAppInstalled(
144 content::BrowserContext* browser_context, 138 content::BrowserContext* browser_context,
145 const GURL& start_url, 139 const GURL& start_url,
146 const GURL& manifest_url) { 140 const GURL& manifest_url) {
147 // Returns true if a WebAPK is installed or is being installed. 141 // Returns true if a WebAPK is installed or is being installed.
148 // Does not check whether a non-WebAPK web app is installed: this is detected 142 // Does not check whether a non-WebAPK web app is installed: this is detected
149 // by the content settings check in AppBannerSettingsHelper::ShouldShowBanner 143 // by the content settings check in AppBannerSettingsHelper::ShouldShowBanner
150 // (due to the lack of an API to detect what is and isn't on the Android 144 // (due to the lack of an API to detect what is and isn't on the Android
151 // homescreen). This method will still detect the presence of a WebAPK even if 145 // homescreen). This method will still detect the presence of a WebAPK even if
152 // Chrome's data is cleared. 146 // Chrome's data is cleared.
153 return ShortcutHelper::IsWebApkInstalled(browser_context, start_url, 147 return ShortcutHelper::IsWebApkInstalled(browser_context, start_url,
154 manifest_url); 148 manifest_url);
155 } 149 }
156 150
157 InstallableParams AppBannerManagerAndroid::ParamsToPerformInstallableCheck() { 151 InstallableParams AppBannerManagerAndroid::ParamsToPerformInstallableCheck() {
158 InstallableParams params = 152 InstallableParams params =
159 AppBannerManager::ParamsToPerformInstallableCheck(); 153 AppBannerManager::ParamsToPerformInstallableCheck();
160 154
161 if (can_install_webapk_) { 155 if (can_install_webapk_) {
162 params.ideal_badge_icon_size_in_px = GetIdealBadgeIconSizeInPx(); 156 params.ideal_badge_icon_size_in_px = GetIdealBadgeIconSizeInPx();
163 params.minimum_badge_icon_size_in_px = GetIdealBadgeIconSizeInPx();
164 params.fetch_valid_badge_icon = true; 157 params.fetch_valid_badge_icon = true;
165 } 158 }
166 159
167 return params; 160 return params;
168 } 161 }
169 162
170 void AppBannerManagerAndroid::PerformInstallableCheck() { 163 void AppBannerManagerAndroid::PerformInstallableCheck() {
171 // Check if the manifest prefers that we show a native app banner. If so, call 164 // Check if the manifest prefers that we show a native app banner. If so, call
172 // to Java to verify the details. 165 // to Java to verify the details.
173 if (manifest_.prefer_related_applications && 166 if (manifest_.prefer_related_applications &&
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 } 349 }
357 350
358 // static 351 // static
359 void SetTotalEngagementToTrigger(JNIEnv* env, 352 void SetTotalEngagementToTrigger(JNIEnv* env,
360 const JavaParamRef<jclass>& clazz, 353 const JavaParamRef<jclass>& clazz,
361 jdouble engagement) { 354 jdouble engagement) {
362 AppBannerSettingsHelper::SetTotalEngagementToTrigger(engagement); 355 AppBannerSettingsHelper::SetTotalEngagementToTrigger(engagement);
363 } 356 }
364 357
365 } // namespace banners 358 } // namespace banners
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698