mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-30 11:02:31 -06:00
197 lines
7.5 KiB
Java
197 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();
|
||
|
}
|
||
|
}
|
||
|
}
|