Added option to keep screen on when showing lyrics
This commit is contained in:
parent
b349b8c4d1
commit
c7f7f9d695
7 changed files with 37 additions and 2 deletions
|
@ -160,3 +160,4 @@ const val PLAYBACK_PITCH = "playback_pitch"
|
|||
const val CUSTOM_FONT = "custom_font"
|
||||
const val APPBAR_MODE = "appbar_mode"
|
||||
const val WALLPAPER_ACCENT = "wallpaper_accent"
|
||||
const val SCREEN_ON_LYRICS = "screen_on_lyrics"
|
|
@ -110,9 +110,15 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
|||
when (newState) {
|
||||
STATE_EXPANDED -> {
|
||||
onPanelExpanded()
|
||||
if (PreferenceUtil.lyricsScreenOn && PreferenceUtil.showLyrics) {
|
||||
keepScreenOn(true)
|
||||
}
|
||||
}
|
||||
STATE_COLLAPSED -> {
|
||||
onPanelCollapsed()
|
||||
if ((PreferenceUtil.lyricsScreenOn && PreferenceUtil.showLyrics) || !PreferenceUtil.isScreenOnEnabled) {
|
||||
keepScreenOn(false)
|
||||
}
|
||||
}
|
||||
STATE_SETTLING, STATE_DRAGGING -> {
|
||||
if (fromNotification) {
|
||||
|
|
|
@ -22,6 +22,14 @@ fun AppCompatActivity.toggleScreenOn() {
|
|||
}
|
||||
}
|
||||
|
||||
fun AppCompatActivity.keepScreenOn(keepScreenOn: Boolean) {
|
||||
if (keepScreenOn) {
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
} else {
|
||||
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
}
|
||||
}
|
||||
|
||||
fun AppCompatActivity.setEdgeToEdgeOrImmersive() {
|
||||
if (PreferenceUtil.isFullScreenMode) {
|
||||
setImmersiveFullscreen()
|
||||
|
|
|
@ -43,7 +43,6 @@ import androidx.viewpager.widget.ViewPager
|
|||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.EXTRA_ALBUM_ID
|
||||
import code.name.monkey.retromusic.EXTRA_ARTIST_ID
|
||||
import code.name.monkey.retromusic.PLAYBACK_SPEED
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.activities.MainActivity
|
||||
import code.name.monkey.retromusic.activities.tageditor.AbsTagEditorActivity
|
||||
|
@ -53,6 +52,7 @@ import code.name.monkey.retromusic.db.toSongEntity
|
|||
import code.name.monkey.retromusic.dialogs.*
|
||||
import code.name.monkey.retromusic.extensions.currentFragment
|
||||
import code.name.monkey.retromusic.extensions.hide
|
||||
import code.name.monkey.retromusic.extensions.keepScreenOn
|
||||
import code.name.monkey.retromusic.extensions.whichFragment
|
||||
import code.name.monkey.retromusic.fragments.NowPlayingScreen
|
||||
import code.name.monkey.retromusic.fragments.ReloadType
|
||||
|
@ -88,6 +88,11 @@ abstract class AbsPlayerFragment(@LayoutRes layout: Int) : AbsMainActivityFragme
|
|||
R.id.action_toggle_lyrics -> {
|
||||
PreferenceUtil.showLyrics = !item.isChecked
|
||||
item.isChecked = !item.isChecked
|
||||
if (PreferenceUtil.lyricsScreenOn && PreferenceUtil.showLyrics) {
|
||||
mainActivity.keepScreenOn(true)
|
||||
} else if (!PreferenceUtil.isScreenOnEnabled && !PreferenceUtil.showLyrics) {
|
||||
mainActivity.keepScreenOn(false)
|
||||
}
|
||||
return true
|
||||
}
|
||||
R.id.action_go_to_lyrics -> {
|
||||
|
@ -420,6 +425,7 @@ fun goToLyrics(activity: Activity) {
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
/** Fixes checked state being ignored by injecting checked state directly into drawable */
|
||||
@SuppressLint("RestrictedApi")
|
||||
class CheckDrawableWrapper(val menuItem: MenuItem) : DrawableWrapper(menuItem.icon) {
|
||||
|
|
|
@ -698,7 +698,13 @@ object PreferenceUtil {
|
|||
}
|
||||
|
||||
val wallpaperAccent
|
||||
get() = sharedPreferences.getBoolean(WALLPAPER_ACCENT, VersionUtils.hasOreoMR1() && !VersionUtils.hasS())
|
||||
get() = sharedPreferences.getBoolean(
|
||||
WALLPAPER_ACCENT,
|
||||
VersionUtils.hasOreoMR1() && !VersionUtils.hasS()
|
||||
)
|
||||
|
||||
val lyricsScreenOn
|
||||
get() = sharedPreferences.getBoolean(SCREEN_ON_LYRICS, false)
|
||||
}
|
||||
enum class LyricsType {
|
||||
REPLACE_LYRICS, OVER_LYRICS
|
||||
|
|
|
@ -536,4 +536,5 @@
|
|||
<string name="pref_title_appbar_mode">App bar mode</string>
|
||||
<string name="pref_title_wallpaper_accent">Wallpaper accent color</string>
|
||||
<string name="pref_summary_wallpaper_accent">Extract accent color from wallpaper</string>
|
||||
<string name="pref_title_lyrics_screen_on">Keep screen on when showing lyrics</string>
|
||||
</resources>
|
||||
|
|
|
@ -29,6 +29,13 @@
|
|||
android:layout="@layout/list_item_view"
|
||||
android:title="@string/pref_title_lyrics_type" />
|
||||
|
||||
<code.name.monkey.appthemehelper.common.prefs.supportv7.ATESwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="screen_on_lyrics"
|
||||
android:layout="@layout/list_item_view_switch"
|
||||
android:title="@string/pref_title_lyrics_screen_on"
|
||||
android:summary="@string/pref_keep_screen_on_summary"/>
|
||||
|
||||
<code.name.monkey.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory
|
||||
android:layout="@layout/preference_category_title"
|
||||
android:title="@string/pref_header_album">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue