FlymeOSStatusBarFontUtils.smali

.class public Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;
.super Ljava/lang/Object;
.source "FlymeOSStatusBarFontUtils.java"


# static fields
.field private static SYSTEM_UI_FLAG_LIGHT_STATUS_BAR:I

.field private static mSetStatusBarColorIcon:Ljava/lang/reflect/Method;

.field private static mSetStatusBarDarkIcon:Ljava/lang/reflect/Method;

.field private static mStatusBarColorFiled:Ljava/lang/reflect/Field;


# direct methods
.method static constructor <clinit>()V
    .registers 6

    .line 21
    const-string/jumbo v0, "setStatusBarDarkIcon"

    const/4 v1, 0x0

    sput v1, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->SYSTEM_UI_FLAG_LIGHT_STATUS_BAR:I

    .line 25
    const/4 v2, 0x1

    :try_start_7
    const-class v3, Landroid/app/Activity;

    new-array v4, v2, [Ljava/lang/Class;

    sget-object v5, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    aput-object v5, v4, v1

    invoke-virtual {v3, v0, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object v3

    sput-object v3, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->mSetStatusBarColorIcon:Ljava/lang/reflect/Method;
    :try_end_15
    .catch Ljava/lang/NoSuchMethodException; {:try_start_7 .. :try_end_15} :catch_16

    .line 28
    goto :goto_17

    .line 26
    :catch_16
    move-exception v3

    .line 30
    :goto_17
    :try_start_17
    const-class v3, Landroid/app/Activity;

    new-array v2, v2, [Ljava/lang/Class;

    sget-object v4, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    aput-object v4, v2, v1

    invoke-virtual {v3, v0, v2}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object v0

    sput-object v0, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->mSetStatusBarDarkIcon:Ljava/lang/reflect/Method;
    :try_end_25
    .catch Ljava/lang/NoSuchMethodException; {:try_start_17 .. :try_end_25} :catch_26

    .line 33
    goto :goto_27

    .line 31
    :catch_26
    move-exception v0

    .line 35
    :goto_27
    :try_start_27
    const-class v0, Landroid/view/WindowManager$LayoutParams;

    const-string/jumbo v1, "statusBarColor"

    invoke-virtual {v0, v1}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;

    move-result-object v0

    sput-object v0, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->mStatusBarColorFiled:Ljava/lang/reflect/Field;
    :try_end_32
    .catch Ljava/lang/NoSuchFieldException; {:try_start_27 .. :try_end_32} :catch_33

    .line 38
    goto :goto_34

    .line 36
    :catch_33
    move-exception v0

    .line 40
    :goto_34
    :try_start_34
    const-class v0, Landroid/view/View;

    const-string v1, "SYSTEM_UI_FLAG_LIGHT_STATUS_BAR"

    invoke-virtual {v0, v1}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;

    move-result-object v0

    .line 41
    .local v0, "field":Ljava/lang/reflect/Field;
    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I

    move-result v1

    sput v1, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->SYSTEM_UI_FLAG_LIGHT_STATUS_BAR:I
    :try_end_43
    .catch Ljava/lang/NoSuchFieldException; {:try_start_34 .. :try_end_43} :catch_46
    .catch Ljava/lang/IllegalAccessException; {:try_start_34 .. :try_end_43} :catch_44

    .end local v0    # "field":Ljava/lang/reflect/Field;
    goto :goto_47

    .line 44
    :catch_44
    move-exception v0

    goto :goto_48

    .line 42
    :catch_46
    move-exception v0

    .line 46
    :goto_47
    nop

    .line 47
    :goto_48
    return-void
.end method

.method public constructor <init>()V
    .registers 1

    .line 17
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method private static changeMeizuFlag(Landroid/view/WindowManager$LayoutParams;Ljava/lang/String;Z)Z
    .registers 10
    .param p0, "winParams"    # Landroid/view/WindowManager$LayoutParams;
    .param p1, "flagName"    # Ljava/lang/String;
    .param p2, "on"    # Z

    .line 130
    :try_start_0
    invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v0

    invoke-virtual {v0, p1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;

    move-result-object v0

    .line 131
    .local v0, "f":Ljava/lang/reflect/Field;
    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V

    .line 132
    invoke-virtual {v0, p0}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I

    move-result v2

    .line 133
    .local v2, "bits":I
    invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v3

    const-string v4, "meizuFlags"

    invoke-virtual {v3, v4}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;

    move-result-object v3

    .line 134
    .local v3, "f2":Ljava/lang/reflect/Field;
    invoke-virtual {v3, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V

    .line 135
    invoke-virtual {v3, p0}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I

    move-result v4

    .line 136
    .local v4, "meizuFlags":I
    move v5, v4

    .line 137
    .local v5, "oldFlags":I
    if-eqz p2, :cond_26

    .line 138
    or-int/2addr v4, v2

    goto :goto_29

    .line 140
    :cond_26
    xor-int/lit8 v6, v2, -0x1

    and-int/2addr v4, v6

    .line 142
    :goto_29
    if-eq v5, v4, :cond_2f

    .line 143
    invoke-virtual {v3, p0, v4}, Ljava/lang/reflect/Field;->setInt(Ljava/lang/Object;I)V
    :try_end_2e
    .catch Ljava/lang/NoSuchFieldException; {:try_start_0 .. :try_end_2e} :catch_3f
    .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_2e} :catch_3a
    .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_2e} :catch_35
    .catchall {:try_start_0 .. :try_end_2e} :catchall_30

    .line 144
    return v1

    .line 142
    .end local v0    # "f":Ljava/lang/reflect/Field;
    .end local v2    # "bits":I
    .end local v3    # "f2":Ljava/lang/reflect/Field;
    .end local v4    # "meizuFlags":I
    .end local v5    # "oldFlags":I
    :cond_2f
    goto :goto_43

    .line 152
    :catchall_30
    move-exception v0

    .line 153
    .local v0, "e":Ljava/lang/Throwable;
    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    goto :goto_44

    .line 150
    .end local v0    # "e":Ljava/lang/Throwable;
    :catch_35
    move-exception v0

    .line 151
    .local v0, "e":Ljava/lang/IllegalArgumentException;
    invoke-virtual {v0}, Ljava/lang/IllegalArgumentException;->printStackTrace()V

    .end local v0    # "e":Ljava/lang/IllegalArgumentException;
    goto :goto_43

    .line 148
    :catch_3a
    move-exception v0

    .line 149
    .local v0, "e":Ljava/lang/IllegalAccessException;
    invoke-virtual {v0}, Ljava/lang/IllegalAccessException;->printStackTrace()V

    .end local v0    # "e":Ljava/lang/IllegalAccessException;
    goto :goto_43

    .line 146
    :catch_3f
    move-exception v0

    .line 147
    .local v0, "e":Ljava/lang/NoSuchFieldException;
    invoke-virtual {v0}, Ljava/lang/NoSuchFieldException;->printStackTrace()V

    .line 154
    .end local v0    # "e":Ljava/lang/NoSuchFieldException;
    :goto_43
    nop

    .line 155
    :goto_44
    const/4 v0, 0x0

    return v0
.end method

.method public static isBlackColor(II)Z
    .registers 4
    .param p0, "color"    # I
    .param p1, "level"    # I

    .line 57
    invoke-static {p0}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->toGrey(I)I

    move-result v0

    .line 58
    .local v0, "grey":I
    if-ge v0, p1, :cond_8

    const/4 v1, 0x1

    goto :goto_9

    :cond_8
    const/4 v1, 0x0

    :goto_9
    return v1
.end method

.method private static setStatusBarColor(Landroid/view/Window;I)V
    .registers 6
    .param p0, "window"    # Landroid/view/Window;
    .param p1, "color"    # I

    .line 184
    invoke-virtual {p0}, Landroid/view/Window;->getAttributes()Landroid/view/WindowManager$LayoutParams;

    move-result-object v0

    .line 185
    .local v0, "winParams":Landroid/view/WindowManager$LayoutParams;
    sget-object v1, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->mStatusBarColorFiled:Ljava/lang/reflect/Field;

    if-eqz v1, :cond_1f

    .line 187
    :try_start_8
    invoke-virtual {v1, v0}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I

    move-result v1

    .line 188
    .local v1, "oldColor":I
    if-eq v1, p1, :cond_1a

    .line 189
    sget-object v2, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->mStatusBarColorFiled:Ljava/lang/reflect/Field;

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v3

    invoke-virtual {v2, v0, v3}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V

    .line 190
    invoke-virtual {p0, v0}, Landroid/view/Window;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V
    :try_end_1a
    .catch Ljava/lang/IllegalAccessException; {:try_start_8 .. :try_end_1a} :catch_1b

    .line 194
    .end local v1    # "oldColor":I
    :cond_1a
    goto :goto_1f

    .line 192
    :catch_1b
    move-exception v1

    .line 193
    .local v1, "e":Ljava/lang/IllegalAccessException;
    invoke-virtual {v1}, Ljava/lang/IllegalAccessException;->printStackTrace()V

    .line 196
    .end local v1    # "e":Ljava/lang/IllegalAccessException;
    :cond_1f
    :goto_1f
    return-void
.end method

.method public static setStatusBarDarkIcon(Landroid/app/Activity;I)V
    .registers 6
    .param p0, "activity"    # Landroid/app/Activity;
    .param p1, "color"    # I

    .line 82
    sget-object v0, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->mSetStatusBarColorIcon:Ljava/lang/reflect/Method;

    if-eqz v0, :cond_1c

    .line 84
    const/4 v1, 0x1

    :try_start_5
    new-array v1, v1, [Ljava/lang/Object;

    const/4 v2, 0x0

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v3

    aput-object v3, v1, v2

    invoke-virtual {v0, p0, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    :try_end_11
    .catch Ljava/lang/IllegalAccessException; {:try_start_5 .. :try_end_11} :catch_17
    .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_5 .. :try_end_11} :catch_12

    goto :goto_1b

    .line 87
    :catch_12
    move-exception v0

    .line 88
    .local v0, "e":Ljava/lang/reflect/InvocationTargetException;
    invoke-virtual {v0}, Ljava/lang/reflect/InvocationTargetException;->printStackTrace()V

    .end local v0    # "e":Ljava/lang/reflect/InvocationTargetException;
    goto :goto_1b

    .line 85
    :catch_17
    move-exception v0

    .line 86
    .local v0, "e":Ljava/lang/IllegalAccessException;
    invoke-virtual {v0}, Ljava/lang/IllegalAccessException;->printStackTrace()V

    .line 89
    .end local v0    # "e":Ljava/lang/IllegalAccessException;
    :goto_1b
    goto :goto_34

    .line 91
    :cond_1c
    const/16 v0, 0x32

    invoke-static {p1, v0}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->isBlackColor(II)Z

    move-result v0

    .line 92
    .local v0, "whiteColor":Z
    sget-object v1, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->mStatusBarColorFiled:Ljava/lang/reflect/Field;

    if-eqz v1, :cond_31

    .line 93
    invoke-static {p0, v0, v0}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->setStatusBarDarkIcon(Landroid/app/Activity;ZZ)V

    .line 94
    invoke-virtual {p0}, Landroid/app/Activity;->getWindow()Landroid/view/Window;

    move-result-object v1

    invoke-static {v1, p1}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->setStatusBarDarkIcon(Landroid/view/Window;I)V

    goto :goto_34

    .line 96
    :cond_31
    invoke-static {p0, v0}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->setStatusBarDarkIcon(Landroid/app/Activity;Z)V

    .line 99
    .end local v0    # "whiteColor":Z
    :goto_34
    return-void
.end method

.method public static setStatusBarDarkIcon(Landroid/app/Activity;Z)V
    .registers 3
    .param p0, "activity"    # Landroid/app/Activity;
    .param p1, "dark"    # Z

    .line 125
    const/4 v0, 0x1

    invoke-static {p0, p1, v0}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->setStatusBarDarkIcon(Landroid/app/Activity;ZZ)V

    .line 126
    return-void
.end method

.method private static setStatusBarDarkIcon(Landroid/app/Activity;ZZ)V
    .registers 7
    .param p0, "activity"    # Landroid/app/Activity;
    .param p1, "dark"    # Z
    .param p2, "flag"    # Z

    .line 217
    sget-object v0, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->mSetStatusBarDarkIcon:Ljava/lang/reflect/Method;

    if-eqz v0, :cond_1c

    .line 219
    const/4 v1, 0x1

    :try_start_5
    new-array v1, v1, [Ljava/lang/Object;

    const/4 v2, 0x0

    invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v3

    aput-object v3, v1, v2

    invoke-virtual {v0, p0, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    :try_end_11
    .catch Ljava/lang/IllegalAccessException; {:try_start_5 .. :try_end_11} :catch_17
    .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_5 .. :try_end_11} :catch_12

    goto :goto_1b

    .line 222
    :catch_12
    move-exception v0

    .line 223
    .local v0, "e":Ljava/lang/reflect/InvocationTargetException;
    invoke-virtual {v0}, Ljava/lang/reflect/InvocationTargetException;->printStackTrace()V

    .end local v0    # "e":Ljava/lang/reflect/InvocationTargetException;
    goto :goto_1b

    .line 220
    :catch_17
    move-exception v0

    .line 221
    .local v0, "e":Ljava/lang/IllegalAccessException;
    invoke-virtual {v0}, Ljava/lang/IllegalAccessException;->printStackTrace()V

    .line 224
    .end local v0    # "e":Ljava/lang/IllegalAccessException;
    :goto_1b
    goto :goto_25

    .line 226
    :cond_1c
    if-eqz p2, :cond_25

    .line 227
    invoke-virtual {p0}, Landroid/app/Activity;->getWindow()Landroid/view/Window;

    move-result-object v0

    invoke-static {v0, p1}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->setStatusBarDarkIcon(Landroid/view/Window;Z)V

    .line 230
    :cond_25
    :goto_25
    return-void
.end method

.method private static setStatusBarDarkIcon(Landroid/view/View;Z)V
    .registers 5
    .param p0, "view"    # Landroid/view/View;
    .param p1, "dark"    # Z

    .line 165
    invoke-virtual {p0}, Landroid/view/View;->getSystemUiVisibility()I

    move-result v0

    .line 166
    .local v0, "oldVis":I
    move v1, v0

    .line 167
    .local v1, "newVis":I
    if-eqz p1, :cond_b

    .line 168
    sget v2, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->SYSTEM_UI_FLAG_LIGHT_STATUS_BAR:I

    or-int/2addr v1, v2

    goto :goto_10

    .line 170
    :cond_b
    sget v2, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->SYSTEM_UI_FLAG_LIGHT_STATUS_BAR:I

    xor-int/lit8 v2, v2, -0x1

    and-int/2addr v1, v2

    .line 172
    :goto_10
    if-eq v1, v0, :cond_15

    .line 173
    invoke-virtual {p0, v1}, Landroid/view/View;->setSystemUiVisibility(I)V

    .line 175
    :cond_15
    return-void
.end method

.method public static setStatusBarDarkIcon(Landroid/view/Window;I)V
    .registers 4
    .param p0, "window"    # Landroid/view/Window;
    .param p1, "color"    # I

    .line 109
    :try_start_0
    invoke-static {p0, p1}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->setStatusBarColor(Landroid/view/Window;I)V

    .line 110
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x16

    if-le v0, v1, :cond_11

    .line 111
    invoke-virtual {p0}, Landroid/view/Window;->getDecorView()Landroid/view/View;

    move-result-object v0

    const/4 v1, 0x1

    invoke-static {v0, v1}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->setStatusBarDarkIcon(Landroid/view/View;Z)V
    :try_end_11
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_11} :catch_12

    .line 115
    :cond_11
    goto :goto_16

    .line 113
    :catch_12
    move-exception v0

    .line 114
    .local v0, "e":Ljava/lang/Exception;
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

    .line 116
    .end local v0    # "e":Ljava/lang/Exception;
    :goto_16
    return-void
.end method

.method public static setStatusBarDarkIcon(Landroid/view/Window;Z)V
    .registers 4
    .param p0, "window"    # Landroid/view/Window;
    .param p1, "dark"    # Z

    .line 205
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x17

    if-ge v0, v1, :cond_10

    .line 206
    invoke-virtual {p0}, Landroid/view/Window;->getAttributes()Landroid/view/WindowManager$LayoutParams;

    move-result-object v0

    const-string v1, "MEIZU_FLAG_DARK_STATUS_BAR_ICON"

    invoke-static {v0, v1, p1}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->changeMeizuFlag(Landroid/view/WindowManager$LayoutParams;Ljava/lang/String;Z)Z

    goto :goto_1d

    .line 208
    :cond_10
    invoke-virtual {p0}, Landroid/view/Window;->getDecorView()Landroid/view/View;

    move-result-object v0

    .line 209
    .local v0, "decorView":Landroid/view/View;
    if-eqz v0, :cond_1d

    .line 210
    invoke-static {v0, p1}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->setStatusBarDarkIcon(Landroid/view/View;Z)V

    .line 211
    const/4 v1, 0x0

    invoke-static {p0, v1}, Lcom/gyf/barlibrary/FlymeOSStatusBarFontUtils;->setStatusBarColor(Landroid/view/Window;I)V

    .line 214
    .end local v0    # "decorView":Landroid/view/View;
    :cond_1d
    :goto_1d
    return-void
.end method

.method public static toGrey(I)I
    .registers 6
    .param p0, "rgb"    # I

    .line 69
    and-int/lit16 v0, p0, 0xff

    .line 70
    .local v0, "blue":I
    const v1, 0xff00

    and-int/2addr v1, p0

    shr-int/lit8 v1, v1, 0x8

    .line 71
    .local v1, "green":I
    const/high16 v2, 0xff0000

    and-int/2addr v2, p0

    shr-int/lit8 v2, v2, 0x10

    .line 72
    .local v2, "red":I
    mul-int/lit8 v3, v2, 0x26

    mul-int/lit8 v4, v1, 0x4b

    add-int/2addr v3, v4

    mul-int/lit8 v4, v0, 0xf

    add-int/2addr v3, v4

    shr-int/lit8 v3, v3, 0x7

    return v3
.end method