bump dependencies version
This commit is contained in:
		@ -63,14 +63,14 @@ dependencies {
 | 
				
			|||||||
    def nav_compose_version = '2.4.1'
 | 
					    def nav_compose_version = '2.4.1'
 | 
				
			||||||
    implementation "androidx.navigation:navigation-compose:$nav_compose_version"
 | 
					    implementation "androidx.navigation:navigation-compose:$nav_compose_version"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def lifecycle_version = '2.4.0'
 | 
					    def lifecycle_version = '2.4.1'
 | 
				
			||||||
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
 | 
					    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
 | 
				
			||||||
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
 | 
					    implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    implementation 'androidx.activity:activity-compose:1.4.0'
 | 
					    implementation 'androidx.activity:activity-compose:1.4.0'
 | 
				
			||||||
    implementation "androidx.datastore:datastore-preferences:1.0.0"
 | 
					    implementation "androidx.datastore:datastore-preferences:1.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def room_version = '2.4.1'
 | 
					    def room_version = '2.4.2'
 | 
				
			||||||
    kapt "androidx.room:room-compiler:$room_version"
 | 
					    kapt "androidx.room:room-compiler:$room_version"
 | 
				
			||||||
    implementation "androidx.room:room-ktx:$room_version"
 | 
					    implementation "androidx.room:room-ktx:$room_version"
 | 
				
			||||||
    implementation "androidx.room:room-runtime:$room_version"
 | 
					    implementation "androidx.room:room-runtime:$room_version"
 | 
				
			||||||
@ -78,7 +78,7 @@ dependencies {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    implementation "com.squareup.okhttp3:okhttp:4.9.0"
 | 
					    implementation "com.squareup.okhttp3:okhttp:4.9.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def media3_version = '1.0.0-alpha01'
 | 
					    def media3_version = '1.0.0-alpha02'
 | 
				
			||||||
    implementation "androidx.media3:media3-ui:$media3_version"
 | 
					    implementation "androidx.media3:media3-ui:$media3_version"
 | 
				
			||||||
    implementation "androidx.media3:media3-exoplayer:$media3_version"
 | 
					    implementation "androidx.media3:media3-exoplayer:$media3_version"
 | 
				
			||||||
    implementation "androidx.media3:media3-session:$media3_version"
 | 
					    implementation "androidx.media3:media3-session:$media3_version"
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
package net.blumia.pcmdroid
 | 
					package net.blumia.pcmdroid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.annotation.SuppressLint
 | 
				
			||||||
import android.content.ComponentName
 | 
					import android.content.ComponentName
 | 
				
			||||||
import android.os.Bundle
 | 
					import android.os.Bundle
 | 
				
			||||||
import androidx.activity.ComponentActivity
 | 
					import androidx.activity.ComponentActivity
 | 
				
			||||||
@ -74,6 +75,7 @@ class MainActivity : ComponentActivity() {
 | 
				
			|||||||
        MediaBrowser.releaseFuture(browserFuture)
 | 
					        MediaBrowser.releaseFuture(browserFuture)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @androidx.annotation.OptIn(UnstableApi::class)
 | 
				
			||||||
    private fun pushRoot() {
 | 
					    private fun pushRoot() {
 | 
				
			||||||
        // browser can be initialized many times
 | 
					        // browser can be initialized many times
 | 
				
			||||||
        // only push root at the first initialization
 | 
					        // only push root at the first initialization
 | 
				
			||||||
 | 
				
			|||||||
@ -4,11 +4,19 @@ import android.app.PendingIntent.FLAG_IMMUTABLE
 | 
				
			|||||||
import android.app.PendingIntent.FLAG_UPDATE_CURRENT
 | 
					import android.app.PendingIntent.FLAG_UPDATE_CURRENT
 | 
				
			||||||
import android.content.Intent
 | 
					import android.content.Intent
 | 
				
			||||||
import android.os.Build
 | 
					import android.os.Build
 | 
				
			||||||
 | 
					import android.util.Log
 | 
				
			||||||
import androidx.core.app.TaskStackBuilder
 | 
					import androidx.core.app.TaskStackBuilder
 | 
				
			||||||
import androidx.media3.common.AudioAttributes
 | 
					import androidx.media3.common.AudioAttributes
 | 
				
			||||||
 | 
					import androidx.media3.common.MediaItem
 | 
				
			||||||
 | 
					import androidx.media3.common.MediaMetadata
 | 
				
			||||||
 | 
					import androidx.media3.common.MediaMetadata.FOLDER_TYPE_MIXED
 | 
				
			||||||
 | 
					import androidx.media3.common.util.UnstableApi
 | 
				
			||||||
import androidx.media3.exoplayer.ExoPlayer
 | 
					import androidx.media3.exoplayer.ExoPlayer
 | 
				
			||||||
 | 
					import androidx.media3.session.LibraryResult
 | 
				
			||||||
import androidx.media3.session.MediaLibraryService
 | 
					import androidx.media3.session.MediaLibraryService
 | 
				
			||||||
import androidx.media3.session.MediaSession
 | 
					import androidx.media3.session.MediaSession
 | 
				
			||||||
 | 
					import com.google.common.util.concurrent.Futures
 | 
				
			||||||
 | 
					import com.google.common.util.concurrent.ListenableFuture
 | 
				
			||||||
import net.blumia.pcmdroid.MainActivity
 | 
					import net.blumia.pcmdroid.MainActivity
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class PlaybackService : MediaLibraryService() {
 | 
					class PlaybackService : MediaLibraryService() {
 | 
				
			||||||
@ -20,6 +28,35 @@ class PlaybackService : MediaLibraryService() {
 | 
				
			|||||||
    private inner class CustomMediaLibrarySessionCallback
 | 
					    private inner class CustomMediaLibrarySessionCallback
 | 
				
			||||||
        : MediaLibrarySession.MediaLibrarySessionCallback
 | 
					        : MediaLibrarySession.MediaLibrarySessionCallback
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        @androidx.annotation.OptIn(UnstableApi::class)
 | 
				
			||||||
 | 
					        override fun onGetLibraryRoot(
 | 
				
			||||||
 | 
					            session: MediaLibrarySession,
 | 
				
			||||||
 | 
					            browser: MediaSession.ControllerInfo,
 | 
				
			||||||
 | 
					            params: LibraryParams?
 | 
				
			||||||
 | 
					        ): ListenableFuture<LibraryResult<MediaItem>> {
 | 
				
			||||||
 | 
					            Log.d("aaa", "onGetLibraryRoot ${params.toString()}")
 | 
				
			||||||
 | 
					            val metadata = MediaMetadata.Builder()
 | 
				
			||||||
 | 
					                .setTitle("Root")
 | 
				
			||||||
 | 
					                .setIsPlayable(false)
 | 
				
			||||||
 | 
					                .setFolderType(FOLDER_TYPE_MIXED)
 | 
				
			||||||
 | 
					                .build()
 | 
				
			||||||
 | 
					            val item = MediaItem.Builder()
 | 
				
			||||||
 | 
					                .setMediaId("test")
 | 
				
			||||||
 | 
					                .setMediaMetadata(metadata)
 | 
				
			||||||
 | 
					                .build()
 | 
				
			||||||
 | 
					            return Futures.immediateFuture(LibraryResult.ofItem(item, params))
 | 
				
			||||||
 | 
					            //MediaMetadata
 | 
				
			||||||
 | 
					//            return super.onGetLibraryRoot(session, browser, params)
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        override fun onGetItem(
 | 
				
			||||||
 | 
					            session: MediaLibrarySession,
 | 
				
			||||||
 | 
					            browser: MediaSession.ControllerInfo,
 | 
				
			||||||
 | 
					            mediaId: String
 | 
				
			||||||
 | 
					        ): ListenableFuture<LibraryResult<MediaItem>> {
 | 
				
			||||||
 | 
					            Log.d("aaa", "onGetItem $mediaId")
 | 
				
			||||||
 | 
					            return super.onGetItem(session, browser, mediaId)
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    override fun onGetSession(controllerInfo: MediaSession.ControllerInfo): MediaLibrarySession {
 | 
					    override fun onGetSession(controllerInfo: MediaSession.ControllerInfo): MediaLibrarySession {
 | 
				
			||||||
@ -37,6 +74,7 @@ class PlaybackService : MediaLibraryService() {
 | 
				
			|||||||
        super.onDestroy()
 | 
					        super.onDestroy()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @androidx.annotation.OptIn(UnstableApi::class)
 | 
				
			||||||
    private fun initializeSessionAndPlayer() {
 | 
					    private fun initializeSessionAndPlayer() {
 | 
				
			||||||
        player =
 | 
					        player =
 | 
				
			||||||
            ExoPlayer.Builder(this)
 | 
					            ExoPlayer.Builder(this)
 | 
				
			||||||
 | 
				
			|||||||
@ -7,6 +7,7 @@ import androidx.compose.runtime.getValue
 | 
				
			|||||||
import androidx.compose.runtime.livedata.observeAsState
 | 
					import androidx.compose.runtime.livedata.observeAsState
 | 
				
			||||||
import androidx.lifecycle.MutableLiveData
 | 
					import androidx.lifecycle.MutableLiveData
 | 
				
			||||||
import androidx.media3.common.MediaItem
 | 
					import androidx.media3.common.MediaItem
 | 
				
			||||||
 | 
					import androidx.media3.common.util.UnstableApi
 | 
				
			||||||
import androidx.media3.session.MediaBrowser
 | 
					import androidx.media3.session.MediaBrowser
 | 
				
			||||||
import androidx.navigation.NavHostController
 | 
					import androidx.navigation.NavHostController
 | 
				
			||||||
import androidx.navigation.NavType
 | 
					import androidx.navigation.NavType
 | 
				
			||||||
@ -33,6 +34,7 @@ object MainDestinations {
 | 
				
			|||||||
    const val SETTINGS_ROUTE = "settings"
 | 
					    const val SETTINGS_ROUTE = "settings"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@androidx.annotation.OptIn(UnstableApi::class)
 | 
				
			||||||
@Composable
 | 
					@Composable
 | 
				
			||||||
fun NavGraph(
 | 
					fun NavGraph(
 | 
				
			||||||
    mainViewModel: MainViewModel,
 | 
					    mainViewModel: MainViewModel,
 | 
				
			||||||
@ -73,6 +75,7 @@ fun NavGraph(
 | 
				
			|||||||
                onSongItemClicked = { song, songs ->
 | 
					                onSongItemClicked = { song, songs ->
 | 
				
			||||||
                    Log.d("vvv", song.url + browser.toString())
 | 
					                    Log.d("vvv", song.url + browser.toString())
 | 
				
			||||||
                    val playlist = browser ?: return@MainPlayer
 | 
					                    val playlist = browser ?: return@MainPlayer
 | 
				
			||||||
 | 
					                    Log.d("vvv", song.url + browser.toString())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    val item = MediaItem.Builder().setUri(song.url).build()
 | 
					                    val item = MediaItem.Builder().setUri(song.url).build()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,12 +1,12 @@
 | 
				
			|||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
 | 
					// Top-level build file where you can add configuration options common to all sub-projects/modules.
 | 
				
			||||||
buildscript {
 | 
					buildscript {
 | 
				
			||||||
    ext {
 | 
					    ext {
 | 
				
			||||||
        compose_version = '1.1.0'
 | 
					        compose_version = '1.1.1'
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
 | 
					}// Top-level build file where you can add configuration options common to all sub-projects/modules.
 | 
				
			||||||
plugins {
 | 
					plugins {
 | 
				
			||||||
    id 'com.android.application' version '7.1.1' apply false
 | 
					    id 'com.android.application' version '7.1.2' apply false
 | 
				
			||||||
    id 'com.android.library' version '7.1.1' apply false
 | 
					    id 'com.android.library' version '7.1.2' apply false
 | 
				
			||||||
    id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
 | 
					    id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user