.class public final Lcom/ph/permissions/HPermissions; .super Ljava/lang/Object; .source "HPermissions.java" # static fields .field public static final REQUEST_CODE:I = 0x400 .field private static sDebugMode:Ljava/lang/Boolean; # instance fields .field private mActivity:Landroid/app/Activity; .field private mPermissions:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Ljava/lang/String;", ">;" } .end annotation .end field # direct methods .method private constructor (Landroid/app/Activity;)V .locals 0 .line 34 invoke-direct {p0}, Ljava/lang/Object;->()V .line 35 iput-object p1, p0, Lcom/ph/permissions/HPermissions;->mActivity:Landroid/app/Activity; return-void .end method .method public static hasPermission(Landroid/content/Context;Ljava/util/List;)Z .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/content/Context;", "Ljava/util/List<", "Ljava/lang/String;", ">;)Z" } .end annotation .line 152 invoke-static {p0, p1}, Lcom/ph/permissions/PermissionUtils;->isPermissionGranted(Landroid/content/Context;Ljava/util/List;)Z move-result p0 return p0 .end method .method public static varargs hasPermission(Landroid/content/Context;[Ljava/lang/String;)Z .locals 1 if-eqz p1, :cond_1 .line 144 array-length v0, p1 if-nez v0, :cond_0 goto :goto_0 .line 147 :cond_0 invoke-static {p1}, Lcom/ph/permissions/PermissionUtils;->asArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; move-result-object p1 invoke-static {p0, p1}, Lcom/ph/permissions/HPermissions;->hasPermission(Landroid/content/Context;Ljava/util/List;)Z move-result p0 return p0 .line 145 :cond_1 :goto_0 invoke-static {p0}, Lcom/ph/permissions/PermissionUtils;->getManifestPermissions(Landroid/content/Context;)Ljava/util/List; move-result-object p1 invoke-static {p0, p1}, Lcom/ph/permissions/HPermissions;->hasPermission(Landroid/content/Context;Ljava/util/List;)Z move-result p0 return p0 .end method .method public static varargs hasPermission(Landroid/content/Context;[[Ljava/lang/String;)Z .locals 4 .line 159 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V .line 160 array-length v1, p1 const/4 v2, 0x0 :goto_0 if-ge v2, v1, :cond_0 aget-object v3, p1, v2 .line 161 invoke-static {v3}, Lcom/ph/permissions/PermissionUtils;->asArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; move-result-object v3 invoke-interface {v0, v3}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 163 :cond_0 invoke-static {p0, v0}, Lcom/ph/permissions/PermissionUtils;->isPermissionGranted(Landroid/content/Context;Ljava/util/List;)Z move-result p0 return p0 .end method .method public static setDebugMode(Z)V .locals 0 .line 55 invoke-static {p0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; move-result-object p0 sput-object p0, Lcom/ph/permissions/HPermissions;->sDebugMode:Ljava/lang/Boolean; return-void .end method .method public static startApplicationDetails(Landroid/app/Activity;)V .locals 2 .line 191 invoke-static {p0}, Lcom/ph/permissions/PermissionSettingPage;->getApplicationDetailsIntent(Landroid/content/Context;)Landroid/content/Intent; move-result-object v0 const/16 v1, 0x400 invoke-virtual {p0, v0, v1}, Landroid/app/Activity;->startActivityForResult(Landroid/content/Intent;I)V return-void .end method .method public static startApplicationDetails(Landroid/content/Context;)V .locals 2 .line 180 invoke-static {p0}, Lcom/ph/permissions/PermissionUtils;->getActivity(Landroid/content/Context;)Landroid/app/Activity; move-result-object v0 if-eqz v0, :cond_0 .line 182 invoke-static {v0}, Lcom/ph/permissions/HPermissions;->startApplicationDetails(Landroid/app/Activity;)V return-void .line 185 :cond_0 invoke-static {p0}, Lcom/ph/permissions/PermissionSettingPage;->getApplicationDetailsIntent(Landroid/content/Context;)Landroid/content/Intent; move-result-object v0 const/high16 v1, 0x10000000 .line 186 invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent; .line 187 invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V return-void .end method .method public static startPermissionActivity(Landroid/app/Activity;Ljava/util/List;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/app/Activity;", "Ljava/util/List<", "Ljava/lang/String;", ">;)V" } .end annotation .line 219 invoke-static {p0, p1}, Lcom/ph/permissions/PermissionSettingPage;->getSmartPermissionIntent(Landroid/content/Context;Ljava/util/List;)Landroid/content/Intent; move-result-object p1 const/16 v0, 0x400 invoke-virtual {p0, p1, v0}, Landroid/app/Activity;->startActivityForResult(Landroid/content/Intent;I)V return-void .end method .method public static varargs startPermissionActivity(Landroid/app/Activity;[Ljava/lang/String;)V .locals 0 .line 215 invoke-static {p1}, Lcom/ph/permissions/PermissionUtils;->asArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; move-result-object p1 invoke-static {p0, p1}, Lcom/ph/permissions/HPermissions;->startPermissionActivity(Landroid/app/Activity;Ljava/util/List;)V return-void .end method .method public static startPermissionActivity(Landroid/content/Context;)V .locals 0 .line 173 invoke-static {p0}, Lcom/ph/permissions/HPermissions;->startApplicationDetails(Landroid/content/Context;)V return-void .end method .method public static startPermissionActivity(Landroid/content/Context;Ljava/util/List;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/content/Context;", "Ljava/util/List<", "Ljava/lang/String;", ">;)V" } .end annotation .line 204 invoke-static {p0}, Lcom/ph/permissions/PermissionUtils;->getActivity(Landroid/content/Context;)Landroid/app/Activity; move-result-object v0 if-eqz v0, :cond_0 .line 206 invoke-static {v0, p1}, Lcom/ph/permissions/HPermissions;->startPermissionActivity(Landroid/app/Activity;Ljava/util/List;)V return-void .line 209 :cond_0 invoke-static {p0, p1}, Lcom/ph/permissions/PermissionSettingPage;->getSmartPermissionIntent(Landroid/content/Context;Ljava/util/List;)Landroid/content/Intent; move-result-object p1 const/high16 v0, 0x10000000 .line 210 invoke-virtual {p1, v0}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent; .line 211 invoke-virtual {p0, p1}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V return-void .end method .method public static varargs startPermissionActivity(Landroid/content/Context;[Ljava/lang/String;)V .locals 0 .line 200 invoke-static {p1}, Lcom/ph/permissions/PermissionUtils;->asArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; move-result-object p1 invoke-static {p0, p1}, Lcom/ph/permissions/HPermissions;->startPermissionActivity(Landroid/content/Context;Ljava/util/List;)V return-void .end method .method public static with(Landroid/app/Activity;)Lcom/ph/permissions/HPermissions; .locals 1 .line 48 new-instance v0, Lcom/ph/permissions/HPermissions; invoke-direct {v0, p0}, Lcom/ph/permissions/HPermissions;->(Landroid/app/Activity;)V return-object v0 .end method .method public static with(Landroid/content/Context;)Lcom/ph/permissions/HPermissions; .locals 0 .line 39 invoke-static {p0}, Lcom/ph/permissions/PermissionUtils;->getActivity(Landroid/content/Context;)Landroid/app/Activity; move-result-object p0 invoke-static {p0}, Lcom/ph/permissions/HPermissions;->with(Landroid/app/Activity;)Lcom/ph/permissions/HPermissions; move-result-object p0 return-object p0 .end method # virtual methods .method public permission(Ljava/util/List;)Lcom/ph/permissions/HPermissions; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/List<", "Ljava/lang/String;", ">;)", "Lcom/ph/permissions/HPermissions;" } .end annotation .line 91 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; if-nez v0, :cond_0 .line 92 iput-object p1, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; goto :goto_0 .line 94 :cond_0 invoke-interface {v0, p1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z :goto_0 return-object p0 .end method .method public varargs permission([Ljava/lang/String;)Lcom/ph/permissions/HPermissions; .locals 1 .line 62 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; if-nez v0, :cond_0 .line 63 invoke-static {p1}, Lcom/ph/permissions/PermissionUtils;->asArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; move-result-object p1 iput-object p1, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; goto :goto_0 .line 65 :cond_0 invoke-static {p1}, Lcom/ph/permissions/PermissionUtils;->asArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; move-result-object p1 invoke-interface {v0, p1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z :goto_0 return-object p0 .end method .method public varargs permission([[Ljava/lang/String;)Lcom/ph/permissions/HPermissions; .locals 5 .line 74 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; const/4 v1, 0x0 if-nez v0, :cond_1 .line 76 array-length v0, p1 move v2, v1 move v3, v2 :goto_0 if-ge v2, v0, :cond_0 aget-object v4, p1, v2 .line 77 array-length v4, v4 add-int/2addr v3, v4 add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 79 :cond_0 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0, v3}, Ljava/util/ArrayList;->(I)V iput-object v0, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; .line 81 :cond_1 array-length v0, p1 :goto_1 if-ge v1, v0, :cond_2 aget-object v2, p1, v1 .line 82 iget-object v3, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; invoke-static {v2}, Lcom/ph/permissions/PermissionUtils;->asArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; move-result-object v2 invoke-interface {v3, v2}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z add-int/lit8 v1, v1, 0x1 goto :goto_1 :cond_2 return-object p0 .end method .method public request(Lcom/ph/permissions/OnPermission;)V .locals 3 .line 104 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mActivity:Landroid/app/Activity; if-eqz v0, :cond_6 invoke-virtual {v0}, Landroid/app/Activity;->isFinishing()Z move-result v0 if-nez v0, :cond_6 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x11 if-lt v0, v1, :cond_0 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mActivity:Landroid/app/Activity; .line 105 invoke-virtual {v0}, Landroid/app/Activity;->isDestroyed()Z move-result v0 if-eqz v0, :cond_0 goto :goto_0 .line 110 :cond_0 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; if-eqz v0, :cond_5 invoke-interface {v0}, Ljava/util/List;->isEmpty()Z move-result v0 if-nez v0, :cond_5 .line 114 sget-object v0, Lcom/ph/permissions/HPermissions;->sDebugMode:Ljava/lang/Boolean; if-nez v0, :cond_1 .line 115 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mActivity:Landroid/app/Activity; invoke-static {v0}, Lcom/ph/permissions/PermissionUtils;->isDebugMode(Landroid/content/Context;)Z move-result v0 invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; move-result-object v0 sput-object v0, Lcom/ph/permissions/HPermissions;->sDebugMode:Ljava/lang/Boolean; .line 119 :cond_1 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; invoke-static {v0}, Lcom/ph/permissions/PermissionUtils;->optimizeDeprecatedPermission(Ljava/util/List;)V .line 121 sget-object v0, Lcom/ph/permissions/HPermissions;->sDebugMode:Ljava/lang/Boolean; invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z move-result v0 if-eqz v0, :cond_2 .line 123 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mActivity:Landroid/app/Activity; iget-object v1, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; invoke-static {v0, v1}, Lcom/ph/permissions/PermissionUtils;->checkTargetSdkVersion(Landroid/content/Context;Ljava/util/List;)V .line 125 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mActivity:Landroid/app/Activity; iget-object v1, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; invoke-static {v0, v1}, Lcom/ph/permissions/PermissionUtils;->checkPermissionManifest(Landroid/app/Activity;Ljava/util/List;)V .line 128 :cond_2 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mActivity:Landroid/app/Activity; iget-object v1, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; invoke-static {v0, v1}, Lcom/ph/permissions/PermissionUtils;->isPermissionGranted(Landroid/content/Context;Ljava/util/List;)Z move-result v0 if-eqz v0, :cond_4 if-eqz p1, :cond_3 .line 131 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; const/4 v1, 0x1 invoke-interface {p1, v0, v1}, Lcom/ph/permissions/OnPermission;->hasPermission(Ljava/util/List;Z)V :cond_3 return-void .line 137 :cond_4 iget-object v0, p0, Lcom/ph/permissions/HPermissions;->mActivity:Landroid/app/Activity; new-instance v1, Ljava/util/ArrayList; iget-object v2, p0, Lcom/ph/permissions/HPermissions;->mPermissions:Ljava/util/List; invoke-direct {v1, v2}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V invoke-static {v0, v1, p1}, Lcom/ph/permissions/PermissionFragment;->beginRequest(Landroid/app/Activity;Ljava/util/ArrayList;Lcom/ph/permissions/OnPermission;)V return-void .line 111 :cond_5 new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "The requested permission cannot be empty" invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 :cond_6 :goto_0 return-void .end method