<?xml version="1.0" encoding="UTF-8"?>
<issues format="5" by="lint 3.6.0-beta05" client="gradle" variant="debug" version="3.6.0-beta05">

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void setTimeDiff(Long timeDiff) {"
        errorLine2="                            ~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaController.java"
            line="1290"
            column="29"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public void notifyControllerCallback(final ControllerCallbackRunnable callbackRunnable) {"
        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaController.java"
            line="1390"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public IBinder onBind(@NonNull Intent intent) {"
        errorLine2="           ~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaLibraryService.java"
            line="457"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public MediaSessionCompat getSessionCompat() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaSession.java"
            line="388"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public int onStartCommand(Intent intent, int flags, int startId) {"
        errorLine2="                              ~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaSessionService.java"
            line="262"
            column="31"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaItem convertToMediaItem(MediaBrowserCompat.MediaItem item) {"
        errorLine2="                  ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="286"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaItem convertToMediaItem(MediaBrowserCompat.MediaItem item) {"
        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="286"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaItem convertToMediaItem(QueueItem item) {"
        errorLine2="                  ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="300"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaItem convertToMediaItem(QueueItem item) {"
        errorLine2="                                               ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="300"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaItem convertToMediaItem(MediaMetadataCompat metadataCompat) {"
        errorLine2="                  ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="316"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaItem convertToMediaItem(MediaMetadataCompat metadataCompat) {"
        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="316"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaItem convertToMediaItem(MediaDescriptionCompat descriptionCompat) {"
        errorLine2="                  ~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="351"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaItem convertToMediaItem(MediaDescriptionCompat descriptionCompat) {"
        errorLine2="                                               ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="351"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static List&lt;MediaItem> convertMediaItemListToMediaItemList("
        errorLine2="                  ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="362"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="            List&lt;MediaBrowserCompat.MediaItem> items) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="363"
            column="13"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static List&lt;MediaItem> convertQueueItemListToMediaItemList(List&lt;QueueItem> items) {"
        errorLine2="                  ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="377"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static List&lt;MediaItem> convertQueueItemListToMediaItemList(List&lt;QueueItem> items) {"
        errorLine2="                                                                      ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="377"
            column="71"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaDescriptionCompat createMediaDescriptionCompat(String mediaId) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="394"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaDescriptionCompat createMediaDescriptionCompat(String mediaId) {"
        errorLine2="                                                                      ~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="394"
            column="71"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static List&lt;QueueItem> convertToQueueItemList(List&lt;MediaItem> items) {"
        errorLine2="                  ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="405"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static List&lt;QueueItem> convertToQueueItemList(List&lt;MediaItem> items) {"
        errorLine2="                                                         ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="405"
            column="58"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static List&lt;MediaItem> convertParcelImplListSliceToMediaItemList("
        errorLine2="                  ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="423"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="            ParcelImplListSlice listSlice) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="424"
            column="13"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;T extends Parcelable> List&lt;T> truncateListBySize(final List&lt;T> list,"
        errorLine2="                                         ~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="444"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static &lt;T extends Parcelable> List&lt;T> truncateListBySize(final List&lt;T> list,"
        errorLine2="                                                                          ~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="444"
            column="75"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaMetadata convertToMediaMetadata(CharSequence queueTitle) {"
        errorLine2="                  ~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="536"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaMetadata convertToMediaMetadata(CharSequence queueTitle) {"
        errorLine2="                                                       ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="536"
            column="56"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaMetadataCompat convertToMediaMetadataCompat(MediaMetadata metadata) {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="553"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaMetadataCompat convertToMediaMetadataCompat(MediaMetadata metadata) {"
        errorLine2="                                                                   ~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="553"
            column="68"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Rating convertToRating(RatingCompat ratingCompat) {"
        errorLine2="                  ~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="588"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static Rating convertToRating(RatingCompat ratingCompat) {"
        errorLine2="                                         ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="588"
            column="42"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static RatingCompat convertToRatingCompat(Rating rating) {"
        errorLine2="                  ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="624"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static RatingCompat convertToRatingCompat(Rating rating) {"
        errorLine2="                                                     ~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="624"
            column="54"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static List&lt;ParcelImpl> convertCommandButtonListToParcelImplList("
        errorLine2="                  ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="654"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="            List&lt;CommandButton> commandButtonList) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="655"
            column="13"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static ParcelImplListSlice convertMediaItemListToParcelImplListSlice("
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="670"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="            List&lt;MediaItem> mediaItemList) {"
        errorLine2="            ~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="671"
            column="13"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static int convertToPlayerState(PlaybackStateCompat state) {"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="712"
            column="44"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static MediaController.PlaybackInfo toPlaybackInfo2("
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="756"
            column="19"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="            MediaControllerCompat.PlaybackInfo info) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="757"
            column="13"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static boolean isUnparcelableBundle(Bundle bundle) {"
        errorLine2="                                               ~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="767"
            column="48"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public static void keepUnparcelableBundlesOnly(final List&lt;Bundle> bundles) {"
        errorLine2="                                                         ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/MediaUtils.java"
            line="783"
            column="58"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public ComponentName getComponentName() {"
        errorLine2="           ~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/SessionToken.java"
            line="210"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="    public Object getBinder() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/SessionToken.java"
            line="250"
            column="12"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onSessionTokenCreated(MediaSessionCompat.Token token, SessionToken token2);"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/SessionToken.java"
            line="426"
            column="36"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
        errorLine1="        void onSessionTokenCreated(MediaSessionCompat.Token token, SessionToken token2);"
        errorLine2="                                                                   ~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/media2/session/SessionToken.java"
            line="426"
            column="68"/>
    </issue>

</issues>
