mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-10-03 22:02:32 +02:00
Moves playback services to a package
This commit is contained in:
@@ -108,7 +108,7 @@
|
|||||||
tools:replace="screenOrientation" />
|
tools:replace="screenOrientation" />
|
||||||
|
|
||||||
<service
|
<service
|
||||||
android:name=".PlaybackService"
|
android:name=".service.playback.PlaybackService"
|
||||||
android:foregroundServiceType="mediaPlayback"
|
android:foregroundServiceType="mediaPlayback"
|
||||||
android:stopWithTask="true"
|
android:stopWithTask="true"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
|
@@ -4,6 +4,7 @@ import android.app.Application
|
|||||||
import android.os.StrictMode
|
import android.os.StrictMode
|
||||||
import android.os.StrictMode.ThreadPolicy
|
import android.os.StrictMode.ThreadPolicy
|
||||||
import android.os.StrictMode.VmPolicy
|
import android.os.StrictMode.VmPolicy
|
||||||
|
import com.vitorpamplona.amethyst.service.playback.VideoCache
|
||||||
|
|
||||||
class Amethyst : Application() {
|
class Amethyst : Application() {
|
||||||
@androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class)
|
@androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class)
|
||||||
|
@@ -87,6 +87,7 @@ object LocalPreferences {
|
|||||||
private const val comma = ","
|
private const val comma = ","
|
||||||
|
|
||||||
private var _currentAccount: String? = null
|
private var _currentAccount: String? = null
|
||||||
|
private var _savedAccounts: List<String>? = null
|
||||||
|
|
||||||
fun currentAccount(): String? {
|
fun currentAccount(): String? {
|
||||||
if (_currentAccount == null) {
|
if (_currentAccount == null) {
|
||||||
@@ -105,8 +106,6 @@ object LocalPreferences {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private var _savedAccounts: List<String>? = null
|
|
||||||
|
|
||||||
private fun savedAccounts(): List<String> {
|
private fun savedAccounts(): List<String> {
|
||||||
if (_savedAccounts == null) {
|
if (_savedAccounts == null) {
|
||||||
_savedAccounts = encryptedPreferences()
|
_savedAccounts = encryptedPreferences()
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
package com.vitorpamplona.amethyst
|
package com.vitorpamplona.amethyst.service.playback
|
||||||
|
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
import android.content.Context
|
import android.content.Context
|
@@ -1,4 +1,4 @@
|
|||||||
package com.vitorpamplona.amethyst
|
package com.vitorpamplona.amethyst.service.playback
|
||||||
|
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.content.Context
|
import android.content.Context
|
@@ -1,4 +1,4 @@
|
|||||||
package com.vitorpamplona.amethyst
|
package com.vitorpamplona.amethyst.service.playback
|
||||||
|
|
||||||
import androidx.annotation.OptIn
|
import androidx.annotation.OptIn
|
||||||
import androidx.media3.common.util.UnstableApi
|
import androidx.media3.common.util.UnstableApi
|
||||||
@@ -8,6 +8,7 @@ import androidx.media3.exoplayer.source.MediaSource
|
|||||||
import androidx.media3.exoplayer.source.ProgressiveMediaSource
|
import androidx.media3.exoplayer.source.ProgressiveMediaSource
|
||||||
import androidx.media3.session.MediaSession
|
import androidx.media3.session.MediaSession
|
||||||
import androidx.media3.session.MediaSessionService
|
import androidx.media3.session.MediaSessionService
|
||||||
|
import com.vitorpamplona.amethyst.Amethyst
|
||||||
import com.vitorpamplona.amethyst.service.HttpClient
|
import com.vitorpamplona.amethyst.service.HttpClient
|
||||||
|
|
||||||
@UnstableApi // Extend MediaSessionService
|
@UnstableApi // Extend MediaSessionService
|
||||||
@@ -23,7 +24,12 @@ class PlaybackService : MediaSessionService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun newProgressiveDataSource(): MediaSource.Factory {
|
fun newProgressiveDataSource(): MediaSource.Factory {
|
||||||
return ProgressiveMediaSource.Factory(VideoCache.get(Amethyst.instance, HttpClient.getHttpClient()))
|
return ProgressiveMediaSource.Factory(
|
||||||
|
VideoCache.get(
|
||||||
|
Amethyst.instance,
|
||||||
|
HttpClient.getHttpClient()
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun lazyHlsDS(): MultiPlayerPlaybackManager {
|
fun lazyHlsDS(): MultiPlayerPlaybackManager {
|
@@ -1,4 +1,4 @@
|
|||||||
package com.vitorpamplona.amethyst
|
package com.vitorpamplona.amethyst.service.playback
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.media3.common.util.UnstableApi
|
import androidx.media3.common.util.UnstableApi
|
@@ -1,4 +1,4 @@
|
|||||||
package com.vitorpamplona.amethyst
|
package com.vitorpamplona.amethyst.service.playback
|
||||||
|
|
||||||
import android.util.LruCache
|
import android.util.LruCache
|
||||||
|
|
@@ -63,9 +63,9 @@ import androidx.media3.session.MediaController
|
|||||||
import androidx.media3.ui.AspectRatioFrameLayout
|
import androidx.media3.ui.AspectRatioFrameLayout
|
||||||
import androidx.media3.ui.PlayerView
|
import androidx.media3.ui.PlayerView
|
||||||
import com.linc.audiowaveform.infiniteLinearGradient
|
import com.linc.audiowaveform.infiniteLinearGradient
|
||||||
import com.vitorpamplona.amethyst.PlaybackClientController
|
|
||||||
import com.vitorpamplona.amethyst.model.ConnectivityType
|
import com.vitorpamplona.amethyst.model.ConnectivityType
|
||||||
import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus
|
import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus
|
||||||
|
import com.vitorpamplona.amethyst.service.playback.PlaybackClientController
|
||||||
import com.vitorpamplona.amethyst.ui.note.LyricsIcon
|
import com.vitorpamplona.amethyst.ui.note.LyricsIcon
|
||||||
import com.vitorpamplona.amethyst.ui.note.LyricsOffIcon
|
import com.vitorpamplona.amethyst.ui.note.LyricsOffIcon
|
||||||
import com.vitorpamplona.amethyst.ui.note.MuteIcon
|
import com.vitorpamplona.amethyst.ui.note.MuteIcon
|
||||||
|
Reference in New Issue
Block a user