package androidx.media3.session;

import android.app.PendingIntent;
import android.content.Context;
import android.os.Bundle;
import android.os.RemoteException;
import androidx.media3.common.MediaItem;
import androidx.media3.common.MediaMetadata;
import androidx.media3.common.Player;
import androidx.media3.common.util.Log;
import androidx.media3.common.util.Util;
import androidx.media3.session.MediaLibraryService;
import androidx.media3.session.MediaSession;
import androidx.media3.session.MediaSessionImpl;
import androidx.media3.session.legacy.MediaSessionCompat;
import defpackage.bj4;
import defpackage.ck4;
import defpackage.ds3;
import defpackage.if7;
import defpackage.ks3;
import defpackage.n04;
import defpackage.o96;
import defpackage.om8;
import defpackage.p7a;
import defpackage.rq6;
import defpackage.zb5;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;

/* JADX INFO: loaded from: classes.dex */
class MediaLibrarySessionImpl extends MediaSessionImpl {
    private static final String RECENT_LIBRARY_ROOT_MEDIA_ID = "androidx.media3.session.recent.root";
    private final MediaLibraryService.MediaLibrarySession.Callback callback;
    private final n04<MediaSession.ControllerCb, String> controllerToSubscribedParentIds;
    private final MediaLibraryService.MediaLibrarySession instance;
    private final int libraryErrorReplicationMode;
    private final n04<String, MediaSession.ControllerInfo> parentIdToSubscribedControllers;

    public MediaLibrarySessionImpl(MediaLibraryService.MediaLibrarySession mediaLibrarySession, Context context, String str, Player player, @rq6 PendingIntent pendingIntent, bj4<CommandButton> bj4Var, bj4<CommandButton> bj4Var2, bj4<CommandButton> bj4Var3, MediaLibraryService.MediaLibrarySession.Callback callback, Bundle bundle, Bundle bundle2, androidx.media3.common.util.BitmapLoader bitmapLoader, boolean z, boolean z2, int i) {
        super(mediaLibrarySession, context, str, player, pendingIntent, bj4Var, bj4Var2, bj4Var3, callback, bundle, bundle2, bitmapLoader, z, z2, false);
        this.instance = mediaLibrarySession;
        this.callback = callback;
        this.libraryErrorReplicationMode = i;
        this.parentIdToSubscribedControllers = new n04<>();
        this.controllerToSubscribedParentIds = new n04<>();
    }

    private zb5<LibraryResult<bj4<MediaItem>>> getRecentMediaItemAtDeviceBootTime(MediaSession.ControllerInfo controllerInfo, @rq6 final MediaLibraryService.LibraryParams libraryParams) {
        final om8 om8Var = new om8();
        if (isMediaNotificationControllerConnected()) {
            controllerInfo = getMediaNotificationControllerInfo();
            controllerInfo.getClass();
        }
        ks3.a(this.callback.onPlaybackResumption(this.instance, controllerInfo, false), new ds3<MediaSession.MediaItemsWithStartPosition>() { // from class: androidx.media3.session.MediaLibrarySessionImpl.1
            @Override // defpackage.ds3
            public void onFailure(Throwable th) {
                om8Var.set(LibraryResult.ofError(-1, libraryParams));
                Log.e(MediaSessionImpl.TAG, "Failed fetching recent media item at boot time: " + th.getMessage(), th);
            }

            @Override // defpackage.ds3
            public void onSuccess(MediaSession.MediaItemsWithStartPosition mediaItemsWithStartPosition) {
                if (mediaItemsWithStartPosition.mediaItems.isEmpty()) {
                    om8Var.set(LibraryResult.ofError(-2, libraryParams));
                } else {
                    om8Var.set(LibraryResult.ofItemList(bj4.r(mediaItemsWithStartPosition.mediaItems.get(Math.max(0, Math.min(mediaItemsWithStartPosition.startIndex, mediaItemsWithStartPosition.mediaItems.size() - 1)))), libraryParams));
                }
            }
        }, o96.a());
        return om8Var;
    }

    private boolean isReplicationErrorCode(int i) {
        return i == -102 || i == -105;
    }

