ceg.smali
.class public Ldxoptimizer/ceg;
.super Ljava/lang/Object;
.source "NotifyInfoExtractUtils.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Ldxoptimizer/ceg$a;
}
.end annotation
# direct methods
.method private static a(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)J
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/Class",
"<*>;)J"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchFieldException;,
Ljava/lang/IllegalAccessException;
}
.end annotation
.prologue
.line 44
invoke-virtual {p1}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v0
.line 45
if-ne v0, p2, :cond_15
.line 46
const-string v1, "viewId"
invoke-virtual {v0, v1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 47
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 48
invoke-virtual {v0, p0}, Ljava/lang/reflect/Field;->getLong(Ljava/lang/Object;)J
move-result-wide v0
.line 52
:goto_14
return-wide v0
.line 49
:cond_15
const-class v1, Ljava/lang/Object;
if-eq p1, v1, :cond_1e
.line 50
invoke-static {p0, v0, p2}, Ldxoptimizer/ceg;->a(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)J
move-result-wide v0
goto :goto_14
.line 52
:cond_1e
const-wide/16 v0, -0x1
goto :goto_14
.end method
.method private static a(Landroid/content/Context;Landroid/widget/RemoteViews;)Landroid/content/Context;
.registers 7
.annotation build Landroid/annotation/SuppressLint;
value = {
"PrivateApi"
}
.end annotation
.prologue
.line 30
:try_start_0
const-class v1, Landroid/widget/RemoteViews;
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x14
if-le v0, v2, :cond_27
const-string v0, "getContextForResources"
:goto_a
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Class;
const/4 v3, 0x0
const-class v4, Landroid/content/Context;
aput-object v4, v2, v3
invoke-virtual {v1, v0, v2}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 32
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Method;->setAccessible(Z)V
.line 33
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
aput-object p0, v1, v2
invoke-virtual {v0, p1, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/Context;
.line 39
:goto_26
return-object v0
.line 30
:cond_27
const-string v0, "prepareContext"
:try_end_29
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_29} :catch_2a
goto :goto_a
.line 34
:catch_2a
move-exception v0
.line 39
const/4 v0, 0x0
goto :goto_26
.end method
.method private static a(Ljava/util/ArrayList;J)Ldxoptimizer/ceg$a;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/ArrayList",
"<",
"Ldxoptimizer/ceg$a;",
">;J)",
"Ldxoptimizer/ceg$a;"
}
.end annotation
.prologue
.line 56
invoke-virtual {p0}, Ljava/util/ArrayList;->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, Ldxoptimizer/ceg$a;
.line 57
iget-wide v2, v0, Ldxoptimizer/ceg$a;->a:J
cmp-long v2, p1, v2
if-nez v2, :cond_4
.line 61
:goto_16
return-object v0
:cond_17
const/4 v0, 0x0
goto :goto_16
.end method
.method public static a(Landroid/app/Notification;Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
.registers 19
.annotation build Landroid/annotation/SuppressLint;
value = {
"PrivateApi"
}
.end annotation
.prologue
.line 75
move-object/from16 v0, p0
iget-object v7, v0, Landroid/app/Notification;->contentView:Landroid/widget/RemoteViews;
.line 77
if-nez v7, :cond_9
.line 78
const-string v2, ""
.line 174
:goto_8
return-object v2
.line 81
:cond_9
new-instance v8, Ljava/util/ArrayList;
invoke-direct {v8}, Ljava/util/ArrayList;-><init>()V
.line 82
move-object/from16 v0, p1
invoke-static {v0, v7}, Ldxoptimizer/ceg;->a(Landroid/content/Context;Landroid/widget/RemoteViews;)Landroid/content/Context;
move-result-object v2
.line 83
if-nez v2, :cond_19
.line 87
const-string v2, ""
goto :goto_8
.line 89
:cond_19
invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v2
invoke-virtual {v7}, Landroid/widget/RemoteViews;->getLayoutId()I
move-result v3
invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getLayout(I)Landroid/content/res/XmlResourceParser;
move-result-object v9
.line 92
:cond_25
:goto_25
const/4 v2, 0x1
:try_start_26
invoke-interface {v9}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v3
if-eq v2, v3, :cond_8a
.line 93
const/4 v2, 0x2
if-ne v2, v3, :cond_25
.line 97
const-wide/16 v4, -0x1
.line 98
const/4 v3, 0x0
.line 99
const/4 v2, 0x0
invoke-interface {v9}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeCount()I
move-result v10
move v6, v2
move-object v2, v3
:goto_39
if-ge v6, v10, :cond_78
.line 100
invoke-interface {v9, v6}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeName(I)Ljava/lang/String;
move-result-object v11
const/4 v3, -0x1
invoke-virtual {v11}, Ljava/lang/String;->hashCode()I
move-result v12
sparse-switch v12, :sswitch_data_13e
:cond_47
:goto_47
packed-switch v3, :pswitch_data_148
.line 99
:goto_4a
add-int/lit8 v3, v6, 0x1
move v6, v3
goto :goto_39
.line 100
:sswitch_4e
const-string v12, "id"
invoke-virtual {v11, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_47
const/4 v3, 0x0
goto :goto_47
:sswitch_58
const-string v12, "text"
invoke-virtual {v11, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_47
const/4 v3, 0x1
goto :goto_47
.line 102
:pswitch_62
invoke-interface {v9, v6}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(I)Ljava/lang/String;
move-result-object v3
const-string v4, "@"
const-string v5, ""
invoke-virtual {v3, v4, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v4
goto :goto_4a
.line 105
:pswitch_73
invoke-interface {v9, v6}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(I)Ljava/lang/String;
move-result-object v2
goto :goto_4a
.line 111
:cond_78
const-wide/16 v10, -0x1
cmp-long v3, v10, v4
if-nez v3, :cond_80
if-eqz v2, :cond_25
.line 112
:cond_80
new-instance v3, Ldxoptimizer/ceg$a;
invoke-direct {v3, v4, v5, v2}, Ldxoptimizer/ceg$a;-><init>(JLjava/lang/String;)V
invoke-virtual {v8, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:try_end_88
.catch Ljava/lang/Exception; {:try_start_26 .. :try_end_88} :catch_89
goto :goto_25
.line 115
:catch_89
move-exception v2
.line 122
:cond_8a
:try_start_8a
invoke-virtual {v7}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;
move-result-object v4
.line 123
if-eqz v4, :cond_10e
.line 124
array-length v5, v4
const/4 v2, 0x0
move v3, v2
:goto_97
if-ge v3, v5, :cond_10e
aget-object v2, v4, v3
.line 125
invoke-virtual {v2}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
move-result-object v6
const-string v9, "mActions"
invoke-virtual {v6, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v6
if-nez v6, :cond_ab
.line 124
:cond_a7
add-int/lit8 v2, v3, 0x1
move v3, v2
goto :goto_97
.line 129
:cond_ab
const/4 v6, 0x1
invoke-virtual {v2, v6}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 130
invoke-virtual {v2, v7}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/util/ArrayList;
.line 131
if-eqz v2, :cond_a7
.line 134
invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v6
:cond_bb
:goto_bb
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_a7
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v9
.line 135
invoke-virtual {v9}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
const-string v10, "android.widget.RemoteViews$Action"
.line 136
invoke-static {v10}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v10
.line 135
invoke-static {v9, v2, v10}, Ldxoptimizer/ceg;->a(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)J
move-result-wide v10
.line 138
const-wide/16 v12, -0x1
cmp-long v2, v12, v10
if-eqz v2, :cond_bb
invoke-static {v8, v10, v11}, Ldxoptimizer/ceg;->a(Ljava/util/ArrayList;J)Ldxoptimizer/ceg$a;
move-result-object v10
if-eqz v10, :cond_bb
.line 142
invoke-virtual {v9}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;
move-result-object v11
.line 143
array-length v12, v11
const/4 v2, 0x0
:goto_e9
if-ge v2, v12, :cond_bb
aget-object v13, v11, v2
.line 144
const-string v14, "value"
invoke-virtual {v13}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
move-result-object v15
invoke-virtual {v14, v15}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v14
if-nez v14, :cond_fc
.line 143
add-int/lit8 v2, v2, 0x1
goto :goto_e9
.line 148
:cond_fc
const/4 v2, 0x1
invoke-virtual {v13, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 149
invoke-virtual {v13, v9}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
.line 150
if-eqz v2, :cond_bb
.line 151
invoke-virtual {v2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
iput-object v2, v10, Ldxoptimizer/ceg$a;->b:Ljava/lang/String;
:try_end_10c
.catch Ljava/lang/Exception; {:try_start_8a .. :try_end_10c} :catch_10d
goto :goto_bb
.line 158
:catch_10d
move-exception v2
.line 164
:cond_10e
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
.line 165
invoke-virtual {v8}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v4
:cond_117
:goto_117
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_137
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ldxoptimizer/ceg$a;
.line 166
iget-object v5, v2, Ldxoptimizer/ceg$a;->b:Ljava/lang/String;
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v5
if-nez v5, :cond_117
.line 169
iget-object v2, v2, Ldxoptimizer/ceg$a;->b:Ljava/lang/String;
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
move-object/from16 v0, p2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_117
.line 174
:cond_137
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
goto/16 :goto_8
.line 100
nop
:sswitch_data_13e
.sparse-switch
0xd1b -> :sswitch_4e
0x36452d -> :sswitch_58
.end sparse-switch
:pswitch_data_148
.packed-switch 0x0
:pswitch_62
:pswitch_73
.end packed-switch
.end method