| Index: device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java
|
| diff --git a/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java b/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java
|
| deleted file mode 100644
|
| index aed6822628075ad7b58ae0f5a21f8b40d6e8299d..0000000000000000000000000000000000000000
|
| --- a/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java
|
| +++ /dev/null
|
| @@ -1,136 +0,0 @@
|
| -// Copyright 2017 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -package org.chromium.device.geolocation;
|
| -
|
| -import android.content.Context;
|
| -import android.location.Location;
|
| -import android.os.Bundle;
|
| -
|
| -import com.google.android.gms.common.ConnectionResult;
|
| -import com.google.android.gms.common.GoogleApiAvailability;
|
| -import com.google.android.gms.common.api.GoogleApiClient;
|
| -import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
|
| -import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
|
| -import com.google.android.gms.location.FusedLocationProviderApi;
|
| -import com.google.android.gms.location.LocationListener;
|
| -import com.google.android.gms.location.LocationRequest;
|
| -import com.google.android.gms.location.LocationServices;
|
| -
|
| -import org.chromium.base.Log;
|
| -import org.chromium.base.ThreadUtils;
|
| -
|
| -/**
|
| - * This is a LocationProvider using Google Play Services.
|
| - *
|
| - * https://developers.google.com/android/reference/com/google/android/gms/location/package-summary
|
| - */
|
| -public class LocationProviderGmsCore implements ConnectionCallbacks, OnConnectionFailedListener,
|
| - LocationListener,
|
| - LocationProviderFactory.LocationProvider {
|
| - private static final String TAG = "cr_LocationProvider";
|
| -
|
| - // Values for the LocationRequest's setInterval for normal and high accuracy, respectively.
|
| - private static final long UPDATE_INTERVAL_MS = 1000;
|
| - private static final long UPDATE_INTERVAL_FAST_MS = 500;
|
| -
|
| - private final GoogleApiClient mGoogleApiClient;
|
| - private FusedLocationProviderApi mLocationProviderApi = LocationServices.FusedLocationApi;
|
| -
|
| - private boolean mEnablehighAccuracy;
|
| - private LocationRequest mLocationRequest;
|
| -
|
| - public static boolean isGooglePlayServicesAvailable(Context context) {
|
| - return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context)
|
| - == ConnectionResult.SUCCESS;
|
| - }
|
| -
|
| - LocationProviderGmsCore(Context context) {
|
| - Log.i(TAG, "Google Play Services");
|
| - mGoogleApiClient = new GoogleApiClient.Builder(context)
|
| - .addApi(LocationServices.API)
|
| - .addConnectionCallbacks(this)
|
| - .addOnConnectionFailedListener(this)
|
| - .build();
|
| - assert mGoogleApiClient != null;
|
| - }
|
| -
|
| - LocationProviderGmsCore(GoogleApiClient client, FusedLocationProviderApi locationApi) {
|
| - mGoogleApiClient = client;
|
| - mLocationProviderApi = locationApi;
|
| - }
|
| -
|
| - // ConnectionCallbacks implementation
|
| - @Override
|
| - public void onConnected(Bundle connectionHint) {
|
| - ThreadUtils.assertOnUiThread();
|
| -
|
| - mLocationRequest = LocationRequest.create();
|
| - if (mEnablehighAccuracy) {
|
| - mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
|
| - .setInterval(UPDATE_INTERVAL_FAST_MS);
|
| - } else {
|
| - mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY)
|
| - .setInterval(UPDATE_INTERVAL_MS);
|
| - }
|
| -
|
| - final Location location = mLocationProviderApi.getLastLocation(mGoogleApiClient);
|
| - if (location != null) {
|
| - LocationProviderAdapter.onNewLocationAvailable(location);
|
| - }
|
| -
|
| - try {
|
| - // Request updates on UI Thread replicating LocationProviderAndroid's behaviour.
|
| - mLocationProviderApi.requestLocationUpdates(
|
| - mGoogleApiClient, mLocationRequest, this, ThreadUtils.getUiThreadLooper());
|
| - } catch (IllegalStateException e) {
|
| - // Happens "If this method is executed in a thread that has not called Looper.prepare()"
|
| - Log.e(TAG, "Unexpected exception " + e);
|
| - assert false;
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public void onConnectionSuspended(int cause) {}
|
| -
|
| - // OnConnectionFailedListener implementation
|
| - @Override
|
| - public void onConnectionFailed(ConnectionResult result) {
|
| - LocationProviderAdapter.newErrorAvailable(
|
| - "Failed to connect to Google Play Services: " + result.toString());
|
| - }
|
| -
|
| - // LocationProviderFactory.LocationProvider implementation
|
| - @Override
|
| - public void start(boolean enableHighAccuracy) {
|
| - ThreadUtils.assertOnUiThread();
|
| - if (mGoogleApiClient.isConnected()) mGoogleApiClient.disconnect();
|
| -
|
| - mEnablehighAccuracy = enableHighAccuracy;
|
| - mGoogleApiClient.connect(); // Should return via onConnected().
|
| - }
|
| -
|
| - @Override
|
| - public void stop() {
|
| - ThreadUtils.assertOnUiThread();
|
| - if (!mGoogleApiClient.isConnected()) return;
|
| -
|
| - mLocationProviderApi.removeLocationUpdates(mGoogleApiClient, this);
|
| -
|
| - mGoogleApiClient.disconnect();
|
| - }
|
| -
|
| - @Override
|
| - public boolean isRunning() {
|
| - assert ThreadUtils.runningOnUiThread();
|
| - if (mGoogleApiClient == null) return false;
|
| - return mGoogleApiClient.isConnecting() || mGoogleApiClient.isConnected();
|
| - }
|
| -
|
| - // LocationListener implementation
|
| - @Override
|
| - public void onLocationChanged(Location location) {
|
| - LocationProviderAdapter.onNewLocationAvailable(location);
|
| - }
|
| -}
|
|
|