OSUtils.smali
.class public Lcom/gyf/barlibrary/OSUtils;
.super Ljava/lang/Object;
.source "OSUtils.java"
# static fields
.field private static final KEY_DISPLAY:Ljava/lang/String; = "ro.build.display.id"
.field private static final KEY_EMUI_VERSION_NAME:Ljava/lang/String; = "ro.build.version.emui"
.field private static final KEY_MIUI_VERSION_NAME:Ljava/lang/String; = "ro.miui.ui.version.name"
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 11
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getEMUIVersion()Ljava/lang/String;
.registers 2
.line 76
invoke-static {}, Lcom/gyf/barlibrary/OSUtils;->isEMUI()Z
move-result v0
const-string v1, ""
if-eqz v0, :cond_f
const-string/jumbo v0, "ro.build.version.emui"
invoke-static {v0, v1}, Lcom/gyf/barlibrary/OSUtils;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
:cond_f
return-object v1
.end method
.method private static getFlymeOSFlag()Ljava/lang/String;
.registers 2
.line 177
const-string/jumbo v0, "ro.build.display.id"
const-string v1, ""
invoke-static {v0, v1}, Lcom/gyf/barlibrary/OSUtils;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getFlymeOSVersion()Ljava/lang/String;
.registers 2
.line 173
invoke-static {}, Lcom/gyf/barlibrary/OSUtils;->isFlymeOS()Z
move-result v0
const-string v1, ""
if-eqz v0, :cond_f
const-string/jumbo v0, "ro.build.display.id"
invoke-static {v0, v1}, Lcom/gyf/barlibrary/OSUtils;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
:cond_f
return-object v1
.end method
.method public static getMIUIVersion()Ljava/lang/String;
.registers 2
.line 55
invoke-static {}, Lcom/gyf/barlibrary/OSUtils;->isMIUI()Z
move-result v0
const-string v1, ""
if-eqz v0, :cond_f
const-string/jumbo v0, "ro.miui.ui.version.name"
invoke-static {v0, v1}, Lcom/gyf/barlibrary/OSUtils;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
:cond_f
return-object v1
.end method
.method private static getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 9
.param p0, "key" # Ljava/lang/String;
.param p1, "defaultValue" # Ljava/lang/String;
.line 182
:try_start_0
const-string v0, "android.os.SystemProperties"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
.line 183
.local v0, "clz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
const-string v1, "get"
const/4 v2, 0x2
new-array v3, v2, [Ljava/lang/Class;
const-class v4, Ljava/lang/String;
const/4 v5, 0x0
aput-object v4, v3, v5
const-class v4, Ljava/lang/String;
const/4 v6, 0x1
aput-object v4, v3, v6
invoke-virtual {v0, v1, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
.line 184
.local v1, "get":Ljava/lang/reflect/Method;
new-array v2, v2, [Ljava/lang/Object;
aput-object p0, v2, v5
aput-object p1, v2, v6
invoke-virtual {v1, v0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
:try_end_25
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_26
return-object v2
.line 185
.end local v0 # "clz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
.end local v1 # "get":Ljava/lang/reflect/Method;
:catch_26
move-exception v0
.line 186
.local v0, "e":Ljava/lang/Exception;
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
.line 188
.end local v0 # "e":Ljava/lang/Exception;
return-object p1
.end method
.method public static isEMUI()Z
.registers 2
.line 65
const-string/jumbo v0, "ro.build.version.emui"
const-string v1, ""
invoke-static {v0, v1}, Lcom/gyf/barlibrary/OSUtils;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 66
.local v0, "property":Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
xor-int/lit8 v1, v1, 0x1
return v1
.end method
.method public static isEMUI3_0()Z
.registers 2
.line 100
invoke-static {}, Lcom/gyf/barlibrary/OSUtils;->getEMUIVersion()Ljava/lang/String;
move-result-object v0
.line 101
.local v0, "property":Ljava/lang/String;
const-string v1, "EmotionUI_3.0"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_e
.line 102
const/4 v1, 0x1
return v1
.line 104
:cond_e
const/4 v1, 0x0
return v1
.end method
.method public static isEMUI3_1()Z
.registers 2
.line 86
invoke-static {}, Lcom/gyf/barlibrary/OSUtils;->getEMUIVersion()Ljava/lang/String;
move-result-object v0
.line 87
.local v0, "property":Ljava/lang/String;
const-string v1, "EmotionUI 3"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_17
const-string v1, "EmotionUI_3.1"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_15
goto :goto_17
.line 90
:cond_15
const/4 v1, 0x0
return v1
.line 88
:cond_17
:goto_17
const/4 v1, 0x1
return v1
.end method
.method public static isFlymeOS()Z
.registers 2
.line 114
invoke-static {}, Lcom/gyf/barlibrary/OSUtils;->getFlymeOSFlag()Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v0
const-string v1, "flyme"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
return v0
.end method
.method public static isFlymeOS4Later()Z
.registers 4
.line 124
invoke-static {}, Lcom/gyf/barlibrary/OSUtils;->getFlymeOSVersion()Ljava/lang/String;
move-result-object v0
.line 126
.local v0, "version":Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v1
const/4 v2, 0x0
if-nez v1, :cond_3d
.line 128
:try_start_b
invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v1
const-string v3, "os"
invoke-virtual {v1, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_28
.line 129
const/16 v1, 0x9
const/16 v3, 0xa
invoke-virtual {v0, v1, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
.local v1, "num":I
goto :goto_36
.line 131
.end local v1 # "num":I
:cond_28
const/4 v1, 0x6
const/4 v3, 0x7
invoke-virtual {v0, v1, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
:try_end_36
.catch Ljava/lang/NumberFormatException; {:try_start_b .. :try_end_36} :catch_3b
.line 133
.restart local v1 # "num":I
:goto_36
const/4 v3, 0x4
if-lt v1, v3, :cond_3a
const/4 v2, 0x1
:cond_3a
return v2
.line 134
.end local v1 # "num":I
:catch_3b
move-exception v1
.line 135
.local v1, "e":Ljava/lang/NumberFormatException;
return v2
.line 138
.end local v1 # "e":Ljava/lang/NumberFormatException;
:cond_3d
return v2
.end method
.method public static isFlymeOS5()Z
.registers 4
.line 148
invoke-static {}, Lcom/gyf/barlibrary/OSUtils;->getFlymeOSVersion()Ljava/lang/String;
move-result-object v0
.line 150
.local v0, "version":Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v1
const/4 v2, 0x0
if-nez v1, :cond_3d
.line 152
:try_start_b
invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v1
const-string v3, "os"
invoke-virtual {v1, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_28
.line 153
const/16 v1, 0x9
const/16 v3, 0xa
invoke-virtual {v0, v1, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
.local v1, "num":I
goto :goto_36
.line 155
.end local v1 # "num":I
:cond_28
const/4 v1, 0x6
const/4 v3, 0x7
invoke-virtual {v0, v1, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
:try_end_36
.catch Ljava/lang/NumberFormatException; {:try_start_b .. :try_end_36} :catch_3b
.line 157
.restart local v1 # "num":I
:goto_36
const/4 v3, 0x5
if-ne v1, v3, :cond_3a
const/4 v2, 0x1
:cond_3a
return v2
.line 158
.end local v1 # "num":I
:catch_3b
move-exception v1
.line 159
.local v1, "e":Ljava/lang/NumberFormatException;
return v2
.line 162
.end local v1 # "e":Ljava/lang/NumberFormatException;
:cond_3d
return v2
.end method
.method public static isMIUI()Z
.registers 2
.line 24
const-string/jumbo v0, "ro.miui.ui.version.name"
const-string v1, ""
invoke-static {v0, v1}, Lcom/gyf/barlibrary/OSUtils;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 25
.local v0, "property":Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
xor-int/lit8 v1, v1, 0x1
return v1
.end method
.method public static isMIUI6Later()Z
.registers 5
.line 35
invoke-static {}, Lcom/gyf/barlibrary/OSUtils;->getMIUIVersion()Ljava/lang/String;
move-result-object v0
.line 37
.local v0, "version":Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v1
const/4 v2, 0x0
if-nez v1, :cond_1f
.line 39
const/4 v1, 0x1
:try_start_c
invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
:try_end_18
.catch Ljava/lang/NumberFormatException; {:try_start_c .. :try_end_18} :catch_1d
.line 40
.local v3, "num":I
const/4 v4, 0x6
if-lt v3, v4, :cond_1c
const/4 v2, 0x1
:cond_1c
return v2
.line 41
.end local v3 # "num":I
:catch_1d
move-exception v1
.line 42
.local v1, "e":Ljava/lang/NumberFormatException;
return v2
.line 45
.end local v1 # "e":Ljava/lang/NumberFormatException;
:cond_1f
return v2
.end method