From b9420d4ddebb41e661f13b0dfe286a20e95194a6 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Wed, 8 Jan 2020 07:28:48 +0100 Subject: [PATCH] Removed LocationManagerConnector. --- .../services/LocationManagerConnector.java | 67 ------------------- .../services/TrackRecordingService.java | 27 +++----- .../services/TrackRecordingServiceBinder.java | 1 - 3 files changed, 10 insertions(+), 85 deletions(-) delete mode 100644 src/main/java/de/dennisguse/opentracks/services/LocationManagerConnector.java diff --git a/src/main/java/de/dennisguse/opentracks/services/LocationManagerConnector.java b/src/main/java/de/dennisguse/opentracks/services/LocationManagerConnector.java deleted file mode 100644 index 8914a9b9e..000000000 --- a/src/main/java/de/dennisguse/opentracks/services/LocationManagerConnector.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package de.dennisguse.opentracks.services; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.location.LocationListener; -import android.location.LocationManager; -import android.os.Handler; -import android.os.Looper; - -/** - * Handles connection to {@link LocationManager}. - * - * @author Jimmy Shih - */ -public class LocationManagerConnector { - - private final Handler handler; - private final LocationManager locationManager; - - public LocationManagerConnector(Context context, Looper looper) { - this.handler = new Handler(looper); - - locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); - } - - /** - * Requests location updates. - * - * @param minTime the minimal time - * @param minDistance the minimal distance - * @param locationListener the location listener - */ - public void requestLocationUpdates(final long minTime, final float minDistance, final LocationListener locationListener) { - handler.post(new Runnable() { - @Override - @SuppressLint("MissingPermission") - public void run() { - locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minDistance, locationListener); - } - }); - } - - /** - * Removes location updates. - * - * @param locationListener the location listener - */ - public void removeLocationUpdates(final LocationListener locationListener) { - locationManager.removeUpdates(locationListener); - } -} diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index c0f8363bd..26ef20a6a 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -29,7 +29,6 @@ import android.location.LocationListener; import android.location.LocationManager; import android.net.Uri; import android.os.Bundle; -import android.os.Handler; import android.os.IBinder; import android.os.PowerManager.WakeLock; import android.util.Log; @@ -85,8 +84,7 @@ public class TrackRecordingService extends Service { // The following variables are set in onCreate: private ExecutorService executorService; private ContentProviderUtils contentProviderUtils; - private Handler handler; - private LocationManagerConnector locationManagerConnector; + private LocationManager locationManager; private PeriodicTaskExecutor voiceExecutor; private TrackRecordingServiceNotificationManager notificationManager; private LocationListenerPolicy locationListenerPolicy; @@ -156,10 +154,7 @@ public class TrackRecordingService extends Service { @Override public void onLocationChanged(final Location location) { - if (locationManagerConnector == null - || executorService == null - || executorService.isShutdown() - || executorService.isTerminated()) { + if (executorService == null || executorService.isShutdown() || executorService.isTerminated()) { return; } executorService.submit(new Runnable() { @@ -191,11 +186,9 @@ public class TrackRecordingService extends Service { super.onCreate(); executorService = Executors.newSingleThreadExecutor(); contentProviderUtils = new ContentProviderUtils(this); - handler = new Handler(); - locationManagerConnector = new LocationManagerConnector(this, handler.getLooper()); + locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); voiceExecutor = new PeriodicTaskExecutor(this, new AnnouncementPeriodicTaskFactory()); - notificationManager = new TrackRecordingServiceNotificationManager(this); // onSharedPreferenceChanged might not set recordingTrackId. @@ -238,6 +231,7 @@ public class TrackRecordingService extends Service { showNotification(false); //TODO Why? unregisterLocationListener(); + locationManager = null; PreferencesUtils.unregister(this, sharedPreferenceChangeListener); @@ -247,7 +241,6 @@ public class TrackRecordingService extends Service { voiceExecutor = null; } - locationManagerConnector = null; contentProviderUtils = null; binder.detachFromService(); @@ -698,25 +691,25 @@ public class TrackRecordingService extends Service { } private void registerLocationListener() { - if (locationManagerConnector == null) { + if (locationManager == null) { Log.e(TAG, "locationManager is null."); return; } try { long interval = locationListenerPolicy.getDesiredPollingInterval(); - locationManagerConnector.requestLocationUpdates(interval, locationListenerPolicy.getMinDistance_m(), locationListener); + locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, interval, locationListenerPolicy.getMinDistance_m(), locationListener); currentRecordingInterval = interval; - } catch (RuntimeException e) { - Log.e(TAG, "Could not register location listener.", e); + } catch (SecurityException e) { + Log.e(TAG, "Could not register location listener; permissions not granted.", e); } } private void unregisterLocationListener() { - if (locationManagerConnector == null) { + if (locationManager == null) { Log.e(TAG, "locationManager is null."); return; } - locationManagerConnector.removeLocationUpdates(locationListener); + locationManager.removeUpdates(locationListener); } private void showNotification(boolean isGpsStarted) { diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceBinder.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceBinder.java index b3411d3d5..12b63ed4e 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceBinder.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceBinder.java @@ -25,7 +25,6 @@ class TrackRecordingServiceBinder extends android.os.Binder implements TrackReco @Override public void startGps() { trackRecordingService.tryStartGps(); - } public void stopGps() {