diff --git a/src/main/java/de/dennisguse/opentracks/TrackDetailActivity.java b/src/main/java/de/dennisguse/opentracks/TrackDetailActivity.java
index 29149ae62..a10a88c6b 100644
--- a/src/main/java/de/dennisguse/opentracks/TrackDetailActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/TrackDetailActivity.java
@@ -22,6 +22,7 @@ import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.pm.PackageManager;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Pair;
@@ -29,6 +30,7 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
+import android.view.WindowManager;
import android.widget.ShareActionProvider;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
@@ -94,6 +96,8 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
// Preferences
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
+ private boolean showOnLockScreen = PreferencesUtils.SHOW_TRACKDETAIL_WHILE_RECORDING_ON_LOCKSCREEN;
+
private final Runnable bindChangedCallback = new Runnable() {
@Override
public void run() {
@@ -132,6 +136,11 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
recordingTrackPaused = PreferencesUtils.getBoolean(TrackDetailActivity.this, R.string.recording_track_paused_key, PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
}
+ if (key == null || key.equals(PreferencesUtils.getKey(TrackDetailActivity.this, R.string.trackdetail_show_on_lockscreen_while_recording))) {
+ showOnLockScreen = PreferencesUtils.getBoolean(TrackDetailActivity.this, R.string.trackdetail_show_on_lockscreen_while_recording, PreferencesUtils.SHOW_TRACKDETAIL_WHILE_RECORDING_ON_LOCKSCREEN);
+ setLockscreenPolicy();
+ }
+
if (key == null) return;
runOnUiThread(new Runnable() {
@@ -214,6 +223,22 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
trackController = new TrackController(this, trackRecordingServiceConnection, false, recordListener, stopListener);
}
+ @Override
+ public void onAttachedToWindow() {
+ setLockscreenPolicy();
+ super.onAttachedToWindow();
+ }
+
+ private void setLockscreenPolicy() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ setShowWhenLocked(showOnLockScreen);
+ } else {
+ if (showOnLockScreen)
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+ else getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+ }
+ }
+
@Override
protected void onStart() {
super.onStart();
diff --git a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java
index 70b8d5701..e9f023edb 100644
--- a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java
+++ b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java
@@ -83,6 +83,8 @@ public class PreferencesUtils {
public static final String TRACK_NAME_DEFAULT = "DATE_ISO_8601";
+ public static final boolean SHOW_TRACKDETAIL_WHILE_RECORDING_ON_LOCKSCREEN = false;
+
// Track widget
public static final int TRACK_WIDGET_ITEM1_DEFAULT = 3; // moving time
public static final int TRACK_WIDGET_ITEM2_DEFAULT = 0; // distance
diff --git a/src/main/res/values/keys.xml b/src/main/res/values/keys.xml
index a3aed902f..6a9c496a6 100644
--- a/src/main/res/values/keys.xml
+++ b/src/main/res/values/keys.xml
@@ -28,10 +28,12 @@ limitations under the License.
recordingDistanceInterval
recordingGpsAccuracy
splitFrequency
+
statsRate
statsShowCoordinate
statsShowGradeElevation
statsUnits
+ trackdetail_show_on_lockscreen_while_recording
trackName
trackWidgetItem1
trackWidgetItem2
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 77921dddd..16ae1b280 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -1085,10 +1085,16 @@ limitations under the License.
X axis
-
-
-
+ Show statistics on lockscreen
+
+
+
+ While recording, show statistics without unlocking the device.
+
+
+
Recording
diff --git a/src/main/res/xml/settings_recording.xml b/src/main/res/xml/settings_recording.xml
index 2ce3232af..11ae067db 100644
--- a/src/main/res/xml/settings_recording.xml
+++ b/src/main/res/xml/settings_recording.xml
@@ -35,11 +35,6 @@ limitations under the License.
android:key="@string/track_name_key"
android:summary="%s"
android:title="@string/settings_recording_track_name_title" />
-
+
+
\ No newline at end of file