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 3 // found in the LICENSE file. 4 5 #include "content/browser/geolocation/location_provider_android.h" 6 7 #include "base/time/time.h" 8 #include "content/browser/geolocation/location_api_adapter_android.h" 9 #include "content/public/common/geoposition.h" 10 11 namespace content { 12 13 // LocationProviderAndroid LocationProviderAndroid()14LocationProviderAndroid::LocationProviderAndroid() { 15 } 16 ~LocationProviderAndroid()17LocationProviderAndroid::~LocationProviderAndroid() { 18 StopProvider(); 19 } 20 NotifyNewGeoposition(const Geoposition & position)21void LocationProviderAndroid::NotifyNewGeoposition( 22 const Geoposition& position) { 23 last_position_ = position; 24 NotifyCallback(last_position_); 25 } 26 StartProvider(bool high_accuracy)27bool LocationProviderAndroid::StartProvider(bool high_accuracy) { 28 return AndroidLocationApiAdapter::GetInstance()->Start(this, high_accuracy); 29 } 30 StopProvider()31void LocationProviderAndroid::StopProvider() { 32 AndroidLocationApiAdapter::GetInstance()->Stop(); 33 } 34 GetPosition(Geoposition * position)35void LocationProviderAndroid::GetPosition(Geoposition* position) { 36 *position = last_position_; 37 } 38 RequestRefresh()39void LocationProviderAndroid::RequestRefresh() { 40 // Nothing to do here, android framework will call us back on new position. 41 } 42 OnPermissionGranted()43void LocationProviderAndroid::OnPermissionGranted() { 44 // Nothing to do here. 45 } 46 NewSystemLocationProvider()47LocationProvider* NewSystemLocationProvider() { 48 return new LocationProviderAndroid; 49 } 50 51 } // namespace content 52