DfuServiceProvider.smali
.class Lno/nordicsemi/android/dfu/DfuServiceProvider;
.super Ljava/lang/Object;
.source "DfuServiceProvider.java"
# interfaces
.implements Lno/nordicsemi/android/dfu/DfuCallback;
# instance fields
.field private mAborted:Z
.field private mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
.field private mPaused:Z
# direct methods
.method constructor <init>()V
.registers 1
.prologue
.line 32
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public abort()V
.registers 2
.prologue
.line 102
const/4 v0, 0x1
iput-boolean v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mAborted:Z
.line 103
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v0, :cond_c
.line 104
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->abort()V
.line 105
:cond_c
return-void
.end method
.method public getGattCallback()Lno/nordicsemi/android/dfu/DfuCallback$DfuGattCallback;
.registers 2
.prologue
.line 81
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v0, :cond_b
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->getGattCallback()Lno/nordicsemi/android/dfu/DfuCallback$DfuGattCallback;
move-result-object v0
:goto_a
return-object v0
:cond_b
const/4 v0, 0x0
goto :goto_a
.end method
.method getServiceImpl(Landroid/content/Intent;Lno/nordicsemi/android/dfu/DfuBaseService;Landroid/bluetooth/BluetoothGatt;)Lno/nordicsemi/android/dfu/DfuService;
.registers 6
.prologue
.line 39
:try_start_0
new-instance v0, Lno/nordicsemi/android/dfu/ButtonlessDfuWithBondSharingImpl;
invoke-direct {v0, p1, p2}, Lno/nordicsemi/android/dfu/ButtonlessDfuWithBondSharingImpl;-><init>(Landroid/content/Intent;Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
.line 40
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0, p1, p3}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->isClientCompatible(Landroid/content/Intent;Landroid/bluetooth/BluetoothGatt;)Z
move-result v0
if-eqz v0, :cond_28
.line 41
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
:try_end_11
.catchall {:try_start_0 .. :try_end_11} :catchall_114
.line 70
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v1, :cond_27
.line 71
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
if-eqz v1, :cond_1e
.line 72
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->pause()V
.line 73
:cond_1e
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mAborted:Z
if-eqz v1, :cond_27
.line 74
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->abort()V
.line 67
:cond_27
:goto_27
return-object v0
.line 43
:cond_28
:try_start_28
new-instance v0, Lno/nordicsemi/android/dfu/ButtonlessDfuWithoutBondSharingImpl;
invoke-direct {v0, p1, p2}, Lno/nordicsemi/android/dfu/ButtonlessDfuWithoutBondSharingImpl;-><init>(Landroid/content/Intent;Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
.line 44
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0, p1, p3}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->isClientCompatible(Landroid/content/Intent;Landroid/bluetooth/BluetoothGatt;)Z
move-result v0
if-eqz v0, :cond_50
.line 45
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
:try_end_39
.catchall {:try_start_28 .. :try_end_39} :catchall_114
.line 70
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v1, :cond_27
.line 71
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
if-eqz v1, :cond_46
.line 72
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->pause()V
.line 73
:cond_46
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mAborted:Z
if-eqz v1, :cond_27
.line 74
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->abort()V
goto :goto_27
.line 47
:cond_50
:try_start_50
new-instance v0, Lno/nordicsemi/android/dfu/SecureDfuImpl;
invoke-direct {v0, p1, p2}, Lno/nordicsemi/android/dfu/SecureDfuImpl;-><init>(Landroid/content/Intent;Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
.line 48
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0, p1, p3}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->isClientCompatible(Landroid/content/Intent;Landroid/bluetooth/BluetoothGatt;)Z
move-result v0
if-eqz v0, :cond_78
.line 49
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
:try_end_61
.catchall {:try_start_50 .. :try_end_61} :catchall_114
.line 70
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v1, :cond_27
.line 71
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
if-eqz v1, :cond_6e
.line 72
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->pause()V
.line 73
:cond_6e
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mAborted:Z
if-eqz v1, :cond_27
.line 74
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->abort()V
goto :goto_27
.line 51
:cond_78
:try_start_78
new-instance v0, Lno/nordicsemi/android/dfu/LegacyButtonlessDfuImpl;
invoke-direct {v0, p1, p2}, Lno/nordicsemi/android/dfu/LegacyButtonlessDfuImpl;-><init>(Landroid/content/Intent;Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
.line 52
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0, p1, p3}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->isClientCompatible(Landroid/content/Intent;Landroid/bluetooth/BluetoothGatt;)Z
move-result v0
if-eqz v0, :cond_a0
.line 53
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
:try_end_89
.catchall {:try_start_78 .. :try_end_89} :catchall_114
.line 70
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v1, :cond_27
.line 71
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
if-eqz v1, :cond_96
.line 72
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->pause()V
.line 73
:cond_96
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mAborted:Z
if-eqz v1, :cond_27
.line 74
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->abort()V
goto :goto_27
.line 55
:cond_a0
:try_start_a0
new-instance v0, Lno/nordicsemi/android/dfu/LegacyDfuImpl;
invoke-direct {v0, p1, p2}, Lno/nordicsemi/android/dfu/LegacyDfuImpl;-><init>(Landroid/content/Intent;Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
.line 56
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0, p1, p3}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->isClientCompatible(Landroid/content/Intent;Landroid/bluetooth/BluetoothGatt;)Z
move-result v0
if-eqz v0, :cond_c9
.line 57
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
:try_end_b1
.catchall {:try_start_a0 .. :try_end_b1} :catchall_114
.line 70
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v1, :cond_27
.line 71
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
if-eqz v1, :cond_be
.line 72
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->pause()V
.line 73
:cond_be
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mAborted:Z
if-eqz v1, :cond_27
.line 74
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->abort()V
goto/16 :goto_27
.line 60
:cond_c9
:try_start_c9
const-string v0, "no.nordicsemi.android.dfu.extra.EXTRA_UNSAFE_EXPERIMENTAL_BUTTONLESS_DFU"
const/4 v1, 0x0
invoke-virtual {p1, v0, v1}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
move-result v0
.line 61
if-eqz v0, :cond_fb
.line 62
new-instance v0, Lno/nordicsemi/android/dfu/ExperimentalButtonlessDfuImpl;
invoke-direct {v0, p1, p2}, Lno/nordicsemi/android/dfu/ExperimentalButtonlessDfuImpl;-><init>(Landroid/content/Intent;Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
.line 63
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0, p1, p3}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->isClientCompatible(Landroid/content/Intent;Landroid/bluetooth/BluetoothGatt;)Z
move-result v0
if-eqz v0, :cond_fb
.line 64
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
:try_end_e3
.catchall {:try_start_c9 .. :try_end_e3} :catchall_114
.line 70
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v1, :cond_27
.line 71
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
if-eqz v1, :cond_f0
.line 72
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->pause()V
.line 73
:cond_f0
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mAborted:Z
if-eqz v1, :cond_27
.line 74
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->abort()V
goto/16 :goto_27
.line 70
:cond_fb
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v0, :cond_111
.line 71
iget-boolean v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
if-eqz v0, :cond_108
.line 72
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->pause()V
.line 73
:cond_108
iget-boolean v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mAborted:Z
if-eqz v0, :cond_111
.line 74
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->abort()V
.line 67
:cond_111
const/4 v0, 0x0
goto/16 :goto_27
.line 70
:catchall_114
move-exception v0
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v1, :cond_12b
.line 71
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
if-eqz v1, :cond_122
.line 72
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->pause()V
.line 73
:cond_122
iget-boolean v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mAborted:Z
if-eqz v1, :cond_12b
.line 74
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->abort()V
:cond_12b
throw v0
.end method
.method public onBondStateChanged(I)V
.registers 3
.prologue
.line 86
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
if-eqz v0, :cond_9
.line 87
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mImpl:Lno/nordicsemi/android/dfu/BaseDfuImpl;
invoke-virtual {v0, p1}, Lno/nordicsemi/android/dfu/BaseDfuImpl;->onBondStateChanged(I)V
.line 88
:cond_9
return-void
.end method
.method public pause()V
.registers 2
.prologue
.line 92
const/4 v0, 0x1
iput-boolean v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
.line 93
return-void
.end method
.method public resume()V
.registers 2
.prologue
.line 97
const/4 v0, 0x0
iput-boolean v0, p0, Lno/nordicsemi/android/dfu/DfuServiceProvider;->mPaused:Z
.line 98
return-void
.end method