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 84
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 122
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 123
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 124
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 125
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 126
sput-boolean v5, Lorg/acdd/runtime/DelegateResources;->ignoreOpt:Z
.line 131
:cond_2d
const/4 v0, 0x0
sput-object v0, Lorg/acdd/runtime/DelegateResources;->mOriginAssetsPath:Ljava/util/List;
.line 132
return-void
.line 124
: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 135
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 136
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 137
invoke-direct {p0}, Lorg/acdd/runtime/DelegateResources;->prepareClearDrawableCache()Z
move-result v0
iput-boolean v0, p0, Lorg/acdd/runtime/DelegateResources;->mEnableClearDrawable:Z
.line 138
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 75
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 75
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 282
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 283
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 286
invoke-static {v0}, Lorg/acdd/runtime/DelegateResources;->getLoadedDexPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 287
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 288
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 291
:cond_4e
invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v1
.line 292
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 293
:cond_6b
const/4 v1, 0x1
:goto_6c
move v4, v2
move v3, v2
.line 297
:goto_6e
const/4 v7, 0x4
if-gt v4, v7, :cond_f2
.line 298
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 299
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 300
invoke-static {p0, v0}, Lorg/acdd/hack/ACDDHacks;->addAssetPathAsSharedLibrary(Landroid/content/res/AssetManager;Ljava/lang/String;)I
move-result v3
.line 305
:goto_96
if-eqz v3, :cond_ac
move v1, v3
.line 309
:goto_99
if-nez v1, :cond_9e
.line 310
invoke-static {v0}, Lorg/acdd/runtime/DelegateResources;->recordAddAssetPathFailed(Ljava/lang/String;)V
.line 312
: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 302
: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 297
:cond_ac
add-int/lit8 v4, v4, 0x1
goto :goto_6e
.line 315
: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 316
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 317
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 319
: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 320
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 720
.line 729
: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 730
const/4 v2, 0x1
invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 731
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 732
: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 733
const/4 v2, 0x1
invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 734
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 735
: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 736
const/4 v2, 0x1
invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 737
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 739
:try_start_33
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x15
if-ge v1, v2, :cond_9d
.line 740
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 741
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 755
:goto_5d
sget v6, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v9, 0x15
if-ge v6, v9, :cond_e6
.line 756
if-eqz v5, :cond_194
if-eqz v2, :cond_194
if-eqz v1, :cond_194
if-eqz v0, :cond_194
move v6, v7
.line 769
:goto_6c
if-eqz v6, :cond_9c
.line 770
monitor-enter v2
.line 771
: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 773
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 774
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 796
:goto_9b
:try_start_9b
monitor-exit v2
:try_end_9c
.catchall {:try_start_9b .. :try_end_9c} :catchall_107
.line 798
:cond_9c
return-void
.line 743
: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 744
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 745
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 748
: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 751
: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 752
: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 759
:cond_e6
sget v6, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v9, 0x17
if-ge v6, v9, :cond_f7
.line 760
if-eqz v4, :cond_194
if-eqz v2, :cond_194
if-eqz v1, :cond_194
if-eqz v0, :cond_194
move v6, v7
.line 761
goto/16 :goto_6c
.line 764
: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 765
goto/16 :goto_6c
.line 776
:catch_102
move-exception v0
.line 777
:try_start_103
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_9b
.line 796
:catchall_107
move-exception v0
monitor-exit v2
:try_end_109
.catchall {:try_start_103 .. :try_end_109} :catchall_107
throw v0
.line 779
: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 781
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 782
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 784
:catch_138
move-exception v0
.line 785
: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 789
: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 790
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 792
:catch_160
move-exception v0
.line 793
: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 751
: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 463
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 464
invoke-virtual {v0, p0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v2
if-eqz v2, :cond_4
.line 468
: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 395
new-instance v6, Ljava/util/LinkedHashSet;
invoke-direct {v6}, Ljava/util/LinkedHashSet;-><init>()V
.line 396
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 397
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 398
const-string v0, "/system/app/WebViewGoogle/WebViewGoogle.apk"
invoke-interface {v6, v0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 401
: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 402
: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 403
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 404
sget-object v0, Lorg/acdd/runtime/DelegateResources;->mOriginAssetsPath:Ljava/util/List;
invoke-interface {v6, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 406
:cond_3f
monitor-exit v1
:try_end_40
.catchall {:try_start_20 .. :try_end_40} :catchall_4f
.line 411
:goto_40
sget-object v0, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
if-eqz v0, :cond_49
.line 412
sget-object v0, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
invoke-interface {v6, v0}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 414
:cond_49
if-eqz p1, :cond_4e
.line 415
invoke-static {p1, v6}, Lorg/acdd/runtime/DelegateResources;->updateBundleResPath(Ljava/lang/String;Ljava/util/Set;)V
.line 417
:cond_4e
return-object v6
.line 406
: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 407
:catch_52
move-exception v5
.line 408
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 409
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 158
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 163
.line 164
: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 167
:goto_8
return-object v0
.line 166
:catch_9
move-exception v0
.line 167
const/4 v0, 0x0
goto :goto_8
.end method
.method public static getAssetHistoryPaths()Ljava/lang/String;
.registers 4
.prologue
.line 380
sget-object v0, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
if-nez v0, :cond_7
.line 381
const-string v0, ""
.line 389
:goto_6
return-object v0
.line 383
:cond_7
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
.line 384
const-string v0, "newDelegateResources ["
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 385
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 386
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 388
:cond_2d
const-string v0, "]"
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 389
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 599
if-eqz p0, :cond_1f
.line 601
:try_start_2
invoke-virtual {p0, p1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 602
if-eqz v0, :cond_1f
.line 603
invoke-virtual {v0}, Ljava/lang/reflect/Field;->isAccessible()Z
move-result v1
if-nez v1, :cond_12
.line 604
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 606
: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 613
:goto_1d
return v0
.line 610
:catch_1e
move-exception v0
.line 613
:cond_1f
:goto_1f
const/4 v0, 0x0
goto :goto_1d
.line 609
:catch_21
move-exception v0
goto :goto_1f
.line 608
:catch_23
move-exception v0
goto :goto_1f
.end method
.method private static getLoadedDexPath(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.prologue
.line 451
invoke-static {p0}, Lorg/acdd/util/ACDDUtils;->getPackageInfo(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 452
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_d
.line 453
const-string v0, ""
.line 459
:cond_c
:goto_c
return-object v0
.line 455
:cond_d
invoke-static {v0}, Lorg/acdd/framework/BundleManager;->getLoadedDexPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 456
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_c
.line 457
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 338
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
.line 340
:try_start_8
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v0, v3, :cond_5c
.line 341
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 342
const/4 v3, 0x1
invoke-virtual {v0, v3}, Ljava/lang/reflect/Method;->setAccessible(Z)V
.line 343
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 344
:goto_2a
if-ge v1, v3, :cond_80
.line 345
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 346
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-nez v4, :cond_59
.line 347
invoke-interface {v2, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 344
:cond_59
add-int/lit8 v1, v1, 0x1
goto :goto_2a
.line 350
:cond_5c
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v0, v3, :cond_80
.line 351
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 352
const/4 v3, 0x1
invoke-virtual {v0, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 353
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 354
if-eqz v0, :cond_80
move v3, v1
.line 355
:goto_79
array-length v1, v0
if-ge v3, v1, :cond_80
.line 356
aget-object v1, v0, v3
.line 357
if-nez v1, :cond_82
:cond_80
move-object v0, v2
.line 375
:goto_81
return-object v0
.line 360
: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 361
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 362
const/4 v5, 0x1
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->setAccessible(Z)V
.line 363
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 364
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-nez v4, :cond_a7
.line 365
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 355
:cond_a7
add-int/lit8 v1, v3, 0x1
move v3, v1
goto :goto_79
.line 371
:catch_ab
move-exception v0
.line 372
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 374
invoke-interface {v2}, Ljava/util/List;->clear()V
move-object v0, v2
.line 375
goto :goto_81
.end method
.method private static injectWebViewRes(Landroid/app/Application;Landroid/content/res/AssetManager;)V
.registers 5
.prologue
.line 258
: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 259
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 260
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 264
:goto_1d
return-void
.line 261
:catch_1e
move-exception v0
.line 262
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 175
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_8
.line 185
:cond_7
:goto_7
return v0
.line 179
: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 180
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 181
const/4 v0, 0x1
goto :goto_7
.line 183
:catch_18
move-exception v1
goto :goto_7
.end method
.method public static isAlreadyInjectThisResource(Ljava/lang/String;)Z
.registers 2
.prologue
.line 172
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 805
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 private static isAtLeastQ()Z
.registers 2
.prologue
.line 801
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1d
if-ge 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 189
: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 190
: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 191
monitor-exit v1
:try_end_7
.catchall {:try_start_3 .. :try_end_7} :catchall_36
.line 193
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_69
.line 194
invoke-static {p2}, Lorg/acdd/util/ACDDUtils;->getPackageInfo(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 195
invoke-static {v0}, Lorg/acdd/runtime/DelegateResources;->isAlreadyInjectThisResource(Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_35
.line 196
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 202
:cond_35
:goto_35
return-void
.line 191
: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 193
: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 194
invoke-static {p2}, Lorg/acdd/util/ACDDUtils;->getPackageInfo(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 195
invoke-static {v1}, Lorg/acdd/runtime/DelegateResources;->isAlreadyInjectThisResource(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_68
.line 196
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 199
: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 209
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 210
: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 211
if-eqz v2, :cond_85
.line 213
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 214
invoke-static {v0, v2}, Lorg/acdd/runtime/DelegateResources;->addAssetPath(Landroid/content/res/AssetManager;Ljava/util/Set;)V
.line 216
const/4 v1, 0x0
.line 217
if-eqz p1, :cond_29
.line 218
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 225
:cond_29
sput-object v1, Lorg/acdd/runtime/RuntimeVariables;->delegateResources:Landroid/content/res/Resources;
.line 226
invoke-static {p0, v1}, Lorg/acdd/hack/AndroidHack;->injectResources(Landroid/app/Application;Landroid/content/res/Resources;)V
.line 227
invoke-static {p0, v0}, Lorg/acdd/runtime/DelegateResources;->injectWebViewRes(Landroid/app/Application;Landroid/content/res/AssetManager;)V
.line 229
sput-object v2, Lorg/acdd/runtime/DelegateResources;->assetPathsHistory:Ljava/util/Set;
.line 230
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 231
new-instance v1, Ljava/lang/StringBuffer;
invoke-direct {v1}, Ljava/lang/StringBuffer;-><init>()V
.line 232
const-string v0, "newDelegateResources ["
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 233
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 234
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 236
:cond_5f
const-string v0, "]"
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 237
if-eqz p2, :cond_7c
.line 238
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 240
: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 254
:cond_85
:goto_85
return-void
.line 247
:cond_86
invoke-virtual {p0}, Landroid/app/Application;->getAssets()Landroid/content/res/AssetManager;
move-result-object v0
.line 248
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 249
new-instance v1, Ljava/util/LinkedHashSet;
invoke-direct {v1}, Ljava/util/LinkedHashSet;-><init>()V
.line 250
invoke-interface {v1, p2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 251
invoke-static {v0, v1}, Lorg/acdd/runtime/DelegateResources;->addAssetPath(Landroid/content/res/AssetManager;Ljava/util/Set;)V
.line 252
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 627
.line 629
: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 630
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 631
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 632
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 633
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 634
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 635
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 636
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 637
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 639
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v2, v7, :cond_72
.line 640
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 641
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 666
:goto_5d
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v2, v7, :cond_e4
.line 667
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 680
:cond_71
:goto_71
return v0
.line 643
:cond_72
:try_start_72
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v2, v8, :cond_c5
.line 644
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 645
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 648
: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 649
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 650
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 652
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 653
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 655
:catch_c3
move-exception v2
goto :goto_5d
.line 659
: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 662
:catch_dc
move-exception v2
.line 663
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 670
:cond_e4
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-ge v2, v8, :cond_fb
.line 671
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 675
: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 323
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 325
:try_start_10
invoke-static {p0}, Lorg/acdd/util/ApkUtils;->getFileMD5(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 326
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 327
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 328
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 329
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 335
:cond_52
:goto_52
return-void
.line 330
:catch_53
move-exception v0
.line 331
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 332
sget-object v1, Lorg/acdd/runtime/DelegateResources;->log:Lorg/acdd/log/Logger;
const-string/jumbo 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 577
: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 580
:goto_9
return-void
.line 578
: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 141
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 143
if-eqz p0, :cond_26
.line 144
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 146
instance-of v0, p0, Landroid/app/Activity;
if-eqz v0, :cond_27
.line 147
check-cast p0, Landroid/app/Activity;
.line 148
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 149
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 155
:cond_26
:goto_26
return-void
.line 151
: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 152
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 421
if-nez p0, :cond_3
.line 448
:goto_2
return-void
.line 425
:cond_3
invoke-static {p0}, Lorg/acdd/util/ACDDUtils;->getPackageInfo(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 426
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_11
.line 427
invoke-interface {p1, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_2
.line 431
:cond_11
invoke-static {v0}, Lorg/acdd/framework/BundleManager;->getLoadedDexPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 432
invoke-static {v0, p1}, Lorg/acdd/runtime/DelegateResources;->findAssetPathByLocation(Ljava/lang/String;Ljava/util/Set;)Ljava/lang/String;
move-result-object v0
.line 434
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_2c
.line 435
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_28
.line 436
invoke-interface {p1, v0}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 438
:cond_28
invoke-interface {p1, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_2
.line 442
:cond_2c
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_36
.line 443
invoke-interface {p1, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_2
.line 445
:cond_36
invoke-interface {p1, v0}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
.line 446
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 684
iget-boolean v0, p0, Lorg/acdd/runtime/DelegateResources;->mEnableClearDrawable:Z
if-eqz v0, :cond_3c
.line 685
iget-object v1, p0, Lorg/acdd/runtime/DelegateResources;->mAccessLock:Ljava/lang/Object;
monitor-enter v1
.line 686
: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 688
: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 689
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 715
:cond_3b
:goto_3b
:try_start_3b
monitor-exit v1
.line 717
:cond_3c
return-void
.line 691
:catch_3d
move-exception v0
.line 692
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_3b
.line 715
:catchall_42
move-exception v0
monitor-exit v1
:try_end_44
.catchall {:try_start_3b .. :try_end_44} :catchall_42
throw v0
.line 694
: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 696
: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 697
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 699
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 700
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 703
:catch_99
move-exception v0
.line 704
: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 708
: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 709
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 711
:catch_c8
move-exception v0
.line 712
: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 542
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 537
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 473
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 474
if-eqz v0, :cond_8
.line 517
:goto_7
return v0
.line 477
:cond_8
if-nez p2, :cond_2b
if-nez p3, :cond_2b
.line 478
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 479
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 482
: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 483
goto :goto_7
.line 485
:cond_39
invoke-static {}, Lorg/acdd/framework/BundleManager;->getBundles()Ljava/util/List;
move-result-object v0
.line 486
if-eqz v0, :cond_d0
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-nez v0, :cond_d0
.line 487
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 488
invoke-interface {v0}, Lorg/osgi/framework/Bundle;->getLocation()Ljava/lang/String;
move-result-object v4
.line 489
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 490
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 491
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 492
if-eqz v1, :cond_95
move v0, v1
.line 493
goto/16 :goto_7
.line 496
:cond_95
check-cast v0, Lorg/acdd/framework/BundleImpl;
.line 497
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 498
invoke-virtual {v0}, Lorg/acdd/framework/BundleImpl;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v0
.line 499
if-eqz v0, :cond_4d
.line 501
:try_start_a7
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 502
const-string v4, ".R$"
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 503
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 504
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 505
if-eqz v0, :cond_4d
.line 506
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 509
:catch_cd
move-exception v0
goto/16 :goto_4d
:cond_d0
move v0, v2
.line 517
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 548
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 558
: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 573
:cond_3
:goto_3
return-void
.line 559
:catch_4
move-exception v0
.line 560
if-eqz p1, :cond_3
.line 563
invoke-virtual {p0}, Lorg/acdd/runtime/DelegateResources;->retryAddHistoryAssetPath()V
.line 565
:try_start_a
invoke-super {p0, p1, p2, p3}, Landroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V
.line 566
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 567
:catch_11
move-exception v0
.line 568
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 569
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 568
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 570
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 585
: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 596
:goto_3
return-void
.line 586
:catch_4
move-exception v0
.line 587
invoke-virtual {p0}, Lorg/acdd/runtime/DelegateResources;->retryAddHistoryAssetPath()V
.line 589
: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 590
:catch_c
move-exception v0
.line 591
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 592
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 591
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 593
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 268
: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 269
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 271
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_3b
.line 272
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/jumbo 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_3b
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_3b} :catch_3c
.line 277
:cond_3b
:goto_3b
return-void
.line 274
:catch_3c
move-exception v0
goto :goto_3b
.end method