diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 711e5ac..7399a73 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ + xmlns:tools="http://schemas.android.com/tools" + package="com.github.apognu.otter"> @@ -17,6 +18,13 @@ android:theme="@style/AppTheme" android:usesCleartextTraffic="true"> + + + + @@ -45,7 +53,14 @@ - + + + + + () @@ -84,8 +88,21 @@ class PlayerService : Service() { isActive = true } + sessionToken = mediaSession.sessionToken + mediaControlsManager = MediaControlsManager(this, mediaSession) + val queueNavigator: TimelineQueueNavigator = object : TimelineQueueNavigator(mediaSession) { + override fun getMediaDescription(player: Player, windowIndex: Int): MediaDescriptionCompat { + val track = queue.get(windowIndex) + return MediaDescriptionCompat.Builder().apply { + setTitle(track.title) + setSubtitle(track.subtitle()) + setIconUri(Uri.parse(maybeNormalizeUrl(track.cover()))) + }.build() + } + } + player = SimpleExoPlayer.Builder(this).build().apply { playWhenReady = false @@ -95,6 +112,7 @@ class PlayerService : Service() { MediaSessionConnector(mediaSession).also { it.setPlayer(this) + it.setQueueNavigator(queueNavigator) it.setMediaButtonEventHandler { player, _, mediaButtonEvent -> mediaButtonEvent.extras?.getParcelable(Intent.EXTRA_KEY_EVENT)?.let { key -> if (key.action == KeyEvent.ACTION_UP) { @@ -219,8 +237,6 @@ class PlayerService : Service() { }) } - override fun onBind(intent: Intent?): IBinder? = null - @SuppressLint("NewApi") override fun onDestroy() { jobs.forEach { it.cancel() } @@ -430,4 +446,20 @@ class PlayerService : Service() { } } } + + override fun onGetRoot( + clientPackageName: String, + clientUid: Int, + rootHints: Bundle? + ): BrowserRoot? { + return BrowserRoot("/", null) + } + + override fun onLoadChildren( + parentId: String, + result: Result> + ) { + val list = mutableListOf() + result.sendResult(list) + } } diff --git a/app/src/main/res/xml/automotive_app_desc.xml b/app/src/main/res/xml/automotive_app_desc.xml new file mode 100644 index 0000000..0a6a3c9 --- /dev/null +++ b/app/src/main/res/xml/automotive_app_desc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file