diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index 8fc6291c3..98aac4a91 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -268,7 +268,7 @@ public class TrackRecordingService extends Service { binder = null; // This should be the next to last operation - releaseWakeLock(); + wakeLock = SystemUtils.releaseWakeLock(wakeLock); // Shutdown the executorService last to avoid sending events to a dead executor. executorService.shutdown(); @@ -528,7 +528,7 @@ public class TrackRecordingService extends Service { void stopGps(boolean stop) { unregisterLocationListener(); showNotification(false); - releaseWakeLock(); + wakeLock = SystemUtils.releaseWakeLock(wakeLock); if (stop) { stopSelf(); } @@ -728,13 +728,6 @@ public class TrackRecordingService extends Service { locationManagerConnector.removeLocationUpdates(locationListener); } - private void releaseWakeLock() { - if (wakeLock != null && wakeLock.isHeld()) { - wakeLock.release(); - wakeLock = null; - } - } - private void showNotification(boolean isGpsStarted) { // Dijkstra If if (isRecording() && isPaused()) { diff --git a/src/main/java/de/dennisguse/opentracks/util/SystemUtils.java b/src/main/java/de/dennisguse/opentracks/util/SystemUtils.java index 977c8f9fc..76412758e 100644 --- a/src/main/java/de/dennisguse/opentracks/util/SystemUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/SystemUtils.java @@ -99,4 +99,16 @@ public class SystemUtils { } return wakeLock; } + + /** + * Releases the wake lock if it is held. + * + * @return null + */ + public static WakeLock releaseWakeLock(WakeLock wakeLock) { + if (wakeLock != null && wakeLock.isHeld()) { + wakeLock.release(); + } + return null; + } } \ No newline at end of file