From a453c8ec1e5cda467271a316c4d933009cec562a Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Tue, 5 Nov 2019 22:45:29 +0100 Subject: [PATCH] TrackDetailActivity: disable activity type changer in view mode. Fix #3. --- .../de/dennisguse/opentracks/TrackDetailActivity.java | 11 +++++------ .../opentracks/fragments/StatsFragment.java | 4 ++-- .../de/dennisguse/opentracks/util/StatsUtils.java | 3 +++ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/TrackDetailActivity.java b/src/main/java/de/dennisguse/opentracks/TrackDetailActivity.java index 2d2c59625..481be9c82 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackDetailActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackDetailActivity.java @@ -94,8 +94,6 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA // Preferences private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT; - @Deprecated //TODO Not required to be member variable. - private boolean showOnLockScreen = getResources().getBoolean(R.bool.stats_show_on_lockscreen_while_recording_default); private final Runnable bindChangedCallback = new Runnable() { @Override @@ -135,7 +133,6 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA } if (PreferencesUtils.isKey(TrackDetailActivity.this, R.string.stats_show_on_lockscreen_while_recording_key, key)) { - showOnLockScreen = PreferencesUtils.shouldShowStatsOnLockscreen(TrackDetailActivity.this); setLockscreenPolicy(); } @@ -228,12 +225,14 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA } private void setLockscreenPolicy() { + boolean showOnLockScreen = PreferencesUtils.shouldShowStatsOnLockscreen(TrackDetailActivity.this); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { setShowWhenLocked(showOnLockScreen); + } else if (showOnLockScreen) { + getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); } else { - if (showOnLockScreen) - getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); - else getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); } } diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java index 5af3233d8..7945a2ee7 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java @@ -67,7 +67,6 @@ public class StatsFragment extends Fragment implements TrackDataListener { private Location lastLocation = null; private TripStatistics lastTripStatistics = null; - private SensorDataSet sensorDataSet = null; private final Runnable updateUIeachSecond = new Runnable() { public void run() { @@ -304,9 +303,10 @@ public class StatsFragment extends Fragment implements TrackDataListener { */ private void updateSensorDataUI() { ITrackRecordingService trackRecordingService = trackRecordingServiceConnection.getServiceIfBound(); + + SensorDataSet sensorDataSet = null; if (trackRecordingService == null) { Log.d(STATS_FRAGMENT_TAG, "Cannot get the track recording service."); - sensorDataSet = null; } else { //TODO sensorState = trackRecordingService.getSensorState(); sensorDataSet = trackRecordingService.getSensorData(); diff --git a/src/main/java/de/dennisguse/opentracks/util/StatsUtils.java b/src/main/java/de/dennisguse/opentracks/util/StatsUtils.java index 516cf4d26..387d9ee98 100644 --- a/src/main/java/de/dennisguse/opentracks/util/StatsUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/StatsUtils.java @@ -151,6 +151,8 @@ public class StatsUtils { public static void setTripStatisticsValues(Activity activity, TripStatistics tripStatistics, String trackIconValue) { boolean metricUnits = PreferencesUtils.isMetricUnits(activity); boolean reportSpeed = PreferencesUtils.isReportSpeed(activity); + boolean isRecording = PreferencesUtils.isRecording(activity); + ; // Set total distance { @@ -173,6 +175,7 @@ public class StatsUtils { if (trackIconValue != null) { TrackIconUtils.setIconSpinner(spinner, trackIconValue); } + spinner.setEnabled(isRecording); } // Set time