Chromium Code Reviews| Index: chrome/browser/android/banners/app_banner_manager_android.cc |
| diff --git a/chrome/browser/android/banners/app_banner_manager_android.cc b/chrome/browser/android/banners/app_banner_manager_android.cc |
| index 9caa50eb07218140752acf6179c80fb7f43c4a46..c5ece7d4b0fa2b1d5ea7f0dc435de528cb636763 100644 |
| --- a/chrome/browser/android/banners/app_banner_manager_android.cc |
| +++ b/chrome/browser/android/banners/app_banner_manager_android.cc |
| @@ -9,6 +9,7 @@ |
| #include "base/command_line.h" |
| #include "base/metrics/field_trial.h" |
| #include "chrome/browser/android/banners/app_banner_data_fetcher_android.h" |
| +#include "chrome/browser/android/shortcut_helper.h" |
| #include "chrome/browser/banners/app_banner_metrics.h" |
| #include "chrome/common/chrome_constants.h" |
| #include "content/public/browser/web_contents.h" |
| @@ -33,11 +34,8 @@ namespace banners { |
| AppBannerManagerAndroid::AppBannerManagerAndroid( |
| JNIEnv* env, |
| - jobject obj, |
| - int ideal_splash_image_size_in_dp, |
| - int ideal_icon_size_in_dp) |
| - : AppBannerManager(ideal_icon_size_in_dp), |
| - ideal_splash_image_size_in_dp_(ideal_splash_image_size_in_dp), |
| + jobject obj) |
| + : AppBannerManager(), |
| weak_java_banner_view_manager_(env, obj) { |
| } |
| @@ -93,9 +91,10 @@ bool AppBannerManagerAndroid::HandleNonWebApp(const std::string& platform, |
| ConvertUTF8ToJavaString(env, id)); |
| ScopedJavaLocalRef<jstring> jreferrer( |
| ConvertUTF8ToJavaString(env, referrer)); |
| - Java_AppBannerManager_fetchAppDetails(env, jobj.obj(), jurl.obj(), |
| - jpackage.obj(), jreferrer.obj(), |
| - ideal_icon_size_in_dp()); |
| + Java_AppBannerManager_fetchAppDetails( |
| + env, jobj.obj(), jurl.obj(), |
| + jpackage.obj(), jreferrer.obj(), |
| + ShortcutHelper::GetIdealIconSizeInDp()); |
| return true; |
| } |
| @@ -143,11 +142,14 @@ std::string AppBannerManagerAndroid::ExtractQueryValueForName( |
| } |
| AppBannerDataFetcher* AppBannerManagerAndroid::CreateAppBannerDataFetcher( |
| - base::WeakPtr<Delegate> weak_delegate, |
| - const int ideal_icon_size_in_dp) { |
| - return new AppBannerDataFetcherAndroid(web_contents(), weak_delegate, |
| - ideal_splash_image_size_in_dp_, |
| - ideal_icon_size_in_dp); |
| + base::WeakPtr<Delegate> weak_delegate) { |
| + return new AppBannerDataFetcherAndroid( |
| + web_contents(), |
| + weak_delegate, |
| + ShortcutHelper::GetIdealSplashImageSizeInDp(), |
| + ShortcutHelper::GetMinimumSplashImageSizeInDp(), |
| + ShortcutHelper::GetIdealIconSizeInDp(), |
| + ShortcutHelper::GetMinimumIconSizeInDp()); |
|
gone
2015/09/08 21:01:57
Doing it like this means that doing 4 JNI calls wh
gone
2015/09/08 21:02:47
Cache as native-side statics, I mean.
Lalit Maganti
2015/09/11 13:06:00
The problem would be where this initialization wou
gone
2015/09/11 16:48:48
You should really turn down the hyperbole and inve
Lalit Maganti
2015/09/11 17:09:09
I did consider that but I really didn't like the b
gone
2015/09/11 17:17:54
How about caching the values when the first calls
Lalit Maganti
2015/09/11 17:26:03
That is another possibility yes but would still ha
gone
2015/09/11 17:33:03
A single 4 JNI call hit where you cache the values
Lalit Maganti
2015/09/11 17:38:49
No I don't mean create an object to call it. I mea
gone
2015/09/11 17:42:10
Sorry :/ Should have explained why this was less
Lalit Maganti
2015/09/14 11:35:19
Implemented the array solution in latest PS.
|
| } |
| bool AppBannerManagerAndroid::OnAppDetailsRetrieved(JNIEnv* env, |
| @@ -181,12 +183,9 @@ bool AppBannerManagerAndroid::Register(JNIEnv* env) { |
| } |
| jlong Init(JNIEnv* env, |
| - const JavaParamRef<jobject>& obj, |
| - jint ideal_splash_image_size_in_dp, |
| - jint ideal_icon_size_in_dp) { |
| + const JavaParamRef<jobject>& obj) { |
| AppBannerManagerAndroid* manager = |
| - new AppBannerManagerAndroid(env, obj, |
| - ideal_splash_image_size_in_dp, ideal_icon_size_in_dp); |
| + new AppBannerManagerAndroid(env, obj); |
| return reinterpret_cast<intptr_t>(manager); |
| } |