.class public Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment; .super Landroid/app/Fragment; .source "RxPermissionsFragment.java" # static fields .field private static final PERMISSIONS_REQUEST_CODE:I = 0x2a # instance fields .field private mLogging:Z .field private mSubjects:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/lang/String;", "Lio/reactivex/subjects/PublishSubject<", "Lcom/tbruyelle/rxpermissions2/Permission;", ">;>;" } .end annotation .end field # direct methods .method public constructor ()V .locals 1 .line 23 invoke-direct {p0}, Landroid/app/Fragment;->()V .line 20 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V iput-object v0, p0, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->mSubjects:Ljava/util/Map; .line 24 return-void .end method # virtual methods .method public containsByPermission(Ljava/lang/String;)Z .locals 1 .param p1, "permission" # Ljava/lang/String; .line 88 iget-object v0, p0, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->mSubjects:Ljava/util/Map; invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z move-result v0 return v0 .end method .method public getSubjectByPermission(Ljava/lang/String;)Lio/reactivex/subjects/PublishSubject; .locals 1 .param p1, "permission" # Ljava/lang/String; .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", ")", "Lio/reactivex/subjects/PublishSubject<", "Lcom/tbruyelle/rxpermissions2/Permission;", ">;" } .end annotation .line 84 iget-object v0, p0, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->mSubjects:Ljava/util/Map; invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lio/reactivex/subjects/PublishSubject; return-object v0 .end method .method isGranted(Ljava/lang/String;)Z .locals 1 .param p1, "permission" # Ljava/lang/String; .line 71 invoke-virtual {p0}, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->getActivity()Landroid/app/Activity; move-result-object v0 invoke-virtual {v0, p1}, Landroid/app/Activity;->checkSelfPermission(Ljava/lang/String;)I move-result v0 if-nez v0, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 return v0 .end method .method isRevoked(Ljava/lang/String;)Z .locals 2 .param p1, "permission" # Ljava/lang/String; .line 76 invoke-virtual {p0}, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->getActivity()Landroid/app/Activity; move-result-object v0 invoke-virtual {v0}, Landroid/app/Activity;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v0 invoke-virtual {p0}, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->getActivity()Landroid/app/Activity; move-result-object v1 invoke-virtual {v1}, Landroid/app/Activity;->getPackageName()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, p1, v1}, Landroid/content/pm/PackageManager;->isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;)Z move-result v0 return v0 .end method .method log(Ljava/lang/String;)V .locals 1 .param p1, "message" # Ljava/lang/String; .line 96 iget-boolean v0, p0, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->mLogging:Z if-eqz v0, :cond_0 .line 97 const-string v0, "RxPermissions" invoke-static {v0, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I .line 99 :cond_0 return-void .end method .method public onCreate(Landroid/os/Bundle;)V .locals 1 .param p1, "savedInstanceState" # Landroid/os/Bundle; .line 28 invoke-super {p0, p1}, Landroid/app/Fragment;->onCreate(Landroid/os/Bundle;)V .line 29 const/4 v0, 0x1 invoke-virtual {p0, v0}, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->setRetainInstance(Z)V .line 30 return-void .end method .method public onRequestPermissionsResult(I[Ljava/lang/String;[I)V .locals 3 .param p1, "requestCode" # I .param p2, "permissions" # [Ljava/lang/String; .param p3, "grantResults" # [I .line 39 invoke-super {p0, p1, p2, p3}, Landroid/app/Fragment;->onRequestPermissionsResult(I[Ljava/lang/String;[I)V .line 41 const/16 v0, 0x2a if-eq p1, v0, :cond_0 return-void .line 43 :cond_0 array-length v0, p2 new-array v0, v0, [Z .line 45 .local v0, "shouldShowRequestPermissionRationale":[Z const/4 v1, 0x0 .local v1, "i":I :goto_0 array-length v2, p2 if-ge v1, v2, :cond_1 .line 46 aget-object v2, p2, v1 invoke-virtual {p0, v2}, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->shouldShowRequestPermissionRationale(Ljava/lang/String;)Z move-result v2 aput-boolean v2, v0, v1 .line 45 add-int/lit8 v1, v1, 0x1 goto :goto_0 .line 49 .end local v1 # "i":I :cond_1 invoke-virtual {p0, p2, p3, v0}, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->onRequestPermissionsResult([Ljava/lang/String;[I[Z)V .line 50 return-void .end method .method onRequestPermissionsResult([Ljava/lang/String;[I[Z)V .locals 7 .param p1, "permissions" # [Ljava/lang/String; .param p2, "grantResults" # [I .param p3, "shouldShowRequestPermissionRationale" # [Z .line 53 const/4 v0, 0x0 .local v0, "i":I array-length v1, p1 .local v1, "size":I :goto_0 if-ge v0, v1, :cond_2 .line 54 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "onRequestPermissionsResult " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; aget-object v3, p1, v0 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-virtual {p0, v2}, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->log(Ljava/lang/String;)V .line 56 iget-object v2, p0, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->mSubjects:Ljava/util/Map; aget-object v3, p1, v0 invoke-interface {v2, v3}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Lio/reactivex/subjects/PublishSubject; .line 57 .local v2, "subject":Lio/reactivex/subjects/PublishSubject;, "Lio/reactivex/subjects/PublishSubject;" if-nez v2, :cond_0 .line 59 const-string v3, "RxPermissions" const-string v4, "RxPermissions.onRequestPermissionsResult invoked but didn\'t find the corresponding permission request." invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I .line 60 return-void .line 62 :cond_0 iget-object v3, p0, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->mSubjects:Ljava/util/Map; aget-object v4, p1, v0 invoke-interface {v3, v4}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; .line 63 aget v3, p2, v0 if-nez v3, :cond_1 const/4 v3, 0x1 goto :goto_1 :cond_1 const/4 v3, 0x0 .line 64 .local v3, "granted":Z :goto_1 new-instance v4, Lcom/tbruyelle/rxpermissions2/Permission; aget-object v5, p1, v0 aget-boolean v6, p3, v0 invoke-direct {v4, v5, v3, v6}, Lcom/tbruyelle/rxpermissions2/Permission;->(Ljava/lang/String;ZZ)V invoke-virtual {v2, v4}, Lio/reactivex/subjects/PublishSubject;->onNext(Ljava/lang/Object;)V .line 65 invoke-virtual {v2}, Lio/reactivex/subjects/PublishSubject;->onComplete()V .line 53 .end local v2 # "subject":Lio/reactivex/subjects/PublishSubject;, "Lio/reactivex/subjects/PublishSubject;" .end local v3 # "granted":Z add-int/lit8 v0, v0, 0x1 goto :goto_0 .line 67 .end local v0 # "i":I .end local v1 # "size":I :cond_2 return-void .end method .method requestPermissions([Ljava/lang/String;)V .locals 1 .param p1, "permissions" # [Ljava/lang/String; .line 34 const/16 v0, 0x2a invoke-virtual {p0, p1, v0}, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->requestPermissions([Ljava/lang/String;I)V .line 35 return-void .end method .method public setLogging(Z)V .locals 0 .param p1, "logging" # Z .line 80 iput-boolean p1, p0, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->mLogging:Z .line 81 return-void .end method .method public setSubjectForPermission(Ljava/lang/String;Lio/reactivex/subjects/PublishSubject;)Lio/reactivex/subjects/PublishSubject; .locals 1 .param p1, "permission" # Ljava/lang/String; .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "Lio/reactivex/subjects/PublishSubject<", "Lcom/tbruyelle/rxpermissions2/Permission;", ">;)", "Lio/reactivex/subjects/PublishSubject<", "Lcom/tbruyelle/rxpermissions2/Permission;", ">;" } .end annotation .line 92 .local p2, "subject":Lio/reactivex/subjects/PublishSubject;, "Lio/reactivex/subjects/PublishSubject;" iget-object v0, p0, Lcom/tbruyelle/rxpermissions2/RxPermissionsFragment;->mSubjects:Ljava/util/Map; invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lio/reactivex/subjects/PublishSubject; return-object v0 .end method