| 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_dialog_helper.h" | 5 #include "chrome/browser/android/webapps/add_to_homescreen_dialog_helper.h" |
| 6 | 6 |
| 7 #include <jni.h> | 7 #include <jni.h> |
| 8 | 8 |
| 9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
| 10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 AddToHomescreenDialogHelper* add_to_homescreen_helper = | 32 AddToHomescreenDialogHelper* add_to_homescreen_helper = |
| 33 new AddToHomescreenDialogHelper(env, obj, web_contents); | 33 new AddToHomescreenDialogHelper(env, obj, web_contents); |
| 34 return reinterpret_cast<intptr_t>(add_to_homescreen_helper); | 34 return reinterpret_cast<intptr_t>(add_to_homescreen_helper); |
| 35 } | 35 } |
| 36 | 36 |
| 37 AddToHomescreenDialogHelper::AddToHomescreenDialogHelper( | 37 AddToHomescreenDialogHelper::AddToHomescreenDialogHelper( |
| 38 JNIEnv* env, | 38 JNIEnv* env, |
| 39 jobject obj, | 39 jobject obj, |
| 40 content::WebContents* web_contents) | 40 content::WebContents* web_contents) |
| 41 : add_shortcut_pending_(false), | 41 : add_shortcut_pending_(false), |
| 42 data_fetcher_(new AddToHomescreenDataFetcher(web_contents, | 42 data_fetcher_(new AddToHomescreenDataFetcher( |
| 43 web_contents, |
| 43 ShortcutHelper::GetIdealHomescreenIconSizeInDp(), | 44 ShortcutHelper::GetIdealHomescreenIconSizeInDp(), |
| 44 ShortcutHelper::GetMinimumHomescreenIconSizeInDp(), | 45 ShortcutHelper::GetMinimumHomescreenIconSizeInDp(), |
| 45 ShortcutHelper::GetIdealSplashImageSizeInDp(), | 46 ShortcutHelper::GetIdealSplashImageSizeInDp(), |
| 46 ShortcutHelper::GetMinimumSplashImageSizeInDp(), | 47 ShortcutHelper::GetMinimumSplashImageSizeInDp(), |
| 47 this)) { | 48 this)), |
| 49 browser_context_(web_contents->GetBrowserContext()) { |
| 48 java_ref_.Reset(env, obj); | 50 java_ref_.Reset(env, obj); |
| 49 } | 51 } |
| 50 | 52 |
| 51 AddToHomescreenDialogHelper::~AddToHomescreenDialogHelper() { | 53 AddToHomescreenDialogHelper::~AddToHomescreenDialogHelper() { |
| 52 data_fetcher_->set_weak_observer(nullptr); | 54 data_fetcher_->set_weak_observer(nullptr); |
| 53 data_fetcher_ = nullptr; | 55 data_fetcher_ = nullptr; |
| 54 } | 56 } |
| 55 | 57 |
| 56 void AddToHomescreenDialogHelper::OnUserTitleAvailable( | 58 void AddToHomescreenDialogHelper::OnUserTitleAvailable( |
| 57 const base::string16& user_title) { | 59 const base::string16& user_title) { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 DCHECK(add_shortcut_pending_); | 117 DCHECK(add_shortcut_pending_); |
| 116 if (!add_shortcut_pending_) | 118 if (!add_shortcut_pending_) |
| 117 return; | 119 return; |
| 118 add_shortcut_pending_ = false; | 120 add_shortcut_pending_ = false; |
| 119 | 121 |
| 120 RecordAddToHomescreen(); | 122 RecordAddToHomescreen(); |
| 121 | 123 |
| 122 const std::string& uid = base::GenerateGUID(); | 124 const std::string& uid = base::GenerateGUID(); |
| 123 content::BrowserThread::PostTask( | 125 content::BrowserThread::PostTask( |
| 124 content::BrowserThread::IO, FROM_HERE, | 126 content::BrowserThread::IO, FROM_HERE, |
| 125 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, info, | 127 base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, |
| 126 uid, icon, | 128 browser_context_, info, uid, icon, |
| 127 data_fetcher_->FetchSplashScreenImageCallback(uid))); | 129 data_fetcher_->FetchSplashScreenImageCallback(uid))); |
| 128 } | 130 } |
| 129 | 131 |
| 130 bool AddToHomescreenDialogHelper::RegisterAddToHomescreenDialogHelper( | 132 bool AddToHomescreenDialogHelper::RegisterAddToHomescreenDialogHelper( |
| 131 JNIEnv* env) { | 133 JNIEnv* env) { |
| 132 return RegisterNativesImpl(env); | 134 return RegisterNativesImpl(env); |
| 133 } | 135 } |
| 134 | 136 |
| 135 void AddToHomescreenDialogHelper::RecordAddToHomescreen() { | 137 void AddToHomescreenDialogHelper::RecordAddToHomescreen() { |
| 136 // Record that the shortcut has been added, so no banners will be shown | 138 // Record that the shortcut has been added, so no banners will be shown |
| 137 // for this app. | 139 // for this app. |
| 138 content::WebContents* web_contents = data_fetcher_->web_contents(); | 140 content::WebContents* web_contents = data_fetcher_->web_contents(); |
| 139 if (!web_contents) | 141 if (!web_contents) |
| 140 return; | 142 return; |
| 141 | 143 |
| 142 AppBannerSettingsHelper::RecordBannerEvent( | 144 AppBannerSettingsHelper::RecordBannerEvent( |
| 143 web_contents, web_contents->GetURL(), | 145 web_contents, web_contents->GetURL(), |
| 144 data_fetcher_->shortcut_info().url.spec(), | 146 data_fetcher_->shortcut_info().url.spec(), |
| 145 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, | 147 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, |
| 146 base::Time::Now()); | 148 base::Time::Now()); |
| 147 } | 149 } |
| OLD | NEW |