package androidx.media3.session;

import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import androidx.media3.common.MediaItem;
import androidx.media3.common.util.Consumer;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util;
import androidx.media3.datasource.DataSourceBitmapLoader;
import androidx.media3.session.MediaController;
import androidx.media3.session.MediaLibraryService;
import defpackage.bj4;
import defpackage.fp4;
import defpackage.hs0;
import defpackage.if7;
import defpackage.ks3;
import defpackage.mp6;
import defpackage.rq6;
import defpackage.yg;
import defpackage.zb5;

/* JADX INFO: loaded from: classes.dex */
public final class MediaBrowser extends MediaController {
    private static final String WRONG_THREAD_ERROR_MESSAGE = "MediaBrowser method is called from a wrong thread. See javadoc of MediaController for details.";

    @mp6
    private MediaBrowserImpl impl;

    public static final class Builder {
        private Looper applicationLooper;
        private androidx.media3.common.util.BitmapLoader bitmapLoader;
        private Bundle connectionHints;
        private final Context context;
        private Listener listener;
        private int maxCommandsForMediaItems;
        private long platformSessionCallbackAggregationTimeoutMs;
        private final SessionToken token;

        public Builder(Context context, SessionToken sessionToken) {
            context.getClass();
            this.context = context;
            sessionToken.getClass();
            this.token = sessionToken;
            this.connectionHints = Bundle.EMPTY;
            this.listener = new Listener() { // from class: androidx.media3.session.MediaBrowser.Builder.1
            };
            this.applicationLooper = Util.getCurrentOrMainLooper();
            this.platformSessionCallbackAggregationTimeoutMs = 100L;
        }

        public zb5<MediaBrowser> buildAsync() {
            MediaControllerHolder mediaControllerHolder = new MediaControllerHolder(this.applicationLooper);
            if (this.token.isLegacySession() && this.bitmapLoader == null) {
                this.bitmapLoader = new CacheBitmapLoader(new DataSourceBitmapLoader.Builder(this.context).build());
            }
            Util.postOrRun(new Handler(this.applicationLooper), new g(mediaControllerHolder, new MediaBrowser(this.context, this.token, this.connectionHints, this.listener, this.applicationLooper, mediaControllerHolder, this.bitmapLoader, this.maxCommandsForMediaItems, this.platformSessionCallbackAggregationTimeoutMs), 0));
            return mediaControllerHolder;
        }

        @hs0
        @UnstableApi
        public Builder experimentalSetPlatformSessionCallbackAggregationTimeoutMs(long j) {
            this.platformSessionCallbackAggregationTimeoutMs = j;
            return this;
        }

        @hs0
        public Builder setApplicationLooper(Looper looper) {
            looper.getClass();
            this.applicationLooper = looper;
            return this;
        }

        @hs0
        @UnstableApi
        public Builder setBitmapLoader(androidx.media3.common.util.BitmapLoader bitmapLoader) {
            bitmapLoader.getClass();
            this.bitmapLoader = bitmapLoader;
            return this;
        }

        @hs0
        public Builder setConnectionHints(Bundle bundle) {
            bundle.getClass();
            this.connectionHints = new Bundle(bundle);
            return this;
        }

        @hs0
        public Builder setListener(Listener listener) {
            listener.getClass();
            this.listener = listener;
            return this;
        }

        @hs0
        @UnstableApi
        public Builder setMaxCommandsForMediaItems(int i) {
            if7.e(i >= 0);
            this.maxCommandsForMediaItems = i;
            return this;
        }
    }

    public interface Listener extends MediaController.Listener {
        default void onChildrenChanged(MediaBrowser mediaBrowser, String str, @fp4 int i, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        }

        default void onSearchResultChanged(MediaBrowser mediaBrowser, String str, @fp4 int i, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        }
    }

    public interface MediaBrowserImpl extends MediaController.MediaControllerImpl {
        zb5<LibraryResult<bj4<MediaItem>>> getChildren(String str, int i, int i2, @rq6 MediaLibraryService.LibraryParams libraryParams);

        zb5<LibraryResult<MediaItem>> getItem(String str);

        zb5<LibraryResult<MediaItem>> getLibraryRoot(@rq6 MediaLibraryService.LibraryParams libraryParams);

        zb5<LibraryResult<bj4<MediaItem>>> getSearchResult(String str, int i, int i2, @rq6 MediaLibraryService.LibraryParams libraryParams);

        zb5<LibraryResult<Void>> search(String str, @rq6 MediaLibraryService.LibraryParams libraryParams);

        zb5<LibraryResult<Void>> subscribe(String str, @rq6 MediaLibraryService.LibraryParams libraryParams);

        zb5<LibraryResult<Void>> unsubscribe(String str);
    }

    public MediaBrowser(Context context, SessionToken sessionToken, Bundle bundle, Listener listener, Looper looper, MediaController.ConnectionCallback connectionCallback, @rq6 androidx.media3.common.util.BitmapLoader bitmapLoader, int i, long j) {
        super(context, sessionToken, bundle, listener, looper, connectionCallback, bitmapLoader, i, j);
    }

