diff --git a/app/src/main/java/code/name/monkey/retromusic/Constants.kt b/app/src/main/java/code/name/monkey/retromusic/Constants.kt index da81f8821..aff976530 100644 --- a/app/src/main/java/code/name/monkey/retromusic/Constants.kt +++ b/app/src/main/java/code/name/monkey/retromusic/Constants.kt @@ -70,6 +70,7 @@ const val EXTRA_SONG_INFO = "extra_song_info" const val DESATURATED_COLOR = "desaturated_color" const val BLACK_THEME = "black_theme" const val KEEP_SCREEN_ON = "keep_screen_on" +const val SHOW_WHEN_LOCKED = "show_when_locked" const val TOGGLE_HOME_BANNER = "toggle_home_banner" const val NOW_PLAYING_SCREEN_ID = "now_playing_screen_id" const val CAROUSEL_EFFECT = "carousel_effect" diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsThemeActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsThemeActivity.kt index 50c078d5d..c4db386c2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsThemeActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsThemeActivity.kt @@ -29,6 +29,7 @@ import code.name.monkey.retromusic.extensions.exitFullscreen import code.name.monkey.retromusic.extensions.hideStatusBar import code.name.monkey.retromusic.extensions.installSplitCompat import code.name.monkey.retromusic.extensions.maybeSetScreenOn +import code.name.monkey.retromusic.extensions.maybeShowWhenLocked import code.name.monkey.retromusic.extensions.setEdgeToEdgeOrImmersive import code.name.monkey.retromusic.extensions.setImmersiveFullscreen import code.name.monkey.retromusic.extensions.setLightNavigationBarAuto @@ -49,6 +50,7 @@ abstract class AbsThemeActivity : ATHToolbarActivity(), Runnable { super.onCreate(savedInstanceState) setEdgeToEdgeOrImmersive() maybeSetScreenOn() + maybeShowWhenLocked() setLightNavigationBarAuto() setLightStatusBarAuto(surfaceColor()) if (VersionUtils.hasQ()) { diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt index d6c5a559d..b0380e4f6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt @@ -32,6 +32,22 @@ fun AppCompatActivity.keepScreenOn(keepScreenOn: Boolean) { } } +fun AppCompatActivity.maybeShowWhenLocked() { + if (PreferenceUtil.isShowWhenLockedEnabled) { + if (VersionUtils.hasOreoMR1()) { + setShowWhenLocked(true) + } else { + window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED) + } + } else { + if (VersionUtils.hasOreoMR1()) { + setShowWhenLocked(false) + } else { + window.clearFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED) + } + } +} + fun AppCompatActivity.setEdgeToEdgeOrImmersive() { if (PreferenceUtil.isFullScreenMode) { setImmersiveFullscreen() diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt index bcb8fcfa5..97834ef76 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt @@ -258,6 +258,8 @@ object PreferenceUtil { val isScreenOnEnabled get() = sharedPreferences.getBoolean(KEEP_SCREEN_ON, false) + val isShowWhenLockedEnabled get() = sharedPreferences.getBoolean(SHOW_WHEN_LOCKED, false) + val isSongInfo get() = sharedPreferences.getBoolean(EXTRA_SONG_INFO, false) val isPauseOnZeroVolume get() = sharedPreferences.getBoolean(PAUSE_ON_ZERO_VOLUME, false) diff --git a/app/src/main/res/drawable/ic_screen_lock_portrait.xml b/app/src/main/res/drawable/ic_screen_lock_portrait.xml new file mode 100644 index 000000000..dcb9c03c7 --- /dev/null +++ b/app/src/main/res/drawable/ic_screen_lock_portrait.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1f108f1eb..37d4ab4c0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -336,6 +336,8 @@ Pause on zero Keep in mind that enabling this feature may affect battery life Keep the screen on + Requires an app restart to take effect. The player must be on foreground before locking for this feature to work + Show the player interface when locked Select language Snow fall effect Use the currently playing song album cover as the lockscreen wallpaper diff --git a/app/src/main/res/xml/pref_advanced.xml b/app/src/main/res/xml/pref_advanced.xml index 52cb14c3e..eb11d8911 100755 --- a/app/src/main/res/xml/pref_advanced.xml +++ b/app/src/main/res/xml/pref_advanced.xml @@ -62,6 +62,14 @@ android:title="@string/pref_keep_screen_on_title" app:icon="@drawable/ic_settings_brightness" /> + +