ao.smali
.class public Lcom/bytedance/embedapplog/ao;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field static a:Ljava/lang/Class;
.field private static b:Ljava/lang/Object;
.field private static c:Ljava/lang/reflect/Field;
.field private static d:Ljava/lang/Class;
.field private static e:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class",
"<*>;"
}
.end annotation
.end field
.field private static f:Ljava/lang/reflect/Method;
.field private static g:Z
.field private static h:Z
.field private static i:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
const/4 v0, 0x0
.line 47
sput-boolean v0, Lcom/bytedance/embedapplog/ao;->g:Z
.line 49
sput-boolean v0, Lcom/bytedance/embedapplog/ao;->h:Z
.line 51
sput-boolean v0, Lcom/bytedance/embedapplog/ao;->i:Z
return-void
.end method
.method static a(Landroid/view/View;)Ljava/lang/String;
.registers 4
.prologue
.line 209
invoke-virtual {p0}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
.line 210
instance-of v1, v0, Landroid/view/WindowManager$LayoutParams;
if-eqz v1, :cond_37
.line 211
check-cast v0, Landroid/view/WindowManager$LayoutParams;
.line 212
iget v0, v0, Landroid/view/WindowManager$LayoutParams;->type:I
.line 213
const/4 v1, 0x1
if-ne v0, v1, :cond_12
.line 214
const-string v0, "/MainWindow"
.line 230
:goto_11
return-object v0
.line 215
:cond_12
const/16 v1, 0x63
if-ge v0, v1, :cond_21
.line 216
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
sget-object v2, Lcom/bytedance/embedapplog/ao;->d:Ljava/lang/Class;
if-ne v1, v2, :cond_21
.line 217
const-string v0, "/DialogWindow"
goto :goto_11
.line 218
:cond_21
const/16 v1, 0x7cf
if-ge v0, v1, :cond_30
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
sget-object v2, Lcom/bytedance/embedapplog/ao;->a:Ljava/lang/Class;
if-ne v1, v2, :cond_30
.line 219
const-string v0, "/PopupWindow"
goto :goto_11
.line 220
:cond_30
const/16 v1, 0xbb7
if-ge v0, v1, :cond_37
.line 221
const-string v0, "/CustomWindow"
goto :goto_11
.line 226
:cond_37
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
.line 227
sget-object v1, Lcom/bytedance/embedapplog/ao;->d:Ljava/lang/Class;
if-ne v0, v1, :cond_42
.line 228
const-string v0, "/MainWindow"
goto :goto_11
.line 230
:cond_42
sget-object v1, Lcom/bytedance/embedapplog/ao;->a:Ljava/lang/Class;
if-ne v0, v1, :cond_49
const-string v0, "/PopupWindow"
goto :goto_11
:cond_49
const-string v0, "/CustomWindow"
goto :goto_11
.end method
.method public static a()V
.registers 5
.prologue
const/16 v4, 0x17
const/16 v2, 0x11
const/4 v3, 0x1
.line 57
sget-boolean v0, Lcom/bytedance/embedapplog/ao;->g:Z
if-nez v0, :cond_76
.line 59
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v0, v2, :cond_77
.line 60
const-string v0, "android.view.WindowManagerGlobal"
.line 68
:goto_f
:try_start_f
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v1
.line 70
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v0, v2, :cond_7a
.line 71
const-string v0, "sDefaultWindowManager"
.line 78
:goto_19
const-string v2, "mViews"
invoke-virtual {v1, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v2
sput-object v2, Lcom/bytedance/embedapplog/ao;->c:Ljava/lang/reflect/Field;
.line 79
invoke-virtual {v1, v0}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 80
sget-object v1, Lcom/bytedance/embedapplog/ao;->c:Ljava/lang/reflect/Field;
const/4 v2, 0x1
invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 81
sget-object v1, Lcom/bytedance/embedapplog/ao;->c:Ljava/lang/reflect/Field;
invoke-virtual {v1}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v1
const-class v2, Ljava/util/ArrayList;
if-ne v1, v2, :cond_86
.line 82
const/4 v1, 0x1
sput-boolean v1, Lcom/bytedance/embedapplog/ao;->h:Z
.line 87
:cond_38
:goto_38
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 88
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
sput-object v0, Lcom/bytedance/embedapplog/ao;->b:Ljava/lang/Object;
:try_end_43
.catch Ljava/lang/NoSuchFieldException; {:try_start_f .. :try_end_43} :catch_94
.catch Ljava/lang/IllegalAccessException; {:try_start_f .. :try_end_43} :catch_99
.catch Ljava/lang/ClassNotFoundException; {:try_start_f .. :try_end_43} :catch_9e
.line 98
:goto_43
:try_start_43
const-string v0, "com.android.internal.view.menu.ListMenuItemView"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
sput-object v0, Lcom/bytedance/embedapplog/ao;->e:Ljava/lang/Class;
.line 99
const-string v0, "com.android.internal.view.menu.MenuView$ItemView"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
.line 100
const-string v1, "getItemData"
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Class;
invoke-virtual {v0, v1, v2}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
sput-object v0, Lcom/bytedance/embedapplog/ao;->f:Ljava/lang/reflect/Method;
:try_end_5c
.catch Ljava/lang/ClassNotFoundException; {:try_start_43 .. :try_end_5c} :catch_a3
.catch Ljava/lang/NoSuchMethodException; {:try_start_43 .. :try_end_5c} :catch_a8
.line 108
:goto_5c
:try_start_5c
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_5e
.catch Ljava/lang/ClassNotFoundException; {:try_start_5c .. :try_end_5e} :catch_b7
if-lt v0, v4, :cond_bc
.line 110
:try_start_60
const-string v0, "com.android.internal.policy.PhoneWindow$DecorView"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
sput-object v0, Lcom/bytedance/embedapplog/ao;->d:Ljava/lang/Class;
:try_end_68
.catch Ljava/lang/ClassNotFoundException; {:try_start_60 .. :try_end_68} :catch_ad
.line 122
:goto_68
:try_start_68
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v0, v4, :cond_c5
.line 123
const-string v0, "android.widget.PopupWindow$PopupDecorView"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
sput-object v0, Lcom/bytedance/embedapplog/ao;->a:Ljava/lang/Class;
:try_end_74
.catch Ljava/lang/ClassNotFoundException; {:try_start_68 .. :try_end_74} :catch_ce
.line 131
:goto_74
sput-boolean v3, Lcom/bytedance/embedapplog/ao;->g:Z
.line 133
:cond_76
return-void
.line 62
:cond_77
const-string v0, "android.view.WindowManagerImpl"
goto :goto_f
.line 72
:cond_7a
:try_start_7a
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0xd
if-lt v0, v2, :cond_83
.line 73
const-string v0, "sWindowManager"
goto :goto_19
.line 75
:cond_83
const-string v0, "mWindowManager"
goto :goto_19
.line 83
:cond_86
sget-object v1, Lcom/bytedance/embedapplog/ao;->c:Ljava/lang/reflect/Field;
invoke-virtual {v1}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v1
const-class v2, [Landroid/view/View;
if-ne v1, v2, :cond_38
.line 84
const/4 v1, 0x1
sput-boolean v1, Lcom/bytedance/embedapplog/ao;->i:Z
:try_end_93
.catch Ljava/lang/NoSuchFieldException; {:try_start_7a .. :try_end_93} :catch_94
.catch Ljava/lang/IllegalAccessException; {:try_start_7a .. :try_end_93} :catch_99
.catch Ljava/lang/ClassNotFoundException; {:try_start_7a .. :try_end_93} :catch_9e
goto :goto_38
.line 89
:catch_94
move-exception v0
.line 90
invoke-static {v0}, Lcom/bytedance/embedapplog/aw;->a(Ljava/lang/Throwable;)V
goto :goto_43
.line 91
:catch_99
move-exception v0
.line 92
invoke-static {v0}, Lcom/bytedance/embedapplog/aw;->a(Ljava/lang/Throwable;)V
goto :goto_43
.line 93
:catch_9e
move-exception v0
.line 94
invoke-static {v0}, Lcom/bytedance/embedapplog/aw;->a(Ljava/lang/Throwable;)V
goto :goto_43
.line 101
:catch_a3
move-exception v0
.line 102
invoke-static {v0}, Lcom/bytedance/embedapplog/aw;->a(Ljava/lang/Throwable;)V
goto :goto_5c
.line 103
:catch_a8
move-exception v0
.line 104
invoke-static {v0}, Lcom/bytedance/embedapplog/aw;->a(Ljava/lang/Throwable;)V
goto :goto_5c
.line 111
:catch_ad
move-exception v0
.line 112
:try_start_ae
const-string v0, "com.android.internal.policy.DecorView"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
sput-object v0, Lcom/bytedance/embedapplog/ao;->d:Ljava/lang/Class;
:try_end_b6
.catch Ljava/lang/ClassNotFoundException; {:try_start_ae .. :try_end_b6} :catch_b7
goto :goto_68
.line 117
:catch_b7
move-exception v0
.line 118
invoke-static {v0}, Lcom/bytedance/embedapplog/aw;->a(Ljava/lang/Throwable;)V
goto :goto_68
.line 115
:cond_bc
:try_start_bc
const-string v0, "com.android.internal.policy.impl.PhoneWindow$DecorView"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
sput-object v0, Lcom/bytedance/embedapplog/ao;->d:Ljava/lang/Class;
:try_end_c4
.catch Ljava/lang/ClassNotFoundException; {:try_start_bc .. :try_end_c4} :catch_b7
goto :goto_68
.line 125
:cond_c5
:try_start_c5
const-string v0, "android.widget.PopupWindow$PopupViewContainer"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
sput-object v0, Lcom/bytedance/embedapplog/ao;->a:Ljava/lang/Class;
:try_end_cd
.catch Ljava/lang/ClassNotFoundException; {:try_start_c5 .. :try_end_cd} :catch_ce
goto :goto_74
.line 127
:catch_ce
move-exception v0
.line 128
invoke-static {v0}, Lcom/bytedance/embedapplog/aw;->a(Ljava/lang/Throwable;)V
goto :goto_74
.end method
.method private static a([Landroid/view/View;)[Landroid/view/View;
.registers 7
.prologue
const/4 v1, 0x0
.line 177
new-instance v2, Ljava/util/ArrayList;
array-length v0, p0
invoke-direct {v2, v0}, Ljava/util/ArrayList;-><init>(I)V
.line 179
array-length v3, p0
move v0, v1
.line 181
:goto_9
if-ge v0, v3, :cond_3a
.line 182
add-int/lit8 v4, v3, -0x1
sub-int/2addr v4, v0
aget-object v4, p0, v4
.line 183
if-eqz v4, :cond_2e
.line 184
invoke-virtual {v4}, Landroid/view/View;->getWindowVisibility()I
move-result v5
if-nez v5, :cond_2e
.line 185
invoke-virtual {v4}, Landroid/view/View;->getVisibility()I
move-result v5
if-nez v5, :cond_2e
.line 186
invoke-virtual {v4}, Landroid/view/View;->getWidth()I
move-result v5
if-eqz v5, :cond_2e
.line 187
invoke-virtual {v4}, Landroid/view/View;->getHeight()I
move-result v5
if-eqz v5, :cond_2e
instance-of v5, v4, Lcom/bytedance/embedapplog/ca;
if-eqz v5, :cond_31
.line 181
:cond_2e
add-int/lit8 v0, v0, 0x1
goto :goto_9
.line 192
:cond_31
invoke-interface {v2, v1, v4}, Ljava/util/List;->add(ILjava/lang/Object;)V
.line 193
invoke-static {v4}, Lcom/bytedance/embedapplog/ao;->b(Landroid/view/View;)Z
move-result v4
if-eqz v4, :cond_2e
.line 199
:cond_3a
invoke-interface {v2}, Ljava/util/List;->size()I
move-result v0
new-array v0, v0, [Landroid/view/View;
.line 200
invoke-interface {v2, v0}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 201
return-object v0
.end method
.method static b(Landroid/view/View;)Z
.registers 3
.prologue
.line 235
sget-boolean v0, Lcom/bytedance/embedapplog/ao;->g:Z
if-nez v0, :cond_7
.line 236
invoke-static {}, Lcom/bytedance/embedapplog/ao;->a()V
.line 239
:cond_7
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
.line 240
sget-object v1, Lcom/bytedance/embedapplog/ao;->d:Ljava/lang/Class;
if-eq v0, v1, :cond_13
sget-object v1, Lcom/bytedance/embedapplog/ao;->a:Ljava/lang/Class;
if-ne v0, v1, :cond_15
:cond_13
const/4 v0, 0x1
:goto_14
return v0
:cond_15
const/4 v0, 0x0
goto :goto_14
.end method
.method public static b()[Landroid/view/View;
.registers 4
.prologue
const/4 v3, 0x0
.line 151
new-array v1, v3, [Landroid/view/View;
.line 152
sget-object v0, Lcom/bytedance/embedapplog/ao;->b:Ljava/lang/Object;
if-nez v0, :cond_1d
.line 153
invoke-static {}, Lcom/bytedance/embedapplog/ch;->a()Landroid/app/Activity;
move-result-object v2
.line 154
if-eqz v2, :cond_1b
const/4 v0, 0x1
new-array v0, v0, [Landroid/view/View;
invoke-virtual {v2}, Landroid/app/Activity;->getWindow()Landroid/view/Window;
move-result-object v1
invoke-virtual {v1}, Landroid/view/Window;->getDecorView()Landroid/view/View;
move-result-object v1
aput-object v1, v0, v3
.line 173
:goto_1a
return-object v0
:cond_1b
move-object v0, v1
.line 154
goto :goto_1a
.line 157
:cond_1d
const/4 v0, 0x0
.line 158
:try_start_1e
sget-boolean v2, Lcom/bytedance/embedapplog/ao;->h:Z
if-eqz v2, :cond_3c
.line 159
sget-object v0, Lcom/bytedance/embedapplog/ao;->c:Ljava/lang/reflect/Field;
sget-object v2, Lcom/bytedance/embedapplog/ao;->b:Ljava/lang/Object;
invoke-virtual {v0, v2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Landroid/view/View;
check-cast v0, [Landroid/view/View;
:try_end_34
.catch Ljava/lang/Exception; {:try_start_1e .. :try_end_34} :catch_4d
.line 164
:cond_34
:goto_34
if-eqz v0, :cond_37
move-object v1, v0
.line 171
:cond_37
:goto_37
invoke-static {v1}, Lcom/bytedance/embedapplog/ao;->a([Landroid/view/View;)[Landroid/view/View;
move-result-object v0
goto :goto_1a
.line 160
:cond_3c
:try_start_3c
sget-boolean v2, Lcom/bytedance/embedapplog/ao;->i:Z
if-eqz v2, :cond_34
.line 161
sget-object v0, Lcom/bytedance/embedapplog/ao;->c:Ljava/lang/reflect/Field;
sget-object v2, Lcom/bytedance/embedapplog/ao;->b:Ljava/lang/Object;
invoke-virtual {v0, v2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, [Landroid/view/View;
check-cast v0, [Landroid/view/View;
:try_end_4c
.catch Ljava/lang/Exception; {:try_start_3c .. :try_end_4c} :catch_4d
goto :goto_34
.line 167
:catch_4d
move-exception v0
.line 168
invoke-static {v0}, Lcom/bytedance/embedapplog/aw;->a(Ljava/lang/Throwable;)V
goto :goto_37
.end method
.method static c(Landroid/view/View;)Ljava/lang/Object;
.registers 3
.annotation build Landroid/annotation/SuppressLint;
value = {
"RestrictedApi"
}
.end annotation
.prologue
.line 245
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
sget-object v1, Lcom/bytedance/embedapplog/ao;->e:Ljava/lang/Class;
if-ne v0, v1, :cond_12
.line 246
sget-object v0, Lcom/bytedance/embedapplog/ao;->f:Ljava/lang/reflect/Method;
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-virtual {v0, p0, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 250
:goto_11
return-object v0
.line 247
:cond_12
invoke-static {p0}, Lcom/bytedance/embedapplog/ai;->l(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1f
.line 248
check-cast p0, Landroid/support/v7/view/menu/ListMenuItemView;
invoke-virtual {p0}, Landroid/support/v7/view/menu/ListMenuItemView;->getItemData()Landroid/support/v7/view/menu/MenuItemImpl;
move-result-object v0
goto :goto_11
.line 250
:cond_1f
invoke-static {p0}, Lcom/bytedance/embedapplog/ai;->k(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2c
check-cast p0, Landroid/support/v7/view/menu/ListMenuItemView;
.line 251
invoke-virtual {p0}, Landroid/support/v7/view/menu/ListMenuItemView;->getItemData()Landroid/support/v7/view/menu/MenuItemImpl;
move-result-object v0
goto :goto_11
:cond_2c
const/4 v0, 0x0
goto :goto_11
.end method