Rabbit-R1/switch port/java/sources/androidx/appcompat/app/ResourcesFlusher.java
2024-05-21 17:08:36 -04:00

196 lines
7.5 KiB
Java

package androidx.appcompat.app;
import android.content.res.Resources;
import android.util.Log;
import android.util.LongSparseArray;
import java.lang.reflect.Field;
import java.util.Map;
/* loaded from: classes.dex */
class ResourcesFlusher {
private static final String TAG = "ResourcesFlusher";
private static Field sDrawableCacheField;
private static boolean sDrawableCacheFieldFetched;
private static Field sResourcesImplField;
private static boolean sResourcesImplFieldFetched;
private static Class<?> sThemedResourceCacheClazz;
private static boolean sThemedResourceCacheClazzFetched;
private static Field sThemedResourceCache_mUnthemedEntriesField;
private static boolean sThemedResourceCache_mUnthemedEntriesFieldFetched;
static void flush(Resources resources) {
}
private static void flushLollipops(Resources resources) {
Map map;
if (!sDrawableCacheFieldFetched) {
try {
Field declaredField = Resources.class.getDeclaredField("mDrawableCache");
sDrawableCacheField = declaredField;
declaredField.setAccessible(true);
} catch (NoSuchFieldException e) {
Log.e(TAG, "Could not retrieve Resources#mDrawableCache field", e);
}
sDrawableCacheFieldFetched = true;
}
Field field = sDrawableCacheField;
if (field != null) {
try {
map = (Map) field.get(resources);
} catch (IllegalAccessException e2) {
Log.e(TAG, "Could not retrieve value from Resources#mDrawableCache", e2);
map = null;
}
if (map != null) {
map.clear();
}
}
}
/* JADX WARN: Removed duplicated region for block: B:14:0x002f A[RETURN] */
/* JADX WARN: Removed duplicated region for block: B:16:0x0030 */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
private static void flushMarshmallows(android.content.res.Resources r4) {
/*
boolean r0 = androidx.appcompat.app.ResourcesFlusher.sDrawableCacheFieldFetched
java.lang.String r1 = "ResourcesFlusher"
if (r0 != 0) goto L1d
r0 = 1
java.lang.Class<android.content.res.Resources> r2 = android.content.res.Resources.class
java.lang.String r3 = "mDrawableCache"
java.lang.reflect.Field r2 = r2.getDeclaredField(r3) // Catch: java.lang.NoSuchFieldException -> L15
androidx.appcompat.app.ResourcesFlusher.sDrawableCacheField = r2 // Catch: java.lang.NoSuchFieldException -> L15
r2.setAccessible(r0) // Catch: java.lang.NoSuchFieldException -> L15
goto L1b
L15:
r2 = move-exception
java.lang.String r3 = "Could not retrieve Resources#mDrawableCache field"
android.util.Log.e(r1, r3, r2)
L1b:
androidx.appcompat.app.ResourcesFlusher.sDrawableCacheFieldFetched = r0
L1d:
java.lang.reflect.Field r0 = androidx.appcompat.app.ResourcesFlusher.sDrawableCacheField
if (r0 == 0) goto L2c
java.lang.Object r4 = r0.get(r4) // Catch: java.lang.IllegalAccessException -> L26
goto L2d
L26:
r4 = move-exception
java.lang.String r0 = "Could not retrieve value from Resources#mDrawableCache"
android.util.Log.e(r1, r0, r4)
L2c:
r4 = 0
L2d:
if (r4 != 0) goto L30
return
L30:
flushThemedResourcesCache(r4)
return
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.appcompat.app.ResourcesFlusher.flushMarshmallows(android.content.res.Resources):void");
}
private static void flushNougats(Resources resources) {
Object obj;
if (!sResourcesImplFieldFetched) {
try {
Field declaredField = Resources.class.getDeclaredField("mResourcesImpl");
sResourcesImplField = declaredField;
declaredField.setAccessible(true);
} catch (NoSuchFieldException e) {
Log.e(TAG, "Could not retrieve Resources#mResourcesImpl field", e);
}
sResourcesImplFieldFetched = true;
}
Field field = sResourcesImplField;
if (field == null) {
return;
}
Object obj2 = null;
try {
obj = field.get(resources);
} catch (IllegalAccessException e2) {
Log.e(TAG, "Could not retrieve value from Resources#mResourcesImpl", e2);
obj = null;
}
if (obj == null) {
return;
}
if (!sDrawableCacheFieldFetched) {
try {
Field declaredField2 = obj.getClass().getDeclaredField("mDrawableCache");
sDrawableCacheField = declaredField2;
declaredField2.setAccessible(true);
} catch (NoSuchFieldException e3) {
Log.e(TAG, "Could not retrieve ResourcesImpl#mDrawableCache field", e3);
}
sDrawableCacheFieldFetched = true;
}
Field field2 = sDrawableCacheField;
if (field2 != null) {
try {
obj2 = field2.get(obj);
} catch (IllegalAccessException e4) {
Log.e(TAG, "Could not retrieve value from ResourcesImpl#mDrawableCache", e4);
}
}
if (obj2 != null) {
flushThemedResourcesCache(obj2);
}
}
private static void flushThemedResourcesCache(Object obj) {
LongSparseArray longSparseArray;
if (!sThemedResourceCacheClazzFetched) {
try {
sThemedResourceCacheClazz = Class.forName("android.content.res.ThemedResourceCache");
} catch (ClassNotFoundException e) {
Log.e(TAG, "Could not find ThemedResourceCache class", e);
}
sThemedResourceCacheClazzFetched = true;
}
Class<?> cls = sThemedResourceCacheClazz;
if (cls == null) {
return;
}
if (!sThemedResourceCache_mUnthemedEntriesFieldFetched) {
try {
Field declaredField = cls.getDeclaredField("mUnthemedEntries");
sThemedResourceCache_mUnthemedEntriesField = declaredField;
declaredField.setAccessible(true);
} catch (NoSuchFieldException e2) {
Log.e(TAG, "Could not retrieve ThemedResourceCache#mUnthemedEntries field", e2);
}
sThemedResourceCache_mUnthemedEntriesFieldFetched = true;
}
Field field = sThemedResourceCache_mUnthemedEntriesField;
if (field == null) {
return;
}
try {
longSparseArray = (LongSparseArray) field.get(obj);
} catch (IllegalAccessException e3) {
Log.e(TAG, "Could not retrieve value from ThemedResourceCache#mUnthemedEntries", e3);
longSparseArray = null;
}
if (longSparseArray != null) {
Api16Impl.clear(longSparseArray);
}
}
private ResourcesFlusher() {
}
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes.dex */
public static class Api16Impl {
private Api16Impl() {
}
static void clear(LongSparseArray longSparseArray) {
longSparseArray.clear();
}
}
}