diff --git a/README.md b/README.md index f67d346b75..feaa550ef4 100644 --- a/README.md +++ b/README.md @@ -100,12 +100,6 @@ compileOptions { } ``` -#### 3. Enable multidex - -If your Gradle `minSdkVersion` is 20 or lower, you should -[enable multidex](https://developer.android.com/studio/build/multidex) in order -to prevent build errors. - ### Locally Cloning the repository and depending on the modules locally is required when diff --git a/common_library_config.gradle b/common_library_config.gradle index da66c47e47..c54e686f53 100644 --- a/common_library_config.gradle +++ b/common_library_config.gradle @@ -27,7 +27,6 @@ android { aarMetadata { minCompileSdk = project.ext.compileSdkVersion } - multiDexEnabled true } compileOptions { @@ -42,7 +41,3 @@ android { unitTests.includeAndroidResources true } } - -dependencies { - androidTestImplementation 'androidx.multidex:multidex:' + androidxMultidexVersion -} diff --git a/constants.gradle b/constants.gradle index aab5aa5e61..81b8b9f504 100644 --- a/constants.gradle +++ b/constants.gradle @@ -47,7 +47,6 @@ project.ext { androidxExifInterfaceVersion = '1.3.6' androidxLifecycleVersion = '2.6.0' androidxMediaVersion = '1.7.0' - androidxMultidexVersion = '2.0.1' androidxRecyclerViewVersion = '1.3.0' androidxMaterialVersion = '1.8.0' androidxTestCoreVersion = '1.5.0' diff --git a/demos/cast/build.gradle b/demos/cast/build.gradle index de067a5708..a60081ea3a 100644 --- a/demos/cast/build.gradle +++ b/demos/cast/build.gradle @@ -29,7 +29,6 @@ android { versionCode project.ext.releaseVersionCode minSdkVersion project.ext.minSdkVersion targetSdkVersion project.ext.appTargetSdkVersion - multiDexEnabled true } buildTypes { @@ -62,7 +61,6 @@ dependencies { implementation project(modulePrefix + 'lib-ui') implementation project(modulePrefix + 'lib-cast') implementation 'androidx.appcompat:appcompat:' + androidxAppCompatVersion - implementation 'androidx.multidex:multidex:' + androidxMultidexVersion implementation 'androidx.recyclerview:recyclerview:' + androidxRecyclerViewVersion implementation 'com.google.android.material:material:' + androidxMaterialVersion } diff --git a/demos/cast/src/main/AndroidManifest.xml b/demos/cast/src/main/AndroidManifest.xml index b6a9b56eac..e852ca39fa 100644 --- a/demos/cast/src/main/AndroidManifest.xml +++ b/demos/cast/src/main/AndroidManifest.xml @@ -23,7 +23,6 @@ - + diff --git a/demos/compose/src/main/res/values/themes.xml b/demos/compose/src/main/res/values/themes.xml index 0918919117..c45328c17c 100644 --- a/demos/compose/src/main/res/values/themes.xml +++ b/demos/compose/src/main/res/values/themes.xml @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + diff --git a/demos/composition/build.gradle b/demos/composition/build.gradle index e26187cbd2..a421b8a386 100644 --- a/demos/composition/build.gradle +++ b/demos/composition/build.gradle @@ -29,9 +29,8 @@ android { defaultConfig { versionName project.ext.releaseVersion versionCode project.ext.releaseVersionCode - minSdkVersion 21 + minSdkVersion project.ext.minSdkVersion targetSdkVersion project.ext.appTargetSdkVersion - multiDexEnabled true } buildTypes { @@ -58,6 +57,5 @@ dependencies { implementation project(modulePrefix + 'lib-transformer') implementation project(modulePrefix + 'lib-ui') implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion - implementation 'androidx.multidex:multidex:' + androidxMultidexVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion } diff --git a/demos/gl/build.gradle b/demos/gl/build.gradle index 5a19c6e796..7e28ec0e00 100644 --- a/demos/gl/build.gradle +++ b/demos/gl/build.gradle @@ -29,7 +29,6 @@ android { versionCode project.ext.releaseVersionCode minSdkVersion project.ext.minSdkVersion targetSdkVersion project.ext.appTargetSdkVersion - multiDexEnabled true } buildTypes { @@ -55,6 +54,5 @@ dependencies { implementation project(modulePrefix + 'lib-exoplayer-smoothstreaming') implementation project(modulePrefix + 'lib-ui') implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion - implementation 'androidx.multidex:multidex:' + androidxMultidexVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion } diff --git a/demos/gl/src/main/AndroidManifest.xml b/demos/gl/src/main/AndroidManifest.xml index d44f8ea343..d4d79a7053 100644 --- a/demos/gl/src/main/AndroidManifest.xml +++ b/demos/gl/src/main/AndroidManifest.xml @@ -22,7 +22,6 @@ diff --git a/demos/main/build.gradle b/demos/main/build.gradle index 6a49adf169..a5c3852faa 100644 --- a/demos/main/build.gradle +++ b/demos/main/build.gradle @@ -31,7 +31,6 @@ android { versionCode project.ext.releaseVersionCode minSdkVersion project.ext.minSdkVersion targetSdkVersion project.ext.appTargetSdkVersion - multiDexEnabled true } buildTypes { @@ -75,7 +74,6 @@ dependencies { compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion implementation 'androidx.appcompat:appcompat:' + androidxAppCompatVersion - implementation 'androidx.multidex:multidex:' + androidxMultidexVersion implementation 'com.google.android.material:material:' + androidxMaterialVersion implementation project(modulePrefix + 'lib-exoplayer') implementation project(modulePrefix + 'lib-exoplayer-dash') diff --git a/demos/main/src/main/AndroidManifest.xml b/demos/main/src/main/AndroidManifest.xml index da13a42ca4..1a3dff3102 100644 --- a/demos/main/src/main/AndroidManifest.xml +++ b/demos/main/src/main/AndroidManifest.xml @@ -40,7 +40,6 @@ android:largeHeap="true" android:allowBackup="false" android:supportsRtl="true" - android:name="androidx.multidex.MultiDexApplication" tools:targetApi="29"> @@ -23,12 +22,10 @@ + android:theme="@style/Theme.Media3Demo"> - + diff --git a/demos/session/src/main/res/values/themes.xml b/demos/session/src/main/res/values/themes.xml index 2cf983ad81..c9e0640034 100644 --- a/demos/session/src/main/res/values/themes.xml +++ b/demos/session/src/main/res/values/themes.xml @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + diff --git a/demos/session_automotive/build.gradle b/demos/session_automotive/build.gradle index d745bfeedb..e909093028 100644 --- a/demos/session_automotive/build.gradle +++ b/demos/session_automotive/build.gradle @@ -34,7 +34,6 @@ android { versionCode project.ext.releaseVersionCode minSdkVersion project.ext.automotiveMinSdkVersion targetSdkVersion project.ext.appTargetSdkVersion - multiDexEnabled true } buildTypes { @@ -60,7 +59,6 @@ android { dependencies { implementation 'androidx.core:core-ktx:' + androidxCoreVersion implementation 'androidx.appcompat:appcompat:' + androidxAppCompatVersion - implementation 'androidx.multidex:multidex:' + androidxMultidexVersion implementation 'com.google.android.material:material:' + androidxMaterialVersion implementation project(modulePrefix + 'lib-session') implementation project(modulePrefix + 'demo-session-service') diff --git a/demos/session_automotive/src/main/AndroidManifest.xml b/demos/session_automotive/src/main/AndroidManifest.xml index a35fbb4e2e..e5b78628eb 100644 --- a/demos/session_automotive/src/main/AndroidManifest.xml +++ b/demos/session_automotive/src/main/AndroidManifest.xml @@ -14,7 +14,6 @@ limitations under the License. --> @@ -39,13 +38,11 @@ android:resource="@xml/automotive_app_desc"/> + android:label="@string/app_name"> + android:taskAffinity=""> diff --git a/demos/shortform/src/main/res/values/themes.xml b/demos/shortform/src/main/res/values/themes.xml index 2cf983ad81..c9e0640034 100644 --- a/demos/shortform/src/main/res/values/themes.xml +++ b/demos/shortform/src/main/res/values/themes.xml @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + diff --git a/demos/transformer/build.gradle b/demos/transformer/build.gradle index 1d6f779cfd..b0b01c20b2 100644 --- a/demos/transformer/build.gradle +++ b/demos/transformer/build.gradle @@ -29,9 +29,8 @@ android { defaultConfig { versionName project.ext.releaseVersion versionCode project.ext.releaseVersionCode - minSdkVersion 21 + minSdkVersion project.ext.minSdkVersion targetSdkVersion project.ext.appTargetSdkVersion - multiDexEnabled true } buildTypes { @@ -77,7 +76,6 @@ dependencies { implementation 'androidx.appcompat:appcompat:' + androidxAppCompatVersion implementation 'androidx.constraintlayout:constraintlayout:' + androidxConstraintLayoutVersion implementation 'androidx.recyclerview:recyclerview:' + androidxRecyclerViewVersion - implementation 'androidx.multidex:multidex:' + androidxMultidexVersion implementation 'com.google.android.material:material:' + androidxMaterialVersion implementation project(modulePrefix + 'lib-effect') implementation project(modulePrefix + 'lib-exoplayer') diff --git a/libraries/datasource/src/androidTest/AndroidManifest.xml b/libraries/datasource/src/androidTest/AndroidManifest.xml index afcbb337b5..32373d1c2a 100644 --- a/libraries/datasource/src/androidTest/AndroidManifest.xml +++ b/libraries/datasource/src/androidTest/AndroidManifest.xml @@ -23,7 +23,6 @@ diff --git a/libraries/datasource_cronet/src/androidTest/AndroidManifest.xml b/libraries/datasource_cronet/src/androidTest/AndroidManifest.xml index fd7a6dcc79..7da3a987c1 100644 --- a/libraries/datasource_cronet/src/androidTest/AndroidManifest.xml +++ b/libraries/datasource_cronet/src/androidTest/AndroidManifest.xml @@ -23,7 +23,6 @@ diff --git a/libraries/datasource_okhttp/build.gradle b/libraries/datasource_okhttp/build.gradle index f745599a40..97f6e0aa0e 100644 --- a/libraries/datasource_okhttp/build.gradle +++ b/libraries/datasource_okhttp/build.gradle @@ -16,7 +16,7 @@ apply from: "$gradle.ext.androidxMediaSettingsDir/common_library_config.gradle" android { namespace 'androidx.media3.datasource.okhttp' - defaultConfig.minSdkVersion 21 + defaultConfig.minSdkVersion project.ext.minSdkVersion publishing { singleVariant('release') { diff --git a/libraries/decoder_flac/src/androidTest/AndroidManifest.xml b/libraries/decoder_flac/src/androidTest/AndroidManifest.xml index d28b481540..1451696625 100644 --- a/libraries/decoder_flac/src/androidTest/AndroidManifest.xml +++ b/libraries/decoder_flac/src/androidTest/AndroidManifest.xml @@ -22,7 +22,6 @@ diff --git a/libraries/decoder_opus/src/androidTest/AndroidManifest.xml b/libraries/decoder_opus/src/androidTest/AndroidManifest.xml index ab27436543..b6ed01f150 100644 --- a/libraries/decoder_opus/src/androidTest/AndroidManifest.xml +++ b/libraries/decoder_opus/src/androidTest/AndroidManifest.xml @@ -22,7 +22,6 @@ diff --git a/libraries/decoder_vp9/src/androidTest/AndroidManifest.xml b/libraries/decoder_vp9/src/androidTest/AndroidManifest.xml index b22a45dedd..818d5196fc 100644 --- a/libraries/decoder_vp9/src/androidTest/AndroidManifest.xml +++ b/libraries/decoder_vp9/src/androidTest/AndroidManifest.xml @@ -22,7 +22,6 @@ diff --git a/libraries/exoplayer/src/androidTest/AndroidManifest.xml b/libraries/exoplayer/src/androidTest/AndroidManifest.xml index cee0ce28ad..b1fb1cf643 100644 --- a/libraries/exoplayer/src/androidTest/AndroidManifest.xml +++ b/libraries/exoplayer/src/androidTest/AndroidManifest.xml @@ -23,7 +23,6 @@ diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java index 3d5e39a983..0659032fed 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecRenderer.java @@ -2613,11 +2613,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { * buffer with {@link MediaCodec#BUFFER_FLAG_END_OF_STREAM} set. False otherwise. */ private static boolean codecNeedsEosFlushWorkaround(String name) { - return (Util.SDK_INT <= 23 && "OMX.google.vorbis.decoder".equals(name)) - || (Util.SDK_INT == 19 - && ("hb2000".equals(Util.DEVICE) || "stvm8".equals(Util.DEVICE)) - && ("OMX.amlogic.avc.decoder.awesome".equals(name) - || "OMX.amlogic.avc.decoder.awesome.secure".equals(name))); + return Util.SDK_INT <= 23 && "OMX.google.vorbis.decoder".equals(name); } /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java index 6c1b9809cd..9063d464f5 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java @@ -1766,8 +1766,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer } /** - * Renders the output buffer with the specified index. This method is only called if the platform - * API version of the device is 21 or later. + * Renders the output buffer with the specified index. * * @param codec The codec that owns the output buffer. * @param index The index of the output buffer to drop. diff --git a/libraries/exoplayer_ima/src/androidTest/AndroidManifest.xml b/libraries/exoplayer_ima/src/androidTest/AndroidManifest.xml index 986dce0394..0b0db6b46a 100644 --- a/libraries/exoplayer_ima/src/androidTest/AndroidManifest.xml +++ b/libraries/exoplayer_ima/src/androidTest/AndroidManifest.xml @@ -24,7 +24,6 @@ diff --git a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java index f103c9010e..c20a8bcd0c 100644 --- a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java +++ b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java @@ -366,12 +366,6 @@ public class DefaultMediaNotificationProvider implements MediaNotification.Provi } } - if (player.isCommandAvailable(COMMAND_STOP)) { - // We must include a cancel intent for pre-L devices. - mediaStyle.setCancelButtonIntent( - actionFactory.createMediaActionPendingIntent(mediaSession, COMMAND_STOP)); - } - long playbackStartTimeMs = getPlaybackStartTimeEpochMs(player); boolean displayElapsedTimeWithChronometer = playbackStartTimeMs != C.TIME_UNSET; builder diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java b/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java index 9263bbc3f4..66281847f0 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java @@ -111,7 +111,6 @@ public class MediaStyleNotificationHelper { /* package */ final MediaSession session; /* package */ int @NullableType [] actionsToShowInCompact; - @Nullable /* package */ PendingIntent cancelButtonIntent; /* package */ @MonotonicNonNull CharSequence remoteDeviceName; /* package */ int remoteDeviceIconRes; @Nullable /* package */ PendingIntent remoteDeviceIntent; @@ -138,23 +137,23 @@ public class MediaStyleNotificationHelper { /** * @deprecated This method is a no-op and usages can be safely removed. There is no recommended - * alternative (it was previously only operational on API ≤ 21). + * alternative (it was previously only operational on API < 21). */ @CanIgnoreReturnValue @Deprecated + @SuppressWarnings("unused") public MediaStyle setShowCancelButton(boolean show) { return this; } /** - * Sets the pending intent to be sent when the cancel button is pressed. See {@link - * #setShowCancelButton}. - * - * @param pendingIntent the intent to be sent when the cancel button is pressed + * @deprecated This method is a no-op and usages can be safely removed. There is no recommended + * alternative (it was previously only operational on API < 21). */ @CanIgnoreReturnValue + @Deprecated + @SuppressWarnings("unused") public MediaStyle setCancelButtonIntent(PendingIntent pendingIntent) { - cancelButtonIntent = pendingIntent; return this; } diff --git a/libraries/test_exoplayer_playback/src/androidTest/AndroidManifest.xml b/libraries/test_exoplayer_playback/src/androidTest/AndroidManifest.xml index 2374319ed6..a0d2fd0cfe 100644 --- a/libraries/test_exoplayer_playback/src/androidTest/AndroidManifest.xml +++ b/libraries/test_exoplayer_playback/src/androidTest/AndroidManifest.xml @@ -24,7 +24,6 @@ diff --git a/libraries/test_session_current/src/main/AndroidManifest.xml b/libraries/test_session_current/src/main/AndroidManifest.xml index 4cada70076..c6de7e1fed 100644 --- a/libraries/test_session_current/src/main/AndroidManifest.xml +++ b/libraries/test_session_current/src/main/AndroidManifest.xml @@ -24,9 +24,7 @@ - + diff --git a/libraries/transformer/build.gradle b/libraries/transformer/build.gradle index c8e3ac1a94..39bec76b94 100644 --- a/libraries/transformer/build.gradle +++ b/libraries/transformer/build.gradle @@ -16,7 +16,7 @@ android { namespace 'androidx.media3.transformer' defaultConfig { - minSdkVersion 21 + minSdkVersion project.ext.minSdkVersion // The following argument makes the Android Test Orchestrator run its // "pm clear" command after each test invocation. This command ensures // that the app's state is completely cleared between tests. diff --git a/libraries/ui/src/main/java/androidx/media3/ui/PlayerNotificationManager.java b/libraries/ui/src/main/java/androidx/media3/ui/PlayerNotificationManager.java index 778e54177b..2767d42d0a 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/PlayerNotificationManager.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/PlayerNotificationManager.java @@ -1156,7 +1156,6 @@ public class PlayerNotificationManager { * duration} (like for example a live stream). *
  • The media is not {@link Player#isPlayingAd() interrupted by an ad}. *
  • The media is played at {@link Player#getPlaybackParameters() regular speed}. - *
  • The device is running at least API 21 (Lollipop). * * *

    See {@link NotificationCompat.Builder#setUsesChronometer(boolean)}. diff --git a/missing_aar_type_workaround.gradle b/missing_aar_type_workaround.gradle index 8d51b28060..be03422e2d 100644 --- a/missing_aar_type_workaround.gradle +++ b/missing_aar_type_workaround.gradle @@ -41,7 +41,6 @@ def addMissingAarTypeToXml(xml) { "androidx.leanback:leanback", "androidx.media:media", "androidx.media2:media2-session", - "androidx.multidex:multidex", "androidx.recyclerview:recyclerview", "androidx.test:core", "androidx.test.ext:junit", diff --git a/testapps/controller/build.gradle b/testapps/controller/build.gradle index c43453f7ed..680cd90bec 100644 --- a/testapps/controller/build.gradle +++ b/testapps/controller/build.gradle @@ -34,7 +34,6 @@ android { versionCode project.ext.releaseVersionCode minSdkVersion project.ext.minSdkVersion targetSdkVersion project.ext.appTargetSdkVersion - multiDexEnabled true vectorDrawables.useSupportLibrary = true } @@ -62,7 +61,6 @@ android { dependencies { implementation 'androidx.core:core-ktx:' + androidxCoreVersion implementation 'androidx.appcompat:appcompat:' + androidxAppCompatVersion - implementation 'androidx.multidex:multidex:' + androidxMultidexVersion implementation 'com.google.android.material:material:' + androidxMaterialVersion implementation 'androidx.media:media:' + androidxMediaVersion implementation project(modulePrefix + 'lib-session') diff --git a/testapps/controller/src/main/java/androidx/media3/testapp/controller/LaunchActivity.kt b/testapps/controller/src/main/java/androidx/media3/testapp/controller/LaunchActivity.kt index bc7c190320..ac20809739 100644 --- a/testapps/controller/src/main/java/androidx/media3/testapp/controller/LaunchActivity.kt +++ b/testapps/controller/src/main/java/androidx/media3/testapp/controller/LaunchActivity.kt @@ -19,11 +19,8 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import android.media.session.MediaSessionManager as ActiveSessionManager -import android.os.Build -import android.os.Build.VERSION_CODES import android.os.Bundle import android.service.notification.NotificationListenerService -import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar import androidx.core.app.NotificationManagerCompat @@ -76,10 +73,7 @@ class LaunchActivity : AppCompatActivity() { } ) - if (Build.VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { - activeSessionListener = ActiveSessionListener() - } - + activeSessionListener = ActiveSessionListener() mediaSessionApps = mediaAppListAdapter.addSection(R.string.media_app_header_media_service) val mediaAppsList: RecyclerView? = findViewById(R.id.app_list) @@ -91,9 +85,7 @@ class LaunchActivity : AppCompatActivity() { override fun onStart() { super.onStart() - if (Build.VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { - activeSessionListener!!.onStart() - } + activeSessionListener!!.onStart() // Finds apps that implement MediaSessionService, MediaLibraryService, or // MediaBrowserServiceCompat. @@ -103,17 +95,12 @@ class LaunchActivity : AppCompatActivity() { override fun onStop() { super.onStop() - if (Build.VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { - activeSessionListener!!.onStop() - } + activeSessionListener!!.onStop() } /** - * Encapsulates the API 21+ functionality of looking for and observing updates to active media - * sessions. We only construct an instance of this class if the device is running L or later, to - * avoid any ClassNotFoundExceptions due to the use of MediaSession and related classes. + * Encapsulates the functionality of looking for and observing updates to active media sessions. */ - @RequiresApi(VERSION_CODES.LOLLIPOP) private inner class ActiveSessionListener { private val activeSessionApps: MediaAppListAdapter.Section = mediaAppListAdapter.addSection(R.string.media_app_header_active_session) @@ -170,10 +157,8 @@ class LaunchActivity : AppCompatActivity() { /** * A notification listener service that allows us to grab active media sessions from their - * notifications. This class is only used on API 21+ because the Android media framework added - * getActiveSessions in API 21. + * notifications. */ - @RequiresApi(VERSION_CODES.LOLLIPOP) class NotificationListener : NotificationListenerService() { companion object { // Helper method to check if our notification listener is enabled. In order to get active diff --git a/testapps/controller/src/main/java/androidx/media3/testapp/controller/MediaAppDetails.kt b/testapps/controller/src/main/java/androidx/media3/testapp/controller/MediaAppDetails.kt index 849d6f8f83..c2e6839010 100644 --- a/testapps/controller/src/main/java/androidx/media3/testapp/controller/MediaAppDetails.kt +++ b/testapps/controller/src/main/java/androidx/media3/testapp/controller/MediaAppDetails.kt @@ -20,9 +20,7 @@ import android.content.pm.PackageManager import android.content.res.Resources import android.graphics.Bitmap import android.media.session.MediaController -import android.os.Build import android.os.Bundle -import androidx.annotation.RequiresApi import androidx.media3.common.util.Util import androidx.media3.session.SessionToken @@ -58,7 +56,6 @@ private constructor( ) } - @RequiresApi(Build.VERSION_CODES.LOLLIPOP) fun create( packageManager: PackageManager, resources: Resources, diff --git a/testapps/controller/src/main/java/androidx/media3/testapp/controller/findapps/FindActiveMediaSessionApps.kt b/testapps/controller/src/main/java/androidx/media3/testapp/controller/findapps/FindActiveMediaSessionApps.kt index 946712d2f0..11d88d18ac 100644 --- a/testapps/controller/src/main/java/androidx/media3/testapp/controller/findapps/FindActiveMediaSessionApps.kt +++ b/testapps/controller/src/main/java/androidx/media3/testapp/controller/findapps/FindActiveMediaSessionApps.kt @@ -21,15 +21,12 @@ import android.content.pm.PackageManager import android.content.res.Resources import android.media.session.MediaController import android.media.session.MediaSessionManager -import android.os.Build -import androidx.annotation.RequiresApi import androidx.media3.testapp.controller.MediaAppDetails /** * Implementation of [FindMediaApps] that uses [MediaSessionManager] to populate the list of active * media session apps. */ -@RequiresApi(Build.VERSION_CODES.LOLLIPOP) class FindActiveMediaSessionApps constructor( private val mediaSessionManager: MediaSessionManager,