From a48b99214eeac64ac5b5ab780273eb1ff7000e14 Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 14 Aug 2023 15:11:18 +0100 Subject: [PATCH] Enable `@UnstableApi` lint in session demo app and add needed `@OptIn` PiperOrigin-RevId: 556779020 --- .../media3/demo/session/PlaybackService.kt | 21 +++++++++++++++++-- .../media3/demo/session/PlayerActivity.kt | 5 ++++- lint.xml | 2 -- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt index 3bb86e6cdb..7e01bac9ee 100644 --- a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt +++ b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt @@ -24,11 +24,12 @@ import android.app.TaskStackBuilder import android.content.Intent import android.os.Build import android.os.Bundle +import androidx.annotation.OptIn import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.media3.common.AudioAttributes import androidx.media3.common.MediaItem -import androidx.media3.common.util.Util +import androidx.media3.common.util.UnstableApi import androidx.media3.datasource.DataSourceBitmapLoader import androidx.media3.exoplayer.ExoPlayer import androidx.media3.session.* @@ -58,6 +59,7 @@ class PlaybackService : MediaLibraryService() { private val immutableFlag = if (Build.VERSION.SDK_INT >= 23) FLAG_IMMUTABLE else 0 } + @OptIn(UnstableApi::class) // MediaSessionService.setListener override fun onCreate() { super.onCreate() customCommands = @@ -83,6 +85,9 @@ class PlaybackService : MediaLibraryService() { } } + // MediaSession.setSessionActivity + // MediaSessionService.clearListener + @OptIn(UnstableApi::class) override fun onDestroy() { mediaLibrarySession.setSessionActivity(getBackStackedActivity()) mediaLibrarySession.release() @@ -93,6 +98,9 @@ class PlaybackService : MediaLibraryService() { private inner class CustomMediaLibrarySessionCallback : MediaLibrarySession.Callback { + // ConnectionResult.DEFAULT_SESSION_AND_LIBRARY_COMMANDS + // ConnectionResult.AcceptedResultBuilder + @OptIn(UnstableApi::class) override fun onConnect(session: MediaSession, controller: ControllerInfo): ConnectionResult { val availableSessionCommands = ConnectionResult.DEFAULT_SESSION_AND_LIBRARY_COMMANDS.buildUpon() @@ -220,6 +228,11 @@ class PlaybackService : MediaLibraryService() { .build() MediaItemTree.initialize(assets) + // MediaLibrarySession.Builder.setCustomLayout + // MediaLibrarySession.Builder.setBitmapLoader + // CacheBitmapLoader + // DataSourceBitmapLoader + @OptIn(UnstableApi::class) mediaLibrarySession = MediaLibrarySession.Builder(this, player, librarySessionCallback) .setSessionActivity(getSingleTopActivity()) @@ -263,6 +276,7 @@ class PlaybackService : MediaLibraryService() { /* Do nothing. */ } + @OptIn(UnstableApi::class) // MediaSessionService.Listener private inner class MediaSessionServiceListener : Listener { /** @@ -294,7 +308,10 @@ class PlaybackService : MediaLibraryService() { } private fun ensureNotificationChannel(notificationManagerCompat: NotificationManagerCompat) { - if (Util.SDK_INT < 26 || notificationManagerCompat.getNotificationChannel(CHANNEL_ID) != null) { + if ( + Build.VERSION.SDK_INT < 26 || + notificationManagerCompat.getNotificationChannel(CHANNEL_ID) != null + ) { return } diff --git a/demos/session/src/main/java/androidx/media3/demo/session/PlayerActivity.kt b/demos/session/src/main/java/androidx/media3/demo/session/PlayerActivity.kt index b1cd0e7d9d..e85b31bbde 100644 --- a/demos/session/src/main/java/androidx/media3/demo/session/PlayerActivity.kt +++ b/demos/session/src/main/java/androidx/media3/demo/session/PlayerActivity.kt @@ -23,9 +23,9 @@ import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter import android.widget.Button -import android.widget.ImageView import android.widget.ListView import android.widget.TextView +import androidx.annotation.OptIn import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.media3.common.C.TRACK_TYPE_TEXT @@ -33,6 +33,7 @@ import androidx.media3.common.MediaItem import androidx.media3.common.MediaMetadata import androidx.media3.common.Player import androidx.media3.common.Tracks +import androidx.media3.common.util.UnstableApi import androidx.media3.session.MediaController import androidx.media3.session.SessionToken import androidx.media3.ui.PlayerView @@ -63,6 +64,7 @@ class PlayerActivity : AppCompatActivity() { val controller = this.controller ?: return@run if (controller.currentMediaItemIndex == position) { controller.playWhenReady = !controller.playWhenReady + @OptIn(UnstableApi::class) // PlayerView.hideController if (controller.playWhenReady) { playerView.hideController() } @@ -99,6 +101,7 @@ class PlayerActivity : AppCompatActivity() { MediaController.releaseFuture(controllerFuture) } + @OptIn(UnstableApi::class) // PlayerView.setShowSubtitleButton private fun setController() { val controller = this.controller ?: return diff --git a/lint.xml b/lint.xml index c51127bc33..8743c5d2a0 100644 --- a/lint.xml +++ b/lint.xml @@ -21,8 +21,6 @@ regexp='\(markerClass = androidx\.media3\.common\.util\.UnstableApi\.class\)' /> -