<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.3.0-alpha04" type="baseline" client="gradle" dependencies="false" name="AGP (8.3.0-alpha04)" variant="all" version="8.3.0-alpha04">

    <issue
        id="NewApi"
        message="Call requires API level 27 (current min is 19): `android.app.Activity#setTurnScreenOn`"
        errorLine1="                mActivity.setTurnScreenOn(true);"
        errorLine2="                          ~~~~~~~~~~~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2DrmTestBase.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 27 (current min is 19): `android.app.Activity#setShowWhenLocked`"
        errorLine1="                mActivity.setShowWhenLocked(true);"
        errorLine2="                          ~~~~~~~~~~~~~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2DrmTestBase.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 26 (current min is 19): `android.app.KeyguardManager#requestDismissKeyguard`"
        errorLine1="                mKeyguardManager.requestDismissKeyguard(mActivity, null);"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2DrmTestBase.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 27 (current min is 19): `android.app.Activity#setTurnScreenOn`"
        errorLine1="                mActivity.setTurnScreenOn(true);"
        errorLine2="                          ~~~~~~~~~~~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 27 (current min is 19): `android.app.Activity#setShowWhenLocked`"
        errorLine1="                mActivity.setShowWhenLocked(true);"
        errorLine2="                          ~~~~~~~~~~~~~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 26 (current min is 19): `android.app.KeyguardManager#requestDismissKeyguard`"
        errorLine1="                mKeyguardManager.requestDismissKeyguard(mActivity, null);"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java"/>
    </issue>

    <issue
        id="WrongConstant"
        message="Must be one of: BaseResult.RESULT_SUCCESS, DrmResult.RESULT_ERROR_PROVISIONING_NETWORK_ERROR, DrmResult.RESULT_ERROR_PROVISIONING_SERVER_ERROR, DrmResult.RESULT_ERROR_PREPARATION_ERROR, DrmResult.RESULT_ERROR_UNSUPPORTED_SCHEME, DrmResult.RESULT_ERROR_RESOURCE_BUSY"
        errorLine1="            return super.getResultCode();"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer.java"/>
    </issue>

    <issue
        id="BanSynchronizedMethods"
        message="Use of synchronized methods is not recommended"
        errorLine1="    @Override"
        errorLine2="    ^">
        <location
            file="src/main/java/androidx/media2/player/TextRenderer.java"/>
    </issue>

    <issue
        id="BanSynchronizedMethods"
        message="Use of synchronized methods is not recommended"
        errorLine1="    @Override"
        errorLine2="    ^">
        <location
            file="src/main/java/androidx/media2/player/TextRenderer.java"/>
    </issue>

    <issue
        id="BanSynchronizedMethods"
        message="Use of synchronized methods is not recommended"
        errorLine1="    /** Clears any previous selection. */"
        errorLine2="    ^">
        <location
            file="src/main/java/androidx/media2/player/TextRenderer.java"/>
    </issue>

    <issue
        id="BanSynchronizedMethods"
        message="Use of synchronized methods is not recommended"
        errorLine1="    /** Selects the specified track type/channel for extraction and rendering. */"
        errorLine2="    ^">
        <location
            file="src/main/java/androidx/media2/player/TextRenderer.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(sleepBetweenRounds);"
        errorLine2="                       ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2DrmTestBase.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(SLEEP_TIME);"
        errorLine2="                       ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(SLEEP_TIME);"
        errorLine2="                       ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(SLEEP_TIME);"
        errorLine2="                       ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME / 2);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(durationMs);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(1000);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(playTime);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(sleepIntervalMs);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);  // let player get into stable state."
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);  // let player get into stable state."
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(playTime);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(SLEEP_TIME);"
        errorLine2="                       ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(SLEEP_TIME);"
        errorLine2="                       ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2TestBase.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(playTime);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayer2TestBase.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(sleepBetweenRounds);"
        errorLine2="                       ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(1000);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(playTime);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(sleepIntervalMs);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);  // let player get into stable state."
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);  // let player get into stable state."
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(playTime);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="            Thread.sleep(SLEEP_TIME);"
        errorLine2="                   ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(SLEEP_TIME);"
        errorLine2="               ~~~~~">
        <location
            file="src/androidTest/java/androidx/media2/player/MediaPlayerTest.java"/>
    </issue>

    <issue
        id="BanUncheckedReflection"
        message="Calling `Method.invoke` without an SDK check"
        errorLine1="            return (FileDescriptor) method.invoke(object, fileDescriptor);"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/FileDescriptorUtil.java"/>
    </issue>

    <issue
        id="BanUncheckedReflection"
        message="Calling `Method.invoke` without an SDK check"
        errorLine1="            method.invoke(object, fileDescriptor, position, /* whence= */ SEEK_SET);"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/FileDescriptorUtil.java"/>
    </issue>

    <issue
        id="BanUncheckedReflection"
        message="Calling `Method.invoke` without an SDK check"
        errorLine1="            return (FileDescriptor) method.invoke(object, fileDescriptor);"
        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/FileDescriptorUtil.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onPrepared(MediaItem mediaItem);"
        errorLine2="                        ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onBufferingStarted(MediaItem mediaItem);"
        errorLine2="                                ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onBufferingEnded(MediaItem mediaItem);"
        errorLine2="                              ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onBufferingUpdate(MediaItem mediaItem, int bufferingPercentage);"
        errorLine2="                               ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onBandwidthSample(MediaItem mediaItem2, int bitrateKbps);"
        errorLine2="                               ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onVideoRenderingStart(MediaItem mediaItem);"
        errorLine2="                                   ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onVideoSizeChanged(MediaItem mediaItem, int width, int height);"
        errorLine2="                                ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onTimedMetadata(MediaItem mediaItem, TimedMetaData timedMetaData);"
        errorLine2="                             ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onTimedMetadata(MediaItem mediaItem, TimedMetaData timedMetaData);"
        errorLine2="                                                  ~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onMediaItemStartedAsNext(MediaItem mediaItem);"
        errorLine2="                                      ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onMediaItemEnded(MediaItem mediaItem);"
        errorLine2="                              ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onLoop(MediaItem mediaItem);"
        errorLine2="                    ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onMediaTimeDiscontinuity(MediaItem mediaItem, MediaTimestamp mediaTimestamp);"
        errorLine2="                                      ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onMediaTimeDiscontinuity(MediaItem mediaItem, MediaTimestamp mediaTimestamp);"
        errorLine2="                                                           ~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onPlaybackEnded(MediaItem mediaItem);"
        errorLine2="                             ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onError(MediaItem mediaItem, int what);"
        errorLine2="                     ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/ExoPlayerWrapper.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public PersistableBundle getMetrics() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, int width, int height) { }"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, int width, int height) { }"
        errorLine2="                                 ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, TimedMetaData data) { }"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, TimedMetaData data) { }"
        errorLine2="                                 ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, TimedMetaData data) { }"
        errorLine2="                                                 ~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, @MediaError int what, int extra) { }"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, @MediaError int what, int extra) { }"
        errorLine2="                                 ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        public void onInfo(MediaPlayer2 mp, MediaItem item, @MediaInfo int what, int extra) { }"
        errorLine2="                           ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        public void onInfo(MediaPlayer2 mp, MediaItem item, @MediaInfo int what, int extra) { }"
        errorLine2="                                            ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, @CallCompleted int what,"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, @CallCompleted int what,"
        errorLine2="                                 ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, MediaTimestamp timestamp) { }"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, MediaTimestamp timestamp) { }"
        errorLine2="                                 ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, MediaTimestamp timestamp) { }"
        errorLine2="                                                 ~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        public void onCommandLabelReached(MediaPlayer2 mp, @NonNull Object label) { }"
        errorLine2="                                          ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onDrmConfig(MediaPlayer2 mp, MediaItem item);"
        errorLine2="                         ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onDrmConfig(MediaPlayer2 mp, MediaItem item);"
        errorLine2="                                          ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        public void onDrmInfo(MediaPlayer2 mp, MediaItem item, DrmInfo drmInfo) { }"
        errorLine2="                              ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        public void onDrmInfo(MediaPlayer2 mp, MediaItem item, DrmInfo drmInfo) { }"
        errorLine2="                                               ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        public void onDrmInfo(MediaPlayer2 mp, MediaItem item, DrmInfo drmInfo) { }"
        errorLine2="                                                               ~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, @PrepareDrmStatusCode int status) { }"
        errorLine2="                ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="                MediaPlayer2 mp, MediaItem item, @PrepareDrmStatusCode int status) { }"
        errorLine2="                                 ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        public abstract Map&lt;UUID, byte[]&gt; getPssh();"
        errorLine2="                        ~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        public abstract List&lt;UUID> getSupportedSchemes();"
        errorLine2="                        ~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/MediaPlayer2.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public android.media.PlaybackParams getPlaybackParams() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/PlaybackParams.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        public Builder(android.media.PlaybackParams playbackParams) {"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/PlaybackParams.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="        void onCcData(byte[] data, long timeUs);"
        errorLine2="                      ~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/TextRenderer.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public TimedMetaData(long timestampUs, byte[] metaData) {"
        errorLine2="                                           ~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/TimedMetaData.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public byte[] getMetaData() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/main/java/androidx/media2/player/TimedMetaData.java"/>
    </issue>

</issues>
