forked from upstream-mirrors/OpenTracks
Added "screen always on"-feature to TrackDetailActivity.
And the "show on lockscreen"-feature is only used while recording.
This commit is contained in:
@@ -127,16 +127,24 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
|
|||||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||||
if (PreferencesUtils.isKey(TrackDetailActivity.this, R.string.recording_track_id_key, key)) {
|
if (PreferencesUtils.isKey(TrackDetailActivity.this, R.string.recording_track_id_key, key)) {
|
||||||
recordingTrackId = PreferencesUtils.getRecordingTrackId(TrackDetailActivity.this);
|
recordingTrackId = PreferencesUtils.getRecordingTrackId(TrackDetailActivity.this);
|
||||||
|
setLockscreenPolicy();
|
||||||
|
setScreenOnPolicy();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PreferencesUtils.isKey(TrackDetailActivity.this, R.string.recording_track_paused_key, key)) {
|
if (PreferencesUtils.isKey(TrackDetailActivity.this, R.string.recording_track_paused_key, key)) {
|
||||||
recordingTrackPaused = PreferencesUtils.isRecordingTrackPaused(TrackDetailActivity.this);
|
recordingTrackPaused = PreferencesUtils.isRecordingTrackPaused(TrackDetailActivity.this);
|
||||||
|
setLockscreenPolicy();
|
||||||
|
setScreenOnPolicy();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PreferencesUtils.isKey(TrackDetailActivity.this, R.string.stats_show_on_lockscreen_while_recording_key, key)) {
|
if (PreferencesUtils.isKey(TrackDetailActivity.this, R.string.stats_show_on_lockscreen_while_recording_key, key)) {
|
||||||
setLockscreenPolicy();
|
setLockscreenPolicy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (PreferencesUtils.isKey(TrackDetailActivity.this, R.string.stats_keep_screen_on_while_recording_key, key)) {
|
||||||
|
setScreenOnPolicy();
|
||||||
|
}
|
||||||
|
|
||||||
if (key == null) return;
|
if (key == null) return;
|
||||||
|
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
@@ -227,11 +235,13 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
|
|||||||
@Override
|
@Override
|
||||||
public void onAttachedToWindow() {
|
public void onAttachedToWindow() {
|
||||||
setLockscreenPolicy();
|
setLockscreenPolicy();
|
||||||
|
setScreenOnPolicy();
|
||||||
super.onAttachedToWindow();
|
super.onAttachedToWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setLockscreenPolicy() {
|
private void setLockscreenPolicy() {
|
||||||
boolean showOnLockScreen = PreferencesUtils.shouldShowStatsOnLockscreen(TrackDetailActivity.this);
|
boolean showOnLockScreen = PreferencesUtils.shouldShowStatsOnLockscreen(TrackDetailActivity.this)
|
||||||
|
&& PreferencesUtils.isRecording(this);
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
|
||||||
setShowWhenLocked(showOnLockScreen);
|
setShowWhenLocked(showOnLockScreen);
|
||||||
@@ -242,6 +252,17 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setScreenOnPolicy() {
|
||||||
|
boolean keepScreenOn = PreferencesUtils.shouldKeepScreenOn(TrackDetailActivity.this)
|
||||||
|
&& PreferencesUtils.isRecording(this);
|
||||||
|
|
||||||
|
if (keepScreenOn) {
|
||||||
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||||
|
} else {
|
||||||
|
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
|
|||||||
@@ -289,6 +289,11 @@ public class PreferencesUtils {
|
|||||||
return getBoolean(context, R.string.stats_show_on_lockscreen_while_recording_key, STATS_SHOW_ON_LOCKSCREEN_DEFAULT);
|
return getBoolean(context, R.string.stats_show_on_lockscreen_while_recording_key, STATS_SHOW_ON_LOCKSCREEN_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean shouldKeepScreenOn(Context context) {
|
||||||
|
final boolean DEFAULT = context.getResources().getBoolean(R.bool.stats_keep_screen_on_while_recording_default);
|
||||||
|
return getBoolean(context, R.string.stats_keep_screen_on_while_recording_key, DEFAULT);
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isShowStatsGradeElevation(Context context) {
|
public static boolean isShowStatsGradeElevation(Context context) {
|
||||||
final boolean STATS_SHOW_GRADE_ELEVATION = context.getResources().getBoolean(R.bool.stats_show_grade_elevation_default);
|
final boolean STATS_SHOW_GRADE_ELEVATION = context.getResources().getBoolean(R.bool.stats_show_grade_elevation_default);
|
||||||
return PreferencesUtils.getBoolean(context, R.string.stats_show_grade_elevation_key, STATS_SHOW_GRADE_ELEVATION);
|
return PreferencesUtils.getBoolean(context, R.string.stats_show_grade_elevation_key, STATS_SHOW_GRADE_ELEVATION);
|
||||||
|
|||||||
@@ -25,6 +25,9 @@
|
|||||||
<string name="stats_show_on_lockscreen_while_recording_key" translatable="false">trackdetail_show_on_lockscreen_while_recording</string>
|
<string name="stats_show_on_lockscreen_while_recording_key" translatable="false">trackdetail_show_on_lockscreen_while_recording</string>
|
||||||
<bool name="stats_show_on_lockscreen_while_recording_default" translatable="false">false</bool>
|
<bool name="stats_show_on_lockscreen_while_recording_default" translatable="false">false</bool>
|
||||||
|
|
||||||
|
<string name="stats_keep_screen_on_while_recording_key" translatable="false">trackdetail_keep_screen_on_while_recording</string>
|
||||||
|
<bool name="stats_keep_screen_on_while_recording_default" translatable="false">false</bool>
|
||||||
|
|
||||||
<string name="settings_reset_key" translatable="false">settingsReset</string>
|
<string name="settings_reset_key" translatable="false">settingsReset</string>
|
||||||
|
|
||||||
<string name="settings_sensor_bluetooth_heart_rate_key" translatable="false">bluetoothSensor</string>
|
<string name="settings_sensor_bluetooth_heart_rate_key" translatable="false">bluetoothSensor</string>
|
||||||
|
|||||||
@@ -1194,6 +1194,13 @@ limitations under the License.
|
|||||||
While recording, show statistics without unlocking the device.
|
While recording, show statistics without unlocking the device.
|
||||||
</string>
|
</string>
|
||||||
|
|
||||||
|
<string name="settings_recording_keep_screen_on_while_recording_title" translation_description="In the 'Settings' page, the option to change the 'show on lockscreen' behavior while recording.">
|
||||||
|
Keep screen on
|
||||||
|
</string>
|
||||||
|
<string name="settings_recording_keep_screen_on_while_recording_summary" translation_description="In the 'Settings' page, the option to change the 'show on lockscreen' behavior while recording.">
|
||||||
|
While recording, keep the screen on.
|
||||||
|
</string>
|
||||||
|
|
||||||
<string name="settings_recording" translation_description="In the 'Settings' page, the option to change the recording settings.
|
<string name="settings_recording" translation_description="In the 'Settings' page, the option to change the recording settings.
|
||||||
|
|
||||||
Character limit: ~26 (1 line)">
|
Character limit: ~26 (1 line)">
|
||||||
|
|||||||
@@ -74,6 +74,11 @@ limitations under the License.
|
|||||||
android:key="@string/stats_show_on_lockscreen_while_recording_key"
|
android:key="@string/stats_show_on_lockscreen_while_recording_key"
|
||||||
android:summary="@string/settings_recording_show_on_lockscreen_while_recording_summary"
|
android:summary="@string/settings_recording_show_on_lockscreen_while_recording_summary"
|
||||||
android:title="@string/settings_recording_show_on_lockscreen_while_recording_title" />
|
android:title="@string/settings_recording_show_on_lockscreen_while_recording_title" />
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="@bool/stats_keep_screen_on_while_recording_default"
|
||||||
|
android:key="@string/stats_keep_screen_on_while_recording_key"
|
||||||
|
android:summary="@string/settings_recording_keep_screen_on_while_recording_summary"
|
||||||
|
android:title="@string/settings_recording_keep_screen_on_while_recording_title" />
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:defaultValue="@string/voice_frequency_default"
|
android:defaultValue="@string/voice_frequency_default"
|
||||||
android:entryValues="@array/frequency_values"
|
android:entryValues="@array/frequency_values"
|
||||||
|
|||||||
Reference in New Issue
Block a user