package com.bumptech.glide.request.target; import android.content.Context; import android.graphics.Point; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.Display; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.WindowManager; import com.bumptech.glide.request.Request; import com.bumptech.glide.util.Preconditions; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* loaded from: classes.dex */ public abstract class ViewTarget extends BaseTarget { private static Integer g; protected final T b; private final SizeDeterminer c; private View.OnAttachStateChangeListener d; private boolean e; private boolean f; public ViewTarget(T t) { Preconditions.a(t); this.b = t; this.c = new SizeDeterminer(t); } private Object d() { Integer num = g; return num == null ? this.b.getTag() : this.b.getTag(num.intValue()); } private void e() { View.OnAttachStateChangeListener onAttachStateChangeListener = this.d; if (onAttachStateChangeListener == null || this.f) { return; } this.b.addOnAttachStateChangeListener(onAttachStateChangeListener); this.f = true; } private void f() { View.OnAttachStateChangeListener onAttachStateChangeListener = this.d; if (onAttachStateChangeListener == null || !this.f) { return; } this.b.removeOnAttachStateChangeListener(onAttachStateChangeListener); this.f = false; } @Override // com.bumptech.glide.request.target.Target public void a(SizeReadyCallback sizeReadyCallback) { this.c.b(sizeReadyCallback); } @Override // com.bumptech.glide.request.target.BaseTarget, com.bumptech.glide.request.target.Target public void b(Drawable drawable) { super.b(drawable); e(); } @Override // com.bumptech.glide.request.target.BaseTarget, com.bumptech.glide.request.target.Target public void c(Drawable drawable) { super.c(drawable); this.c.b(); if (this.e) { return; } f(); } public String toString() { return "Target for: " + this.b; } static final class SizeDeterminer { static Integer e; private final View a; private final List b = new ArrayList(); boolean c; private SizeDeterminerLayoutListener d; private static final class SizeDeterminerLayoutListener implements ViewTreeObserver.OnPreDrawListener { private final WeakReference a; SizeDeterminerLayoutListener(SizeDeterminer sizeDeterminer) { this.a = new WeakReference<>(sizeDeterminer); } @Override // android.view.ViewTreeObserver.OnPreDrawListener public boolean onPreDraw() { if (Log.isLoggable("ViewTarget", 2)) { Log.v("ViewTarget", "OnGlobalLayoutListener called attachStateListener=" + this); } SizeDeterminer sizeDeterminer = this.a.get(); if (sizeDeterminer == null) { return true; } sizeDeterminer.a(); return true; } } SizeDeterminer(View view) { this.a = view; } private static int a(Context context) { if (e == null) { WindowManager windowManager = (WindowManager) context.getSystemService("window"); Preconditions.a(windowManager); Display defaultDisplay = windowManager.getDefaultDisplay(); Point point = new Point(); defaultDisplay.getSize(point); e = Integer.valueOf(Math.max(point.x, point.y)); } return e.intValue(); } private boolean a(int i) { return i > 0 || i == Integer.MIN_VALUE; } private void b(int i, int i2) { Iterator it = new ArrayList(this.b).iterator(); while (it.hasNext()) { ((SizeReadyCallback) it.next()).a(i, i2); } } private int c() { int paddingTop = this.a.getPaddingTop() + this.a.getPaddingBottom(); ViewGroup.LayoutParams layoutParams = this.a.getLayoutParams(); return a(this.a.getHeight(), layoutParams != null ? layoutParams.height : 0, paddingTop); } private int d() { int paddingLeft = this.a.getPaddingLeft() + this.a.getPaddingRight(); ViewGroup.LayoutParams layoutParams = this.a.getLayoutParams(); return a(this.a.getWidth(), layoutParams != null ? layoutParams.width : 0, paddingLeft); } void b(SizeReadyCallback sizeReadyCallback) { this.b.remove(sizeReadyCallback); } void b() { ViewTreeObserver viewTreeObserver = this.a.getViewTreeObserver(); if (viewTreeObserver.isAlive()) { viewTreeObserver.removeOnPreDrawListener(this.d); } this.d = null; this.b.clear(); } void a() { if (this.b.isEmpty()) { return; } int d = d(); int c = c(); if (a(d, c)) { b(d, c); b(); } } void a(SizeReadyCallback sizeReadyCallback) { int d = d(); int c = c(); if (a(d, c)) { sizeReadyCallback.a(d, c); return; } if (!this.b.contains(sizeReadyCallback)) { this.b.add(sizeReadyCallback); } if (this.d == null) { ViewTreeObserver viewTreeObserver = this.a.getViewTreeObserver(); this.d = new SizeDeterminerLayoutListener(this); viewTreeObserver.addOnPreDrawListener(this.d); } } private boolean a(int i, int i2) { return a(i) && a(i2); } private int a(int i, int i2, int i3) { int i4 = i2 - i3; if (i4 > 0) { return i4; } if (this.c && this.a.isLayoutRequested()) { return 0; } int i5 = i - i3; if (i5 > 0) { return i5; } if (this.a.isLayoutRequested() || i2 != -2) { return 0; } if (Log.isLoggable("ViewTarget", 4)) { Log.i("ViewTarget", "Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions."); } return a(this.a.getContext()); } } @Override // com.bumptech.glide.request.target.BaseTarget, com.bumptech.glide.request.target.Target public void a(Request request) { a((Object) request); } private void a(Object obj) { Integer num = g; if (num == null) { this.b.setTag(obj); } else { this.b.setTag(num.intValue(), obj); } } @Override // com.bumptech.glide.request.target.Target public void b(SizeReadyCallback sizeReadyCallback) { this.c.a(sizeReadyCallback); } @Override // com.bumptech.glide.request.target.BaseTarget, com.bumptech.glide.request.target.Target public Request c() { Object d = d(); if (d == null) { return null; } if (d instanceof Request) { return (Request) d; } throw new IllegalArgumentException("You must not call setTag() on a view Glide is targeting"); } }