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