| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/geolocation/location_api_adapter_android.h" | 5 #include "content/browser/geolocation/location_api_adapter_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/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 jstring message) { | 134 jstring message) { |
| 135 Geoposition position_error; | 135 Geoposition position_error; |
| 136 position_error.error_code = Geoposition::ERROR_CODE_POSITION_UNAVAILABLE; | 136 position_error.error_code = Geoposition::ERROR_CODE_POSITION_UNAVAILABLE; |
| 137 position_error.error_message = | 137 position_error.error_message = |
| 138 base::android::ConvertJavaStringToUTF8(env, message); | 138 base::android::ConvertJavaStringToUTF8(env, message); |
| 139 GetInstance()->OnNewGeopositionInternal(position_error); | 139 GetInstance()->OnNewGeopositionInternal(position_error); |
| 140 } | 140 } |
| 141 | 141 |
| 142 // static | 142 // static |
| 143 AndroidLocationApiAdapter* AndroidLocationApiAdapter::GetInstance() { | 143 AndroidLocationApiAdapter* AndroidLocationApiAdapter::GetInstance() { |
| 144 return Singleton<AndroidLocationApiAdapter>::get(); | 144 return base::Singleton<AndroidLocationApiAdapter>::get(); |
| 145 } | 145 } |
| 146 | 146 |
| 147 // static | 147 // static |
| 148 bool AndroidLocationApiAdapter::RegisterGeolocationService(JNIEnv* env) { | 148 bool AndroidLocationApiAdapter::RegisterGeolocationService(JNIEnv* env) { |
| 149 return RegisterNativesImpl(env); | 149 return RegisterNativesImpl(env); |
| 150 } | 150 } |
| 151 | 151 |
| 152 void AndroidLocationApiAdapter::CreateJavaObject(JNIEnv* env) { | 152 void AndroidLocationApiAdapter::CreateJavaObject(JNIEnv* env) { |
| 153 // Create the Java AndroidLocationProvider object. | 153 // Create the Java AndroidLocationProvider object. |
| 154 java_location_provider_android_object_.Reset( | 154 java_location_provider_android_object_.Reset( |
| 155 Java_LocationProviderAdapter_create(env, | 155 Java_LocationProviderAdapter_create(env, |
| 156 base::android::GetApplicationContext())); | 156 base::android::GetApplicationContext())); |
| 157 CHECK(!java_location_provider_android_object_.is_null()); | 157 CHECK(!java_location_provider_android_object_.is_null()); |
| 158 } | 158 } |
| 159 | 159 |
| 160 void AndroidLocationApiAdapter::OnNewGeopositionInternal( | 160 void AndroidLocationApiAdapter::OnNewGeopositionInternal( |
| 161 const Geoposition& geoposition) { | 161 const Geoposition& geoposition) { |
| 162 base::AutoLock lock(lock_); | 162 base::AutoLock lock(lock_); |
| 163 if (!task_runner_.get()) | 163 if (!task_runner_.get()) |
| 164 return; | 164 return; |
| 165 task_runner_->PostTask( | 165 task_runner_->PostTask( |
| 166 FROM_HERE, | 166 FROM_HERE, |
| 167 base::Bind(&AndroidLocationApiAdapter::NotifyProviderNewGeoposition, | 167 base::Bind(&AndroidLocationApiAdapter::NotifyProviderNewGeoposition, |
| 168 geoposition)); | 168 geoposition)); |
| 169 } | 169 } |
| 170 | 170 |
| 171 } // namespace content | 171 } // namespace content |
| OLD | NEW |