    private static <V> zb5<LibraryResult<V>> createDisconnectedFuture() {
        return ks3.d(LibraryResult.ofError(-100));
    }

    private void verifyApplicationThread() {
        if7.p(Looper.myLooper() == getApplicationLooper(), WRONG_THREAD_ERROR_MESSAGE);
    }

    public zb5<LibraryResult<bj4<MediaItem>>> getChildren(String str, @fp4 int i, @fp4 int i2, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        verifyApplicationThread();
        if7.f(!TextUtils.isEmpty(str), "parentId must not be empty");
        if7.f(i >= 0, "page must not be negative");
        if7.f(i2 >= 1, "pageSize must not be less than 1");
        if (!isConnected()) {
            return createDisconnectedFuture();
        }
        MediaBrowserImpl mediaBrowserImpl = this.impl;
        mediaBrowserImpl.getClass();
        return mediaBrowserImpl.getChildren(str, i, i2, libraryParams);
    }

    public zb5<LibraryResult<MediaItem>> getItem(String str) {
        verifyApplicationThread();
        if7.f(!TextUtils.isEmpty(str), "mediaId must not be empty");
        if (!isConnected()) {
            return createDisconnectedFuture();
        }
        MediaBrowserImpl mediaBrowserImpl = this.impl;
        mediaBrowserImpl.getClass();
        return mediaBrowserImpl.getItem(str);
    }

    public zb5<LibraryResult<MediaItem>> getLibraryRoot(@rq6 MediaLibraryService.LibraryParams libraryParams) {
        verifyApplicationThread();
        if (!isConnected()) {
            return createDisconnectedFuture();
        }
        MediaBrowserImpl mediaBrowserImpl = this.impl;
        mediaBrowserImpl.getClass();
        return mediaBrowserImpl.getLibraryRoot(libraryParams);
    }

    public zb5<LibraryResult<bj4<MediaItem>>> getSearchResult(String str, @fp4 int i, @fp4 int i2, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        verifyApplicationThread();
        if7.f(!TextUtils.isEmpty(str), "query must not be empty");
        if7.f(i >= 0, "page must not be negative");
        if7.f(i2 >= 1, "pageSize must not be less than 1");
        if (!isConnected()) {
            return createDisconnectedFuture();
        }
        MediaBrowserImpl mediaBrowserImpl = this.impl;
        mediaBrowserImpl.getClass();
        return mediaBrowserImpl.getSearchResult(str, i, i2, libraryParams);
    }

    public void notifyBrowserListener(Consumer<Listener> consumer) {
        Listener listener = (Listener) this.listener;
        if (listener != null) {
            Util.postOrRun(this.applicationHandler, new yg(consumer, listener, 29));
        }
    }

    public zb5<LibraryResult<Void>> search(String str, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        verifyApplicationThread();
        if7.f(!TextUtils.isEmpty(str), "query must not be empty");
        if (!isConnected()) {
            return createDisconnectedFuture();
        }
        MediaBrowserImpl mediaBrowserImpl = this.impl;
        mediaBrowserImpl.getClass();
        return mediaBrowserImpl.search(str, libraryParams);
    }

    public zb5<LibraryResult<Void>> subscribe(String str, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        verifyApplicationThread();
        if7.f(!TextUtils.isEmpty(str), "parentId must not be empty");
        if (!isConnected()) {
            return createDisconnectedFuture();
        }
        MediaBrowserImpl mediaBrowserImpl = this.impl;
        mediaBrowserImpl.getClass();
        return mediaBrowserImpl.subscribe(str, libraryParams);
    }

    public zb5<LibraryResult<Void>> unsubscribe(String str) {
        verifyApplicationThread();
        if7.f(!TextUtils.isEmpty(str), "parentId must not be empty");
        if (!isConnected()) {
            return createDisconnectedFuture();
        }
        MediaBrowserImpl mediaBrowserImpl = this.impl;
        mediaBrowserImpl.getClass();
        return mediaBrowserImpl.unsubscribe(str);
    }

    @Override // androidx.media3.session.MediaController
    public MediaBrowserImpl createImpl(Context context, SessionToken sessionToken, Bundle bundle, Looper looper, @rq6 androidx.media3.common.util.BitmapLoader bitmapLoader, long j) {
        MediaBrowserImpl mediaBrowserImplBase;
        if (sessionToken.isLegacySession()) {
            bitmapLoader.getClass();
            mediaBrowserImplBase = new MediaBrowserImplLegacy(context, this, sessionToken, bundle, looper, bitmapLoader, j);
        } else {
            mediaBrowserImplBase = new MediaBrowserImplBase(context, this, sessionToken, bundle, looper);
        }
        this.impl = mediaBrowserImplBase;
        return mediaBrowserImplBase;
    }
}
