michael@0: /* -*- Mode: c++; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- michael@0: * This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsGeolocation.h" michael@0: #include "nsGeoPosition.h" michael@0: #include "AndroidBridge.h" michael@0: #include "AndroidLocationProvider.h" michael@0: michael@0: using namespace mozilla; michael@0: michael@0: extern nsIGeolocationUpdate *gLocationCallback; michael@0: michael@0: NS_IMPL_ISUPPORTS(AndroidLocationProvider, nsIGeolocationProvider) michael@0: michael@0: AndroidLocationProvider::AndroidLocationProvider() michael@0: { michael@0: } michael@0: michael@0: AndroidLocationProvider::~AndroidLocationProvider() michael@0: { michael@0: NS_IF_RELEASE(gLocationCallback); michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: AndroidLocationProvider::Startup() michael@0: { michael@0: mozilla::widget::android::GeckoAppShell::EnableLocation(true); michael@0: return NS_OK; michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: AndroidLocationProvider::Watch(nsIGeolocationUpdate* aCallback) michael@0: { michael@0: NS_IF_RELEASE(gLocationCallback); michael@0: gLocationCallback = aCallback; michael@0: NS_IF_ADDREF(gLocationCallback); michael@0: return NS_OK; michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: AndroidLocationProvider::Shutdown() michael@0: { michael@0: mozilla::widget::android::GeckoAppShell::EnableLocation(false); michael@0: return NS_OK; michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: AndroidLocationProvider::SetHighAccuracy(bool enable) michael@0: { michael@0: mozilla::widget::android::GeckoAppShell::EnableLocationHighAccuracy(enable); michael@0: return NS_OK; michael@0: }