DelegateResources.smali
.class public Lorg/acdd/runtime/DelegateResources;
.super Landroid/content/res/Resources;
.source "DelegateResources.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/acdd/runtime/DelegateResources$DelegateResourcesGetter;
}
.end annotation
# static fields
.field private static final ADD_ASSERT_PATH_RETRY_TIMES:I = 0x4
.field private static final WebViewGoogleAssetPath:Ljava/lang/String; = "/system/app/WebViewGoogle/WebViewGoogle.apk"
.field private static assetPathsHistory:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private static ignoreOpt:Z
.field private static final ignoreOptBrands:[Ljava/lang/String;
.field private static lock:Ljava/lang/Object;
.field private static final log:Lorg/acdd/log/Logger;
.field private static mOriginAssetsPath:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
# instance fields
.field private mALDC:Ljava/lang/Object;
.field private mAccessLock:Ljava/lang/Object;
.field private mClearALDCLocked:Ljava/lang/reflect/Method;
.field private mClearDrawableCacheLocked:Ljava/lang/reflect/Method;
.field private mClearDrawableCachesLocked:Ljava/lang/reflect/Method;
.field private mColorDrawableCache:Ljava/lang/Object;
.field private mDrawableCache:Ljava/lang/Object;
.field private mEnableClearDrawable:Z
.field private mOnConfigurationChange:Ljava/lang/reflect/Method;
.field private resIdentifierMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 6
.prologue
const/4 v5, 0x1
const/4 v0, 0x0
.line 86
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/String;
const-string v2, "Sony"
aput-object v2, v1, v0
const-string v2, "SEMC"
aput-object v2, v1, v5
sput-object v1, Lorg/acdd/runtime/DelegateResources;->ignoreOptBrands:[Ljava/lang/String;
.line 124
invoke-static {}, Lorg/acdd/log/LoggerFactory;->getInstance()Lorg/acdd/log/Logger;
move-result-object v1
sput-object v1, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
.line 125
new-instance v1, Ljava/lang/Object;
invoke-direct {v1}, Ljava/lang/Object;-><init>()V
sput-object v1, Lorg/acdd/runtime/DelegateResources;->lock:Ljava/lang/Object;
.line 126
sget-object v1, Lorg/acdd/runtime/DelegateResources;->ignoreOptBrands:[Ljava/lang/String;
array-length v2, v1
:goto_1f
if-ge v0, v2, :cond_2d
aget-object v3, v1, v0
.line 127
sget-object v4, Landroid/os/Build;->BRAND:Ljava/lang/String;
invoke-virtual {v4, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_31
.line 128
sput-boolean v5, Lorg/acdd/runtime/DelegateResources;->ignoreOpt:Z
.line 133
:cond_2d
const/4 v0, 0x0
sput-object v0, Lorg/acdd/runtime/DelegateResources;->mOriginAssetsPath:Ljava/util/List;
.line 134
return-void
.line 126
:cond_31
add-int/lit8 v0, v0, 0x1
goto :goto_1f
.end method
.method public constructor <init>(Landroid/content/res/AssetManager;Landroid/content/res/Resources;)V
.registers 5
.prologue
.line 137
invoke-virtual {p2}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v0
invoke-virtual {p2}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;
move-result-object v1
invoke-direct {p0, p1, v0, v1}, Landroid/content/res/Resources;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V
.line 138
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
iput-object v0, p0, Lorg/acdd/runtime/DelegateResources;->resIdentifierMap:Ljava/util/Map;
.line 139
invoke-direct {p0}, Lorg/acdd/runtime/DelegateResources;->prepareClearDrawableCache()Z
move-result v0
iput-boolean v0, p0, Lorg/acdd/runtime/DelegateResources;->mEnableClearDrawable:Z
.line 140
return-void
.end method
.method static synthetic access$000(Landroid/app/Application;Landroid/content/res/Resources;Ljava/lang/String;Z)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 77
invoke-static {p0, p1, p2, p3}, Lorg/acdd/runtime/DelegateResources;->newDelegateResourcesInternal(Landroid/app/Application;Landroid/content/res/Resources;Ljava/lang/String;Z)V
return-void
.end method
.method static synthetic access$100()Ljava/lang/Object;
.registers 1
.prologue
.line 77
sget-object v0, Lorg/acdd/runtime/DelegateResources;->lock:Ljava/lang/Object;
return-object v0
.end method
.method static addAssetPath(Landroid/content/res/AssetManager;Ljava/util/Set;)V
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/res/AssetManager;",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
const/4 v2, 0x0
.line 284
new-instance v5, Ljava/util/HashMap;
invoke-interface {p1}, Ljava/util/Set;->size()I
move-result v0
invoke-direct {v5, v0}, Ljava/util/HashMap;-><init>(I)V
.line 285
invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v6
:goto_e
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_af
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 288
invoke-static {v0}, Lorg/acdd/runtime/DelegateResources;->getLoadedDexPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 289
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v3
if-nez v3, :cond_4e
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_4e
.line 290
sget-object v3, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "addAssetPath by errorPath:"
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string/jumbo v4, "update to:"
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-interface {v3, v0}, Lorg/acdd/log/Logger;->warn(Ljava/lang/String;)V
move-object v0, v1
.line 293
:cond_4e
invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v1
.line 294
const-string/jumbo v3, "webview"
invoke-virtual {v1, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v3
if-nez v3, :cond_6b
const-string v3, "chrome"
invoke-virtual {v1, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v3
if-nez v3, :cond_6b
const-string v3, "frameworkhwexthonor"
invoke-virtual {v1, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_f4
.line 295
:cond_6b
const/4 v1, 0x1
:goto_6c
move v4, v2
move v3, v2
.line 299
:goto_6e
const/4 v7, 0x4
if-gt v4, v7, :cond_f2
.line 300
if-eqz v1, :cond_a7
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v7, 0x18
if-lt v3, v7, :cond_a7
.line 301
sget-object v3, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v8, "webview addAssetPathAsSharedLibrary:"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-interface {v3, v7}, Lorg/acdd/log/Logger;->info(Ljava/lang/String;)V
.line 302
invoke-static {p0, v0}, Lorg/acdd/hack/ACDDHacks;->addAssetPathAsSharedLibrary(Landroid/content/res/AssetManager;Ljava/lang/String;)I
move-result v3
.line 307
:goto_96
if-eqz v3, :cond_ac
move v1, v3
.line 311
:goto_99
if-nez v1, :cond_9e
.line 312
invoke-static {v0}, Lorg/acdd/runtime/DelegateResources;->recordAddAssetPathFailed(Ljava/lang/String;)V
.line 314
:cond_9e
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v5, v0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto/16 :goto_e
.line 304
:cond_a7
invoke-static {p0, v0}, Lorg/acdd/hack/ACDDHacks;->addAssetPath(Landroid/content/res/AssetManager;Ljava/lang/String;)I
move-result v3
goto :goto_96
.line 299
:cond_ac
add-int/lit8 v4, v4, 0x1
goto :goto_6e
.line 317
:cond_af
new-instance v2, Ljava/lang/StringBuilder;
const-string v0, "[PluginInstall] NewInstall => Load Resource \r\n"
invoke-direct {v2, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 318
invoke-virtual {v5}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_be
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_e8
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 319
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v4, ":"
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "\r\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_be
.line 321
:cond_e8
sget-object v0, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-interface {v0, v1}, Lorg/acdd/log/Logger;->info(Ljava/lang/String;)V
.line 322
return-void
:cond_f2
move v1, v3
goto :goto_99
:cond_f4
move v1, v2
goto/16 :goto_6c
.end method
.method public static clearDrawableCache(Landroid/content/res/Resources;)V
.registers 15
.prologue
const/4 v0, 0x0
const/4 v8, 0x0
const/4 v7, 0x1
.line 722
.line 731
:try_start_3
const-class v1, Landroid/content/res/Resources;
const-string v2, "mDrawableCache"
invoke-virtual {v1, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v1
.line 732
const/4 v2, 0x1
invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 733
invoke-virtual {v1, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
:try_end_12
.catch Ljava/lang/Exception; {:try_start_3 .. :try_end_12} :catch_d5
move-result-object v4
.line 734
:try_start_13
const-class v1, Landroid/content/res/Resources;
const-string v2, "mColorDrawableCache"
invoke-virtual {v1, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v1
.line 735
const/4 v2, 0x1
invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 736
invoke-virtual {v1, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
:try_end_22
.catch Ljava/lang/Exception; {:try_start_13 .. :try_end_22} :catch_166
move-result-object v3
.line 737
:try_start_23
const-class v1, Landroid/content/res/Resources;
const-string v2, "mAccessLock"
invoke-virtual {v1, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v1
.line 738
const/4 v2, 0x1
invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 739
invoke-virtual {v1, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
:try_end_32
.catch Ljava/lang/Exception; {:try_start_23 .. :try_end_32} :catch_16f
move-result-object v5
.line 741
:try_start_33
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x15
if-ge v1, v2, :cond_9d
.line 742
const-class v1, Landroid/content/res/Resources;
const-string v2, "clearDrawableCacheLocked"
const/4 v6, 0x2
new-array v6, v6, [Ljava/lang/Class;
const/4 v9, 0x0
const-class v10, Landroid/util/LongSparseArray;
aput-object v10, v6, v9
const/4 v9, 0x1
sget-object v10, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v10, v6, v9
invoke-virtual {v1, v2, v6}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
:try_end_4d
.catch Ljava/lang/Exception; {:try_start_33 .. :try_end_4d} :catch_178
move-result-object v1
.line 743
const/4 v2, 0x1
:try_start_4f
invoke-virtual {v1, v2}, Ljava/lang/reflect/Method;->setAccessible(Z)V
:try_end_52
.catch Ljava/lang/Exception; {:try_start_4f .. :try_end_52} :catch_181
move-object v2, v1
move-object v1, v0
:goto_54
move-object v11, v3
move-object v3, v0
move-object v0, v11
move-object v12, v5
move-object v5, v2
move-object v2, v12
move-object v13, v1
move-object v1, v4
move-object v4, v13
.line 757
:goto_5d
sget v6, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v9, 0x15
if-ge v6, v9, :cond_e6
.line 758
if-eqz v5, :cond_194
if-eqz v2, :cond_194
if-eqz v1, :cond_194
if-eqz v0, :cond_194
move v6, v7
.line 771
:goto_6c
if-eqz v6, :cond_9c
.line 772
monitor-enter v2
.line 773
:try_start_6f
sget v6, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_71
.catchall {:try_start_6f .. :try_end_71} :catchall_107
const/16 v7, 0x15
if-ge v6, v7, :cond_10a
.line 775
const/4 v3, 0x2
:try_start_76
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
aput-object v1, v3, v4
const/4 v1, 0x1
const v4, 0xfffffff
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v3, v1
invoke-virtual {v5, p0, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.line 776
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/Object;
const/4 v3, 0x0
aput-object v0, v1, v3
const/4 v0, 0x1
const v3, 0xfffffff
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v1, v0
invoke-virtual {v5, p0, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_9b
.catch Ljava/lang/Exception; {:try_start_76 .. :try_end_9b} :catch_102
.catchall {:try_start_76 .. :try_end_9b} :catchall_107
.line 798
:goto_9b
:try_start_9b
monitor-exit v2
:try_end_9c
.catchall {:try_start_9b .. :try_end_9c} :catchall_107
.line 800
:cond_9c
return-void
.line 745
:cond_9d
:try_start_9d
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x17
if-ge v1, v2, :cond_be
.line 746
const-class v1, Landroid/content/res/Resources;
const-string v2, "clearDrawableCachesLocked"
const/4 v6, 0x2
new-array v6, v6, [Ljava/lang/Class;
const/4 v9, 0x0
const-class v10, Landroid/util/LongSparseArray;
aput-object v10, v6, v9
const/4 v9, 0x1
sget-object v10, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v10, v6, v9
invoke-virtual {v1, v2, v6}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
:try_end_b7
.catch Ljava/lang/Exception; {:try_start_9d .. :try_end_b7} :catch_178
move-result-object v1
.line 747
const/4 v2, 0x1
:try_start_b9
invoke-virtual {v1, v2}, Ljava/lang/reflect/Method;->setAccessible(Z)V
:try_end_bc
.catch Ljava/lang/Exception; {:try_start_b9 .. :try_end_bc} :catch_18b
move-object v2, v0
goto :goto_54
.line 750
:cond_be
:try_start_be
invoke-virtual {v4}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
const-string v2, "onConfigurationChange"
const/4 v6, 0x1
new-array v6, v6, [Ljava/lang/Class;
const/4 v9, 0x0
sget-object v10, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v10, v6, v9
invoke-virtual {v1, v2, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
:try_end_cf
.catch Ljava/lang/Exception; {:try_start_be .. :try_end_cf} :catch_178
move-result-object v1
move-object v2, v0
move-object v11, v0
move-object v0, v1
move-object v1, v11
goto :goto_54
.line 753
:catch_d5
move-exception v1
move-object v6, v1
move-object v2, v0
move-object v3, v0
move-object v4, v0
move-object v5, v0
move-object v1, v0
.line 754
:goto_dc
invoke-virtual {v6}, Ljava/lang/Exception;->printStackTrace()V
move-object v11, v1
move-object v1, v2
move-object v2, v3
move-object v3, v0
move-object v0, v11
goto/16 :goto_5d
.line 761
:cond_e6
sget v6, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v9, 0x17
if-ge v6, v9, :cond_f7
.line 762
if-eqz v4, :cond_194
if-eqz v2, :cond_194
if-eqz v1, :cond_194
if-eqz v0, :cond_194
move v6, v7
.line 763
goto/16 :goto_6c
.line 766
:cond_f7
if-eqz v3, :cond_194
if-eqz v2, :cond_194
if-eqz v1, :cond_194
if-eqz v0, :cond_194
move v6, v7
.line 767
goto/16 :goto_6c
.line 778
:catch_102
move-exception v0
.line 779
:try_start_103
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_9b
.line 798
:catchall_107
move-exception v0
monitor-exit v2
:try_end_109
.catchall {:try_start_103 .. :try_end_109} :catchall_107
throw v0
.line 781
:cond_10a
:try_start_10a
sget v5, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_10c
.catchall {:try_start_10a .. :try_end_10c} :catchall_107
const/16 v6, 0x17
if-ge v5, v6, :cond_13e
.line 783
const/4 v3, 0x2
:try_start_111
new-array v3, v3, [Ljava/lang/Object;
const/4 v5, 0x0
aput-object v1, v3, v5
const/4 v1, 0x1
const v5, 0xfffffff
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v3, v1
invoke-virtual {v4, p0, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.line 784
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/Object;
const/4 v3, 0x0
aput-object v0, v1, v3
const/4 v0, 0x1
const v3, 0xfffffff
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v1, v0
invoke-virtual {v4, p0, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_136
.catch Ljava/lang/Exception; {:try_start_111 .. :try_end_136} :catch_138
.catchall {:try_start_111 .. :try_end_136} :catchall_107
goto/16 :goto_9b
.line 786
:catch_138
move-exception v0
.line 787
:try_start_139
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_13c
.catchall {:try_start_139 .. :try_end_13c} :catchall_107
goto/16 :goto_9b
.line 791
:cond_13e
const/4 v4, 0x1
:try_start_13f
new-array v4, v4, [Ljava/lang/Object;
const/4 v5, 0x0
const v6, 0xfffffff
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
aput-object v6, v4, v5
invoke-virtual {v3, v1, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.line 792
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Object;
const/4 v4, 0x0
const v5, 0xfffffff
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v1, v4
invoke-virtual {v3, v0, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_15e
.catch Ljava/lang/Exception; {:try_start_13f .. :try_end_15e} :catch_160
.catchall {:try_start_13f .. :try_end_15e} :catchall_107
goto/16 :goto_9b
.line 794
:catch_160
move-exception v0
.line 795
:try_start_161
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_164
.catchall {:try_start_161 .. :try_end_164} :catchall_107
goto/16 :goto_9b
.line 753
:catch_166
move-exception v1
move-object v6, v1
move-object v2, v4
move-object v3, v0
move-object v5, v0
move-object v4, v0
move-object v1, v0
goto/16 :goto_dc
:catch_16f
move-exception v1
move-object v6, v1
move-object v2, v4
move-object v5, v0
move-object v4, v0
move-object v1, v3
move-object v3, v0
goto/16 :goto_dc
:catch_178
move-exception v1
move-object v6, v1
move-object v2, v4
move-object v1, v3
move-object v4, v0
move-object v3, v5
move-object v5, v0
goto/16 :goto_dc
:catch_181
move-exception v2
move-object v6, v2
move-object v2, v4
move-object v4, v0
move-object v11, v5
move-object v5, v1
move-object v1, v3
move-object v3, v11
goto/16 :goto_dc
:catch_18b
move-exception v2
move-object v6, v2
move-object v2, v4
move-object v4, v1
move-object v1, v3
move-object v3, v5
move-object v5, v0
goto/16 :goto_dc
:cond_194
move v6, v8
goto/16 :goto_6c
.end method
.method private static findAssetPathByLocation(Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;)",
"Ljava/lang/String;"
}
.end annotation
.prologue
.line 465
invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v1
:cond_4
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_17
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 466
invoke-virtual {v0, p0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v2
if-eqz v2, :cond_4
.line 470
:goto_16
return-object v0
:cond_17
const-string v0, ""
goto :goto_16
.end method
.method private static generateNewAssetPaths(Landroid/app/Application;Ljava/lang/String;)Ljava/util/Set;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/app/Application;",
"Ljava/lang/String;",
")",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
const/16 v2, 0x14
.line 397
new-instance v6, Ljava/util/LinkedHashSet;
invoke-direct {v6}, Ljava/util/LinkedHashSet;-><init>()V
.line 398
invoke-virtual {p0}, Landroid/app/Application;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object v0
iget-object v0, v0, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String;
invoke-interface {v6, v0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 399
sget-boolean v0, Lorg/acdd/runtime/DelegateResources;->ignoreOpt:Z
if-eqz v0, :cond_1d
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-le v0, v2, :cond_1d
.line 400
const-string v0, "/system/app/WebViewGoogle/WebViewGoogle.apk"
invoke-interface {v6, v0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 403
:cond_1d
:try_start_1d
const-class v1, Lorg/acdd/runtime/DelegateResources;
monitor-enter v1
:try_end_20
.catch Ljava/lang/Throwable; {:try_start_1d .. :try_end_20} :catch_52
.line 404
:try_start_20
sget-object v0, Lorg/acdd/runtime/DelegateResources;->mOriginAssetsPath:Ljava/util/List;
if-nez v0, :cond_3f
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-le v0, v2, :cond_3f
sget-boolean v0, Lorg/acdd/runtime/DelegateResources;->ignoreOpt:Z
if-nez v0, :cond_3f
.line 405
invoke-virtual {p0}, Landroid/app/Application;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0}, Landroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;
move-result-object v0
invoke-static {v0}, Lorg/acdd/runtime/DelegateResources;->getOriginAssetsPath(Landroid/content/res/AssetManager;)Ljava/util/List;
move-result-object v0
sput-object v0, Lorg/acdd/runtime/DelegateResources;->mOriginAssetsPath:Ljava/util/List;
.line 406
sget-object v0, Lorg/acdd/runtime/DelegateResources;->mOriginAssetsPath:Ljava/util/List;
invoke-interface {v6, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 408
:cond_3f
monitor-exit v1
:try_end_40
.catchall {:try_start_20 .. :try_end_40} :catchall_4f
.line 413
:goto_40
sget-object v0, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
if-eqz v0, :cond_49
.line 414
sget-object v0, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
invoke-interface {v6, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 416
:cond_49
if-eqz p1, :cond_4e
.line 417
invoke-static {p1, v6}, Lorg/acdd/runtime/DelegateResources;->updateBundleResPath(Ljava/lang/String;Ljava/util/Set;)V
.line 419
:cond_4e
return-object v6
.line 408
:catchall_4f
move-exception v0
:try_start_50
monitor-exit v1
:try_end_51
.catchall {:try_start_50 .. :try_end_51} :catchall_4f
:try_start_51
throw v0
:try_end_52
.catch Ljava/lang/Throwable; {:try_start_51 .. :try_end_52} :catch_52
.line 409
:catch_52
move-exception v5
.line 410
sget-object v0, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
const-string v1, "get original asset path exception:"
invoke-interface {v0, v1, v5}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 411
invoke-static {}, Lorg/acdd/log/ACDDMonitor;->getInstance()Lorg/acdd/log/ACDDMonitor;
move-result-object v0
const/4 v1, -0x4
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
const-string v3, ""
const-string v4, "get original asset path exception:"
move-object v2, p1
invoke-virtual/range {v0 .. v5}, Lorg/acdd/log/ACDDMonitor;->trace(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_40
.end method
.method public static getAllResourcesPath()Ljava/util/List;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
.line 160
sget-object v0, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
invoke-static {v0}, Lorg/acdd/runtime/DelegateResources;->getAllResourcesPath(Landroid/content/res/Resources;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static getAllResourcesPath(Landroid/content/res/Resources;)Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/res/Resources;",
")",
"Ljava/util/List",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
.line 165
.line 166
:try_start_0
invoke-virtual {p0}, Landroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;
move-result-object v0
invoke-static {v0}, Lorg/acdd/runtime/DelegateResources;->getOriginAssetsPath(Landroid/content/res/AssetManager;)Ljava/util/List;
:try_end_7
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_7} :catch_9
move-result-object v0
.line 169
:goto_8
return-object v0
.line 168
:catch_9
move-exception v0
.line 169
const/4 v0, 0x0
goto :goto_8
.end method
.method public static getAssetHistoryPaths()Ljava/lang/String;
.registers 4
.prologue
.line 382
sget-object v0, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
if-nez v0, :cond_7
.line 383
const-string v0, ""
.line 391
:goto_6
return-object v0
.line 385
:cond_7
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
.line 386
const-string v0, "newDelegateResources ["
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 387
sget-object v0, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_17
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_2d
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 388
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
const-string v3, ","
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto :goto_17
.line 390
:cond_2d
const-string v0, "]"
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 391
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_6
.end method
.method private static getFieldValueOfR(Ljava/lang/Class;Ljava/lang/String;)I
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/String;",
")I"
}
.end annotation
.prologue
.line 601
if-eqz p0, :cond_1f
.line 603
:try_start_2
invoke-virtual {p0, p1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 604
if-eqz v0, :cond_1f
.line 605
invoke-virtual {v0}, Ljava/lang/reflect/Field;->isAccessible()Z
move-result v1
if-nez v1, :cond_12
.line 606
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 608
:cond_12
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
:try_end_1c
.catch Ljava/lang/NoSuchFieldException; {:try_start_2 .. :try_end_1c} :catch_23
.catch Ljava/lang/IllegalAccessException; {:try_start_2 .. :try_end_1c} :catch_21
.catch Ljava/lang/IllegalArgumentException; {:try_start_2 .. :try_end_1c} :catch_1e
move-result v0
.line 615
:goto_1d
return v0
.line 612
:catch_1e
move-exception v0
.line 615
:cond_1f
:goto_1f
const/4 v0, 0x0
goto :goto_1d
.line 611
:catch_21
move-exception v0
goto :goto_1f
.line 610
:catch_23
move-exception v0
goto :goto_1f
.end method
.method private static getLoadedDexPath(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.prologue
.line 453
invoke-static {p0}, Lorg/acdd/util/ACDDUtils;->getPackageInfo(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 454
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_d
.line 455
const-string v0, ""
.line 461
:cond_c
:goto_c
return-object v0
.line 457
:cond_d
invoke-static {v0}, Lorg/acdd/framework/BundleManager;->getLoadedDexPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 458
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_c
.line 459
const-string v0, ""
goto :goto_c
.end method
.method public static getOriginAssetsPath(Landroid/content/res/AssetManager;)Ljava/util/List;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/res/AssetManager;",
")",
"Ljava/util/List",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
const/16 v3, 0x1c
const/4 v1, 0x0
.line 340
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 342
:try_start_8
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v0, v3, :cond_5c
.line 343
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v3, "getStringBlockCount"
const/4 v4, 0x0
new-array v4, v4, [Ljava/lang/Class;
invoke-virtual {v0, v3, v4}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 344
const/4 v3, 0x1
invoke-virtual {v0, v3}, Ljava/lang/reflect/Method;->setAccessible(Z)V
.line 345
const/4 v3, 0x0
new-array v3, v3, [Ljava/lang/Object;
invoke-virtual {v0, p0, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v3
.line 346
:goto_2a
if-ge v1, v3, :cond_80
.line 347
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v4, "getCookieName"
const/4 v5, 0x1
new-array v5, v5, [Ljava/lang/Class;
const/4 v6, 0x0
sget-object v7, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v7, v5, v6
invoke-virtual {v0, v4, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Object;
const/4 v5, 0x0
add-int/lit8 v6, v1, 0x1
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
aput-object v6, v4, v5
invoke-virtual {v0, p0, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 348
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-nez v4, :cond_59
.line 349
invoke-interface {v2, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 346
:cond_59
add-int/lit8 v1, v1, 0x1
goto :goto_2a
.line 352
:cond_5c
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v0, v3, :cond_80
.line 353
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v3, "mApkAssets"
invoke-virtual {v0, v3}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 354
const/4 v3, 0x1
invoke-virtual {v0, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 355
invoke-virtual {v0, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/Object;
check-cast v0, [Ljava/lang/Object;
.line 356
if-eqz v0, :cond_80
move v3, v1
.line 357
:goto_79
array-length v1, v0
if-ge v3, v1, :cond_80
.line 358
aget-object v1, v0, v3
.line 359
if-nez v1, :cond_82
:cond_80
move-object v0, v2
.line 377
:goto_81
return-object v0
.line 362
:cond_82
const-string v4, "android.content.res.ApkAssets"
invoke-static {v4}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v4
.line 363
const-string v5, "getAssetPath"
const/4 v6, 0x0
new-array v6, v6, [Ljava/lang/Class;
invoke-virtual {v4, v5, v6}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v4
.line 364
const/4 v5, 0x1
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->setAccessible(Z)V
.line 365
const/4 v5, 0x0
new-array v5, v5, [Ljava/lang/Object;
invoke-virtual {v4, v1, v5}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
.line 366
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-nez v4, :cond_a7
.line 367
invoke-interface {v2, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_a7
.catch Ljava/lang/Exception; {:try_start_8 .. :try_end_a7} :catch_ab
.line 357
:cond_a7
add-int/lit8 v1, v3, 0x1
move v3, v1
goto :goto_79
.line 373
:catch_ab
move-exception v0
.line 374
sget-object v1, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
const-string v3, "[PluginInstall] NewInstall => Load GetResource Failed!!! "
invoke-interface {v1, v3, v0}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 376
invoke-interface {v2}, Ljava/util/List;->clear()V
move-object v0, v2
.line 377
goto :goto_81
.end method
.method private static injectWebViewRes(Landroid/app/Application;Landroid/content/res/AssetManager;)V
.registers 5
.prologue
.line 260
:try_start_0
invoke-virtual {p0}, Landroid/app/Application;->getBaseContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Lorg/acdd/runtime/WebViewResourcesHelper;->getAndroidWebViewPaths(Landroid/content/Context;)Ljava/util/Set;
move-result-object v0
invoke-static {p1, v0}, Lorg/acdd/runtime/DelegateResources;->addAssetPath(Landroid/content/res/AssetManager;Ljava/util/Set;)V
.line 261
invoke-virtual {p0}, Landroid/app/Application;->getBaseContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-static {v0, p1}, Lorg/acdd/hack/ACDDHacks;->setResources_mAssets(Landroid/content/res/Resources;Landroid/content/res/AssetManager;)V
.line 262
sget-object v0, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
const-string v1, "inject webview success "
invoke-interface {v0, v1}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;)V
:try_end_1d
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_1d} :catch_1e
.line 266
:goto_1d
return-void
.line 263
:catch_1e
move-exception v0
.line 264
sget-object v1, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
const-string v2, "inject webview res error"
invoke-interface {v1, v2, v0}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_1d
.end method
.method public static isAlreadyInjectThisResource(Landroid/content/res/Resources;Ljava/lang/String;)Z
.registers 4
.prologue
const/4 v0, 0x0
.line 177
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_8
.line 187
:cond_7
:goto_7
return v0
.line 181
:cond_8
:try_start_8
invoke-static {p0}, Lorg/acdd/runtime/DelegateResources;->getAllResourcesPath(Landroid/content/res/Resources;)Ljava/util/List;
move-result-object v1
.line 182
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
:try_end_13
.catch Ljava/lang/Throwable; {:try_start_8 .. :try_end_13} :catch_18
move-result v1
if-eqz v1, :cond_7
.line 183
const/4 v0, 0x1
goto :goto_7
.line 185
:catch_18
move-exception v1
goto :goto_7
.end method
.method public static isAlreadyInjectThisResource(Ljava/lang/String;)Z
.registers 2
.prologue
.line 174
sget-object v0, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
invoke-static {v0, p0}, Lorg/acdd/runtime/DelegateResources;->isAlreadyInjectThisResource(Landroid/content/res/Resources;Ljava/lang/String;)Z
move-result v0
return v0
.end method
.method private static isAndroidQ()Z
.registers 2
.prologue
.line 803
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1d
if-ne v0, v1, :cond_8
const/4 v0, 0x1
:goto_7
return v0
:cond_8
const/4 v0, 0x0
goto :goto_7
.end method
.method public static newDelegateResources(Landroid/app/Application;Landroid/content/res/Resources;Ljava/lang/String;Z)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 191
:try_start_0
const-class v1, Lorg/acdd/runtime/DelegateResources;
monitor-enter v1
:try_end_3
.catchall {:try_start_0 .. :try_end_3} :catchall_39
.line 192
:try_start_3
invoke-static {p0, p1, p2, p3}, Lorg/acdd/runtime/DelegateResources;->newDelegateResourcesInternal(Landroid/app/Application;Landroid/content/res/Resources;Ljava/lang/String;Z)V
.line 193
monitor-exit v1
:try_end_7
.catchall {:try_start_3 .. :try_end_7} :catchall_36
.line 195
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_69
.line 196
invoke-static {p2}, Lorg/acdd/util/ACDDUtils;->getPackageInfo(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 197
invoke-static {v0}, Lorg/acdd/runtime/DelegateResources;->isAlreadyInjectThisResource(Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_35
.line 198
sget-object v1, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "[PluginInstall] NewInstall => Load Resource Plugin["
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "]Failed!!!"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-interface {v1, v0}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;)V
.line 204
:cond_35
:goto_35
return-void
.line 193
:catchall_36
move-exception v0
:try_start_37
monitor-exit v1
:try_end_38
.catchall {:try_start_37 .. :try_end_38} :catchall_36
:try_start_38
throw v0
:try_end_39
.catchall {:try_start_38 .. :try_end_39} :catchall_39
.line 195
:catchall_39
move-exception v0
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_88
.line 196
invoke-static {p2}, Lorg/acdd/util/ACDDUtils;->getPackageInfo(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 197
invoke-static {v1}, Lorg/acdd/runtime/DelegateResources;->isAlreadyInjectThisResource(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_68
.line 198
sget-object v2, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "[PluginInstall] NewInstall => Load Resource Plugin["
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v3, "]Failed!!!"
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-interface {v2, v1}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;)V
.line 201
:cond_68
:goto_68
throw v0
:cond_69
sget-object v0, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "[PluginInstall] NewInstall => Load Resource List \n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
sget-object v2, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
invoke-static {v2}, Lorg/acdd/runtime/DelegateResources;->getAllResourcesPath(Landroid/content/res/Resources;)Ljava/util/List;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-interface {v0, v1}, Lorg/acdd/log/Logger;->info(Ljava/lang/String;)V
goto :goto_35
:cond_88
sget-object v1, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "[PluginInstall] NewInstall => Load Resource List \n"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
sget-object v3, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
invoke-static {v3}, Lorg/acdd/runtime/DelegateResources;->getAllResourcesPath(Landroid/content/res/Resources;)Ljava/util/List;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-interface {v1, v2}, Lorg/acdd/log/Logger;->info(Ljava/lang/String;)V
goto :goto_68
.end method
.method private static newDelegateResourcesInternal(Landroid/app/Application;Landroid/content/res/Resources;Ljava/lang/String;Z)V
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 211
sget-boolean v0, Lorg/acdd/runtime/DelegateResources;->ignoreOpt:Z
if-nez v0, :cond_10
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x14
if-le v0, v1, :cond_10
sget-object v0, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
if-eqz v0, :cond_10
if-eqz p3, :cond_86
.line 212
:cond_10
invoke-static {p0, p2}, Lorg/acdd/runtime/DelegateResources;->generateNewAssetPaths(Landroid/app/Application;Ljava/lang/String;)Ljava/util/Set;
move-result-object v2
.line 213
if-eqz v2, :cond_85
.line 215
const-class v0, Landroid/content/res/AssetManager;
invoke-virtual {v0}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/res/AssetManager;
.line 216
invoke-static {v0, v2}, Lorg/acdd/runtime/DelegateResources;->addAssetPath(Landroid/content/res/AssetManager;Ljava/util/Set;)V
.line 218
const/4 v1, 0x0
.line 219
if-eqz p1, :cond_29
.line 220
new-instance v1, Lorg/acdd/runtime/DelegateResources;
invoke-direct {v1, v0, p1}, Lorg/acdd/runtime/DelegateResources;-><init>(Landroid/content/res/AssetManager;Landroid/content/res/Resources;)V
.line 227
:cond_29
sput-object v1, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
.line 228
invoke-static {p0, v1}, Lorg/acdd/hack/AndroidHack;->injectResources(Landroid/app/Application;Landroid/content/res/Resources;)V
.line 229
invoke-static {p0, v0}, Lorg/acdd/runtime/DelegateResources;->injectWebViewRes(Landroid/app/Application;Landroid/content/res/AssetManager;)V
.line 231
sput-object v2, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
.line 232
sget-object v0, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
invoke-interface {v0}, Lorg/acdd/log/Logger;->isDebugEnabled()Z
move-result v0
if-eqz v0, :cond_85
.line 233
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
.line 234
const-string v0, "newDelegateResources ["
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 235
invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_49
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_5f
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 236
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
const-string v3, ","
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto :goto_49
.line 238
:cond_5f
const-string v0, "]"
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 239
if-eqz p2, :cond_7c
.line 240
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Add new path:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 242
:cond_7c
sget-object v0, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v1
invoke-interface {v0, v1}, Lorg/acdd/log/Logger;->debug(Ljava/lang/String;)V
.line 256
:cond_85
:goto_85
return-void
.line 249
:cond_86
invoke-virtual {p0}, Landroid/app/Application;->getAssets()Landroid/content/res/AssetManager;
move-result-object v0
.line 250
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_85
sget-object v1, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
invoke-interface {v1, p2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_85
.line 251
new-instance v1, Ljava/util/LinkedHashSet;
invoke-direct {v1}, Ljava/util/LinkedHashSet;-><init>()V
.line 252
invoke-interface {v1, p2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 253
invoke-static {v0, v1}, Lorg/acdd/runtime/DelegateResources;->addAssetPath(Landroid/content/res/AssetManager;Ljava/util/Set;)V
.line 254
sget-object v0, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
invoke-interface {v0, p2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_85
.end method
.method private prepareClearDrawableCache()Z
.registers 10
.prologue
const/16 v8, 0x17
const/16 v7, 0x15
const/4 v1, 0x0
const/4 v0, 0x1
.line 629
.line 631
:try_start_6
const-class v2, Landroid/content/res/Resources;
const-string v3, "mDrawableCache"
invoke-virtual {v2, v3}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v2
.line 632
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 633
invoke-virtual {v2, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
iput-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mDrawableCache:Ljava/lang/Object;
.line 634
const-class v2, Landroid/content/res/Resources;
const-string v3, "mColorDrawableCache"
invoke-virtual {v2, v3}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v2
.line 635
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 636
invoke-virtual {v2, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
iput-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mColorDrawableCache:Ljava/lang/Object;
.line 637
const-class v2, Landroid/content/res/Resources;
const-string v3, "mAccessLock"
invoke-virtual {v2, v3}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v2
.line 638
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 639
invoke-virtual {v2, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
iput-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mAccessLock:Ljava/lang/Object;
.line 641
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v2, v7, :cond_72
.line 642
const-class v2, Landroid/content/res/Resources;
const-string v3, "clearDrawableCacheLocked"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Landroid/util/LongSparseArray;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
iput-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCacheLocked:Ljava/lang/reflect/Method;
.line 643
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCacheLocked:Ljava/lang/reflect/Method;
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Method;->setAccessible(Z)V
:try_end_5d
.catch Ljava/lang/Exception; {:try_start_6 .. :try_end_5d} :catch_dc
.line 668
:goto_5d
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v2, v7, :cond_e4
.line 669
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCacheLocked:Ljava/lang/reflect/Method;
if-eqz v2, :cond_f8
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mAccessLock:Ljava/lang/Object;
if-eqz v2, :cond_f8
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mDrawableCache:Ljava/lang/Object;
if-eqz v2, :cond_f8
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mColorDrawableCache:Ljava/lang/Object;
if-eqz v2, :cond_f8
.line 682
:cond_71
:goto_71
return v0
.line 645
:cond_72
:try_start_72
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v2, v8, :cond_c5
.line 646
const-class v2, Landroid/content/res/Resources;
const-string v3, "clearDrawableCachesLocked"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Landroid/util/ArrayMap;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
iput-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCachesLocked:Ljava/lang/reflect/Method;
.line 647
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCachesLocked:Ljava/lang/reflect/Method;
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Method;->setAccessible(Z)V
:try_end_93
.catch Ljava/lang/Exception; {:try_start_72 .. :try_end_93} :catch_dc
.line 650
:try_start_93
const-class v2, Landroid/content/res/Resources;
const-string v3, "mALDC"
invoke-virtual {v2, v3}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v2
.line 651
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 652
invoke-virtual {v2, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
iput-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mALDC:Ljava/lang/Object;
.line 654
const-class v2, Landroid/content/res/Resources;
const-string v3, "mClearALDCLocked"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Landroid/util/ArrayMap;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
iput-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mClearALDCLocked:Ljava/lang/reflect/Method;
.line 655
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mClearALDCLocked:Ljava/lang/reflect/Method;
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Method;->setAccessible(Z)V
:try_end_c2
.catch Ljava/lang/Exception; {:try_start_93 .. :try_end_c2} :catch_c3
goto :goto_5d
.line 657
:catch_c3
move-exception v2
goto :goto_5d
.line 661
:cond_c5
:try_start_c5
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mDrawableCache:Ljava/lang/Object;
invoke-virtual {v2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
const-string v3, "onConfigurationChange"
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
sget-object v6, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
iput-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mOnConfigurationChange:Ljava/lang/reflect/Method;
:try_end_db
.catch Ljava/lang/Exception; {:try_start_c5 .. :try_end_db} :catch_dc
goto :goto_5d
.line 664
:catch_dc
move-exception v2
.line 665
sget-object v3, Ljava/lang/System;->out:Ljava/io/PrintStream;
invoke-virtual {v3, v2}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
goto/16 :goto_5d
.line 672
:cond_e4
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v2, v8, :cond_fb
.line 673
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCachesLocked:Ljava/lang/reflect/Method;
if-eqz v2, :cond_f8
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mAccessLock:Ljava/lang/Object;
if-eqz v2, :cond_f8
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mDrawableCache:Ljava/lang/Object;
if-eqz v2, :cond_f8
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mColorDrawableCache:Ljava/lang/Object;
if-nez v2, :cond_71
:cond_f8
move v0, v1
goto/16 :goto_71
.line 677
:cond_fb
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mOnConfigurationChange:Ljava/lang/reflect/Method;
if-eqz v2, :cond_f8
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mAccessLock:Ljava/lang/Object;
if-eqz v2, :cond_f8
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mDrawableCache:Ljava/lang/Object;
if-eqz v2, :cond_f8
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mColorDrawableCache:Ljava/lang/Object;
if-eqz v2, :cond_f8
goto/16 :goto_71
.end method
.method private static recordAddAssetPathFailed(Ljava/lang/String;)V
.registers 6
.prologue
.line 325
invoke-static {}, Lorg/acdd/log/ACDDMonitor;->getInstance()Lorg/acdd/log/ACDDMonitor;
move-result-object v0
const/4 v1, -0x1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
const-string v2, ""
const-string v3, "Add asset path failed"
invoke-virtual {v0, v1, p0, v2, v3}, Lorg/acdd/log/ACDDMonitor;->trace(Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.line 327
:try_start_10
invoke-static {p0}, Lorg/acdd/util/ApkUtils;->getFileMD5(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 328
sget-object v1, Lorg/acdd/runtime/RuntimeVariables;->androidApplication:Landroid/app/Application;
invoke-static {v1, p0}, Lorg/acdd/util/ApkUtils;->getMetaVersionCode(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 329
const-string v2, "%s Add asset path failed md5:%s ver:%s"
const/4 v3, 0x3
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
aput-object p0, v3, v4
const/4 v4, 0x1
aput-object v0, v3, v4
const/4 v0, 0x2
aput-object v1, v3, v0
invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
.line 330
sget-object v1, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "[PluginInstall] NewInstall => Load Resource Failed!!! \n"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-interface {v1, v2}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;)V
.line 331
invoke-static {}, Lorg/acdd/framework/ACDD;->getInstance()Lorg/acdd/framework/ACDD;
move-result-object v1
const-string v2, "4037"
new-instance v3, Ljava/lang/RuntimeException;
invoke-direct {v3, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, v2, v3}, Lorg/acdd/framework/ACDD;->reportCrash(Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_52
.catch Ljava/lang/Throwable; {:try_start_10 .. :try_end_52} :catch_53
.line 337
:cond_52
:goto_52
return-void
.line 332
:catch_53
move-exception v0
.line 333
sget-object v1, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
invoke-interface {v1}, Lorg/acdd/log/Logger;->isErrorEnabled()Z
move-result v1
if-eqz v1, :cond_52
.line 334
sget-object v1, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
const-string v2, "report error"
invoke-interface {v1, v2, v0}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_52
.end method
.method private reportRepairResNotFound(Ljava/lang/Throwable;)V
.registers 4
.prologue
.line 579
:try_start_0
invoke-static {}, Lorg/acdd/framework/ACDD;->getInstance()Lorg/acdd/framework/ACDD;
move-result-object v0
const-string v1, "4050"
invoke-virtual {v0, v1, p1}, Lorg/acdd/framework/ACDD;->reportCrash(Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_9
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_9} :catch_a
.line 582
:goto_9
return-void
.line 580
:catch_a
move-exception v0
goto :goto_9
.end method
.method public static setResources4Context(Landroid/content/Context;)V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
const/4 v3, 0x0
.line 143
sget-object v0, Lorg/acdd/runtime/RuntimeVariables;->androidApplication:Landroid/app/Application;
sget-object v1, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
const/4 v2, 0x1
invoke-static {v0, v1, v3, v2}, Lorg/acdd/runtime/DelegateResources;->newDelegateResources(Landroid/app/Application;Landroid/content/res/Resources;Ljava/lang/String;Z)V
.line 145
if-eqz p0, :cond_26
.line 146
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
sget-object v1, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
invoke-static {v0, v1}, Lorg/acdd/hack/ACDDHacks;->setResources_mAssets(Landroid/content/res/Resources;Landroid/content/res/Resources;)V
.line 148
instance-of v0, p0, Landroid/app/Activity;
if-eqz v0, :cond_27
.line 149
check-cast p0, Landroid/app/Activity;
.line 150
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper_mResources:Lorg/acdd/hack/Hack$HackedField;
sget-object v1, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
invoke-virtual {v0, p0, v1}, Lorg/acdd/hack/Hack$HackedField;->set(Ljava/lang/Object;Ljava/lang/Object;)V
.line 151
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextThemeWrapper_mTheme:Lorg/acdd/hack/Hack$HackedField;
invoke-virtual {v0, p0, v3}, Lorg/acdd/hack/Hack$HackedField;->set(Ljava/lang/Object;Ljava/lang/Object;)V
.line 157
:cond_26
:goto_26
return-void
.line 153
:cond_27
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextImpl_mResources:Lorg/acdd/hack/Hack$HackedField;
sget-object v1, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
invoke-virtual {v0, p0, v1}, Lorg/acdd/hack/Hack$HackedField;->set(Ljava/lang/Object;Ljava/lang/Object;)V
.line 154
sget-object v0, Lorg/acdd/hack/ACDDHacks;->ContextImpl_mTheme:Lorg/acdd/hack/Hack$HackedField;
invoke-virtual {v0, p0, v3}, Lorg/acdd/hack/Hack$HackedField;->set(Ljava/lang/Object;Ljava/lang/Object;)V
goto :goto_26
.end method
.method private static updateBundleResPath(Ljava/lang/String;Ljava/util/Set;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.prologue
.line 423
if-nez p0, :cond_3
.line 450
:goto_2
return-void
.line 427
:cond_3
invoke-static {p0}, Lorg/acdd/util/ACDDUtils;->getPackageInfo(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 428
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_11
.line 429
invoke-interface {p1, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_2
.line 433
:cond_11
invoke-static {v0}, Lorg/acdd/framework/BundleManager;->getLoadedDexPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 434
invoke-static {v0, p1}, Lorg/acdd/runtime/DelegateResources;->findAssetPathByLocation(Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
move-result-object v0
.line 436
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_2c
.line 437
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_28
.line 438
invoke-interface {p1, v0}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 440
:cond_28
invoke-interface {p1, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_2
.line 444
:cond_2c
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_36
.line 445
invoke-interface {p1, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_2
.line 447
:cond_36
invoke-interface {p1, v0}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 448
invoke-interface {p1, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_2
.end method
# virtual methods
.method public clearDrawableCache()V
.registers 7
.prologue
.line 686
iget-boolean v0, p0, Lorg/acdd/runtime/DelegateResources;->mEnableClearDrawable:Z
if-eqz v0, :cond_3c
.line 687
iget-object v1, p0, Lorg/acdd/runtime/DelegateResources;->mAccessLock:Ljava/lang/Object;
monitor-enter v1
.line 688
:try_start_7
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_9
.catchall {:try_start_7 .. :try_end_9} :catchall_42
const/16 v2, 0x15
if-ge v0, v2, :cond_45
.line 690
:try_start_d
iget-object v0, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCacheLocked:Ljava/lang/reflect/Method;
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
iget-object v4, p0, Lorg/acdd/runtime/DelegateResources;->mDrawableCache:Ljava/lang/Object;
aput-object v4, v2, v3
const/4 v3, 0x1
const v4, 0xfffffff
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v2, v3
invoke-virtual {v0, p0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.line 691
iget-object v0, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCacheLocked:Ljava/lang/reflect/Method;
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
iget-object v4, p0, Lorg/acdd/runtime/DelegateResources;->mColorDrawableCache:Ljava/lang/Object;
aput-object v4, v2, v3
const/4 v3, 0x1
const v4, 0xfffffff
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v2, v3
invoke-virtual {v0, p0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_3b
.catch Ljava/lang/Exception; {:try_start_d .. :try_end_3b} :catch_3d
.catchall {:try_start_d .. :try_end_3b} :catchall_42
.line 717
:cond_3b
:goto_3b
:try_start_3b
monitor-exit v1
.line 719
:cond_3c
return-void
.line 693
:catch_3d
move-exception v0
.line 694
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_3b
.line 717
:catchall_42
move-exception v0
monitor-exit v1
:try_end_44
.catchall {:try_start_3b .. :try_end_44} :catchall_42
throw v0
.line 696
:cond_45
:try_start_45
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_47
.catchall {:try_start_45 .. :try_end_47} :catchall_42
const/16 v2, 0x17
if-ge v0, v2, :cond_9e
.line 698
:try_start_4b
iget-object v0, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCachesLocked:Ljava/lang/reflect/Method;
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
iget-object v4, p0, Lorg/acdd/runtime/DelegateResources;->mDrawableCache:Ljava/lang/Object;
aput-object v4, v2, v3
const/4 v3, 0x1
const v4, 0xfffffff
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v2, v3
invoke-virtual {v0, p0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.line 699
iget-object v0, p0, Lorg/acdd/runtime/DelegateResources;->mClearDrawableCachesLocked:Ljava/lang/reflect/Method;
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
iget-object v4, p0, Lorg/acdd/runtime/DelegateResources;->mColorDrawableCache:Ljava/lang/Object;
aput-object v4, v2, v3
const/4 v3, 0x1
const v4, 0xfffffff
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v2, v3
invoke-virtual {v0, p0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.line 701
iget-object v0, p0, Lorg/acdd/runtime/DelegateResources;->mClearALDCLocked:Ljava/lang/reflect/Method;
if-eqz v0, :cond_3b
iget-object v0, p0, Lorg/acdd/runtime/DelegateResources;->mALDC:Ljava/lang/Object;
if-eqz v0, :cond_3b
.line 702
iget-object v0, p0, Lorg/acdd/runtime/DelegateResources;->mClearALDCLocked:Ljava/lang/reflect/Method;
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
iget-object v4, p0, Lorg/acdd/runtime/DelegateResources;->mALDC:Ljava/lang/Object;
aput-object v4, v2, v3
const/4 v3, 0x1
const v4, 0xfffffff
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v2, v3
invoke-virtual {v0, p0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_98
.catch Ljava/lang/Exception; {:try_start_4b .. :try_end_98} :catch_99
.catchall {:try_start_4b .. :try_end_98} :catchall_42
goto :goto_3b
.line 705
:catch_99
move-exception v0
.line 706
:try_start_9a
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_9d
.catchall {:try_start_9a .. :try_end_9d} :catchall_42
goto :goto_3b
.line 710
:cond_9e
:try_start_9e
iget-object v0, p0, Lorg/acdd/runtime/DelegateResources;->mOnConfigurationChange:Ljava/lang/reflect/Method;
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mDrawableCache:Ljava/lang/Object;
const/4 v3, 0x1
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
const v5, 0xfffffff
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v3, v4
invoke-virtual {v0, v2, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.line 711
iget-object v0, p0, Lorg/acdd/runtime/DelegateResources;->mOnConfigurationChange:Ljava/lang/reflect/Method;
iget-object v2, p0, Lorg/acdd/runtime/DelegateResources;->mColorDrawableCache:Ljava/lang/Object;
const/4 v3, 0x1
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
const v5, 0xfffffff
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v3, v4
invoke-virtual {v0, v2, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_c6
.catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c6} :catch_c8
.catchall {:try_start_9e .. :try_end_c6} :catchall_42
goto/16 :goto_3b
.line 713
:catch_c8
move-exception v0
.line 714
:try_start_c9
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_cc
.catchall {:try_start_c9 .. :try_end_cc} :catchall_42
goto/16 :goto_3b
.end method
.method public getColor(I)I
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/content/res/Resources$NotFoundException;
}
.end annotation
.prologue
.line 544
invoke-super {p0, p1}, Landroid/content/res/Resources;->getColor(I)I
move-result v0
return v0
.end method
.method public getDrawable(I)Landroid/graphics/drawable/Drawable;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/content/res/Resources$NotFoundException;
}
.end annotation
.prologue
.line 539
invoke-super {p0, p1}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v0
return-object v0
.end method
.method public getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
.registers 10
.prologue
const/4 v2, 0x0
.line 475
invoke-super {p0, p1, p2, p3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v0
.line 476
if-eqz v0, :cond_8
.line 519
:goto_7
return v0
.line 479
:cond_8
if-nez p2, :cond_2b
if-nez p3, :cond_2b
.line 480
const-string v0, "/"
invoke-virtual {p1, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
add-int/lit8 v0, v0, 0x1
invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
.line 481
const-string v1, ":"
invoke-virtual {p1, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v1
add-int/lit8 v1, v1, 0x1
const-string v3, "/"
invoke-virtual {p1, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v3
invoke-virtual {p1, v1, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p2
move-object p1, v0
.line 484
:cond_2b
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_37
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_39
:cond_37
move v0, v2
.line 485
goto :goto_7
.line 487
:cond_39
invoke-static {}, Lorg/acdd/framework/BundleManager;->getBundles()Ljava/util/List;
move-result-object v0
.line 488
if-eqz v0, :cond_d0
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-nez v0, :cond_d0
.line 489
invoke-static {}, Lorg/acdd/framework/BundleManager;->getBundles()Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:cond_4d
:goto_4d
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_d0
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/osgi/framework/Bundle;
.line 490
invoke-interface {v0}, Lorg/osgi/framework/Bundle;->getLocation()Ljava/lang/String;
move-result-object v4
.line 491
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v5, ":"
invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.line 492
iget-object v1, p0, Lorg/acdd/runtime/DelegateResources;->resIdentifierMap:Ljava/util/Map;
invoke-interface {v1}, Ljava/util/Map;->isEmpty()Z
move-result v1
if-nez v1, :cond_95
iget-object v1, p0, Lorg/acdd/runtime/DelegateResources;->resIdentifierMap:Ljava/util/Map;
invoke-interface {v1, v5}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_95
.line 493
iget-object v1, p0, Lorg/acdd/runtime/DelegateResources;->resIdentifierMap:Ljava/util/Map;
invoke-interface {v1, v5}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Integer;
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
.line 494
if-eqz v1, :cond_95
move v0, v1
.line 495
goto/16 :goto_7
.line 498
:cond_95
check-cast v0, Lorg/acdd/framework/BundleImpl;
.line 499
invoke-virtual {v0}, Lorg/acdd/framework/BundleImpl;->getArchive()Lorg/acdd/framework/bundlestorage/Archive;
move-result-object v1
invoke-interface {v1}, Lorg/acdd/framework/bundlestorage/Archive;->isDexOpted()Z
move-result v1
if-eqz v1, :cond_4d
.line 500
invoke-virtual {v0}, Lorg/acdd/framework/BundleImpl;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v0
.line 501
if-eqz v0, :cond_4d
.line 503
:try_start_a7
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 504
const-string v4, ".R$"
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 505
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 506
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
invoke-static {v0, p1}, Lorg/acdd/runtime/DelegateResources;->getFieldValueOfR(Ljava/lang/Class;Ljava/lang/String;)I
move-result v0
.line 507
if-eqz v0, :cond_4d
.line 508
iget-object v1, p0, Lorg/acdd/runtime/DelegateResources;->resIdentifierMap:Ljava/util/Map;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-interface {v1, v5, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_cb
.catch Ljava/lang/ClassNotFoundException; {:try_start_a7 .. :try_end_cb} :catch_cd
goto/16 :goto_7
.line 511
:catch_cd
move-exception v0
goto/16 :goto_4d
:cond_d0
move v0, v2
.line 519
goto/16 :goto_7
.end method
.method public getLayout(I)Landroid/content/res/XmlResourceParser;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/content/res/Resources$NotFoundException;
}
.end annotation
.prologue
.line 550
invoke-super {p0, p1}, Landroid/content/res/Resources;->getLayout(I)Landroid/content/res/XmlResourceParser;
move-result-object v0
return-object v0
.end method
.method public getValue(ILandroid/util/TypedValue;Z)V
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/content/res/Resources$NotFoundException;
}
.end annotation
.prologue
.line 560
:try_start_0
invoke-super {p0, p1, p2, p3}, Landroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V
:try_end_3
.catch Landroid/content/res/Resources$NotFoundException; {:try_start_0 .. :try_end_3} :catch_4
.line 575
:cond_3
:goto_3
return-void
.line 561
:catch_4
move-exception v0
.line 562
if-eqz p1, :cond_3
.line 565
invoke-virtual {p0}, Lorg/acdd/runtime/DelegateResources;->retryAddHistoryAssetPath()V
.line 567
:try_start_a
invoke-super {p0, p1, p2, p3}, Landroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V
.line 568
invoke-direct {p0, v0}, Lorg/acdd/runtime/DelegateResources;->reportRepairResNotFound(Ljava/lang/Throwable;)V
:try_end_10
.catch Landroid/content/res/Resources$NotFoundException; {:try_start_a .. :try_end_10} :catch_11
goto :goto_3
.line 569
:catch_11
move-exception v0
.line 570
sget-object v1, Ljava/util/Locale;->CHINA:Ljava/util/Locale;
const-string v2, "%s\ncurAssetPaths : %s, assetPathsHistory : %s"
const/4 v3, 0x3
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
invoke-virtual {v0}, Landroid/content/res/Resources$NotFoundException;->getMessage()Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
aput-object v5, v3, v4
const/4 v4, 0x1
.line 571
invoke-virtual {p0}, Lorg/acdd/runtime/DelegateResources;->getAssets()Landroid/content/res/AssetManager;
move-result-object v5
invoke-static {v5}, Lorg/acdd/runtime/DelegateResources;->getOriginAssetsPath(Landroid/content/res/AssetManager;)Ljava/util/List;
move-result-object v5
aput-object v5, v3, v4
const/4 v4, 0x2
sget-object v5, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
aput-object v5, v3, v4
.line 570
invoke-static {v1, v2, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
.line 572
new-instance v2, Ljava/lang/RuntimeException;
invoke-direct {v2, v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
.end method
.method public getValue(Ljava/lang/String;Landroid/util/TypedValue;Z)V
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/content/res/Resources$NotFoundException;
}
.end annotation
.prologue
.line 587
:try_start_0
invoke-super {p0, p1, p2, p3}, Landroid/content/res/Resources;->getValue(Ljava/lang/String;Landroid/util/TypedValue;Z)V
:try_end_3
.catch Landroid/content/res/Resources$NotFoundException; {:try_start_0 .. :try_end_3} :catch_4
.line 598
:goto_3
return-void
.line 588
:catch_4
move-exception v0
.line 589
invoke-virtual {p0}, Lorg/acdd/runtime/DelegateResources;->retryAddHistoryAssetPath()V
.line 591
:try_start_8
invoke-super {p0, p1, p2, p3}, Landroid/content/res/Resources;->getValue(Ljava/lang/String;Landroid/util/TypedValue;Z)V
:try_end_b
.catch Landroid/content/res/Resources$NotFoundException; {:try_start_8 .. :try_end_b} :catch_c
goto :goto_3
.line 592
:catch_c
move-exception v0
.line 593
sget-object v1, Ljava/util/Locale;->CHINA:Ljava/util/Locale;
const-string v2, "%s\ncurAssetPaths : %s, assetPathsHistory : %s"
const/4 v3, 0x3
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
invoke-virtual {v0}, Landroid/content/res/Resources$NotFoundException;->getMessage()Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
aput-object v5, v3, v4
const/4 v4, 0x1
.line 594
invoke-virtual {p0}, Lorg/acdd/runtime/DelegateResources;->getAssets()Landroid/content/res/AssetManager;
move-result-object v5
invoke-static {v5}, Lorg/acdd/runtime/DelegateResources;->getOriginAssetsPath(Landroid/content/res/AssetManager;)Ljava/util/List;
move-result-object v5
aput-object v5, v3, v4
const/4 v4, 0x2
sget-object v5, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
aput-object v5, v3, v4
.line 593
invoke-static {v1, v2, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
.line 595
new-instance v2, Ljava/lang/RuntimeException;
invoke-direct {v2, v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
.end method
.method public retryAddHistoryAssetPath()V
.registers 5
.prologue
.line 270
:try_start_0
sget-object v0, Lorg/acdd/runtime/RuntimeVariables;->androidApplication:Landroid/app/Application;
sget-object v1, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
const/4 v2, 0x0
const/4 v3, 0x1
invoke-static {v0, v1, v2, v3}, Lorg/acdd/runtime/DelegateResources;->newDelegateResources(Landroid/app/Application;Landroid/content/res/Resources;Ljava/lang/String;Z)V
.line 271
sget-object v0, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
invoke-static {p0, v0}, Lorg/acdd/hack/ACDDHacks;->setResources_mAssets(Landroid/content/res/Resources;Landroid/content/res/Resources;)V
.line 273
sget-object v0, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
invoke-interface {v0}, Lorg/acdd/log/Logger;->isDebugEnabled()Z
move-result v0
if-eqz v0, :cond_3a
.line 274
sget-object v0, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "retryAddHistoryAssetPath"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p0}, Lorg/acdd/hack/ACDDHacks;->getResources_mAssets(Landroid/content/res/Resources;)Landroid/content/res/AssetManager;
move-result-object v2
invoke-static {v2}, Lorg/acdd/runtime/DelegateResources;->getOriginAssetsPath(Landroid/content/res/AssetManager;)Ljava/util/List;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-interface {v0, v1}, Lorg/acdd/log/Logger;->debug(Ljava/lang/String;)V
:try_end_3a
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_3a} :catch_3b
.line 279
:cond_3a
:goto_3a
return-void
.line 276
:catch_3b
move-exception v0
goto :goto_3a
.end method