package com.facebook.internal; import android.graphics.Bitmap; import android.net.Uri; import android.os.Handler; import android.os.Looper; import androidx.annotation.VisibleForTesting; import com.facebook.internal.ImageRequest; import com.facebook.internal.WorkQueue; import com.facebook.internal.instrument.crashshield.CrashShieldHandler; import java.util.HashMap; import java.util.Map; import kotlin.Unit; import kotlin.jvm.internal.DefaultConstructorMarker; import kotlin.jvm.internal.Intrinsics; /* loaded from: classes2.dex */ public final class ImageDownloader { private static final int CACHE_READ_QUEUE_MAX_CONCURRENT = 2; private static final int DOWNLOAD_QUEUE_MAX_CONCURRENT = 8; private static Handler handler; public static final ImageDownloader INSTANCE = new ImageDownloader(); private static final WorkQueue downloadQueue = new WorkQueue(8, null, 2, null); private static final WorkQueue cacheReadQueue = new WorkQueue(2, null, 2, null); private static final Map pendingRequests = new HashMap(); @VisibleForTesting(otherwise = 2) public final Map getPendingRequests() { return pendingRequests; } private ImageDownloader() { } private final synchronized Handler getHandler() { try { if (handler == null) { handler = new Handler(Looper.getMainLooper()); } } catch (Throwable th) { throw th; } return handler; } public static final void downloadAsync(ImageRequest imageRequest) { if (imageRequest == null) { return; } RequestKey requestKey = new RequestKey(imageRequest.getImageUri(), imageRequest.getCallerTag()); Map map = pendingRequests; synchronized (map) { try { DownloaderContext downloaderContext = map.get(requestKey); if (downloaderContext != null) { downloaderContext.setRequest(imageRequest); downloaderContext.setCancelled(false); WorkQueue.WorkItem workItem = downloaderContext.getWorkItem(); if (workItem != null) { workItem.moveToFront(); Unit unit = Unit.INSTANCE; } } else { INSTANCE.enqueueCacheRead(imageRequest, requestKey, imageRequest.isCachedRedirectAllowed()); Unit unit2 = Unit.INSTANCE; } } finally { } } } public static final boolean cancelRequest(ImageRequest request) { boolean z; Intrinsics.checkNotNullParameter(request, "request"); RequestKey requestKey = new RequestKey(request.getImageUri(), request.getCallerTag()); Map map = pendingRequests; synchronized (map) { try { DownloaderContext downloaderContext = map.get(requestKey); if (downloaderContext != null) { WorkQueue.WorkItem workItem = downloaderContext.getWorkItem(); z = true; if (workItem != null && workItem.cancel()) { map.remove(requestKey); } else { downloaderContext.setCancelled(true); } } else { z = false; } Unit unit = Unit.INSTANCE; } catch (Throwable th) { throw th; } } return z; } public static final void prioritizeRequest(ImageRequest request) { WorkQueue.WorkItem workItem; Intrinsics.checkNotNullParameter(request, "request"); RequestKey requestKey = new RequestKey(request.getImageUri(), request.getCallerTag()); Map map = pendingRequests; synchronized (map) { try { DownloaderContext downloaderContext = map.get(requestKey); if (downloaderContext != null && (workItem = downloaderContext.getWorkItem()) != null) { workItem.moveToFront(); } Unit unit = Unit.INSTANCE; } catch (Throwable th) { throw th; } } } public static final void clearCache() { ImageResponseCache.clearCache(); UrlRedirectCache.clearCache(); } private final void enqueueCacheRead(ImageRequest imageRequest, RequestKey requestKey, boolean z) { enqueueRequest(imageRequest, requestKey, cacheReadQueue, new CacheReadWorkItem(requestKey, z)); } private final void enqueueDownload(ImageRequest imageRequest, RequestKey requestKey) { enqueueRequest(imageRequest, requestKey, downloadQueue, new DownloadImageWorkItem(requestKey)); } private final void enqueueRequest(ImageRequest imageRequest, RequestKey requestKey, WorkQueue workQueue, Runnable runnable) { Map map = pendingRequests; synchronized (map) { DownloaderContext downloaderContext = new DownloaderContext(imageRequest); map.put(requestKey, downloaderContext); downloaderContext.setWorkItem(WorkQueue.addActiveWorkItem$default(workQueue, runnable, false, 2, null)); Unit unit = Unit.INSTANCE; } } private final void issueResponse(RequestKey requestKey, final Exception exc, final Bitmap bitmap, final boolean z) { Handler handler2; DownloaderContext removePendingRequest = removePendingRequest(requestKey); if (removePendingRequest == null || removePendingRequest.isCancelled()) { return; } final ImageRequest request = removePendingRequest.getRequest(); final ImageRequest.Callback callback = request == null ? null : request.getCallback(); if (callback == null || (handler2 = getHandler()) == null) { return; } handler2.post(new Runnable() { // from class: com.facebook.internal.ImageDownloader$$ExternalSyntheticLambda0 @Override // java.lang.Runnable public final void run() { ImageDownloader.m573issueResponse$lambda4(ImageRequest.this, exc, z, bitmap, callback); } }); } /* JADX INFO: Access modifiers changed from: private */ /* renamed from: issueResponse$lambda-4, reason: not valid java name */ public static final void m573issueResponse$lambda4(ImageRequest request, Exception exc, boolean z, Bitmap bitmap, ImageRequest.Callback callback) { Intrinsics.checkNotNullParameter(request, "$request"); callback.onCompleted(new ImageResponse(request, exc, z, bitmap)); } /* JADX INFO: Access modifiers changed from: private */ /* JADX WARN: Removed duplicated region for block: B:11:0x0027 */ /* JADX WARN: Removed duplicated region for block: B:14:0x0032 */ /* JADX WARN: Removed duplicated region for block: B:9:0x001b */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public final void readFromCache(com.facebook.internal.ImageDownloader.RequestKey r4, boolean r5) { /* r3 = this; r0 = 0 r1 = 0 if (r5 == 0) goto L18 com.facebook.internal.UrlRedirectCache r5 = com.facebook.internal.UrlRedirectCache.INSTANCE android.net.Uri r5 = r4.getUri() android.net.Uri r5 = com.facebook.internal.UrlRedirectCache.getRedirectedUri(r5) if (r5 == 0) goto L18 java.io.InputStream r5 = com.facebook.internal.ImageResponseCache.getCachedImageStream(r5) if (r5 == 0) goto L19 r1 = 1 goto L19 L18: r5 = r0 L19: if (r1 != 0) goto L25 com.facebook.internal.ImageResponseCache r5 = com.facebook.internal.ImageResponseCache.INSTANCE android.net.Uri r5 = r4.getUri() java.io.InputStream r5 = com.facebook.internal.ImageResponseCache.getCachedImageStream(r5) L25: if (r5 == 0) goto L32 android.graphics.Bitmap r2 = android.graphics.BitmapFactory.decodeStream(r5) com.facebook.internal.Utility.closeQuietly(r5) r3.issueResponse(r4, r0, r2, r1) goto L4a L32: com.facebook.internal.ImageDownloader$DownloaderContext r5 = r3.removePendingRequest(r4) if (r5 != 0) goto L39 goto L3d L39: com.facebook.internal.ImageRequest r0 = r5.getRequest() L3d: if (r5 == 0) goto L4a boolean r5 = r5.isCancelled() if (r5 != 0) goto L4a if (r0 == 0) goto L4a r3.enqueueDownload(r0, r4) L4a: return */ throw new UnsupportedOperationException("Method not decompiled: com.facebook.internal.ImageDownloader.readFromCache(com.facebook.internal.ImageDownloader$RequestKey, boolean):void"); } /* JADX INFO: Access modifiers changed from: private */ /* JADX WARN: Removed duplicated region for block: B:28:0x00e5 */ /* JADX WARN: Removed duplicated region for block: B:31:? A[RETURN, SYNTHETIC] */ /* JADX WARN: Type inference failed for: r4v6, types: [int] */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public final void download(com.facebook.internal.ImageDownloader.RequestKey r11) { /* Method dump skipped, instructions count: 233 To view this dump add '--comments-level debug' option */ throw new UnsupportedOperationException("Method not decompiled: com.facebook.internal.ImageDownloader.download(com.facebook.internal.ImageDownloader$RequestKey):void"); } private final DownloaderContext removePendingRequest(RequestKey requestKey) { DownloaderContext remove; Map map = pendingRequests; synchronized (map) { remove = map.remove(requestKey); } return remove; } @VisibleForTesting(otherwise = 2) public static final class RequestKey { public static final Companion Companion = new Companion(null); private static final int HASH_MULTIPLIER = 37; private static final int HASH_SEED = 29; private Object tag; private Uri uri; public final Object getTag() { return this.tag; } public final Uri getUri() { return this.uri; } public final void setTag(Object obj) { Intrinsics.checkNotNullParameter(obj, ""); this.tag = obj; } public final void setUri(Uri uri) { Intrinsics.checkNotNullParameter(uri, ""); this.uri = uri; } public RequestKey(Uri uri, Object tag) { Intrinsics.checkNotNullParameter(uri, "uri"); Intrinsics.checkNotNullParameter(tag, "tag"); this.uri = uri; this.tag = tag; } public int hashCode() { return ((1073 + this.uri.hashCode()) * 37) + this.tag.hashCode(); } public boolean equals(Object obj) { if (obj == null || !(obj instanceof RequestKey)) { return false; } RequestKey requestKey = (RequestKey) obj; return requestKey.uri == this.uri && requestKey.tag == this.tag; } public static final class Companion { public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) { this(); } private Companion() { } } } @VisibleForTesting(otherwise = 2) public static final class DownloaderContext { private boolean isCancelled; private ImageRequest request; private WorkQueue.WorkItem workItem; public final ImageRequest getRequest() { return this.request; } public final WorkQueue.WorkItem getWorkItem() { return this.workItem; } public final boolean isCancelled() { return this.isCancelled; } public final void setCancelled(boolean z) { this.isCancelled = z; } public final void setRequest(ImageRequest imageRequest) { Intrinsics.checkNotNullParameter(imageRequest, ""); this.request = imageRequest; } public final void setWorkItem(WorkQueue.WorkItem workItem) { this.workItem = workItem; } public DownloaderContext(ImageRequest request) { Intrinsics.checkNotNullParameter(request, "request"); this.request = request; } } public static final class CacheReadWorkItem implements Runnable { private final boolean allowCachedRedirects; private final RequestKey key; public CacheReadWorkItem(RequestKey key, boolean z) { Intrinsics.checkNotNullParameter(key, "key"); this.key = key; this.allowCachedRedirects = z; } @Override // java.lang.Runnable public void run() { if (CrashShieldHandler.isObjectCrashing(this)) { return; } try { if (CrashShieldHandler.isObjectCrashing(this)) { return; } try { if (CrashShieldHandler.isObjectCrashing(this)) { return; } try { ImageDownloader.INSTANCE.readFromCache(this.key, this.allowCachedRedirects); } catch (Throwable th) { CrashShieldHandler.handleThrowable(th, this); } } catch (Throwable th2) { CrashShieldHandler.handleThrowable(th2, this); } } catch (Throwable th3) { CrashShieldHandler.handleThrowable(th3, this); } } } public static final class DownloadImageWorkItem implements Runnable { private final RequestKey key; public DownloadImageWorkItem(RequestKey key) { Intrinsics.checkNotNullParameter(key, "key"); this.key = key; } @Override // java.lang.Runnable public void run() { if (CrashShieldHandler.isObjectCrashing(this)) { return; } try { if (CrashShieldHandler.isObjectCrashing(this)) { return; } try { if (CrashShieldHandler.isObjectCrashing(this)) { return; } try { ImageDownloader.INSTANCE.download(this.key); } catch (Throwable th) { CrashShieldHandler.handleThrowable(th, this); } } catch (Throwable th2) { CrashShieldHandler.handleThrowable(th2, this); } } catch (Throwable th3) { CrashShieldHandler.handleThrowable(th3, this); } } } }