| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "components/feature_engagement_tracker/internal/android/feature_engagem
ent_tracker_impl_android.h" | 5 #include "components/feature_engagement_tracker/internal/android/feature_engagem
ent_tracker_impl_android.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/android/callback_android.h" | 9 #include "base/android/callback_android.h" |
| 10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
| 11 #include "base/android/jni_string.h" | 11 #include "base/android/jni_string.h" |
| 12 #include "base/android/scoped_java_ref.h" | 12 #include "base/android/scoped_java_ref.h" |
| 13 #include "base/bind.h" | 13 #include "base/bind.h" |
| 14 #include "base/feature_list.h" | 14 #include "base/feature_list.h" |
| 15 #include "base/memory/ptr_util.h" |
| 15 #include "components/feature_engagement_tracker/internal/feature_list.h" | 16 #include "components/feature_engagement_tracker/internal/feature_list.h" |
| 16 #include "components/feature_engagement_tracker/public/feature_engagement_tracke
r.h" | 17 #include "components/feature_engagement_tracker/public/feature_engagement_tracke
r.h" |
| 17 #include "jni/FeatureEngagementTrackerImpl_jni.h" | 18 #include "jni/FeatureEngagementTrackerImpl_jni.h" |
| 18 | 19 |
| 19 namespace feature_engagement_tracker { | 20 namespace feature_engagement_tracker { |
| 20 | 21 |
| 21 namespace { | 22 namespace { |
| 22 | 23 |
| 23 const char kFeatureEngagementTrackerImplAndroidKey[] = | 24 const char kFeatureEngagementTrackerImplAndroidKey[] = |
| 24 "feature_engagement_tracker_impl_android"; | 25 "feature_engagement_tracker_impl_android"; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 36 FeatureEngagementTrackerImplAndroid* FromFeatureEngagementTrackerImpl( | 37 FeatureEngagementTrackerImplAndroid* FromFeatureEngagementTrackerImpl( |
| 37 FeatureEngagementTracker* feature_engagement_tracker) { | 38 FeatureEngagementTracker* feature_engagement_tracker) { |
| 38 FeatureEngagementTrackerImpl* impl = | 39 FeatureEngagementTrackerImpl* impl = |
| 39 static_cast<FeatureEngagementTrackerImpl*>(feature_engagement_tracker); | 40 static_cast<FeatureEngagementTrackerImpl*>(feature_engagement_tracker); |
| 40 FeatureEngagementTrackerImplAndroid* impl_android = | 41 FeatureEngagementTrackerImplAndroid* impl_android = |
| 41 static_cast<FeatureEngagementTrackerImplAndroid*>( | 42 static_cast<FeatureEngagementTrackerImplAndroid*>( |
| 42 impl->GetUserData(kFeatureEngagementTrackerImplAndroidKey)); | 43 impl->GetUserData(kFeatureEngagementTrackerImplAndroidKey)); |
| 43 if (!impl_android) { | 44 if (!impl_android) { |
| 44 impl_android = | 45 impl_android = |
| 45 new FeatureEngagementTrackerImplAndroid(impl, GetAllFeatures()); | 46 new FeatureEngagementTrackerImplAndroid(impl, GetAllFeatures()); |
| 46 impl->SetUserData(kFeatureEngagementTrackerImplAndroidKey, impl_android); | 47 impl->SetUserData(kFeatureEngagementTrackerImplAndroidKey, |
| 48 base::WrapUnique(impl_android)); |
| 47 } | 49 } |
| 48 return impl_android; | 50 return impl_android; |
| 49 } | 51 } |
| 50 | 52 |
| 51 } // namespace | 53 } // namespace |
| 52 | 54 |
| 53 // static | 55 // static |
| 54 bool FeatureEngagementTrackerImplAndroid::RegisterJni(JNIEnv* env) { | 56 bool FeatureEngagementTrackerImplAndroid::RegisterJni(JNIEnv* env) { |
| 55 return RegisterNativesImpl(env); | 57 return RegisterNativesImpl(env); |
| 56 } | 58 } |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 const base::android::JavaParamRef<jobject>& j_callback_obj) { | 137 const base::android::JavaParamRef<jobject>& j_callback_obj) { |
| 136 // Disambiguate RunCallbackAndroid to get the reference to the bool version. | 138 // Disambiguate RunCallbackAndroid to get the reference to the bool version. |
| 137 void (*runBoolCallback)(const base::android::JavaRef<jobject>&, bool) = | 139 void (*runBoolCallback)(const base::android::JavaRef<jobject>&, bool) = |
| 138 &base::android::RunCallbackAndroid; | 140 &base::android::RunCallbackAndroid; |
| 139 feature_engagement_tracker_impl_->AddOnInitializedCallback( | 141 feature_engagement_tracker_impl_->AddOnInitializedCallback( |
| 140 base::Bind(runBoolCallback, | 142 base::Bind(runBoolCallback, |
| 141 base::android::ScopedJavaGlobalRef<jobject>(j_callback_obj))); | 143 base::android::ScopedJavaGlobalRef<jobject>(j_callback_obj))); |
| 142 } | 144 } |
| 143 | 145 |
| 144 } // namespace feature_engagement_tracker | 146 } // namespace feature_engagement_tracker |
| OLD | NEW |