Set targetSdk to 33 (#267)
This commit is contained in:
parent
a8431e13ee
commit
9bd227e807
5 changed files with 45 additions and 30 deletions
|
@ -10,7 +10,7 @@ android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId = "it.vfsfitvnm.vimusic"
|
applicationId = "it.vfsfitvnm.vimusic"
|
||||||
minSdk = 21
|
minSdk = 21
|
||||||
targetSdk = 32
|
targetSdk = 33
|
||||||
versionCode = 18
|
versionCode = 18
|
||||||
versionName = "0.5.2"
|
versionName = "0.5.2"
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
||||||
|
|
|
@ -86,6 +86,7 @@ import it.vfsfitvnm.vimusic.utils.forceSeekToNext
|
||||||
import it.vfsfitvnm.vimusic.utils.forceSeekToPrevious
|
import it.vfsfitvnm.vimusic.utils.forceSeekToPrevious
|
||||||
import it.vfsfitvnm.vimusic.utils.getEnum
|
import it.vfsfitvnm.vimusic.utils.getEnum
|
||||||
import it.vfsfitvnm.vimusic.utils.intent
|
import it.vfsfitvnm.vimusic.utils.intent
|
||||||
|
import it.vfsfitvnm.vimusic.utils.isAtLeastAndroid13
|
||||||
import it.vfsfitvnm.vimusic.utils.isInvincibilityEnabledKey
|
import it.vfsfitvnm.vimusic.utils.isInvincibilityEnabledKey
|
||||||
import it.vfsfitvnm.vimusic.utils.isShowingThumbnailInLockscreenKey
|
import it.vfsfitvnm.vimusic.utils.isShowingThumbnailInLockscreenKey
|
||||||
import it.vfsfitvnm.vimusic.utils.mediaItems
|
import it.vfsfitvnm.vimusic.utils.mediaItems
|
||||||
|
@ -310,7 +311,8 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene
|
||||||
playTime = totalPlayTimeMs
|
playTime = totalPlayTimeMs
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
} catch (_: SQLException) { }
|
} catch (_: SQLException) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -426,8 +428,18 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun maybeShowSongCoverInLockScreen() {
|
private fun maybeShowSongCoverInLockScreen() {
|
||||||
val bitmap = if (isShowingThumbnailInLockscreen) bitmapProvider.bitmap else null
|
val bitmap =
|
||||||
metadataBuilder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, bitmap)
|
if (isAtLeastAndroid13 || isShowingThumbnailInLockscreen) bitmapProvider.bitmap else null
|
||||||
|
|
||||||
|
metadataBuilder.putBitmap(MediaMetadata.METADATA_KEY_ART, bitmap)
|
||||||
|
|
||||||
|
if (isAtLeastAndroid13 && player.currentMediaItemIndex == 0) {
|
||||||
|
metadataBuilder.putText(
|
||||||
|
MediaMetadata.METADATA_KEY_TITLE,
|
||||||
|
"${player.mediaMetadata.title} "
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
mediaSession.setMetadata(metadataBuilder.build())
|
mediaSession.setMetadata(metadataBuilder.build())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -460,21 +472,14 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene
|
||||||
|
|
||||||
override fun onEvents(player: Player, events: Player.Events) {
|
override fun onEvents(player: Player, events: Player.Events) {
|
||||||
if (player.duration != C.TIME_UNSET) {
|
if (player.duration != C.TIME_UNSET) {
|
||||||
metadataBuilder
|
mediaSession.setMetadata(
|
||||||
.putText(
|
metadataBuilder
|
||||||
MediaMetadata.METADATA_KEY_TITLE,
|
.putText(MediaMetadata.METADATA_KEY_TITLE, player.mediaMetadata.title)
|
||||||
player.currentMediaItem?.mediaMetadata?.title
|
.putText(MediaMetadata.METADATA_KEY_ARTIST, player.mediaMetadata.artist)
|
||||||
)
|
.putText(MediaMetadata.METADATA_KEY_ALBUM, player.mediaMetadata.albumTitle)
|
||||||
.putText(
|
.putLong(MediaMetadata.METADATA_KEY_DURATION, player.duration)
|
||||||
MediaMetadata.METADATA_KEY_ARTIST,
|
.build()
|
||||||
player.currentMediaItem?.mediaMetadata?.artist
|
)
|
||||||
)
|
|
||||||
.putText(
|
|
||||||
MediaMetadata.METADATA_KEY_ALBUM,
|
|
||||||
player.currentMediaItem?.mediaMetadata?.albumTitle
|
|
||||||
)
|
|
||||||
.putLong(MediaMetadata.METADATA_KEY_DURATION, player.duration)
|
|
||||||
.build().let(mediaSession::setMetadata)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stateBuilder
|
stateBuilder
|
||||||
|
@ -538,6 +543,7 @@ class PlayerService : InvincibleService(), Player.Listener, PlaybackStatsListene
|
||||||
isShowingThumbnailInLockscreen = sharedPreferences.getBoolean(key, true)
|
isShowingThumbnailInLockscreen = sharedPreferences.getBoolean(key, true)
|
||||||
maybeShowSongCoverInLockScreen()
|
maybeShowSongCoverInLockScreen()
|
||||||
}
|
}
|
||||||
|
|
||||||
trackLoopEnabledKey, queueLoopEnabledKey -> {
|
trackLoopEnabledKey, queueLoopEnabledKey -> {
|
||||||
player.repeatMode = when {
|
player.repeatMode = when {
|
||||||
preferences.getBoolean(trackLoopEnabledKey, false) -> Player.REPEAT_MODE_ONE
|
preferences.getBoolean(trackLoopEnabledKey, false) -> Player.REPEAT_MODE_ONE
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
package it.vfsfitvnm.vimusic.ui.screens.settings
|
package it.vfsfitvnm.vimusic.ui.screens.settings
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
import androidx.compose.animation.ExperimentalAnimationApi
|
import androidx.compose.animation.ExperimentalAnimationApi
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.border
|
import androidx.compose.foundation.border
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
|
import androidx.compose.foundation.layout.WindowInsetsSides
|
||||||
|
import androidx.compose.foundation.layout.asPaddingValues
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.foundation.layout.only
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
|
@ -16,9 +20,6 @@ import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import it.vfsfitvnm.vimusic.LocalPlayerAwareWindowInsets
|
import it.vfsfitvnm.vimusic.LocalPlayerAwareWindowInsets
|
||||||
import androidx.compose.foundation.layout.WindowInsetsSides
|
|
||||||
import androidx.compose.foundation.layout.asPaddingValues
|
|
||||||
import androidx.compose.foundation.layout.only
|
|
||||||
import it.vfsfitvnm.vimusic.enums.ColorPaletteMode
|
import it.vfsfitvnm.vimusic.enums.ColorPaletteMode
|
||||||
import it.vfsfitvnm.vimusic.enums.ColorPaletteName
|
import it.vfsfitvnm.vimusic.enums.ColorPaletteName
|
||||||
import it.vfsfitvnm.vimusic.enums.ThumbnailRoundness
|
import it.vfsfitvnm.vimusic.enums.ThumbnailRoundness
|
||||||
|
@ -27,6 +28,7 @@ import it.vfsfitvnm.vimusic.ui.styling.LocalAppearance
|
||||||
import it.vfsfitvnm.vimusic.utils.applyFontPaddingKey
|
import it.vfsfitvnm.vimusic.utils.applyFontPaddingKey
|
||||||
import it.vfsfitvnm.vimusic.utils.colorPaletteModeKey
|
import it.vfsfitvnm.vimusic.utils.colorPaletteModeKey
|
||||||
import it.vfsfitvnm.vimusic.utils.colorPaletteNameKey
|
import it.vfsfitvnm.vimusic.utils.colorPaletteNameKey
|
||||||
|
import it.vfsfitvnm.vimusic.utils.isAtLeastAndroid13
|
||||||
import it.vfsfitvnm.vimusic.utils.isShowingThumbnailInLockscreenKey
|
import it.vfsfitvnm.vimusic.utils.isShowingThumbnailInLockscreenKey
|
||||||
import it.vfsfitvnm.vimusic.utils.rememberPreference
|
import it.vfsfitvnm.vimusic.utils.rememberPreference
|
||||||
import it.vfsfitvnm.vimusic.utils.thumbnailRoundnessKey
|
import it.vfsfitvnm.vimusic.utils.thumbnailRoundnessKey
|
||||||
|
@ -114,15 +116,17 @@ fun AppearanceSettings() {
|
||||||
onCheckedChange = { applyFontPadding = it }
|
onCheckedChange = { applyFontPadding = it }
|
||||||
)
|
)
|
||||||
|
|
||||||
SettingsGroupSpacer()
|
if (!isAtLeastAndroid13) {
|
||||||
|
SettingsGroupSpacer()
|
||||||
|
|
||||||
SettingsEntryGroupText(title = "LOCKSCREEN")
|
SettingsEntryGroupText(title = "LOCKSCREEN")
|
||||||
|
|
||||||
SwitchSettingEntry(
|
SwitchSettingEntry(
|
||||||
title = "Show song cover",
|
title = "Show song cover",
|
||||||
text = "Use the playing song cover as the lockscreen wallpaper",
|
text = "Use the playing song cover as the lockscreen wallpaper",
|
||||||
isChecked = isShowingThumbnailInLockscreen,
|
isChecked = isShowingThumbnailInLockscreen,
|
||||||
onCheckedChange = { isShowingThumbnailInLockscreen = it }
|
onCheckedChange = { isShowingThumbnailInLockscreen = it }
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package it.vfsfitvnm.vimusic.utils
|
package it.vfsfitvnm.vimusic.utils
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
import android.text.format.DateUtils
|
import android.text.format.DateUtils
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
import androidx.core.os.bundleOf
|
import androidx.core.os.bundleOf
|
||||||
|
@ -111,3 +112,6 @@ suspend fun Result<Innertube.PlaylistOrAlbumPage>.completed(): Result<Innertube.
|
||||||
|
|
||||||
return Result.success(playlistPage)
|
return Result.success(playlistPage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline val isAtLeastAndroid13
|
||||||
|
get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
|
||||||
|
|
Loading…
Reference in a new issue