forked from upstream-mirrors/OpenTracks
TrackRecordingServices: managers register for sharedPreference changes.
This commit is contained in:
-1
@@ -30,7 +30,6 @@ public class TrackRecordingServiceTestUtils {
|
|||||||
service.getTrackPointCreator().setRemoteSensorManager(new BluetoothRemoteSensorManager(context, service.getTrackPointCreator()));
|
service.getTrackPointCreator().setRemoteSensorManager(new BluetoothRemoteSensorManager(context, service.getTrackPointCreator()));
|
||||||
service.getTrackPointCreator().setClock(Clock.systemUTC());
|
service.getTrackPointCreator().setClock(Clock.systemUTC());
|
||||||
service.endCurrentTrack();
|
service.endCurrentTrack();
|
||||||
service.sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sendGPSLocation(TrackPointCreator trackPointCreator, String time, double latitude, double longitude, float accuracy, long speed) {
|
static void sendGPSLocation(TrackPointCreator trackPointCreator, String time, double latitude, double longitude, float accuracy, long speed) {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package de.dennisguse.opentracks.services;
|
|||||||
|
|
||||||
import android.content.ContentUris;
|
import android.content.ContentUris;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.database.sqlite.SQLiteException;
|
import android.database.sqlite.SQLiteException;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -25,7 +26,7 @@ import de.dennisguse.opentracks.stats.TrackStatisticsUpdater;
|
|||||||
import de.dennisguse.opentracks.util.TrackIconUtils;
|
import de.dennisguse.opentracks.util.TrackIconUtils;
|
||||||
import de.dennisguse.opentracks.util.TrackNameUtils;
|
import de.dennisguse.opentracks.util.TrackNameUtils;
|
||||||
|
|
||||||
class TrackRecordingManager {
|
class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
|
|
||||||
private static final String TAG = TrackRecordingManager.class.getSimpleName();
|
private static final String TAG = TrackRecordingManager.class.getSimpleName();
|
||||||
|
|
||||||
@@ -47,7 +48,15 @@ class TrackRecordingManager {
|
|||||||
contentProviderUtils = new ContentProviderUtils(context);
|
contentProviderUtils = new ContentProviderUtils(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
Track.Id start(TrackPoint segmentStartTrackPoint, ZoneOffset zoneOffset) {
|
public void start() {
|
||||||
|
PreferencesUtils.registerOnSharedPreferenceChangeListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stop() {
|
||||||
|
PreferencesUtils.unregisterOnSharedPreferenceChangeListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
Track.Id startNewTrack(TrackPoint segmentStartTrackPoint, ZoneOffset zoneOffset) {
|
||||||
// Create new track
|
// Create new track
|
||||||
Track track = new Track(zoneOffset);
|
Track track = new Track(zoneOffset);
|
||||||
trackId = contentProviderUtils.insertTrack(track);
|
trackId = contentProviderUtils.insertTrack(track);
|
||||||
@@ -69,7 +78,7 @@ class TrackRecordingManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//TODO Handle non-existing trackId? Start a new track or exception?
|
//TODO Handle non-existing trackId? Start a new track or exception?
|
||||||
void resume(@NonNull Track.Id resumeTrackId, @NonNull TrackPoint segmentStartTrackPoint) {
|
void resumeExistingTrack(@NonNull Track.Id resumeTrackId, @NonNull TrackPoint segmentStartTrackPoint) {
|
||||||
trackId = resumeTrackId;
|
trackId = resumeTrackId;
|
||||||
Track track = contentProviderUtils.getTrack(trackId);
|
Track track = contentProviderUtils.getTrack(trackId);
|
||||||
if (track == null) {
|
if (track == null) {
|
||||||
@@ -242,7 +251,8 @@ class TrackRecordingManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSharedPreferenceChanged(String key) {
|
@Override
|
||||||
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
if (PreferencesUtils.isKey(R.string.recording_distance_interval_key, key)) {
|
if (PreferencesUtils.isKey(R.string.recording_distance_interval_key, key)) {
|
||||||
recordingDistanceInterval = PreferencesUtils.getRecordingDistanceInterval();
|
recordingDistanceInterval = PreferencesUtils.getRecordingDistanceInterval();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ package de.dennisguse.opentracks.services;
|
|||||||
|
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
@@ -47,7 +45,6 @@ import de.dennisguse.opentracks.services.announcement.VoiceAnnouncementManager;
|
|||||||
import de.dennisguse.opentracks.services.handlers.EGM2008CorrectionManager;
|
import de.dennisguse.opentracks.services.handlers.EGM2008CorrectionManager;
|
||||||
import de.dennisguse.opentracks.services.handlers.GpsStatusValue;
|
import de.dennisguse.opentracks.services.handlers.GpsStatusValue;
|
||||||
import de.dennisguse.opentracks.services.handlers.TrackPointCreator;
|
import de.dennisguse.opentracks.services.handlers.TrackPointCreator;
|
||||||
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
|
||||||
import de.dennisguse.opentracks.settings.SettingsActivity;
|
import de.dennisguse.opentracks.settings.SettingsActivity;
|
||||||
import de.dennisguse.opentracks.stats.TrackStatistics;
|
import de.dennisguse.opentracks.stats.TrackStatistics;
|
||||||
import de.dennisguse.opentracks.util.ExportUtils;
|
import de.dennisguse.opentracks.util.ExportUtils;
|
||||||
@@ -95,28 +92,6 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
//TODO Workaround as service is not stopped on API23; thus sharedpreferences are not reset between tests.
|
|
||||||
@VisibleForTesting
|
|
||||||
final OnSharedPreferenceChangeListener sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
|
||||||
@Override
|
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
|
||||||
if (PreferencesUtils.isKey(R.string.stats_units_key, key)) {
|
|
||||||
boolean metricUnits = PreferencesUtils.isMetricUnits();
|
|
||||||
notificationManager.setMetricUnits(metricUnits);
|
|
||||||
}
|
|
||||||
if (PreferencesUtils.isKey(R.string.voice_announcement_frequency_key, key)) {
|
|
||||||
voiceAnnouncementManager.setFrequency(PreferencesUtils.getVoiceAnnouncementFrequency());
|
|
||||||
}
|
|
||||||
if (PreferencesUtils.isKey(new int[]{R.string.voice_announcement_distance_key, R.string.stats_units_key}, key)) {
|
|
||||||
voiceAnnouncementManager.setFrequency(PreferencesUtils.getVoiceAnnouncementDistance());
|
|
||||||
}
|
|
||||||
|
|
||||||
trackPointCreator.onSharedPreferenceChanged(key);
|
|
||||||
trackRecordingManager.onSharedPreferenceChanged(key);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// The following variables are set when recording:
|
// The following variables are set when recording:
|
||||||
private WakeLock wakeLock;
|
private WakeLock wakeLock;
|
||||||
|
|
||||||
@@ -139,13 +114,12 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
recordingDataObservable = new MutableLiveData<>(NOT_RECORDING);
|
recordingDataObservable = new MutableLiveData<>(NOT_RECORDING);
|
||||||
|
|
||||||
trackRecordingManager = new TrackRecordingManager(this);
|
trackRecordingManager = new TrackRecordingManager(this);
|
||||||
|
trackRecordingManager.start();
|
||||||
trackPointCreator = new TrackPointCreator(this);
|
trackPointCreator = new TrackPointCreator(this);
|
||||||
|
|
||||||
voiceAnnouncementManager = new VoiceAnnouncementManager(this);
|
voiceAnnouncementManager = new VoiceAnnouncementManager(this);
|
||||||
|
|
||||||
notificationManager = new TrackRecordingServiceNotificationManager(this);
|
notificationManager = new TrackRecordingServiceNotificationManager(this);
|
||||||
|
|
||||||
PreferencesUtils.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -153,14 +127,14 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
handler.removeCallbacksAndMessages(null); //Some tests do not finish the recording completely
|
handler.removeCallbacksAndMessages(null); //Some tests do not finish the recording completely
|
||||||
handler = null;
|
handler = null;
|
||||||
|
|
||||||
PreferencesUtils.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
|
||||||
|
|
||||||
trackPointCreator.stop();
|
trackPointCreator.stop();
|
||||||
trackPointCreator = null;
|
trackPointCreator = null;
|
||||||
|
trackRecordingManager.stop();
|
||||||
trackRecordingManager = null;
|
trackRecordingManager = null;
|
||||||
|
|
||||||
// Reverse order from onCreate
|
// Reverse order from onCreate
|
||||||
showNotification(false); //TODO Why?
|
showNotification(false); //TODO Why?
|
||||||
|
notificationManager.stop();
|
||||||
notificationManager = null;
|
notificationManager = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -220,7 +194,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
// Set recording status
|
// Set recording status
|
||||||
TrackPoint segmentStartManual = trackPointCreator.createSegmentStartManual();
|
TrackPoint segmentStartManual = trackPointCreator.createSegmentStartManual();
|
||||||
ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartManual.getTime());
|
ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartManual.getTime());
|
||||||
Track.Id trackId = trackRecordingManager.start(segmentStartManual, zoneOffset);
|
Track.Id trackId = trackRecordingManager.startNewTrack(segmentStartManual, zoneOffset);
|
||||||
updateRecordingStatus(RecordingStatus.record(trackId));
|
updateRecordingStatus(RecordingStatus.record(trackId));
|
||||||
|
|
||||||
startRecording();
|
startRecording();
|
||||||
@@ -235,7 +209,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
*/
|
*/
|
||||||
public void resumeTrack(Track.Id trackId) {
|
public void resumeTrack(Track.Id trackId) {
|
||||||
trackPointCreator.reset();
|
trackPointCreator.reset();
|
||||||
trackRecordingManager.resume(trackId, trackPointCreator.createSegmentStartManual());
|
trackRecordingManager.resumeExistingTrack(trackId, trackPointCreator.createSegmentStartManual());
|
||||||
|
|
||||||
// Set recording status
|
// Set recording status
|
||||||
updateRecordingStatus(RecordingStatus.record(trackId));
|
updateRecordingStatus(RecordingStatus.record(trackId));
|
||||||
|
|||||||
+15
-1
@@ -6,6 +6,7 @@ import android.app.NotificationManager;
|
|||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
@@ -17,6 +18,7 @@ import de.dennisguse.opentracks.TrackListActivity;
|
|||||||
import de.dennisguse.opentracks.TrackRecordingActivity;
|
import de.dennisguse.opentracks.TrackRecordingActivity;
|
||||||
import de.dennisguse.opentracks.data.models.Distance;
|
import de.dennisguse.opentracks.data.models.Distance;
|
||||||
import de.dennisguse.opentracks.data.models.TrackPoint;
|
import de.dennisguse.opentracks.data.models.TrackPoint;
|
||||||
|
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.stats.TrackStatistics;
|
import de.dennisguse.opentracks.stats.TrackStatistics;
|
||||||
import de.dennisguse.opentracks.util.IntentUtils;
|
import de.dennisguse.opentracks.util.IntentUtils;
|
||||||
import de.dennisguse.opentracks.util.StringUtils;
|
import de.dennisguse.opentracks.util.StringUtils;
|
||||||
@@ -24,7 +26,7 @@ import de.dennisguse.opentracks.util.StringUtils;
|
|||||||
/**
|
/**
|
||||||
* Manages the content of the notification shown by {@link TrackRecordingService}.
|
* Manages the content of the notification shown by {@link TrackRecordingService}.
|
||||||
*/
|
*/
|
||||||
class TrackRecordingServiceNotificationManager {
|
class TrackRecordingServiceNotificationManager implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
|
|
||||||
static final int NOTIFICATION_ID = 123;
|
static final int NOTIFICATION_ID = 123;
|
||||||
|
|
||||||
@@ -39,6 +41,7 @@ class TrackRecordingServiceNotificationManager {
|
|||||||
private Boolean metricUnits = null;
|
private Boolean metricUnits = null;
|
||||||
|
|
||||||
TrackRecordingServiceNotificationManager(Context context) {
|
TrackRecordingServiceNotificationManager(Context context) {
|
||||||
|
PreferencesUtils.registerOnSharedPreferenceChangeListener(this);
|
||||||
notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID, context.getString(R.string.app_name), NotificationManager.IMPORTANCE_HIGH);
|
NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID, context.getString(R.string.app_name), NotificationManager.IMPORTANCE_HIGH);
|
||||||
@@ -59,6 +62,10 @@ class TrackRecordingServiceNotificationManager {
|
|||||||
.setSmallIcon(R.drawable.ic_logo_color_24dp);
|
.setSmallIcon(R.drawable.ic_logo_color_24dp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void stop() {
|
||||||
|
PreferencesUtils.unregisterOnSharedPreferenceChangeListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
TrackRecordingServiceNotificationManager(NotificationManager notificationManager, NotificationCompat.Builder notificationBuilder) {
|
TrackRecordingServiceNotificationManager(NotificationManager notificationManager, NotificationCompat.Builder notificationBuilder) {
|
||||||
this.notificationManager = notificationManager;
|
this.notificationManager = notificationManager;
|
||||||
@@ -144,4 +151,11 @@ class TrackRecordingServiceNotificationManager {
|
|||||||
private Notification getNotification() {
|
private Notification getNotification() {
|
||||||
return notificationBuilder.build();
|
return notificationBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
|
if (PreferencesUtils.isKey(R.string.stats_units_key, key)) {
|
||||||
|
setMetricUnits(PreferencesUtils.isMetricUnits());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-1
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package de.dennisguse.opentracks.services.announcement;
|
package de.dennisguse.opentracks.services.announcement;
|
||||||
|
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -23,9 +24,11 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
|
|
||||||
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.data.models.Distance;
|
import de.dennisguse.opentracks.data.models.Distance;
|
||||||
import de.dennisguse.opentracks.data.models.Track;
|
import de.dennisguse.opentracks.data.models.Track;
|
||||||
import de.dennisguse.opentracks.services.TrackRecordingService;
|
import de.dennisguse.opentracks.services.TrackRecordingService;
|
||||||
|
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.stats.TrackStatistics;
|
import de.dennisguse.opentracks.stats.TrackStatistics;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -33,7 +36,7 @@ import de.dennisguse.opentracks.stats.TrackStatistics;
|
|||||||
*
|
*
|
||||||
* @author Sandor Dornbush
|
* @author Sandor Dornbush
|
||||||
*/
|
*/
|
||||||
public class VoiceAnnouncementManager {
|
public class VoiceAnnouncementManager implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
|
|
||||||
private static final String TAG = VoiceAnnouncementManager.class.getSimpleName();
|
private static final String TAG = VoiceAnnouncementManager.class.getSimpleName();
|
||||||
|
|
||||||
@@ -55,6 +58,7 @@ public class VoiceAnnouncementManager {
|
|||||||
|
|
||||||
public VoiceAnnouncementManager(@NonNull TrackRecordingService trackRecordingService) {
|
public VoiceAnnouncementManager(@NonNull TrackRecordingService trackRecordingService) {
|
||||||
this.trackRecordingService = trackRecordingService;
|
this.trackRecordingService = trackRecordingService;
|
||||||
|
PreferencesUtils.registerOnSharedPreferenceChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restore(@Nullable TrackStatistics trackStatistics) {
|
public void restore(@Nullable TrackStatistics trackStatistics) {
|
||||||
@@ -89,6 +93,7 @@ public class VoiceAnnouncementManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void shutdown() {
|
public void shutdown() {
|
||||||
|
PreferencesUtils.unregisterOnSharedPreferenceChangeListener(this);
|
||||||
if (voiceAnnouncement != null) {
|
if (voiceAnnouncement != null) {
|
||||||
voiceAnnouncement.shutdown();
|
voiceAnnouncement.shutdown();
|
||||||
voiceAnnouncement = null;
|
voiceAnnouncement = null;
|
||||||
@@ -141,4 +146,15 @@ public class VoiceAnnouncementManager {
|
|||||||
public Distance getNextTotalDistance() {
|
public Distance getNextTotalDistance() {
|
||||||
return nextTotalDistance;
|
return nextTotalDistance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
|
if (PreferencesUtils.isKey(R.string.voice_announcement_frequency_key, key)) {
|
||||||
|
setFrequency(PreferencesUtils.getVoiceAnnouncementFrequency());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PreferencesUtils.isKey(new int[]{R.string.voice_announcement_distance_key, R.string.stats_units_key}, key)) {
|
||||||
|
setFrequency(PreferencesUtils.getVoiceAnnouncementDistance());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package de.dennisguse.opentracks.services.handlers;
|
package de.dennisguse.opentracks.services.handlers;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
import android.location.LocationListener;
|
import android.location.LocationListener;
|
||||||
import android.location.LocationManager;
|
import android.location.LocationManager;
|
||||||
@@ -19,7 +20,7 @@ import de.dennisguse.opentracks.settings.PreferencesUtils;
|
|||||||
import de.dennisguse.opentracks.util.LocationUtils;
|
import de.dennisguse.opentracks.util.LocationUtils;
|
||||||
|
|
||||||
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
|
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
|
||||||
public class GPSHandler implements LocationListener, GpsStatus.GpsStatusListener {
|
public class GPSHandler implements LocationListener, GpsStatus.GpsStatusListener, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
|
|
||||||
private final String TAG = GPSHandler.class.getSimpleName();
|
private final String TAG = GPSHandler.class.getSimpleName();
|
||||||
|
|
||||||
@@ -35,7 +36,7 @@ public class GPSHandler implements LocationListener, GpsStatus.GpsStatusListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onStart(@NonNull Context context) {
|
public void onStart(@NonNull Context context) {
|
||||||
onSharedPreferenceChanged(null);
|
PreferencesUtils.registerOnSharedPreferenceChangeListener(this);
|
||||||
gpsStatus = new GpsStatus(context, this);
|
gpsStatus = new GpsStatus(context, this);
|
||||||
locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
|
locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
|
||||||
registerLocationListener();
|
registerLocationListener();
|
||||||
@@ -59,9 +60,11 @@ public class GPSHandler implements LocationListener, GpsStatus.GpsStatusListener
|
|||||||
gpsStatus.stop();
|
gpsStatus.stop();
|
||||||
gpsStatus = null;
|
gpsStatus = null;
|
||||||
}
|
}
|
||||||
|
PreferencesUtils.unregisterOnSharedPreferenceChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSharedPreferenceChanged(String key) {
|
@Override
|
||||||
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
boolean registerListener = false;
|
boolean registerListener = false;
|
||||||
|
|
||||||
if (PreferencesUtils.isKey(R.string.min_recording_interval_key, key)) {
|
if (PreferencesUtils.isKey(R.string.min_recording_interval_key, key)) {
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ public class TrackPointCreator implements BluetoothRemoteSensorManager.SensorDat
|
|||||||
|
|
||||||
remoteSensorManager.start();
|
remoteSensorManager.start();
|
||||||
altitudeSumManager.start(context);
|
altitudeSumManager.start(context);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isStarted() {
|
private boolean isStarted() {
|
||||||
@@ -107,10 +108,6 @@ public class TrackPointCreator implements BluetoothRemoteSensorManager.SensorDat
|
|||||||
this.context = null;
|
this.context = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSharedPreferenceChanged(String key) {
|
|
||||||
gpsHandler.onSharedPreferenceChanged(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Got a new TrackPoint from Bluetooth only; contains no GPS location.
|
* Got a new TrackPoint from Bluetooth only; contains no GPS location.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user