.class Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection; .super Ljava/lang/Object; .source "SourceFile" # interfaces .implements Landroid/content/ServiceConnection; # instance fields .field private final mContext:Landroid/content/Context; .field private mHasBoundService:Z .field mResultFuture:Landroidx/concurrent/futures/ResolvableFuture; .annotation build Landroidx/annotation/NonNull; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Landroidx/concurrent/futures/ResolvableFuture<", "Ljava/lang/Integer;", ">;" } .end annotation .end field .field mUnusedAppRestrictionsService:Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportService; .annotation build Landroidx/annotation/Nullable; .end annotation .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .end field # direct methods .method public constructor (Landroid/content/Context;)V .locals 1 .param p1 # Landroid/content/Context; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .line 76 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x0 iput-object v0, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mUnusedAppRestrictionsService:Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportService; const/4 v0, 0x0 iput-boolean v0, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mHasBoundService:Z iput-object p1, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mContext:Landroid/content/Context; return-void .end method .method private getBackportCallback()Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportCallback; .locals 1 .line 122 new-instance v0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection$1; invoke-direct {v0, p0}, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection$1;->(Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;)V return-object v0 .end method # virtual methods .method public connectAndFetchResult(Landroidx/concurrent/futures/ResolvableFuture;)V .locals 2 .param p1 # Landroidx/concurrent/futures/ResolvableFuture; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroidx/concurrent/futures/ResolvableFuture<", "Ljava/lang/Integer;", ">;)V" } .end annotation iget-boolean v0, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mHasBoundService:Z if-nez v0, :cond_0 const/4 v0, 0x1 iput-boolean v0, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mHasBoundService:Z iput-object p1, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mResultFuture:Landroidx/concurrent/futures/ResolvableFuture; .line 107 new-instance p1, Landroid/content/Intent; const-string v1, "android.support.unusedapprestrictions.action.CustomUnusedAppRestrictionsBackportService" invoke-direct {p1, v1}, Landroid/content/Intent;->(Ljava/lang/String;)V iget-object v1, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mContext:Landroid/content/Context; .line 109 invoke-virtual {v1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v1 .line 108 invoke-static {v1}, Landroidx/core/content/PackageManagerCompat;->getPermissionRevocationVerifierApp(Landroid/content/pm/PackageManager;)Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v1}, Landroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent; move-result-object p1 iget-object v1, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mContext:Landroid/content/Context; .line 110 invoke-virtual {v1, p1, p0, v0}, Landroid/content/Context;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z return-void .line 101 :cond_0 new-instance p1, Ljava/lang/IllegalStateException; const-string v0, "Each UnusedAppRestrictionsBackportServiceConnection can only be bound once." invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 .end method .method public disconnectFromService()V .locals 2 iget-boolean v0, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mHasBoundService:Z if-eqz v0, :cond_0 const/4 v0, 0x0 iput-boolean v0, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mHasBoundService:Z iget-object v0, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mContext:Landroid/content/Context; .line 118 invoke-virtual {v0, p0}, Landroid/content/Context;->unbindService(Landroid/content/ServiceConnection;)V return-void .line 115 :cond_0 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "bindService must be called before unbind" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .end method .method public onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V .locals 0 .line 83 invoke-static {p2}, Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportService$Stub;->asInterface(Landroid/os/IBinder;)Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportService; move-result-object p1 iput-object p1, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mUnusedAppRestrictionsService:Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportService; .line 87 :try_start_0 invoke-direct {p0}, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->getBackportCallback()Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportCallback; move-result-object p2 .line 86 invoke-interface {p1, p2}, Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportService;->isPermissionRevocationEnabledForApp(Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportCallback;)V :try_end_0 .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 iget-object p1, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mResultFuture:Landroidx/concurrent/futures/ResolvableFuture; const/4 p2, 0x0 .line 90 invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p2 invoke-virtual {p1, p2}, Landroidx/concurrent/futures/ResolvableFuture;->set(Ljava/lang/Object;)Z :goto_0 return-void .end method .method public onServiceDisconnected(Landroid/content/ComponentName;)V .locals 0 const/4 p1, 0x0 iput-object p1, p0, Landroidx/core/content/UnusedAppRestrictionsBackportServiceConnection;->mUnusedAppRestrictionsService:Landroidx/core/app/unusedapprestrictions/IUnusedAppRestrictionsBackportService; return-void .end method