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 #ifndef CONTENT_BROWSER_GEOLOCATION_LOCATION_PROVIDER_ANDROID_H_ 6 #define CONTENT_BROWSER_GEOLOCATION_LOCATION_PROVIDER_ANDROID_H_ 7 8 #include "base/compiler_specific.h" 9 #include "content/browser/geolocation/location_provider_base.h" 10 #include "content/public/common/geoposition.h" 11 12 namespace content { 13 class AndroidLocationApiAdapter; 14 struct Geoposition; 15 16 // Location provider for Android using the platform provider over JNI. 17 class LocationProviderAndroid : public LocationProviderBase { 18 public: 19 LocationProviderAndroid(); 20 virtual ~LocationProviderAndroid(); 21 22 // Called by the AndroidLocationApiAdapter. 23 void NotifyNewGeoposition(const Geoposition& position); 24 25 // LocationProvider. 26 virtual bool StartProvider(bool high_accuracy) OVERRIDE; 27 virtual void StopProvider() OVERRIDE; 28 virtual void GetPosition(Geoposition* position) OVERRIDE; 29 virtual void RequestRefresh() OVERRIDE; 30 virtual void OnPermissionGranted() OVERRIDE; 31 32 private: 33 Geoposition last_position_; 34 }; 35 36 } // namespace content 37 38 #endif // CONTENT_BROWSER_GEOLOCATION_LOCATION_PROVIDER_ANDROID_H_ 39