alexandroid/decompiled/jadx/sources/androidx/appcompat/widget/TintContextWrapper.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

100 lines
4 KiB
Java

package androidx.appcompat.widget;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.res.AssetManager;
import android.content.res.Resources;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
/* loaded from: classes.dex */
public class TintContextWrapper extends ContextWrapper {
private static final Object CACHE_LOCK = new Object();
private static ArrayList<WeakReference<TintContextWrapper>> sCache;
private final Resources mResources;
private final Resources.Theme mTheme;
private TintContextWrapper(@NonNull Context context) {
super(context);
if (!VectorEnabledTintResources.shouldBeUsed()) {
this.mResources = new TintResources(this, context.getResources());
this.mTheme = null;
return;
}
VectorEnabledTintResources vectorEnabledTintResources = new VectorEnabledTintResources(this, context.getResources());
this.mResources = vectorEnabledTintResources;
Resources.Theme newTheme = vectorEnabledTintResources.newTheme();
this.mTheme = newTheme;
newTheme.setTo(context.getTheme());
}
private static boolean shouldWrap(@NonNull Context context) {
if ((context instanceof TintContextWrapper) || (context.getResources() instanceof TintResources) || (context.getResources() instanceof VectorEnabledTintResources)) {
return false;
}
return VectorEnabledTintResources.shouldBeUsed();
}
public static Context wrap(@NonNull Context context) {
if (!shouldWrap(context)) {
return context;
}
synchronized (CACHE_LOCK) {
try {
ArrayList<WeakReference<TintContextWrapper>> arrayList = sCache;
if (arrayList == null) {
sCache = new ArrayList<>();
} else {
for (int size = arrayList.size() - 1; size >= 0; size--) {
WeakReference<TintContextWrapper> weakReference = sCache.get(size);
if (weakReference == null || weakReference.get() == null) {
sCache.remove(size);
}
}
for (int size2 = sCache.size() - 1; size2 >= 0; size2--) {
WeakReference<TintContextWrapper> weakReference2 = sCache.get(size2);
TintContextWrapper tintContextWrapper = weakReference2 != null ? weakReference2.get() : null;
if (tintContextWrapper != null && tintContextWrapper.getBaseContext() == context) {
return tintContextWrapper;
}
}
}
TintContextWrapper tintContextWrapper2 = new TintContextWrapper(context);
sCache.add(new WeakReference<>(tintContextWrapper2));
return tintContextWrapper2;
} catch (Throwable th) {
throw th;
}
}
}
@Override // android.content.ContextWrapper, android.content.Context
public AssetManager getAssets() {
return this.mResources.getAssets();
}
@Override // android.content.ContextWrapper, android.content.Context
public Resources getResources() {
return this.mResources;
}
@Override // android.content.ContextWrapper, android.content.Context
public Resources.Theme getTheme() {
Resources.Theme theme = this.mTheme;
return theme == null ? super.getTheme() : theme;
}
@Override // android.content.ContextWrapper, android.content.Context
public void setTheme(int i) {
Resources.Theme theme = this.mTheme;
if (theme == null) {
super.setTheme(i);
} else {
theme.applyStyle(i, true);
}
}
}