    private boolean isSubscribed(MediaSession.ControllerCb controllerCb, String str) {
        return this.controllerToSubscribedParentIds.am(controllerCb, str);
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$notifyChildrenChanged$4(String str, int i, MediaLibraryService.LibraryParams libraryParams, MediaSession.ControllerCb controllerCb, int i2) throws RemoteException {
        if (isSubscribed(controllerCb, str)) {
            controllerCb.onChildrenChanged(i2, str, i, libraryParams);
        }
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$onGetChildrenOnHandler$0(zb5 zb5Var, MediaSession.ControllerInfo controllerInfo, int i) {
        LibraryResult<?> libraryResult = (LibraryResult) tryGetFutureResult(zb5Var);
        if (libraryResult != null) {
            maybeUpdateLegacyErrorState(controllerInfo, libraryResult);
            verifyResultItems(libraryResult, i);
        }
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$onGetItemOnHandler$1(zb5 zb5Var, MediaSession.ControllerInfo controllerInfo) {
        LibraryResult<?> libraryResult = (LibraryResult) tryGetFutureResult(zb5Var);
        if (libraryResult != null) {
            maybeUpdateLegacyErrorState(controllerInfo, libraryResult);
        }
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$onGetSearchResultOnHandler$6(zb5 zb5Var, MediaSession.ControllerInfo controllerInfo, int i) {
        LibraryResult<?> libraryResult = (LibraryResult) tryGetFutureResult(zb5Var);
        if (libraryResult != null) {
            maybeUpdateLegacyErrorState(controllerInfo, libraryResult);
            verifyResultItems(libraryResult, i);
        }
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$onSearchOnHandler$5(zb5 zb5Var, MediaSession.ControllerInfo controllerInfo) {
        LibraryResult<?> libraryResult = (LibraryResult) tryGetFutureResult(zb5Var);
        if (libraryResult != null) {
            maybeUpdateLegacyErrorState(controllerInfo, libraryResult);
        }
    }

    /* JADX INFO: Access modifiers changed from: private */
    public /* synthetic */ void lambda$onSubscribeOnHandler$2(zb5 zb5Var, MediaSession.ControllerInfo controllerInfo, String str) {
        LibraryResult libraryResult = (LibraryResult) tryGetFutureResult(zb5Var);
        if (libraryResult == null || libraryResult.resultCode != 0) {
            lambda$onUnsubscribeOnHandler$3(controllerInfo, str);
        }
    }

    private void maybeUpdateLegacyErrorState(MediaSession.ControllerInfo controllerInfo, LibraryResult<?> libraryResult) {
        if (this.libraryErrorReplicationMode == 0 || controllerInfo.getControllerVersion() != 0) {
            return;
        }
        if (isReplicationErrorCode(libraryResult.resultCode)) {
            getMediaSessionLegacyStub().setLegacyError(libraryResult, this.libraryErrorReplicationMode == 1);
        }
        if (libraryResult.resultCode == 0) {
            getMediaSessionLegacyStub().clearLegacyErrorStatus();
        }
    }

    /* JADX INFO: Access modifiers changed from: private */
    public void postOrRunOnApplicationHandler(Runnable runnable) {
        Util.postOrRun(getApplicationHandler(), runnable);
    }

    /* JADX INFO: Access modifiers changed from: private */
    /* JADX INFO: renamed from: removeSubscription, reason: merged with bridge method [inline-methods] */
    public void lambda$onUnsubscribeOnHandler$3(MediaSession.ControllerInfo controllerInfo, String str) {
        MediaSession.ControllerCb controllerCb = controllerInfo.getControllerCb();
        controllerCb.getClass();
        this.parentIdToSubscribedControllers.remove(str, controllerInfo);
        this.controllerToSubscribedParentIds.remove(controllerCb, str);
    }

    @rq6
    private static <T> T tryGetFutureResult(Future<T> future) {
        if7.o(future.isDone());
        try {
            return future.get();
        } catch (InterruptedException | CancellationException | ExecutionException e) {
            Log.w(MediaSessionImpl.TAG, "Library operation failed", e);
            return null;
        }
    }

    private static void verifyResultItems(LibraryResult<bj4<MediaItem>> libraryResult, int i) {
        if (libraryResult.resultCode == 0) {
            bj4<MediaItem> bj4Var = libraryResult.value;
            bj4Var.getClass();
            if (bj4Var.size() <= i) {
                return;
            }
            throw new IllegalStateException("Invalid size=" + bj4Var.size() + ", pageSize=" + i);
        }
    }

    public void clearReplicatedLibraryError() {
        getMediaSessionLegacyStub().clearLegacyErrorStatus();
    }

    @Override // androidx.media3.session.MediaSessionImpl
    public MediaSessionServiceLegacyStub createLegacyBrowserService(MediaSessionCompat.Token token) {
        MediaLibraryServiceLegacyStub mediaLibraryServiceLegacyStub = new MediaLibraryServiceLegacyStub(this);
        mediaLibraryServiceLegacyStub.initialize(token);
        return mediaLibraryServiceLegacyStub;
    }

    @Override // androidx.media3.session.MediaSessionImpl
    public void dispatchRemoteControllerTaskWithoutReturn(MediaSessionImpl.RemoteControllerTask remoteControllerTask) {
        super.dispatchRemoteControllerTaskWithoutReturn(remoteControllerTask);
        MediaLibraryServiceLegacyStub legacyBrowserService = getLegacyBrowserService();
        if (legacyBrowserService != null) {
            try {
                remoteControllerTask.run(legacyBrowserService.getBrowserLegacyCbForBroadcast(), 0);
            } catch (RemoteException e) {
                Log.e(MediaSessionImpl.TAG, "Exception in using media1 API", e);
            }
        }
    }

    @Override // androidx.media3.session.MediaSessionImpl
    public List<MediaSession.ControllerInfo> getConnectedControllers() {
        List<MediaSession.ControllerInfo> connectedControllers = super.getConnectedControllers();
        MediaLibraryServiceLegacyStub legacyBrowserService = getLegacyBrowserService();
        if (legacyBrowserService == null) {
            return connectedControllers;
        }
        bj4<MediaSession.ControllerInfo> connectedControllers2 = legacyBrowserService.getConnectedControllersManager().getConnectedControllers();
        bj4.a aVarJ = bj4.j(connectedControllers2.size() + connectedControllers.size());
        aVarJ.f(connectedControllers);
        aVarJ.f(connectedControllers2);
        return aVarJ.j();
    }

    public bj4<MediaSession.ControllerInfo> getSubscribedControllers(String str) {
        return bj4.l(this.parentIdToSubscribedControllers.l((Object) str));
    }

    @Override // androidx.media3.session.MediaSessionImpl
    public boolean isConnected(MediaSession.ControllerInfo controllerInfo) {
        if (super.isConnected(controllerInfo)) {
            return true;
        }
        MediaLibraryServiceLegacyStub legacyBrowserService = getLegacyBrowserService();
        return legacyBrowserService != null && legacyBrowserService.getConnectedControllersManager().isConnected(controllerInfo);
    }

    public void notifyChildrenChanged(String str, int i, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        List<MediaSession.ControllerInfo> connectedControllers = this.instance.getConnectedControllers();
        for (int i2 = 0; i2 < connectedControllers.size(); i2++) {
            notifyChildrenChanged(connectedControllers.get(i2), str, i, libraryParams);
        }
    }

    public void notifySearchResultChanged(MediaSession.ControllerInfo controllerInfo, String str, int i, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        if (isMediaNotificationControllerConnected() && isMediaNotificationController(controllerInfo) && (controllerInfo = getSystemUiControllerInfo()) == null) {
            return;
        }
        dispatchRemoteControllerTaskWithoutReturn(controllerInfo, new bk(i, str, 2, libraryParams));
    }

    /* JADX WARN: Multi-variable type inference failed */
    @Override // androidx.media3.session.MediaSessionImpl
    public void onDisconnectedOnHandler(MediaSession.ControllerInfo controllerInfo) {
        MediaSession.ControllerCb controllerCb = controllerInfo.getControllerCb();
        controllerCb.getClass();
        p7a p7aVarG = ck4.k(this.controllerToSubscribedParentIds.l((Object) controllerCb)).iterator();
        while (p7aVarG.hasNext()) {
            lambda$onUnsubscribeOnHandler$3(controllerInfo, (String) p7aVarG.next());
        }
        super.onDisconnectedOnHandler(controllerInfo);
    }

    public zb5<LibraryResult<bj4<MediaItem>>> onGetChildrenOnHandler(MediaSession.ControllerInfo controllerInfo, String str, int i, int i2, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        if (Objects.equals(str, RECENT_LIBRARY_ROOT_MEDIA_ID)) {
            return !canResumePlaybackOnStart() ? ks3.d(LibraryResult.ofError(-6)) : getPlayerWrapper().getPlaybackState() == 1 ? getRecentMediaItemAtDeviceBootTime(controllerInfo, libraryParams) : ks3.d(LibraryResult.ofItemList(bj4.r(new MediaItem.Builder().setMediaId("androidx.media3.session.recent.item").setMediaMetadata(new MediaMetadata.Builder().setIsBrowsable(Boolean.FALSE).setIsPlayable(Boolean.TRUE).build()).build()), libraryParams));
        }
        zb5<LibraryResult<bj4<MediaItem>>> zb5VarOnGetChildren = this.callback.onGetChildren(this.instance, resolveControllerInfoForCallback(controllerInfo), str, i, i2, libraryParams);
        zb5VarOnGetChildren.addListener(new br(this, zb5VarOnGetChildren, controllerInfo, i2, 0), new m(this, 1));
        return zb5VarOnGetChildren;
    }

    public zb5<LibraryResult<MediaItem>> onGetItemOnHandler(MediaSession.ControllerInfo controllerInfo, String str) {
        zb5<LibraryResult<MediaItem>> zb5VarOnGetItem = this.callback.onGetItem(this.instance, resolveControllerInfoForCallback(controllerInfo), str);
        zb5VarOnGetItem.addListener(new bs(this, zb5VarOnGetItem, controllerInfo, 0), new m(this, 1));
        return zb5VarOnGetItem;
    }

    public zb5<LibraryResult<MediaItem>> onGetLibraryRootOnHandler(MediaSession.ControllerInfo controllerInfo, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        return (libraryParams != null && libraryParams.isRecent && isSystemUiController(controllerInfo)) ? !canResumePlaybackOnStart() ? ks3.d(LibraryResult.ofError(-6)) : ks3.d(LibraryResult.ofItem(new MediaItem.Builder().setMediaId(RECENT_LIBRARY_ROOT_MEDIA_ID).setMediaMetadata(new MediaMetadata.Builder().setIsBrowsable(Boolean.TRUE).setIsPlayable(Boolean.FALSE).build()).build(), libraryParams)) : this.callback.onGetLibraryRoot(this.instance, resolveControllerInfoForCallback(controllerInfo), libraryParams);
    }

    public zb5<LibraryResult<bj4<MediaItem>>> onGetSearchResultOnHandler(MediaSession.ControllerInfo controllerInfo, String str, int i, int i2, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        zb5<LibraryResult<bj4<MediaItem>>> zb5VarOnGetSearchResult = this.callback.onGetSearchResult(this.instance, resolveControllerInfoForCallback(controllerInfo), str, i, i2, libraryParams);
        zb5VarOnGetSearchResult.addListener(new br(this, zb5VarOnGetSearchResult, controllerInfo, i2, 1), new m(this, 1));
        return zb5VarOnGetSearchResult;
    }

    public zb5<LibraryResult<Void>> onSearchOnHandler(MediaSession.ControllerInfo controllerInfo, String str, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        zb5<LibraryResult<Void>> zb5VarOnSearch = this.callback.onSearch(this.instance, resolveControllerInfoForCallback(controllerInfo), str, libraryParams);
        int i = 1;
        zb5VarOnSearch.addListener(new bs(this, zb5VarOnSearch, controllerInfo, i), new m(this, i));
        return zb5VarOnSearch;
    }

    public zb5<LibraryResult<Void>> onSubscribeOnHandler(MediaSession.ControllerInfo controllerInfo, String str, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        MediaSession.ControllerCb controllerCb = controllerInfo.getControllerCb();
        controllerCb.getClass();
        this.controllerToSubscribedParentIds.put(controllerCb, str);
        this.parentIdToSubscribedControllers.put(str, controllerInfo);
        zb5<LibraryResult<Void>> zb5VarOnSubscribe = this.callback.onSubscribe(this.instance, resolveControllerInfoForCallback(controllerInfo), str, libraryParams);
        if7.l(zb5VarOnSubscribe, "onSubscribe must return non-null future");
        zb5VarOnSubscribe.addListener(new d(this, zb5VarOnSubscribe, controllerInfo, str, 3), new m(this, 1));
        return zb5VarOnSubscribe;
    }

    public zb5<LibraryResult<Void>> onUnsubscribeOnHandler(MediaSession.ControllerInfo controllerInfo, String str) {
        zb5<LibraryResult<Void>> zb5VarOnUnsubscribe = this.callback.onUnsubscribe(this.instance, resolveControllerInfoForCallback(controllerInfo), str);
        zb5VarOnUnsubscribe.addListener(new bp(this, controllerInfo, str, 2), new m(this, 1));
        return zb5VarOnUnsubscribe;
    }

    @Override // androidx.media3.session.MediaSessionImpl
    @rq6
    public MediaLibraryServiceLegacyStub getLegacyBrowserService() {
        return (MediaLibraryServiceLegacyStub) super.getLegacyBrowserService();
    }

    public void notifyChildrenChanged(MediaSession.ControllerInfo controllerInfo, String str, int i, @rq6 MediaLibraryService.LibraryParams libraryParams) {
        if (isMediaNotificationControllerConnected() && isMediaNotificationController(controllerInfo) && (controllerInfo = getSystemUiControllerInfo()) == null) {
            return;
        }
        dispatchRemoteControllerTaskWithoutReturn(controllerInfo, new au(this, str, i, libraryParams));
    }
}
