| 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/banners/app_banner_infobar_delegate_android.h" | 5 #include "chrome/browser/android/banners/app_banner_infobar_delegate_android.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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 AppBannerInfoBarDelegateAndroid::~AppBannerInfoBarDelegateAndroid() { | 80 AppBannerInfoBarDelegateAndroid::~AppBannerInfoBarDelegateAndroid() { |
| 81 if (!has_user_interaction_) { | 81 if (!has_user_interaction_) { |
| 82 if (!native_app_data_.is_null()) | 82 if (!native_app_data_.is_null()) |
| 83 TrackUserResponse(USER_RESPONSE_NATIVE_APP_IGNORED); | 83 TrackUserResponse(USER_RESPONSE_NATIVE_APP_IGNORED); |
| 84 else if (!manifest_.IsEmpty()) | 84 else if (!manifest_.IsEmpty()) |
| 85 TrackUserResponse(USER_RESPONSE_WEB_APP_IGNORED); | 85 TrackUserResponse(USER_RESPONSE_WEB_APP_IGNORED); |
| 86 } | 86 } |
| 87 | 87 |
| 88 TrackDismissEvent(DISMISS_EVENT_DISMISSED); | 88 TrackDismissEvent(DISMISS_EVENT_DISMISSED); |
| 89 JNIEnv* env = base::android::AttachCurrentThread(); | 89 JNIEnv* env = base::android::AttachCurrentThread(); |
| 90 Java_AppBannerInfoBarDelegateAndroid_destroy(env, | 90 Java_AppBannerInfoBarDelegateAndroid_destroy(env, java_delegate_); |
| 91 java_delegate_.obj()); | |
| 92 java_delegate_.Reset(); | 91 java_delegate_.Reset(); |
| 93 } | 92 } |
| 94 | 93 |
| 95 void AppBannerInfoBarDelegateAndroid::UpdateInstallState( | 94 void AppBannerInfoBarDelegateAndroid::UpdateInstallState( |
| 96 JNIEnv* env, | 95 JNIEnv* env, |
| 97 const JavaParamRef<jobject>& obj) { | 96 const JavaParamRef<jobject>& obj) { |
| 98 if (native_app_data_.is_null()) | 97 if (native_app_data_.is_null()) |
| 99 return; | 98 return; |
| 100 | 99 |
| 101 int newState = Java_AppBannerInfoBarDelegateAndroid_determineInstallState( | 100 int newState = Java_AppBannerInfoBarDelegateAndroid_determineInstallState( |
| 102 env, | 101 env, java_delegate_, native_app_data_); |
| 103 java_delegate_.obj(), | |
| 104 native_app_data_.obj()); | |
| 105 static_cast<AppBannerInfoBarAndroid*>(infobar()) | 102 static_cast<AppBannerInfoBarAndroid*>(infobar()) |
| 106 ->OnInstallStateChanged(newState); | 103 ->OnInstallStateChanged(newState); |
| 107 } | 104 } |
| 108 | 105 |
| 109 void AppBannerInfoBarDelegateAndroid::OnInstallIntentReturned( | 106 void AppBannerInfoBarDelegateAndroid::OnInstallIntentReturned( |
| 110 JNIEnv* env, | 107 JNIEnv* env, |
| 111 const JavaParamRef<jobject>& obj, | 108 const JavaParamRef<jobject>& obj, |
| 112 jboolean jis_installing) { | 109 jboolean jis_installing) { |
| 113 if (!infobar()) | 110 if (!infobar()) |
| 114 return; | 111 return; |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 JNIEnv* env = base::android::AttachCurrentThread(); | 222 JNIEnv* env = base::android::AttachCurrentThread(); |
| 226 | 223 |
| 227 TabAndroid* tab = TabAndroid::FromWebContents(web_contents); | 224 TabAndroid* tab = TabAndroid::FromWebContents(web_contents); |
| 228 if (tab == nullptr) { | 225 if (tab == nullptr) { |
| 229 TrackDismissEvent(DISMISS_EVENT_ERROR); | 226 TrackDismissEvent(DISMISS_EVENT_ERROR); |
| 230 return true; | 227 return true; |
| 231 } | 228 } |
| 232 ScopedJavaLocalRef<jstring> jreferrer( | 229 ScopedJavaLocalRef<jstring> jreferrer( |
| 233 ConvertUTF8ToJavaString(env, referrer_)); | 230 ConvertUTF8ToJavaString(env, referrer_)); |
| 234 | 231 |
| 235 bool was_opened = Java_AppBannerInfoBarDelegateAndroid_installOrOpenNativeAp
p( | 232 bool was_opened = |
| 236 env, | 233 Java_AppBannerInfoBarDelegateAndroid_installOrOpenNativeApp( |
| 237 java_delegate_.obj(), | 234 env, java_delegate_, tab->GetJavaObject(), native_app_data_, |
| 238 tab->GetJavaObject().obj(), | 235 jreferrer); |
| 239 native_app_data_.obj(), | |
| 240 jreferrer.obj()); | |
| 241 | 236 |
| 242 if (was_opened) { | 237 if (was_opened) { |
| 243 TrackDismissEvent(DISMISS_EVENT_APP_OPEN); | 238 TrackDismissEvent(DISMISS_EVENT_APP_OPEN); |
| 244 } else { | 239 } else { |
| 245 TrackInstallEvent(INSTALL_EVENT_NATIVE_APP_INSTALL_TRIGGERED); | 240 TrackInstallEvent(INSTALL_EVENT_NATIVE_APP_INSTALL_TRIGGERED); |
| 246 } | 241 } |
| 247 SendBannerAccepted(web_contents, "play"); | 242 SendBannerAccepted(web_contents, "play"); |
| 248 return was_opened; | 243 return was_opened; |
| 249 } else if (!manifest_.IsEmpty()) { | 244 } else if (!manifest_.IsEmpty()) { |
| 250 TrackUserResponse(USER_RESPONSE_WEB_APP_ACCEPTED); | 245 TrackUserResponse(USER_RESPONSE_WEB_APP_ACCEPTED); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 | 278 |
| 284 content::WebContents* web_contents = | 279 content::WebContents* web_contents = |
| 285 InfoBarService::WebContentsFromInfoBar(infobar()); | 280 InfoBarService::WebContentsFromInfoBar(infobar()); |
| 286 TabAndroid* tab = web_contents ? TabAndroid::FromWebContents(web_contents) | 281 TabAndroid* tab = web_contents ? TabAndroid::FromWebContents(web_contents) |
| 287 : nullptr; | 282 : nullptr; |
| 288 if (tab == nullptr) { | 283 if (tab == nullptr) { |
| 289 TrackDismissEvent(DISMISS_EVENT_ERROR); | 284 TrackDismissEvent(DISMISS_EVENT_ERROR); |
| 290 return true; | 285 return true; |
| 291 } | 286 } |
| 292 | 287 |
| 293 Java_AppBannerInfoBarDelegateAndroid_showAppDetails(env, | 288 Java_AppBannerInfoBarDelegateAndroid_showAppDetails( |
| 294 java_delegate_.obj(), | 289 env, java_delegate_, tab->GetJavaObject(), native_app_data_); |
| 295 tab->GetJavaObject().obj(), | |
| 296 native_app_data_.obj()); | |
| 297 | 290 |
| 298 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK); | 291 TrackDismissEvent(DISMISS_EVENT_BANNER_CLICK); |
| 299 return true; | 292 return true; |
| 300 } | 293 } |
| 301 | 294 |
| 302 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) { | 295 bool RegisterAppBannerInfoBarDelegateAndroid(JNIEnv* env) { |
| 303 return RegisterNativesImpl(env); | 296 return RegisterNativesImpl(env); |
| 304 } | 297 } |
| 305 | 298 |
| 306 } // namespace banners | 299 } // namespace banners |
| OLD | NEW |