Bug 1885602 - Part 5: Implement navigating to the SUMO help topic from the menu heade...
[gecko.git] / dom / system / android / AndroidLocationProvider.cpp
blob8861c302988981739338e297f17f20faddc74273
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #include "Geolocation.h"
8 #include "GeolocationPosition.h"
9 #include "AndroidLocationProvider.h"
10 #include "mozilla/java/GeckoAppShellWrappers.h"
12 using namespace mozilla;
14 extern nsIGeolocationUpdate* gLocationCallback;
16 NS_IMPL_ISUPPORTS(AndroidLocationProvider, nsIGeolocationProvider)
18 AndroidLocationProvider::AndroidLocationProvider() {}
20 AndroidLocationProvider::~AndroidLocationProvider() {
21 NS_IF_RELEASE(gLocationCallback);
24 NS_IMETHODIMP
25 AndroidLocationProvider::Startup() {
26 if (java::GeckoAppShell::EnableLocationUpdates(true)) {
27 return NS_OK;
29 return NS_ERROR_FAILURE;
32 NS_IMETHODIMP
33 AndroidLocationProvider::Watch(nsIGeolocationUpdate* aCallback) {
34 NS_IF_RELEASE(gLocationCallback);
35 gLocationCallback = aCallback;
36 NS_IF_ADDREF(gLocationCallback);
37 return NS_OK;
40 NS_IMETHODIMP
41 AndroidLocationProvider::Shutdown() {
42 if (java::GeckoAppShell::EnableLocationUpdates(false)) {
43 return NS_OK;
45 return NS_ERROR_FAILURE;
48 NS_IMETHODIMP
49 AndroidLocationProvider::SetHighAccuracy(bool enable) {
50 java::GeckoAppShell::EnableLocationHighAccuracy(enable);
51 return NS_OK;