location_provider_android.h revision 7d4cd473f85ac64c3747c96c277f9e506a0d2246
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
12namespace content {
13class AndroidLocationApiAdapter;
14struct Geoposition;
15
16// Location provider for Android using the platform provider over JNI.
17class 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