alexandroid/decompiled/jadx/sources/com/bumptech/glide/RequestManager.java
KaKi87 a47fad5135 📦 Add decompiled Alexa 2.2.730155.0 (jadx, apktool, Hermes strings)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-07 00:04:16 +01:00

432 lines
15 KiB
Java

package com.bumptech.glide;
import android.content.ComponentCallbacks2;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.view.View;
import androidx.annotation.CheckResult;
import androidx.annotation.DrawableRes;
import androidx.annotation.GuardedBy;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RawRes;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.gif.GifDrawable;
import com.bumptech.glide.manager.ConnectivityMonitor;
import com.bumptech.glide.manager.ConnectivityMonitorFactory;
import com.bumptech.glide.manager.Lifecycle;
import com.bumptech.glide.manager.LifecycleListener;
import com.bumptech.glide.manager.RequestManagerTreeNode;
import com.bumptech.glide.manager.RequestTracker;
import com.bumptech.glide.manager.TargetTracker;
import com.bumptech.glide.request.BaseRequestOptions;
import com.bumptech.glide.request.Request;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.CustomViewTarget;
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
import com.bumptech.glide.util.Util;
import java.io.File;
import java.net.URL;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import org.apache.commons.text.StringSubstitutor;
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
/* loaded from: classes6.dex */
public class RequestManager implements ComponentCallbacks2, LifecycleListener, ModelTypes<RequestBuilder<Drawable>> {
private static final RequestOptions DECODE_TYPE_BITMAP = RequestOptions.decodeTypeOf(Bitmap.class).lock();
private static final RequestOptions DECODE_TYPE_GIF = RequestOptions.decodeTypeOf(GifDrawable.class).lock();
private static final RequestOptions DOWNLOAD_ONLY_OPTIONS = RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.DATA).priority(Priority.LOW).skipMemoryCache(true);
private final Runnable addSelfToLifecycle;
private boolean clearOnStop;
private final ConnectivityMonitor connectivityMonitor;
protected final Context context;
private final CopyOnWriteArrayList<RequestListener<Object>> defaultRequestListeners;
protected final Glide glide;
final Lifecycle lifecycle;
private boolean pauseAllRequestsOnTrimMemoryModerate;
@GuardedBy("this")
private RequestOptions requestOptions;
@GuardedBy("this")
private final RequestTracker requestTracker;
@GuardedBy("this")
private final TargetTracker targetTracker;
@GuardedBy("this")
private final RequestManagerTreeNode treeNode;
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
public class RequestManagerConnectivityListener implements ConnectivityMonitor.ConnectivityListener {
@GuardedBy("RequestManager.this")
private final RequestTracker requestTracker;
public RequestManagerConnectivityListener(@NonNull RequestTracker requestTracker) {
this.requestTracker = requestTracker;
}
@Override // com.bumptech.glide.manager.ConnectivityMonitor.ConnectivityListener
public void onConnectivityChanged(boolean z) {
if (z) {
synchronized (RequestManager.this) {
this.requestTracker.restartRequests();
}
}
}
}
public RequestManager(Glide glide, Lifecycle lifecycle, RequestManagerTreeNode requestManagerTreeNode, RequestTracker requestTracker, ConnectivityMonitorFactory connectivityMonitorFactory, Context context) {
this.targetTracker = new TargetTracker();
Runnable runnable = new Runnable() { // from class: com.bumptech.glide.RequestManager.1
@Override // java.lang.Runnable
public void run() {
RequestManager requestManager = RequestManager.this;
requestManager.lifecycle.addListener(requestManager);
}
};
this.addSelfToLifecycle = runnable;
this.glide = glide;
this.lifecycle = lifecycle;
this.treeNode = requestManagerTreeNode;
this.requestTracker = requestTracker;
this.context = context;
ConnectivityMonitor build = connectivityMonitorFactory.build(context.getApplicationContext(), new RequestManagerConnectivityListener(requestTracker));
this.connectivityMonitor = build;
glide.registerRequestManager(this);
if (Util.isOnBackgroundThread()) {
Util.postOnUiThread(runnable);
} else {
lifecycle.addListener(this);
}
lifecycle.addListener(build);
this.defaultRequestListeners = new CopyOnWriteArrayList<>(glide.getGlideContext().getDefaultRequestListeners());
setRequestOptions(glide.getGlideContext().getDefaultRequestOptions());
}
private synchronized void clearRequests() {
try {
Iterator<Target<?>> it2 = this.targetTracker.getAll().iterator();
while (it2.hasNext()) {
clear(it2.next());
}
this.targetTracker.clear();
} catch (Throwable th) {
throw th;
}
}
private void untrackOrDelegate(@NonNull Target<?> target) {
boolean untrack = untrack(target);
Request request = target.getRequest();
if (untrack || this.glide.removeFromManagers(target) || request == null) {
return;
}
target.setRequest(null);
request.clear();
}
private synchronized void updateRequestOptions(@NonNull RequestOptions requestOptions) {
this.requestOptions = this.requestOptions.apply(requestOptions);
}
public RequestManager addDefaultRequestListener(RequestListener<Object> requestListener) {
this.defaultRequestListeners.add(requestListener);
return this;
}
@NonNull
public synchronized RequestManager applyDefaultRequestOptions(@NonNull RequestOptions requestOptions) {
updateRequestOptions(requestOptions);
return this;
}
@NonNull
@CheckResult
public <ResourceType> RequestBuilder<ResourceType> as(@NonNull Class<ResourceType> cls) {
return new RequestBuilder<>(this.glide, this, cls, this.context);
}
@NonNull
@CheckResult
public RequestBuilder<Bitmap> asBitmap() {
return as(Bitmap.class).apply((BaseRequestOptions<?>) DECODE_TYPE_BITMAP);
}
@NonNull
@CheckResult
public RequestBuilder<Drawable> asDrawable() {
return as(Drawable.class);
}
@NonNull
@CheckResult
public RequestBuilder<File> asFile() {
return as(File.class).apply((BaseRequestOptions<?>) RequestOptions.skipMemoryCacheOf(true));
}
@NonNull
@CheckResult
public RequestBuilder<GifDrawable> asGif() {
return as(GifDrawable.class).apply((BaseRequestOptions<?>) DECODE_TYPE_GIF);
}
public void clear(@NonNull View view) {
clear(new ClearTarget(view));
}
@NonNull
public synchronized RequestManager clearOnStop() {
this.clearOnStop = true;
return this;
}
@NonNull
@CheckResult
public RequestBuilder<File> download(@Nullable Object obj) {
return downloadOnly().load(obj);
}
@NonNull
@CheckResult
public RequestBuilder<File> downloadOnly() {
return as(File.class).apply((BaseRequestOptions<?>) DOWNLOAD_ONLY_OPTIONS);
}
public List<RequestListener<Object>> getDefaultRequestListeners() {
return this.defaultRequestListeners;
}
public synchronized RequestOptions getDefaultRequestOptions() {
return this.requestOptions;
}
@NonNull
public <T> TransitionOptions<?, T> getDefaultTransitionOptions(Class<T> cls) {
return this.glide.getGlideContext().getDefaultTransitionOptions(cls);
}
public synchronized boolean isPaused() {
return this.requestTracker.isPaused();
}
@Override // com.bumptech.glide.ModelTypes
@NonNull
@CheckResult
public RequestBuilder<Drawable> load(@Nullable Bitmap bitmap) {
return asDrawable().load(bitmap);
}
@Override // com.bumptech.glide.manager.LifecycleListener
public synchronized void onDestroy() {
this.targetTracker.onDestroy();
clearRequests();
this.requestTracker.clearRequests();
this.lifecycle.removeListener(this);
this.lifecycle.removeListener(this.connectivityMonitor);
Util.removeCallbacksOnUiThread(this.addSelfToLifecycle);
this.glide.unregisterRequestManager(this);
}
@Override // com.bumptech.glide.manager.LifecycleListener
public synchronized void onStart() {
resumeRequests();
this.targetTracker.onStart();
}
@Override // com.bumptech.glide.manager.LifecycleListener
public synchronized void onStop() {
try {
this.targetTracker.onStop();
if (this.clearOnStop) {
clearRequests();
} else {
pauseRequests();
}
} catch (Throwable th) {
throw th;
}
}
@Override // android.content.ComponentCallbacks2
public void onTrimMemory(int i) {
if (i == 60 && this.pauseAllRequestsOnTrimMemoryModerate) {
pauseAllRequestsRecursive();
}
}
public synchronized void pauseAllRequests() {
this.requestTracker.pauseAllRequests();
}
public synchronized void pauseAllRequestsRecursive() {
pauseAllRequests();
Iterator<RequestManager> it2 = this.treeNode.getDescendants().iterator();
while (it2.hasNext()) {
it2.next().pauseAllRequests();
}
}
public synchronized void pauseRequests() {
this.requestTracker.pauseRequests();
}
public synchronized void pauseRequestsRecursive() {
pauseRequests();
Iterator<RequestManager> it2 = this.treeNode.getDescendants().iterator();
while (it2.hasNext()) {
it2.next().pauseRequests();
}
}
public synchronized void resumeRequests() {
this.requestTracker.resumeRequests();
}
public synchronized void resumeRequestsRecursive() {
Util.assertMainThread();
resumeRequests();
Iterator<RequestManager> it2 = this.treeNode.getDescendants().iterator();
while (it2.hasNext()) {
it2.next().resumeRequests();
}
}
@NonNull
public synchronized RequestManager setDefaultRequestOptions(@NonNull RequestOptions requestOptions) {
setRequestOptions(requestOptions);
return this;
}
public void setPauseAllRequestsOnTrimMemoryModerate(boolean z) {
this.pauseAllRequestsOnTrimMemoryModerate = z;
}
public synchronized void setRequestOptions(@NonNull RequestOptions requestOptions) {
this.requestOptions = requestOptions.mo16516clone().autoClone();
}
public synchronized String toString() {
return super.toString() + "{tracker=" + this.requestTracker + ", treeNode=" + this.treeNode + StringSubstitutor.DEFAULT_VAR_END;
}
public synchronized void track(@NonNull Target<?> target, @NonNull Request request) {
this.targetTracker.track(target);
this.requestTracker.runRequest(request);
}
public synchronized boolean untrack(@NonNull Target<?> target) {
Request request = target.getRequest();
if (request == null) {
return true;
}
if (!this.requestTracker.clearAndRemove(request)) {
return false;
}
this.targetTracker.untrack(target);
target.setRequest(null);
return true;
}
public void clear(@Nullable Target<?> target) {
if (target == null) {
return;
}
untrackOrDelegate(target);
}
@Override // android.content.ComponentCallbacks
public void onLowMemory() {
}
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
public static class ClearTarget extends CustomViewTarget<View, Object> {
public ClearTarget(@NonNull View view) {
super(view);
}
@Override // com.bumptech.glide.request.target.Target
public void onLoadFailed(@Nullable Drawable drawable) {
}
@Override // com.bumptech.glide.request.target.CustomViewTarget
public void onResourceCleared(@Nullable Drawable drawable) {
}
@Override // com.bumptech.glide.request.target.Target
public void onResourceReady(@NonNull Object obj, @Nullable Transition<? super Object> transition) {
}
}
@Override // android.content.ComponentCallbacks
public void onConfigurationChanged(Configuration configuration) {
}
@Override // com.bumptech.glide.ModelTypes
@NonNull
@CheckResult
public RequestBuilder<Drawable> load(@Nullable Drawable drawable) {
return asDrawable().load(drawable);
}
@Override // com.bumptech.glide.ModelTypes
@NonNull
@CheckResult
public RequestBuilder<Drawable> load(@Nullable String str) {
return asDrawable().load(str);
}
@Override // com.bumptech.glide.ModelTypes
@NonNull
@CheckResult
public RequestBuilder<Drawable> load(@Nullable Uri uri) {
return asDrawable().load(uri);
}
@Override // com.bumptech.glide.ModelTypes
@NonNull
@CheckResult
public RequestBuilder<Drawable> load(@Nullable File file) {
return asDrawable().load(file);
}
@Override // com.bumptech.glide.ModelTypes
@NonNull
@CheckResult
public RequestBuilder<Drawable> load(@Nullable @DrawableRes @RawRes Integer num) {
return asDrawable().load(num);
}
@Override // com.bumptech.glide.ModelTypes
@CheckResult
@Deprecated
public RequestBuilder<Drawable> load(@Nullable URL url) {
return asDrawable().load(url);
}
@Override // com.bumptech.glide.ModelTypes
@NonNull
@CheckResult
public RequestBuilder<Drawable> load(@Nullable byte[] bArr) {
return asDrawable().load(bArr);
}
@Override // com.bumptech.glide.ModelTypes
@NonNull
@CheckResult
public RequestBuilder<Drawable> load(@Nullable Object obj) {
return asDrawable().load(obj);
}
public RequestManager(@NonNull Glide glide, @NonNull Lifecycle lifecycle, @NonNull RequestManagerTreeNode requestManagerTreeNode, @NonNull Context context) {
this(glide, lifecycle, requestManagerTreeNode, new RequestTracker(), glide.getConnectivityMonitorFactory(), context);
}
}