DfuBaseService.smali
.class public abstract Lno/nordicsemi/android/dfu/DfuBaseService;
.super Landroid/app/IntentService;
.source "DfuBaseService.java"
# interfaces
.implements Lno/nordicsemi/android/dfu/DfuProgressInfo$ProgressListener;
# static fields
.field public static final ACTION_ABORT:I = 0x2
.field public static final ACTION_PAUSE:I = 0x0
.field public static final ACTION_RESUME:I = 0x1
.field public static final BROADCAST_ACTION:Ljava/lang/String; = "no.nordicsemi.android.dfu.broadcast.BROADCAST_ACTION"
.field public static final BROADCAST_ERROR:Ljava/lang/String; = "no.nordicsemi.android.dfu.broadcast.BROADCAST_ERROR"
.field public static final BROADCAST_LOG:Ljava/lang/String; = "no.nordicsemi.android.dfu.broadcast.BROADCAST_LOG"
.field public static final BROADCAST_PROGRESS:Ljava/lang/String; = "no.nordicsemi.android.dfu.broadcast.BROADCAST_PROGRESS"
.field static DEBUG:Z = false
.field public static final ERROR_BLUETOOTH_DISABLED:I = 0x100a
.field public static final ERROR_CONNECTION_MASK:I = 0x4000
.field public static final ERROR_CONNECTION_STATE_MASK:I = 0x8000
.field public static final ERROR_CRC_ERROR:I = 0x100d
.field public static final ERROR_DEVICE_DISCONNECTED:I = 0x1000
.field public static final ERROR_DEVICE_NOT_BONDED:I = 0x100e
.field public static final ERROR_FILE_ERROR:I = 0x1002
.field public static final ERROR_FILE_INVALID:I = 0x1003
.field public static final ERROR_FILE_IO_EXCEPTION:I = 0x1004
.field public static final ERROR_FILE_NOT_FOUND:I = 0x1001
.field public static final ERROR_FILE_SIZE_INVALID:I = 0x100c
.field public static final ERROR_FILE_TYPE_UNSUPPORTED:I = 0x1009
.field public static final ERROR_INIT_PACKET_REQUIRED:I = 0x100b
.field public static final ERROR_INVALID_RESPONSE:I = 0x1008
.field public static final ERROR_MASK:I = 0x1000
.field public static final ERROR_REMOTE_MASK:I = 0x2000
.field public static final ERROR_REMOTE_TYPE_LEGACY:I = 0x100
.field public static final ERROR_REMOTE_TYPE_SECURE:I = 0x200
.field public static final ERROR_REMOTE_TYPE_SECURE_BUTTONLESS:I = 0x800
.field public static final ERROR_REMOTE_TYPE_SECURE_EXTENDED:I = 0x400
.field public static final ERROR_SERVICE_DISCOVERY_NOT_STARTED:I = 0x1005
.field public static final ERROR_SERVICE_NOT_FOUND:I = 0x1006
.field public static final ERROR_TYPE_COMMUNICATION:I = 0x2
.field public static final ERROR_TYPE_COMMUNICATION_STATE:I = 0x1
.field public static final ERROR_TYPE_DFU_REMOTE:I = 0x3
.field public static final ERROR_TYPE_OTHER:I = 0x0
.field public static final EXTRA_ACTION:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_ACTION"
.field private static final EXTRA_ATTEMPT:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_ATTEMPT"
.field public static final EXTRA_AVG_SPEED_B_PER_MS:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_AVG_SPEED_B_PER_MS"
.field public static final EXTRA_CUSTOM_UUIDS_FOR_BUTTONLESS_DFU_WITHOUT_BOND_SHARING:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_CUSTOM_UUIDS_FOR_BUTTONLESS_DFU_WITHOUT_BOND_SHARING"
.field public static final EXTRA_CUSTOM_UUIDS_FOR_BUTTONLESS_DFU_WITH_BOND_SHARING:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_CUSTOM_UUIDS_FOR_BUTTONLESS_DFU_WITH_BOND_SHARING"
.field public static final EXTRA_CUSTOM_UUIDS_FOR_EXPERIMENTAL_BUTTONLESS_DFU:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_CUSTOM_UUIDS_FOR_EXPERIMENTAL_BUTTONLESS_DFU"
.field public static final EXTRA_CUSTOM_UUIDS_FOR_LEGACY_DFU:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_CUSTOM_UUIDS_FOR_LEGACY_DFU"
.field public static final EXTRA_CUSTOM_UUIDS_FOR_SECURE_DFU:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_CUSTOM_UUIDS_FOR_SECURE_DFU"
.field public static final EXTRA_DATA:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_DATA"
.field public static final EXTRA_DEVICE_ADDRESS:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_ADDRESS"
.field public static final EXTRA_DEVICE_NAME:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_NAME"
.field public static final EXTRA_DISABLE_NOTIFICATION:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_DISABLE_NOTIFICATION"
.field public static final EXTRA_ERROR_TYPE:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_ERROR_TYPE"
.field public static final EXTRA_FILE_MIME_TYPE:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_MIME_TYPE"
.field public static final EXTRA_FILE_PATH:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_FILE_PATH"
.field public static final EXTRA_FILE_RES_ID:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_FILE_RES_ID"
.field public static final EXTRA_FILE_TYPE:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_FILE_TYPE"
.field public static final EXTRA_FILE_URI:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_FILE_URI"
.field public static final EXTRA_FORCE_DFU:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_FORCE_DFU"
.field public static final EXTRA_FOREGROUND_SERVICE:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_FOREGROUND_SERVICE"
.field public static final EXTRA_INIT_FILE_PATH:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_INIT_FILE_PATH"
.field public static final EXTRA_INIT_FILE_RES_ID:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_INIT_FILE_RES_ID"
.field public static final EXTRA_INIT_FILE_URI:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_INIT_FILE_URI"
.field public static final EXTRA_KEEP_BOND:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_KEEP_BOND"
.field public static final EXTRA_LOG_LEVEL:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_LOG_LEVEL"
.field public static final EXTRA_LOG_MESSAGE:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_LOG_INFO"
.field public static final EXTRA_PACKET_RECEIPT_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_PRN_ENABLED"
.field public static final EXTRA_PACKET_RECEIPT_NOTIFICATIONS_VALUE:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_PRN_VALUE"
.field public static final EXTRA_PARTS_TOTAL:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_PARTS_TOTAL"
.field public static final EXTRA_PART_CURRENT:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_PART_CURRENT"
.field public static final EXTRA_PROGRESS:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_PROGRESS"
.field public static final EXTRA_RESTORE_BOND:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_RESTORE_BOND"
.field public static final EXTRA_SPEED_B_PER_MS:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_SPEED_B_PER_MS"
.field public static final EXTRA_UNSAFE_EXPERIMENTAL_BUTTONLESS_DFU:Ljava/lang/String; = "no.nordicsemi.android.dfu.extra.EXTRA_UNSAFE_EXPERIMENTAL_BUTTONLESS_DFU"
.field public static final LOG_LEVEL_APPLICATION:I = 0xa
.field public static final LOG_LEVEL_DEBUG:I = 0x0
.field public static final LOG_LEVEL_ERROR:I = 0x14
.field public static final LOG_LEVEL_INFO:I = 0x5
.field public static final LOG_LEVEL_VERBOSE:I = 0x1
.field public static final LOG_LEVEL_WARNING:I = 0xf
.field public static final MIME_TYPE_OCTET_STREAM:Ljava/lang/String; = "application/octet-stream"
.field public static final MIME_TYPE_ZIP:Ljava/lang/String; = "application/zip"
.field public static final NOTIFICATION_CHANNEL_DFU:Ljava/lang/String; = "dfu"
.field public static final NOTIFICATION_ID:I = 0x11b
.field public static final PROGRESS_ABORTED:I = -0x7
.field public static final PROGRESS_COMPLETED:I = -0x6
.field public static final PROGRESS_CONNECTING:I = -0x1
.field public static final PROGRESS_DISCONNECTING:I = -0x5
.field public static final PROGRESS_ENABLING_DFU_MODE:I = -0x3
.field public static final PROGRESS_STARTING:I = -0x2
.field public static final PROGRESS_VALIDATING:I = -0x4
.field protected static final STATE_CLOSED:I = -0x5
.field protected static final STATE_CONNECTED:I = -0x2
.field protected static final STATE_CONNECTED_AND_READY:I = -0x3
.field protected static final STATE_CONNECTING:I = -0x1
.field protected static final STATE_DISCONNECTED:I = 0x0
.field protected static final STATE_DISCONNECTING:I = -0x4
.field private static final TAG:Ljava/lang/String; = "DfuBaseService"
.field public static final TYPE_APPLICATION:I = 0x4
.field public static final TYPE_AUTO:I = 0x0
.field public static final TYPE_BOOTLOADER:I = 0x2
.field public static final TYPE_SOFT_DEVICE:I = 0x1
# instance fields
.field private mAborted:Z
.field private mBluetoothAdapter:Landroid/bluetooth/BluetoothAdapter;
.field private final mBondStateBroadcastReceiver:Landroid/content/BroadcastReceiver;
.field protected mConnectionState:I
.field private final mConnectionStateBroadcastReceiver:Landroid/content/BroadcastReceiver;
.field private mDeviceAddress:Ljava/lang/String;
.field private mDeviceName:Ljava/lang/String;
.field private final mDfuActionReceiver:Landroid/content/BroadcastReceiver;
.field private mDfuServiceImpl:Lno/nordicsemi/android/dfu/DfuCallback;
.field private mDisableNotification:Z
.field private mError:I
.field private mFirmwareInputStream:Ljava/io/InputStream;
.field private final mGattCallback:Landroid/bluetooth/BluetoothGattCallback;
.field private mInitFileInputStream:Ljava/io/InputStream;
.field private mLastNotificationTime:J
.field private mLastProgress:I
.field private final mLock:Ljava/lang/Object;
.field mProgressInfo:Lno/nordicsemi/android/dfu/DfuProgressInfo;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 96
const/4 v0, 0x0
sput-boolean v0, Lno/nordicsemi/android/dfu/DfuBaseService;->DEBUG:Z
return-void
.end method
.method public constructor <init>()V
.registers 2
.prologue
.line 832
const-string v0, "DfuBaseService"
invoke-direct {p0, v0}, Landroid/app/IntentService;-><init>(Ljava/lang/String;)V
.line 598
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLock:Ljava/lang/Object;
.line 620
const/4 v0, -0x1
iput v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLastProgress:I
.line 630
new-instance v0, Lno/nordicsemi/android/dfu/DfuBaseService$1;
invoke-direct {v0, p0}, Lno/nordicsemi/android/dfu/DfuBaseService$1;-><init>(Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDfuActionReceiver:Landroid/content/BroadcastReceiver;
.line 657
new-instance v0, Lno/nordicsemi/android/dfu/DfuBaseService$2;
invoke-direct {v0, p0}, Lno/nordicsemi/android/dfu/DfuBaseService$2;-><init>(Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mBondStateBroadcastReceiver:Landroid/content/BroadcastReceiver;
.line 675
new-instance v0, Lno/nordicsemi/android/dfu/DfuBaseService$3;
invoke-direct {v0, p0}, Lno/nordicsemi/android/dfu/DfuBaseService$3;-><init>(Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionStateBroadcastReceiver:Landroid/content/BroadcastReceiver;
.line 708
new-instance v0, Lno/nordicsemi/android/dfu/DfuBaseService$4;
invoke-direct {v0, p0}, Lno/nordicsemi/android/dfu/DfuBaseService$4;-><init>(Lno/nordicsemi/android/dfu/DfuBaseService;)V
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mGattCallback:Landroid/bluetooth/BluetoothGattCallback;
.line 833
return-void
.end method
.method static synthetic access$000(Lno/nordicsemi/android/dfu/DfuBaseService;Ljava/lang/String;)V
.registers 2
.prologue
.line 93
invoke-direct {p0, p1}, Lno/nordicsemi/android/dfu/DfuBaseService;->logi(Ljava/lang/String;)V
return-void
.end method
.method static synthetic access$100(Lno/nordicsemi/android/dfu/DfuBaseService;)Lno/nordicsemi/android/dfu/DfuCallback;
.registers 2
.prologue
.line 93
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDfuServiceImpl:Lno/nordicsemi/android/dfu/DfuCallback;
return-object v0
.end method
.method static synthetic access$202(Lno/nordicsemi/android/dfu/DfuBaseService;Z)Z
.registers 2
.prologue
.line 93
iput-boolean p1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mAborted:Z
return p1
.end method
.method static synthetic access$300(Lno/nordicsemi/android/dfu/DfuBaseService;)Ljava/lang/String;
.registers 2
.prologue
.line 93
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceAddress:Ljava/lang/String;
return-object v0
.end method
.method static synthetic access$402(Lno/nordicsemi/android/dfu/DfuBaseService;I)I
.registers 2
.prologue
.line 93
iput p1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
return p1
.end method
.method static synthetic access$500(Lno/nordicsemi/android/dfu/DfuBaseService;Ljava/lang/String;)V
.registers 2
.prologue
.line 93
invoke-direct {p0, p1}, Lno/nordicsemi/android/dfu/DfuBaseService;->logw(Ljava/lang/String;)V
return-void
.end method
.method static synthetic access$600(Lno/nordicsemi/android/dfu/DfuBaseService;Ljava/lang/String;)V
.registers 2
.prologue
.line 93
invoke-direct {p0, p1}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
return-void
.end method
.method static synthetic access$700(Lno/nordicsemi/android/dfu/DfuBaseService;)Ljava/lang/Object;
.registers 2
.prologue
.line 93
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLock:Ljava/lang/Object;
return-object v0
.end method
.method private initialize()Z
.registers 3
.prologue
const/4 v1, 0x0
.line 1714
const-string v0, "bluetooth"
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/bluetooth/BluetoothManager;
.line 1715
if-nez v0, :cond_12
.line 1716
const-string v0, "Unable to initialize BluetoothManager."
invoke-direct {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
move v0, v1
.line 1726
:goto_11
return v0
.line 1720
:cond_12
invoke-virtual {v0}, Landroid/bluetooth/BluetoothManager;->getAdapter()Landroid/bluetooth/BluetoothAdapter;
move-result-object v0
iput-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mBluetoothAdapter:Landroid/bluetooth/BluetoothAdapter;
.line 1721
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mBluetoothAdapter:Landroid/bluetooth/BluetoothAdapter;
if-nez v0, :cond_23
.line 1722
const-string v0, "Unable to obtain a BluetoothAdapter."
invoke-direct {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
move v0, v1
.line 1723
goto :goto_11
.line 1726
:cond_23
const/4 v0, 0x1
goto :goto_11
.end method
.method private loge(Ljava/lang/String;)V
.registers 2
.prologue
.line 1731
return-void
.end method
.method private loge(Ljava/lang/String;Ljava/lang/Throwable;)V
.registers 3
.prologue
.line 1735
return-void
.end method
.method private logi(Ljava/lang/String;)V
.registers 2
.prologue
.line 1745
return-void
.end method
.method private logw(Ljava/lang/String;)V
.registers 2
.prologue
.line 1740
return-void
.end method
.method private static makeDfuActionIntentFilter()Landroid/content/IntentFilter;
.registers 2
.prologue
.line 836
new-instance v0, Landroid/content/IntentFilter;
invoke-direct {v0}, Landroid/content/IntentFilter;-><init>()V
.line 837
const-string v1, "no.nordicsemi.android.dfu.broadcast.BROADCAST_ACTION"
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 838
return-object v0
.end method
.method private openInputStream(ILjava/lang/String;II)Ljava/io/InputStream;
.registers 8
.prologue
.line 1269
invoke-virtual {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0, p1}, Landroid/content/res/Resources;->openRawResource(I)Ljava/io/InputStream;
move-result-object v1
.line 1270
const-string v0, "application/zip"
invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_16
.line 1271
new-instance v0, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;
invoke-direct {v0, v1, p3, p4}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;-><init>(Ljava/io/InputStream;II)V
.line 1277
:goto_15
return-object v0
.line 1272
:cond_16
const/4 v0, 0x2
invoke-virtual {v1, v0}, Ljava/io/InputStream;->mark(I)V
.line 1273
invoke-virtual {v1}, Ljava/io/InputStream;->read()I
move-result v0
.line 1274
invoke-virtual {v1}, Ljava/io/InputStream;->reset()V
.line 1275
const/16 v2, 0x3a
if-ne v0, v2, :cond_2b
.line 1276
new-instance v0, Lno/nordicsemi/android/dfu/internal/HexInputStream;
invoke-direct {v0, v1, p3}, Lno/nordicsemi/android/dfu/internal/HexInputStream;-><init>(Ljava/io/InputStream;I)V
goto :goto_15
:cond_2b
move-object v0, v1
.line 1277
goto :goto_15
.end method
.method private openInputStream(Landroid/net/Uri;Ljava/lang/String;II)Ljava/io/InputStream;
.registers 12
.prologue
const/4 v1, 0x0
const/4 v3, 0x0
.line 1240
invoke-virtual {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
invoke-virtual {v0, p1}, Landroid/content/ContentResolver;->openInputStream(Landroid/net/Uri;)Ljava/io/InputStream;
move-result-object v6
.line 1241
const-string v0, "application/zip"
invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_18
.line 1242
new-instance v0, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;
invoke-direct {v0, v6, p3, p4}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;-><init>(Ljava/io/InputStream;II)V
.line 1256
:goto_17
return-object v0
.line 1244
:cond_18
const/4 v0, 0x1
new-array v2, v0, [Ljava/lang/String;
const-string v0, "_display_name"
aput-object v0, v2, v1
.line 1245
invoke-virtual {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
move-object v1, p1
move-object v4, v3
move-object v5, v3
invoke-virtual/range {v0 .. v5}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v1
.line 1247
:try_start_2a
invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
move-result v0
if-eqz v0, :cond_4c
.line 1248
const/4 v0, 0x0
invoke-interface {v1, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v0
.line 1250
sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-virtual {v0, v2}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v0
const-string v2, "hex"
invoke-virtual {v0, v2}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_4c
.line 1251
new-instance v0, Lno/nordicsemi/android/dfu/internal/HexInputStream;
invoke-direct {v0, v6, p3}, Lno/nordicsemi/android/dfu/internal/HexInputStream;-><init>(Ljava/io/InputStream;I)V
:try_end_48
.catchall {:try_start_2a .. :try_end_48} :catchall_51
.line 1254
invoke-interface {v1}, Landroid/database/Cursor;->close()V
goto :goto_17
:cond_4c
invoke-interface {v1}, Landroid/database/Cursor;->close()V
move-object v0, v6
.line 1256
goto :goto_17
.line 1254
:catchall_51
move-exception v0
invoke-interface {v1}, Landroid/database/Cursor;->close()V
throw v0
.end method
.method private openInputStream(Ljava/lang/String;Ljava/lang/String;II)Ljava/io/InputStream;
.registers 8
.prologue
.line 1222
new-instance v1, Ljava/io/FileInputStream;
invoke-direct {v1, p1}, Ljava/io/FileInputStream;-><init>(Ljava/lang/String;)V
.line 1223
const-string v0, "application/zip"
invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_13
.line 1224
new-instance v0, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;
invoke-direct {v0, v1, p3, p4}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;-><init>(Ljava/io/InputStream;II)V
.line 1227
:goto_12
return-object v0
.line 1225
:cond_13
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-virtual {p1, v0}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v0
const-string v2, "hex"
invoke-virtual {v0, v2}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_27
.line 1226
new-instance v0, Lno/nordicsemi/android/dfu/internal/HexInputStream;
invoke-direct {v0, v1, p3}, Lno/nordicsemi/android/dfu/internal/HexInputStream;-><init>(Ljava/io/InputStream;I)V
goto :goto_12
:cond_27
move-object v0, v1
.line 1227
goto :goto_12
.end method
.method private report(I)V
.registers 8
.prologue
const/4 v5, 0x0
.line 1534
invoke-direct {p0, p1}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendErrorBroadcast(I)V
.line 1536
iget-boolean v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDisableNotification:Z
if-eqz v0, :cond_9
.line 1567
:goto_8
return-void
.line 1540
:cond_9
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceAddress:Ljava/lang/String;
.line 1541
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceName:Ljava/lang/String;
if-eqz v0, :cond_84
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceName:Ljava/lang/String;
.line 1543
:goto_11
new-instance v2, Landroid/support/v4/app/aw;
const-string v3, "dfu"
invoke-direct {v2, p0, v3}, Landroid/support/v4/app/aw;-><init>(Landroid/content/Context;Ljava/lang/String;)V
const v3, 0x1080088
.line 1544
invoke-virtual {v2, v3}, Landroid/support/v4/app/aw;->r(I)Landroid/support/v4/app/aw;
move-result-object v2
.line 1545
invoke-virtual {v2}, Landroid/support/v4/app/aw;->aP()Landroid/support/v4/app/aw;
move-result-object v2
.line 11353
const/high16 v3, -0x10000
iput v3, v2, Landroid/support/v4/app/aw;->mColor:I
.line 12044
const/4 v3, 0x2
invoke-virtual {v2, v3, v5}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1547
sget v3, Lno/nordicsemi/android/dfu/R$string;->dfu_status_error:I
.line 1548
invoke-virtual {p0, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v2
const v3, 0x1080089
.line 1549
invoke-virtual {v2, v3}, Landroid/support/v4/app/aw;->r(I)Landroid/support/v4/app/aw;
move-result-object v2
sget v3, Lno/nordicsemi/android/dfu/R$string;->dfu_status_error_msg:I
.line 1550
invoke-virtual {p0, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v2
.line 1551
invoke-virtual {v2}, Landroid/support/v4/app/aw;->aQ()Landroid/support/v4/app/aw;
move-result-object v2
.line 1554
new-instance v3, Landroid/content/Intent;
invoke-virtual {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getNotificationTarget()Ljava/lang/Class;
move-result-object v4
invoke-direct {v3, p0, v4}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 1555
const/high16 v4, 0x10000000
invoke-virtual {v3, v4}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
.line 1556
const-string v4, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_ADDRESS"
invoke-virtual {v3, v4, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1557
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_NAME"
invoke-virtual {v3, v1, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1558
const-string v0, "no.nordicsemi.android.dfu.extra.EXTRA_PROGRESS"
invoke-virtual {v3, v0, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1559
const/high16 v0, 0x8000000
invoke-static {p0, v5, v3, v0}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v0
.line 12888
iput-object v0, v2, Landroid/support/v4/app/aw;->nD:Landroid/app/PendingIntent;
.line 1563
invoke-virtual {p0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->updateErrorNotification(Landroid/support/v4/app/aw;)V
.line 1565
const-string v0, "notification"
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/NotificationManager;
.line 1566
const/16 v1, 0x11b
invoke-virtual {v2}, Landroid/support/v4/app/aw;->build()Landroid/app/Notification;
move-result-object v2
invoke-virtual {v0, v1, v2}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
goto :goto_8
.line 1541
:cond_84
sget v0, Lno/nordicsemi/android/dfu/R$string;->dfu_unknown_name:I
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_11
.end method
.method private sendErrorBroadcast(I)V
.registers 5
.prologue
.line 1679
new-instance v0, Landroid/content/Intent;
const-string v1, "no.nordicsemi.android.dfu.broadcast.BROADCAST_ERROR"
invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 1680
and-int/lit16 v1, p1, 0x4000
if-lez v1, :cond_27
.line 1681
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DATA"
and-int/lit16 v2, p1, -0x4001
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1682
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_ERROR_TYPE"
const/4 v2, 0x2
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1693
:goto_18
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_ADDRESS"
iget-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceAddress:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1694
invoke-static {p0}, Landroid/support/v4/content/i;->i(Landroid/content/Context;)Landroid/support/v4/content/i;
move-result-object v1
invoke-virtual {v1, v0}, Landroid/support/v4/content/i;->a(Landroid/content/Intent;)Z
.line 1695
return-void
.line 1683
:cond_27
const v1, 0x8000
and-int/2addr v1, p1
if-lez v1, :cond_3d
.line 1684
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DATA"
const v2, -0x8001
and-int/2addr v2, p1
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1685
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_ERROR_TYPE"
const/4 v2, 0x1
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
goto :goto_18
.line 1686
:cond_3d
and-int/lit16 v1, p1, 0x2000
if-lez v1, :cond_4f
.line 1687
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DATA"
and-int/lit16 v2, p1, -0x2001
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1688
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_ERROR_TYPE"
const/4 v2, 0x3
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
goto :goto_18
.line 1690
:cond_4f
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DATA"
invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1691
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_ERROR_TYPE"
const/4 v2, 0x0
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
goto :goto_18
.end method
.method private sendProgressBroadcast(Lno/nordicsemi/android/dfu/DfuProgressInfo;)V
.registers 5
.prologue
.line 1668
new-instance v0, Landroid/content/Intent;
const-string v1, "no.nordicsemi.android.dfu.broadcast.BROADCAST_PROGRESS"
invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 1669
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DATA"
invoke-virtual {p1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->getProgress()I
move-result v2
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1670
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_ADDRESS"
iget-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceAddress:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1671
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_PART_CURRENT"
invoke-virtual {p1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->getCurrentPart()I
move-result v2
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1672
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_PARTS_TOTAL"
invoke-virtual {p1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->getTotalParts()I
move-result v2
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1673
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_SPEED_B_PER_MS"
invoke-virtual {p1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->getSpeed()F
move-result v2
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;F)Landroid/content/Intent;
.line 1674
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_AVG_SPEED_B_PER_MS"
invoke-virtual {p1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->getAverageSpeed()F
move-result v2
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;F)Landroid/content/Intent;
.line 1675
invoke-static {p0}, Landroid/support/v4/content/i;->i(Landroid/content/Context;)Landroid/support/v4/content/i;
move-result-object v1
invoke-virtual {v1, v0}, Landroid/support/v4/content/i;->a(Landroid/content/Intent;)Z
.line 1676
return-void
.end method
.method private startForeground()V
.registers 5
.prologue
.line 1578
new-instance v0, Landroid/support/v4/app/aw;
const-string v1, "dfu"
invoke-direct {v0, p0, v1}, Landroid/support/v4/app/aw;-><init>(Landroid/content/Context;Ljava/lang/String;)V
const v1, 0x1080088
.line 1579
invoke-virtual {v0, v1}, Landroid/support/v4/app/aw;->r(I)Landroid/support/v4/app/aw;
move-result-object v0
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_foreground_title:I
.line 1580
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v0
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_foreground_content:I
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v0
.line 13353
const v1, -0x777778
iput v1, v0, Landroid/support/v4/app/aw;->mColor:I
.line 14159
const/4 v1, -0x1
iput v1, v0, Landroid/support/v4/app/aw;->mPriority:I
.line 15044
const/4 v1, 0x2
const/4 v2, 0x1
invoke-virtual {v0, v1, v2}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1586
invoke-virtual {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getNotificationTarget()Ljava/lang/Class;
move-result-object v1
.line 1587
if-eqz v1, :cond_63
.line 1588
new-instance v2, Landroid/content/Intent;
invoke-direct {v2, p0, v1}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 1589
const/high16 v1, 0x10000000
invoke-virtual {v2, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
.line 1590
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_ADDRESS"
iget-object v3, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceAddress:Ljava/lang/String;
invoke-virtual {v2, v1, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1591
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_NAME"
iget-object v3, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceName:Ljava/lang/String;
invoke-virtual {v2, v1, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1592
const/4 v1, 0x0
const/high16 v3, 0x8000000
invoke-static {p0, v1, v2, v3}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v1
.line 15888
iput-object v1, v0, Landroid/support/v4/app/aw;->nD:Landroid/app/PendingIntent;
.line 1600
:goto_56
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->updateForegroundNotification(Landroid/support/v4/app/aw;)V
.line 1602
const/16 v1, 0x11b
invoke-virtual {v0}, Landroid/support/v4/app/aw;->build()Landroid/app/Notification;
move-result-object v0
invoke-virtual {p0, v1, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->startForeground(ILandroid/app/Notification;)V
.line 1603
return-void
.line 1595
:cond_63
const-string v1, "getNotificationTarget() should not return null if the service is to be started as a foreground service"
invoke-direct {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->logw(Ljava/lang/String;)V
goto :goto_56
.end method
# virtual methods
.method protected close(Landroid/bluetooth/BluetoothGatt;)V
.registers 4
.prologue
.line 1389
const-string v0, "Cleaning up..."
invoke-direct {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->logi(Ljava/lang/String;)V
.line 1390
const/4 v0, 0x0
const-string v1, "gatt.close()"
invoke-virtual {p0, v0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1391
invoke-virtual {p1}, Landroid/bluetooth/BluetoothGatt;->close()V
.line 1392
const/4 v0, -0x5
iput v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
.line 1393
return-void
.end method
.method protected connect(Ljava/lang/String;)Landroid/bluetooth/BluetoothGatt;
.registers 7
.prologue
const/4 v2, 0x0
const/4 v4, -0x1
.line 1288
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mBluetoothAdapter:Landroid/bluetooth/BluetoothAdapter;
invoke-virtual {v0}, Landroid/bluetooth/BluetoothAdapter;->isEnabled()Z
move-result v0
if-nez v0, :cond_c
.line 1289
const/4 v0, 0x0
.line 1308
:goto_b
return-object v0
.line 1291
:cond_c
iput v4, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
.line 1293
const-string v0, "Connecting to the device..."
invoke-direct {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->logi(Ljava/lang/String;)V
.line 1294
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mBluetoothAdapter:Landroid/bluetooth/BluetoothAdapter;
invoke-virtual {v0, p1}, Landroid/bluetooth/BluetoothAdapter;->getRemoteDevice(Ljava/lang/String;)Landroid/bluetooth/BluetoothDevice;
move-result-object v0
.line 1295
const-string v1, "gatt = device.connectGatt(autoConnect = false)"
invoke-virtual {p0, v2, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1296
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mGattCallback:Landroid/bluetooth/BluetoothGattCallback;
invoke-virtual {v0, p0, v2, v1}, Landroid/bluetooth/BluetoothDevice;->connectGatt(Landroid/content/Context;ZLandroid/bluetooth/BluetoothGattCallback;)Landroid/bluetooth/BluetoothGatt;
move-result-object v0
.line 1301
:try_start_24
iget-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLock:Ljava/lang/Object;
monitor-enter v2
:try_end_27
.catch Ljava/lang/InterruptedException; {:try_start_24 .. :try_end_27} :catch_3d
.line 1302
:goto_27
:try_start_27
iget v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
if-eq v1, v4, :cond_30
iget v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
const/4 v3, -0x2
if-ne v1, v3, :cond_44
:cond_30
iget v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
if-nez v1, :cond_44
.line 1303
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLock:Ljava/lang/Object;
invoke-virtual {v1}, Ljava/lang/Object;->wait()V
goto :goto_27
.line 1304
:catchall_3a
move-exception v1
monitor-exit v2
:try_end_3c
.catchall {:try_start_27 .. :try_end_3c} :catchall_3a
:try_start_3c
throw v1
:try_end_3d
.catch Ljava/lang/InterruptedException; {:try_start_3c .. :try_end_3d} :catch_3d
.line 1305
:catch_3d
move-exception v1
.line 1306
const-string v2, "Sleeping interrupted"
invoke-direct {p0, v2, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_b
.line 1304
:cond_44
:try_start_44
monitor-exit v2
:try_end_45
.catchall {:try_start_44 .. :try_end_45} :catchall_3a
goto :goto_b
.end method
.method protected disconnect(Landroid/bluetooth/BluetoothGatt;)V
.registers 4
.prologue
.line 1338
iget v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
if-nez v0, :cond_5
.line 1352
:goto_4
return-void
.line 1341
:cond_5
const/4 v0, 0x1
const-string v1, "Disconnecting..."
invoke-virtual {p0, v0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1342
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mProgressInfo:Lno/nordicsemi/android/dfu/DfuProgressInfo;
const/4 v1, -0x5
invoke-virtual {v0, v1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->setProgress(I)V
.line 1343
const/4 v0, -0x4
iput v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
.line 1345
const-string v0, "Disconnecting from the device..."
invoke-direct {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->logi(Ljava/lang/String;)V
.line 1346
const/4 v0, 0x0
const-string v1, "gatt.disconnect()"
invoke-virtual {p0, v0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1347
invoke-virtual {p1}, Landroid/bluetooth/BluetoothGatt;->disconnect()V
.line 1350
invoke-virtual {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->waitUntilDisconnected()V
.line 1351
const/4 v0, 0x5
const-string v1, "Disconnected"
invoke-virtual {p0, v0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
goto :goto_4
.end method
.method public abstract getNotificationTarget()Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/lang/Class",
"<+",
"Landroid/app/Activity;",
">;"
}
.end annotation
.end method
.method public isDebug()Z
.registers 2
.prologue
.line 1664
const/4 v0, 0x0
return v0
.end method
.method public onCreate()V
.registers 4
.prologue
.line 843
invoke-super {p0}, Landroid/app/IntentService;->onCreate()V
.line 845
invoke-virtual {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->isDebug()Z
move-result v0
sput-boolean v0, Lno/nordicsemi/android/dfu/DfuBaseService;->DEBUG:Z
.line 846
const-string v0, "DFU service created. Version: 1.6.1"
invoke-direct {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->logi(Ljava/lang/String;)V
.line 847
invoke-direct {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->initialize()Z
.line 849
invoke-static {p0}, Landroid/support/v4/content/i;->i(Landroid/content/Context;)Landroid/support/v4/content/i;
move-result-object v0
.line 850
invoke-static {}, Lno/nordicsemi/android/dfu/DfuBaseService;->makeDfuActionIntentFilter()Landroid/content/IntentFilter;
move-result-object v1
.line 851
iget-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDfuActionReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {v0, v2, v1}, Landroid/support/v4/content/i;->a(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V
.line 852
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDfuActionReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
.line 854
new-instance v0, Landroid/content/IntentFilter;
invoke-direct {v0}, Landroid/content/IntentFilter;-><init>()V
.line 856
const-string v1, "android.bluetooth.device.action.ACL_CONNECTED"
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 857
const-string v1, "android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED"
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 858
const-string v1, "android.bluetooth.device.action.ACL_DISCONNECTED"
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 859
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionStateBroadcastReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v1, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
.line 861
new-instance v0, Landroid/content/IntentFilter;
const-string v1, "android.bluetooth.device.action.BOND_STATE_CHANGED"
invoke-direct {v0, v1}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
.line 862
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mBondStateBroadcastReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v1, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
.line 863
return-void
.end method
.method public onDestroy()V
.registers 4
.prologue
const/4 v2, 0x0
.line 878
invoke-super {p0}, Landroid/app/IntentService;->onDestroy()V
.line 880
invoke-static {p0}, Landroid/support/v4/content/i;->i(Landroid/content/Context;)Landroid/support/v4/content/i;
move-result-object v0
.line 881
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDfuActionReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {v0, v1}, Landroid/support/v4/content/i;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
.line 883
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDfuActionReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
.line 884
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionStateBroadcastReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
.line 885
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mBondStateBroadcastReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
.line 889
:try_start_1c
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mFirmwareInputStream:Ljava/io/InputStream;
if-eqz v0, :cond_25
.line 890
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mFirmwareInputStream:Ljava/io/InputStream;
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
.line 891
:cond_25
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mInitFileInputStream:Ljava/io/InputStream;
if-eqz v0, :cond_2e
.line 892
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mInitFileInputStream:Ljava/io/InputStream;
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
:try_end_2e
.catch Ljava/io/IOException; {:try_start_1c .. :try_end_2e} :catch_38
.catchall {:try_start_1c .. :try_end_2e} :catchall_3e
.line 896
:cond_2e
iput-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mFirmwareInputStream:Ljava/io/InputStream;
.line 897
iput-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mInitFileInputStream:Ljava/io/InputStream;
.line 899
:goto_32
const-string v0, "DFU service destroyed"
invoke-direct {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->logi(Ljava/lang/String;)V
.line 900
return-void
.line 896
:catch_38
move-exception v0
iput-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mFirmwareInputStream:Ljava/io/InputStream;
.line 897
iput-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mInitFileInputStream:Ljava/io/InputStream;
goto :goto_32
.line 896
:catchall_3e
move-exception v0
iput-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mFirmwareInputStream:Ljava/io/InputStream;
.line 897
iput-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mInitFileInputStream:Ljava/io/InputStream;
throw v0
.end method
.method protected onHandleIntent(Landroid/content/Intent;)V
.registers 22
.prologue
.line 905
const-string v2, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_ADDRESS"
move-object/from16 v0, p1
invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
move-result-object v11
.line 906
const-string v2, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_NAME"
move-object/from16 v0, p1
invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
.line 907
const-string v2, "no.nordicsemi.android.dfu.extra.EXTRA_DISABLE_NOTIFICATION"
const/4 v3, 0x0
move-object/from16 v0, p1
invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
move-result v12
.line 908
const-string v2, "no.nordicsemi.android.dfu.extra.EXTRA_FOREGROUND_SERVICE"
const/4 v3, 0x1
move-object/from16 v0, p1
invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
move-result v13
.line 909
const-string v2, "no.nordicsemi.android.dfu.extra.EXTRA_FILE_PATH"
move-object/from16 v0, p1
invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
move-result-object v14
.line 910
const-string v2, "no.nordicsemi.android.dfu.extra.EXTRA_FILE_URI"
move-object/from16 v0, p1
invoke-virtual {v0, v2}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v2
check-cast v2, Landroid/net/Uri;
.line 911
const-string v3, "no.nordicsemi.android.dfu.extra.EXTRA_FILE_RES_ID"
const/4 v4, 0x0
move-object/from16 v0, p1
invoke-virtual {v0, v3, v4}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
move-result v15
.line 912
const-string v3, "no.nordicsemi.android.dfu.extra.EXTRA_INIT_FILE_PATH"
move-object/from16 v0, p1
invoke-virtual {v0, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
move-result-object v16
.line 913
const-string v3, "no.nordicsemi.android.dfu.extra.EXTRA_INIT_FILE_URI"
move-object/from16 v0, p1
invoke-virtual {v0, v3}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v3
check-cast v3, Landroid/net/Uri;
.line 914
const-string v4, "no.nordicsemi.android.dfu.extra.EXTRA_INIT_FILE_RES_ID"
const/4 v5, 0x0
move-object/from16 v0, p1
invoke-virtual {v0, v4, v5}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
move-result v17
.line 915
const-string v4, "no.nordicsemi.android.dfu.extra.EXTRA_FILE_TYPE"
const/4 v5, 0x0
move-object/from16 v0, p1
invoke-virtual {v0, v4, v5}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
move-result v4
.line 916
if-eqz v14, :cond_74
if-nez v4, :cond_74
.line 917
sget-object v4, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-virtual {v14, v4}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v4
const-string v5, "zip"
invoke-virtual {v4, v5}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v4
if-eqz v4, :cond_ab
const/4 v4, 0x0
.line 918
:cond_74
:goto_74
const-string v5, "no.nordicsemi.android.dfu.extra.EXTRA_MIME_TYPE"
move-object/from16 v0, p1
invoke-virtual {v0, v5}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
.line 919
if-eqz v5, :cond_ad
move-object v10, v5
.line 922
:goto_7f
and-int/lit8 v5, v4, -0x8
if-gtz v5, :cond_93
const-string v5, "application/zip"
invoke-virtual {v5, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_b7
const-string v5, "application/octet-stream"
invoke-virtual {v5, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_b7
.line 923
:cond_93
const-string v2, "File type or file mime-type not supported"
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->logw(Ljava/lang/String;)V
.line 924
const/16 v2, 0xf
const-string v3, "File type or file mime-type not supported"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 925
const/16 v2, 0x1009
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
.line 1210
:cond_aa
:goto_aa
return-void
.line 917
:cond_ab
const/4 v4, 0x4
goto :goto_74
.line 919
:cond_ad
if-nez v4, :cond_b3
const-string v5, "application/zip"
move-object v10, v5
goto :goto_7f
:cond_b3
const-string v5, "application/octet-stream"
move-object v10, v5
goto :goto_7f
.line 928
:cond_b7
const-string v5, "application/octet-stream"
invoke-virtual {v5, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_e0
const/4 v5, 0x1
if-eq v4, v5, :cond_e0
const/4 v5, 0x2
if-eq v4, v5, :cond_e0
const/4 v5, 0x4
if-eq v4, v5, :cond_e0
.line 929
const-string v2, "Unable to determine file type"
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->logw(Ljava/lang/String;)V
.line 930
const/16 v2, 0xf
const-string v3, "Unable to determine file type"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 931
const/16 v2, 0x1009
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
goto :goto_aa
.line 934
:cond_e0
if-nez v12, :cond_f0
invoke-virtual/range {p0 .. p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getNotificationTarget()Ljava/lang/Class;
move-result-object v5
if-nez v5, :cond_f0
.line 936
new-instance v2, Ljava/lang/NullPointerException;
const-string v3, "getNotificationTarget() must not return null if notifications are enabled"
invoke-direct {v2, v3}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v2
.line 938
:cond_f0
if-nez v13, :cond_ff
sget v5, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v7, 0x1a
if-lt v5, v7, :cond_ff
.line 939
const-string v5, "Foreground service disabled. Android Oreo or newer may kill a background service few moments after user closes the application.\nConsider enabling foreground service using DfuServiceInitiator#setForeground(boolean)"
move-object/from16 v0, p0
invoke-direct {v0, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->logw(Ljava/lang/String;)V
.line 942
:cond_ff
invoke-static/range {p1 .. p1}, Lno/nordicsemi/android/dfu/UuidHelper;->assignCustomUuids(Landroid/content/Intent;)V
.line 944
move-object/from16 v0, p0
iput-object v11, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceAddress:Ljava/lang/String;
.line 945
move-object/from16 v0, p0
iput-object v6, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceName:Ljava/lang/String;
.line 946
move-object/from16 v0, p0
iput-boolean v12, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDisableNotification:Z
.line 947
const/4 v5, 0x0
move-object/from16 v0, p0
iput v5, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
.line 948
const/4 v5, 0x0
move-object/from16 v0, p0
iput v5, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
.line 952
invoke-static/range {p0 .. p0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;
move-result-object v5
.line 953
const-string v6, "settings_mbr_size"
const-string v7, "4096"
invoke-interface {v5, v6, v7}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
.line 956
:try_start_124
invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
:try_end_127
.catch Ljava/lang/NumberFormatException; {:try_start_124 .. :try_end_127} :catch_198
move-result v5
.line 957
if-gez v5, :cond_12b
.line 958
const/4 v5, 0x0
:cond_12b
move v9, v5
.line 963
:goto_12c
if-eqz v13, :cond_131
.line 964
invoke-direct/range {p0 .. p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->startForeground()V
.line 966
:cond_131
const/4 v5, 0x1
const-string v6, "DFU service started"
move-object/from16 v0, p0
invoke-virtual {v0, v5, v6}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 971
move-object/from16 v0, p0
iget-object v6, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mFirmwareInputStream:Ljava/io/InputStream;
.line 972
move-object/from16 v0, p0
iget-object v7, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mInitFileInputStream:Ljava/io/InputStream;
.line 974
:try_start_141
move-object/from16 v0, p0
iget-object v5, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mFirmwareInputStream:Ljava/io/InputStream;
:try_end_145
.catchall {:try_start_141 .. :try_end_145} :catchall_337
if-nez v5, :cond_19d
const/4 v5, 0x1
move v8, v5
.line 978
:goto_149
if-eqz v8, :cond_1eb
.line 985
const/4 v5, 0x1
:try_start_14c
const-string v18, "Opening file..."
move-object/from16 v0, p0
move-object/from16 v1, v18
invoke-virtual {v0, v5, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 986
if-eqz v2, :cond_1a0
.line 987
move-object/from16 v0, p0
invoke-direct {v0, v2, v10, v9, v4}, Lno/nordicsemi/android/dfu/DfuBaseService;->openInputStream(Landroid/net/Uri;Ljava/lang/String;II)Ljava/io/InputStream;
move-result-object v6
.line 998
:cond_15d
:goto_15d
if-eqz v3, :cond_1b2
.line 1000
invoke-virtual/range {p0 .. p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
invoke-virtual {v2, v3}, Landroid/content/ContentResolver;->openInputStream(Landroid/net/Uri;)Ljava/io/InputStream;
move-result-object v7
.line 1009
:cond_167
:goto_167
invoke-virtual {v6}, Ljava/io/InputStream;->available()I
move-result v2
.line 1010
rem-int/lit8 v2, v2, 0x4
if-eqz v2, :cond_1eb
.line 1011
new-instance v2, Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException;
const-string v3, "The new firmware is not word-aligned."
invoke-direct {v2, v3}, Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException;-><init>(Ljava/lang/String;)V
throw v2
:try_end_177
.catch Ljava/lang/SecurityException; {:try_start_14c .. :try_end_177} :catch_177
.catch Ljava/io/FileNotFoundException; {:try_start_14c .. :try_end_177} :catch_1bc
.catch Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException; {:try_start_14c .. :try_end_177} :catch_211
.catch Ljava/io/IOException; {:try_start_14c .. :try_end_177} :catch_24b
.catch Ljava/lang/Exception; {:try_start_14c .. :try_end_177} :catch_291
.catchall {:try_start_14c .. :try_end_177} :catchall_337
.line 1042
:catch_177
move-exception v2
.line 1043
:try_start_178
const-string v3, "A security exception occurred while opening file"
move-object/from16 v0, p0
invoke-direct {v0, v3, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1044
const/16 v2, 0x14
const-string v3, "Opening file failed: Permission required"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1045
const/16 v2, 0x1001
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
:try_end_18f
.catchall {:try_start_178 .. :try_end_18f} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 960
:catch_198
move-exception v5
const/16 v5, 0x1000
move v9, v5
goto :goto_12c
.line 974
:cond_19d
const/4 v5, 0x0
move v8, v5
goto :goto_149
.line 988
:cond_1a0
if-eqz v14, :cond_1a9
.line 989
:try_start_1a2
move-object/from16 v0, p0
invoke-direct {v0, v14, v10, v9, v4}, Lno/nordicsemi/android/dfu/DfuBaseService;->openInputStream(Ljava/lang/String;Ljava/lang/String;II)Ljava/io/InputStream;
move-result-object v6
goto :goto_15d
.line 990
:cond_1a9
if-lez v15, :cond_15d
.line 991
move-object/from16 v0, p0
invoke-direct {v0, v15, v10, v9, v4}, Lno/nordicsemi/android/dfu/DfuBaseService;->openInputStream(ILjava/lang/String;II)Ljava/io/InputStream;
move-result-object v6
goto :goto_15d
.line 1001
:cond_1b2
if-eqz v16, :cond_1dd
.line 1003
new-instance v7, Ljava/io/FileInputStream;
move-object/from16 v0, v16
invoke-direct {v7, v0}, Ljava/io/FileInputStream;-><init>(Ljava/lang/String;)V
:try_end_1bb
.catch Ljava/lang/SecurityException; {:try_start_1a2 .. :try_end_1bb} :catch_177
.catch Ljava/io/FileNotFoundException; {:try_start_1a2 .. :try_end_1bb} :catch_1bc
.catch Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException; {:try_start_1a2 .. :try_end_1bb} :catch_211
.catch Ljava/io/IOException; {:try_start_1a2 .. :try_end_1bb} :catch_24b
.catch Ljava/lang/Exception; {:try_start_1a2 .. :try_end_1bb} :catch_291
.catchall {:try_start_1a2 .. :try_end_1bb} :catchall_337
goto :goto_167
.line 1047
:catch_1bc
move-exception v2
.line 1048
:try_start_1bd
const-string v3, "An exception occurred while opening file"
move-object/from16 v0, p0
invoke-direct {v0, v3, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1049
const/16 v2, 0x14
const-string v3, "Opening file failed: File not found"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1050
const/16 v2, 0x1001
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
:try_end_1d4
.catchall {:try_start_1bd .. :try_end_1d4} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1004
:cond_1dd
if-lez v17, :cond_167
.line 1006
:try_start_1df
invoke-virtual/range {p0 .. p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getResources()Landroid/content/res/Resources;
move-result-object v2
move/from16 v0, v17
invoke-virtual {v2, v0}, Landroid/content/res/Resources;->openRawResource(I)Ljava/io/InputStream;
move-result-object v7
goto/16 :goto_167
.line 1015
:cond_1eb
const-string v2, "application/zip"
invoke-virtual {v2, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_620
.line 1016
move-object v0, v6
check-cast v0, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;
move-object v2, v0
.line 1017
if-nez v4, :cond_232
.line 1018
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;->getContentType()I
move-result v5
.line 1024
:goto_1fd
and-int/lit8 v3, v5, 0x4
if-lez v3, :cond_237
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;->applicationImageSize()I
move-result v3
rem-int/lit8 v3, v3, 0x4
if-eqz v3, :cond_237
.line 1025
new-instance v2, Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException;
const-string v3, "Application firmware is not word-aligned."
invoke-direct {v2, v3}, Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException;-><init>(Ljava/lang/String;)V
throw v2
:try_end_211
.catch Ljava/lang/SecurityException; {:try_start_1df .. :try_end_211} :catch_177
.catch Ljava/io/FileNotFoundException; {:try_start_1df .. :try_end_211} :catch_1bc
.catch Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException; {:try_start_1df .. :try_end_211} :catch_211
.catch Ljava/io/IOException; {:try_start_1df .. :try_end_211} :catch_24b
.catch Ljava/lang/Exception; {:try_start_1df .. :try_end_211} :catch_291
.catchall {:try_start_1df .. :try_end_211} :catchall_337
.line 1052
:catch_211
move-exception v2
.line 1053
:try_start_212
const-string v3, "Firmware not word-aligned"
move-object/from16 v0, p0
invoke-direct {v0, v3, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1054
const/16 v2, 0x14
const-string v3, "Opening file failed: Firmware size must be word-aligned"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1055
const/16 v2, 0x100c
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
:try_end_229
.catchall {:try_start_212 .. :try_end_229} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1020
:cond_232
:try_start_232
invoke-virtual {v2, v4}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;->setContentType(I)I
move-result v5
goto :goto_1fd
.line 1026
:cond_237
and-int/lit8 v3, v5, 0x2
if-lez v3, :cond_27d
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;->bootloaderImageSize()I
move-result v3
rem-int/lit8 v3, v3, 0x4
if-eqz v3, :cond_27d
.line 1027
new-instance v2, Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException;
const-string v3, "Bootloader firmware is not word-aligned."
invoke-direct {v2, v3}, Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException;-><init>(Ljava/lang/String;)V
throw v2
:try_end_24b
.catch Ljava/lang/SecurityException; {:try_start_232 .. :try_end_24b} :catch_177
.catch Ljava/io/FileNotFoundException; {:try_start_232 .. :try_end_24b} :catch_1bc
.catch Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException; {:try_start_232 .. :try_end_24b} :catch_211
.catch Ljava/io/IOException; {:try_start_232 .. :try_end_24b} :catch_24b
.catch Ljava/lang/Exception; {:try_start_232 .. :try_end_24b} :catch_291
.catchall {:try_start_232 .. :try_end_24b} :catchall_337
.line 1057
:catch_24b
move-exception v2
.line 1058
:try_start_24c
const-string v3, "An exception occurred while calculating file size"
move-object/from16 v0, p0
invoke-direct {v0, v3, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1059
const/16 v3, 0x14
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "Opening file failed: "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2}, Ljava/io/IOException;->getLocalizedMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
move-object/from16 v0, p0
invoke-virtual {v0, v3, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1060
const/16 v2, 0x1002
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
:try_end_274
.catchall {:try_start_24c .. :try_end_274} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1028
:cond_27d
and-int/lit8 v3, v5, 0x1
if-lez v3, :cond_2c3
:try_start_281
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;->softDeviceImageSize()I
move-result v3
rem-int/lit8 v3, v3, 0x4
if-eqz v3, :cond_2c3
.line 1029
new-instance v2, Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException;
const-string v3, "Soft Device firmware is not word-aligned."
invoke-direct {v2, v3}, Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException;-><init>(Ljava/lang/String;)V
throw v2
:try_end_291
.catch Ljava/lang/SecurityException; {:try_start_281 .. :try_end_291} :catch_177
.catch Ljava/io/FileNotFoundException; {:try_start_281 .. :try_end_291} :catch_1bc
.catch Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException; {:try_start_281 .. :try_end_291} :catch_211
.catch Ljava/io/IOException; {:try_start_281 .. :try_end_291} :catch_24b
.catch Ljava/lang/Exception; {:try_start_281 .. :try_end_291} :catch_291
.catchall {:try_start_281 .. :try_end_291} :catchall_337
.line 1062
:catch_291
move-exception v2
.line 1063
:try_start_292
const-string v3, "An exception occurred while opening files. Did you set the firmware file?"
move-object/from16 v0, p0
invoke-direct {v0, v3, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1064
const/16 v3, 0x14
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "Opening file failed: "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2}, Ljava/lang/Exception;->getLocalizedMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
move-object/from16 v0, p0
invoke-virtual {v0, v3, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1065
const/16 v2, 0x1002
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
:try_end_2ba
.catchall {:try_start_292 .. :try_end_2ba} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1031
:cond_2c3
const/4 v3, 0x4
if-ne v5, v3, :cond_327
.line 1032
:try_start_2c6
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;->getApplicationInit()[B
move-result-object v3
if-eqz v3, :cond_2d5
.line 1033
new-instance v7, Ljava/io/ByteArrayInputStream;
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;->getApplicationInit()[B
move-result-object v2
invoke-direct {v7, v2}, Ljava/io/ByteArrayInputStream;-><init>([B)V
.line 1039
:cond_2d5
:goto_2d5
move-object/from16 v0, p0
iput-object v6, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mFirmwareInputStream:Ljava/io/InputStream;
.line 1040
move-object/from16 v0, p0
iput-object v7, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mInitFileInputStream:Ljava/io/InputStream;
.line 1041
const/4 v2, 0x5
const-string v3, "Firmware file opened successfully"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
:try_end_2e5
.catch Ljava/lang/SecurityException; {:try_start_2c6 .. :try_end_2e5} :catch_177
.catch Ljava/io/FileNotFoundException; {:try_start_2c6 .. :try_end_2e5} :catch_1bc
.catch Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException; {:try_start_2c6 .. :try_end_2e5} :catch_211
.catch Ljava/io/IOException; {:try_start_2c6 .. :try_end_2e5} :catch_24b
.catch Ljava/lang/Exception; {:try_start_2c6 .. :try_end_2e5} :catch_291
.catchall {:try_start_2c6 .. :try_end_2e5} :catchall_337
.line 1069
if-nez v8, :cond_2f5
.line 1071
const/16 v2, 0x3e8
:try_start_2e9
move-object/from16 v0, p0
invoke-virtual {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->waitFor(I)V
.line 1073
const/16 v2, 0x3e8
move-object/from16 v0, p0
invoke-virtual {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->waitFor(I)V
.line 1076
:cond_2f5
new-instance v2, Lno/nordicsemi/android/dfu/DfuProgressInfo;
move-object/from16 v0, p0
invoke-direct {v2, v0}, Lno/nordicsemi/android/dfu/DfuProgressInfo;-><init>(Lno/nordicsemi/android/dfu/DfuProgressInfo$ProgressListener;)V
move-object/from16 v0, p0
iput-object v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mProgressInfo:Lno/nordicsemi/android/dfu/DfuProgressInfo;
.line 1078
move-object/from16 v0, p0
iget-boolean v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mAborted:Z
if-eqz v2, :cond_340
.line 1079
const-string v2, "Upload aborted"
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->logw(Ljava/lang/String;)V
.line 1080
const/16 v2, 0xf
const-string v3, "Upload aborted"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1081
move-object/from16 v0, p0
iget-object v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mProgressInfo:Lno/nordicsemi/android/dfu/DfuProgressInfo;
const/4 v3, -0x7
invoke-virtual {v2, v3}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->setProgress(I)V
:try_end_31e
.catchall {:try_start_2e9 .. :try_end_31e} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1035
:cond_327
:try_start_327
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;->getSystemInit()[B
move-result-object v3
if-eqz v3, :cond_2d5
.line 1036
new-instance v7, Ljava/io/ByteArrayInputStream;
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/ArchiveInputStream;->getSystemInit()[B
move-result-object v2
invoke-direct {v7, v2}, Ljava/io/ByteArrayInputStream;-><init>([B)V
:try_end_336
.catch Ljava/lang/SecurityException; {:try_start_327 .. :try_end_336} :catch_177
.catch Ljava/io/FileNotFoundException; {:try_start_327 .. :try_end_336} :catch_1bc
.catch Lno/nordicsemi/android/dfu/internal/exception/SizeValidationException; {:try_start_327 .. :try_end_336} :catch_211
.catch Ljava/io/IOException; {:try_start_327 .. :try_end_336} :catch_24b
.catch Ljava/lang/Exception; {:try_start_327 .. :try_end_336} :catch_291
.catchall {:try_start_327 .. :try_end_336} :catchall_337
goto :goto_2d5
.line 1204
:catchall_337
move-exception v2
if-eqz v13, :cond_33f
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
:cond_33f
throw v2
.line 1089
:cond_340
const/4 v2, 0x1
:try_start_341
const-string v3, "Connecting to DFU target..."
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1090
move-object/from16 v0, p0
iget-object v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mProgressInfo:Lno/nordicsemi/android/dfu/DfuProgressInfo;
const/4 v3, -0x1
invoke-virtual {v2, v3}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->setProgress(I)V
.line 1092
move-object/from16 v0, p0
invoke-virtual {v0, v11}, Lno/nordicsemi/android/dfu/DfuBaseService;->connect(Ljava/lang/String;)Landroid/bluetooth/BluetoothGatt;
move-result-object v4
.line 1094
if-nez v4, :cond_378
.line 1095
const-string v2, "Bluetooth adapter disabled"
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
.line 1096
const/16 v2, 0x14
const-string v3, "Bluetooth adapter disabled"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1097
const/16 v2, 0x100a
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
:try_end_36f
.catchall {:try_start_341 .. :try_end_36f} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1100
:cond_378
:try_start_378
move-object/from16 v0, p0
iget v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
if-nez v2, :cond_3cb
.line 1101
move-object/from16 v0, p0
iget v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
const v3, 0x8085
if-ne v2, v3, :cond_3ba
.line 1102
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Device not reachable. Check if the device with address "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " is in range, is advertising and is connectable"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
.line 1103
const/16 v2, 0x14
const-string v3, "Error 133: Connection timeout"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1108
:goto_3aa
const/16 v2, 0x1000
move-object/from16 v0, p0
invoke-virtual {v0, v4, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->terminateConnection(Landroid/bluetooth/BluetoothGatt;I)V
:try_end_3b1
.catchall {:try_start_378 .. :try_end_3b1} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1105
:cond_3ba
:try_start_3ba
const-string v2, "Device got disconnected before service discovery finished"
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
.line 1106
const/16 v2, 0x14
const-string v3, "Disconnected"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
goto :goto_3aa
.line 1111
:cond_3cb
move-object/from16 v0, p0
iget v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
if-lez v2, :cond_4b2
.line 1112
move-object/from16 v0, p0
iget v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
const v3, 0x8000
and-int/2addr v2, v3
if-lez v2, :cond_466
.line 1113
move-object/from16 v0, p0
iget v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
const v3, -0x8001
and-int/2addr v2, v3
.line 1114
new-instance v3, Ljava/lang/StringBuilder;
const-string v5, "An error occurred while connecting to the device:"
invoke-direct {v3, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
move-object/from16 v0, p0
invoke-direct {v0, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
.line 1115
const/16 v3, 0x14
const-string v5, "Connection failed (0x%02X): %s"
const/4 v6, 0x2
new-array v6, v6, [Ljava/lang/Object;
const/4 v7, 0x0
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v8
aput-object v8, v6, v7
const/4 v7, 0x1
invoke-static {v2}, Lno/nordicsemi/android/a/a;->fl(I)Ljava/lang/String;
move-result-object v2
aput-object v2, v6, v7
invoke-static {v5, v6}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
move-object/from16 v0, p0
invoke-virtual {v0, v3, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1123
:goto_415
const-string v2, "no.nordicsemi.android.dfu.extra.EXTRA_ATTEMPT"
const/4 v3, 0x0
move-object/from16 v0, p1
invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
move-result v2
if-nez v2, :cond_4a0
.line 1124
const/16 v2, 0xf
const-string v3, "Retrying..."
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1126
move-object/from16 v0, p0
iget v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
if-eqz v2, :cond_434
.line 1128
move-object/from16 v0, p0
invoke-virtual {v0, v4}, Lno/nordicsemi/android/dfu/DfuBaseService;->disconnect(Landroid/bluetooth/BluetoothGatt;)V
.line 1131
:cond_434
const/4 v2, 0x1
move-object/from16 v0, p0
invoke-virtual {v0, v4, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->refreshDeviceCache(Landroid/bluetooth/BluetoothGatt;Z)V
.line 1132
move-object/from16 v0, p0
invoke-virtual {v0, v4}, Lno/nordicsemi/android/dfu/DfuBaseService;->close(Landroid/bluetooth/BluetoothGatt;)V
.line 1134
const-string v2, "Restarting the service"
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->logi(Ljava/lang/String;)V
.line 1135
new-instance v2, Landroid/content/Intent;
invoke-direct {v2}, Landroid/content/Intent;-><init>()V
.line 1136
const/16 v3, 0x18
move-object/from16 v0, p1
invoke-virtual {v2, v0, v3}, Landroid/content/Intent;->fillIn(Landroid/content/Intent;I)I
.line 1137
const-string v3, "no.nordicsemi.android.dfu.extra.EXTRA_ATTEMPT"
const/4 v4, 0x1
invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1138
move-object/from16 v0, p0
invoke-virtual {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
:try_end_45d
.catchall {:try_start_3ba .. :try_end_45d} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1117
:cond_466
:try_start_466
move-object/from16 v0, p0
iget v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
and-int/lit16 v2, v2, -0x4001
.line 1118
new-instance v3, Ljava/lang/StringBuilder;
const-string v5, "An error occurred during discovering services:"
invoke-direct {v3, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
move-object/from16 v0, p0
invoke-direct {v0, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
.line 1119
const/16 v3, 0x14
const-string v5, "Connection failed (0x%02X): %s"
const/4 v6, 0x2
new-array v6, v6, [Ljava/lang/Object;
const/4 v7, 0x0
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v8
aput-object v8, v6, v7
const/4 v7, 0x1
invoke-static {v2}, Lno/nordicsemi/android/a/a;->fm(I)Ljava/lang/String;
move-result-object v2
aput-object v2, v6, v7
invoke-static {v5, v6}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
move-object/from16 v0, p0
invoke-virtual {v0, v3, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
goto/16 :goto_415
.line 1141
:cond_4a0
move-object/from16 v0, p0
iget v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
move-object/from16 v0, p0
invoke-virtual {v0, v4, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->terminateConnection(Landroid/bluetooth/BluetoothGatt;I)V
:try_end_4a9
.catchall {:try_start_466 .. :try_end_4a9} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1144
:cond_4b2
:try_start_4b2
move-object/from16 v0, p0
iget-boolean v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mAborted:Z
if-eqz v2, :cond_4df
.line 1145
const-string v2, "Upload aborted"
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->logw(Ljava/lang/String;)V
.line 1146
const/16 v2, 0xf
const-string v3, "Upload aborted"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1147
const/4 v2, 0x0
move-object/from16 v0, p0
invoke-virtual {v0, v4, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->terminateConnection(Landroid/bluetooth/BluetoothGatt;I)V
.line 1148
move-object/from16 v0, p0
iget-object v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mProgressInfo:Lno/nordicsemi/android/dfu/DfuProgressInfo;
const/4 v3, -0x7
invoke-virtual {v2, v3}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->setProgress(I)V
:try_end_4d6
.catchall {:try_start_4b2 .. :try_end_4d6} :catchall_337
.line 1204
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1151
:cond_4df
const/4 v2, 0x5
:try_start_4e0
const-string v3, "Services discovered"
move-object/from16 v0, p0
invoke-virtual {v0, v2, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1154
const-string v2, "no.nordicsemi.android.dfu.extra.EXTRA_ATTEMPT"
const/4 v3, 0x0
move-object/from16 v0, p1
invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
:try_end_4ef
.catchall {:try_start_4e0 .. :try_end_4ef} :catchall_337
.line 1156
const/4 v2, 0x0
.line 1161
:try_start_4f0
new-instance v3, Lno/nordicsemi/android/dfu/DfuServiceProvider;
invoke-direct {v3}, Lno/nordicsemi/android/dfu/DfuServiceProvider;-><init>()V
.line 1162
move-object/from16 v0, p0
iput-object v3, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDfuServiceImpl:Lno/nordicsemi/android/dfu/DfuCallback;
.line 1163
move-object/from16 v0, p1
move-object/from16 v1, p0
invoke-virtual {v3, v0, v1, v4}, Lno/nordicsemi/android/dfu/DfuServiceProvider;->getServiceImpl(Landroid/content/Intent;Lno/nordicsemi/android/dfu/DfuBaseService;Landroid/bluetooth/BluetoothGatt;)Lno/nordicsemi/android/dfu/DfuService;
:try_end_500
.catch Lno/nordicsemi/android/dfu/internal/exception/UploadAbortedException; {:try_start_4f0 .. :try_end_500} :catch_540
.catch Lno/nordicsemi/android/dfu/internal/exception/DeviceDisconnectedException; {:try_start_4f0 .. :try_end_500} :catch_565
.catch Lno/nordicsemi/android/dfu/internal/exception/DfuException; {:try_start_4f0 .. :try_end_500} :catch_58f
.catchall {:try_start_4f0 .. :try_end_500} :catchall_602
move-result-object v2
:try_start_501
move-object/from16 v0, p0
iput-object v2, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDfuServiceImpl:Lno/nordicsemi/android/dfu/DfuCallback;
.line 1164
if-nez v2, :cond_525
.line 1166
const/16 v3, 0xf
const-string v5, "DFU Service not found"
move-object/from16 v0, p0
invoke-virtual {v0, v3, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1167
const/16 v3, 0x1006
move-object/from16 v0, p0
invoke-virtual {v0, v4, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->terminateConnection(Landroid/bluetooth/BluetoothGatt;I)V
:try_end_517
.catch Lno/nordicsemi/android/dfu/internal/exception/UploadAbortedException; {:try_start_501 .. :try_end_517} :catch_540
.catch Lno/nordicsemi/android/dfu/internal/exception/DeviceDisconnectedException; {:try_start_501 .. :try_end_517} :catch_618
.catch Lno/nordicsemi/android/dfu/internal/exception/DfuException; {:try_start_501 .. :try_end_517} :catch_610
.catchall {:try_start_501 .. :try_end_517} :catchall_609
.line 1199
if-eqz v2, :cond_51c
.line 1200
:try_start_519
invoke-interface {v2}, Lno/nordicsemi/android/dfu/DfuService;->release()V
:try_end_51c
.catchall {:try_start_519 .. :try_end_51c} :catchall_337
.line 1204
:cond_51c
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
:cond_525
move-object/from16 v3, p1
.line 1172
:try_start_527
invoke-interface/range {v2 .. v7}, Lno/nordicsemi/android/dfu/DfuService;->initialize(Landroid/content/Intent;Landroid/bluetooth/BluetoothGatt;ILjava/io/InputStream;Ljava/io/InputStream;)Z
move-result v3
if-eqz v3, :cond_532
.line 1173
move-object/from16 v0, p1
invoke-interface {v2, v0}, Lno/nordicsemi/android/dfu/DfuService;->performDfu(Landroid/content/Intent;)V
:try_end_532
.catch Lno/nordicsemi/android/dfu/internal/exception/UploadAbortedException; {:try_start_527 .. :try_end_532} :catch_540
.catch Lno/nordicsemi/android/dfu/internal/exception/DeviceDisconnectedException; {:try_start_527 .. :try_end_532} :catch_618
.catch Lno/nordicsemi/android/dfu/internal/exception/DfuException; {:try_start_527 .. :try_end_532} :catch_610
.catchall {:try_start_527 .. :try_end_532} :catchall_609
.line 1199
:cond_532
if-eqz v2, :cond_537
.line 1200
:try_start_534
invoke-interface {v2}, Lno/nordicsemi/android/dfu/DfuService;->release()V
:try_end_537
.catchall {:try_start_534 .. :try_end_537} :catchall_337
.line 1204
:cond_537
:goto_537
if-eqz v13, :cond_aa
.line 1207
move-object/from16 v0, p0
invoke-virtual {v0, v12}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopForeground(Z)V
goto/16 :goto_aa
.line 1176
:catch_540
move-exception v3
:try_start_541
const-string v3, "Upload aborted"
move-object/from16 v0, p0
invoke-direct {v0, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->logw(Ljava/lang/String;)V
.line 1177
const/16 v3, 0xf
const-string v5, "Upload aborted"
move-object/from16 v0, p0
invoke-virtual {v0, v3, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1178
const/4 v3, 0x0
move-object/from16 v0, p0
invoke-virtual {v0, v4, v3}, Lno/nordicsemi/android/dfu/DfuBaseService;->terminateConnection(Landroid/bluetooth/BluetoothGatt;I)V
.line 1179
move-object/from16 v0, p0
iget-object v3, v0, Lno/nordicsemi/android/dfu/DfuBaseService;->mProgressInfo:Lno/nordicsemi/android/dfu/DfuProgressInfo;
const/4 v4, -0x7
invoke-virtual {v3, v4}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->setProgress(I)V
:try_end_55f
.catchall {:try_start_541 .. :try_end_55f} :catchall_609
.line 1199
if-eqz v2, :cond_537
.line 1200
:try_start_561
invoke-interface {v2}, Lno/nordicsemi/android/dfu/DfuService;->release()V
:try_end_564
.catchall {:try_start_561 .. :try_end_564} :catchall_337
goto :goto_537
.line 1180
:catch_565
move-exception v3
move-object/from16 v19, v3
move-object v3, v2
move-object/from16 v2, v19
.line 1181
:goto_56b
const/16 v5, 0x14
:try_start_56d
const-string v6, "Device has disconnected"
move-object/from16 v0, p0
invoke-virtual {v0, v5, v6}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1183
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/exception/DeviceDisconnectedException;->getMessage()Ljava/lang/String;
move-result-object v2
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
.line 1184
move-object/from16 v0, p0
invoke-virtual {v0, v4}, Lno/nordicsemi/android/dfu/DfuBaseService;->close(Landroid/bluetooth/BluetoothGatt;)V
.line 1185
const/16 v2, 0x1000
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
:try_end_589
.catchall {:try_start_56d .. :try_end_589} :catchall_5fb
.line 1199
if-eqz v3, :cond_537
.line 1200
:try_start_58b
invoke-interface {v3}, Lno/nordicsemi/android/dfu/DfuService;->release()V
:try_end_58e
.catchall {:try_start_58b .. :try_end_58e} :catchall_337
goto :goto_537
.line 1186
:catch_58f
move-exception v3
move-object/from16 v19, v3
move-object v3, v2
move-object/from16 v2, v19
.line 1187
:goto_595
:try_start_595
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/exception/DfuException;->getErrorNumber()I
move-result v5
.line 1189
const v6, 0x8000
and-int/2addr v6, v5
if-lez v6, :cond_5da
.line 1190
const v6, -0x8001
and-int/2addr v5, v6
.line 1191
const/16 v6, 0x14
const-string v7, "Error (0x%02X): %s"
const/4 v8, 0x2
new-array v8, v8, [Ljava/lang/Object;
const/4 v9, 0x0
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v8, v9
const/4 v9, 0x1
invoke-static {v5}, Lno/nordicsemi/android/a/a;->fl(I)Ljava/lang/String;
move-result-object v5
aput-object v5, v8, v9
invoke-static {v7, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
move-object/from16 v0, p0
invoke-virtual {v0, v6, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1196
:goto_5c1
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/exception/DfuException;->getMessage()Ljava/lang/String;
move-result-object v5
move-object/from16 v0, p0
invoke-direct {v0, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;)V
.line 1197
invoke-virtual {v2}, Lno/nordicsemi/android/dfu/internal/exception/DfuException;->getErrorNumber()I
move-result v2
move-object/from16 v0, p0
invoke-virtual {v0, v4, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->terminateConnection(Landroid/bluetooth/BluetoothGatt;I)V
:try_end_5d3
.catchall {:try_start_595 .. :try_end_5d3} :catchall_5fb
.line 1199
if-eqz v3, :cond_537
.line 1200
:try_start_5d5
invoke-interface {v3}, Lno/nordicsemi/android/dfu/DfuService;->release()V
:try_end_5d8
.catchall {:try_start_5d5 .. :try_end_5d8} :catchall_337
goto/16 :goto_537
.line 1193
:cond_5da
and-int/lit16 v5, v5, -0x4001
.line 1194
const/16 v6, 0x14
:try_start_5de
const-string v7, "Error (0x%02X): %s"
const/4 v8, 0x2
new-array v8, v8, [Ljava/lang/Object;
const/4 v9, 0x0
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v8, v9
const/4 v9, 0x1
invoke-static {v5}, Lno/nordicsemi/android/a/a;->fm(I)Ljava/lang/String;
move-result-object v5
aput-object v5, v8, v9
invoke-static {v7, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
move-object/from16 v0, p0
invoke-virtual {v0, v6, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
:try_end_5fa
.catchall {:try_start_5de .. :try_end_5fa} :catchall_5fb
goto :goto_5c1
.line 1199
:catchall_5fb
move-exception v2
:goto_5fc
if-eqz v3, :cond_601
.line 1200
:try_start_5fe
invoke-interface {v3}, Lno/nordicsemi/android/dfu/DfuService;->release()V
:cond_601
throw v2
:try_end_602
.catchall {:try_start_5fe .. :try_end_602} :catchall_337
.line 1199
:catchall_602
move-exception v3
move-object/from16 v19, v3
move-object v3, v2
move-object/from16 v2, v19
goto :goto_5fc
:catchall_609
move-exception v3
move-object/from16 v19, v3
move-object v3, v2
move-object/from16 v2, v19
goto :goto_5fc
.line 1186
:catch_610
move-exception v3
move-object/from16 v19, v3
move-object v3, v2
move-object/from16 v2, v19
goto/16 :goto_595
.line 1180
:catch_618
move-exception v3
move-object/from16 v19, v3
move-object v3, v2
move-object/from16 v2, v19
goto/16 :goto_56b
:cond_620
move v5, v4
goto/16 :goto_2d5
.end method
.method public onTaskRemoved(Landroid/content/Intent;)V
.registers 4
.prologue
.line 867
invoke-super {p0, p1}, Landroid/app/IntentService;->onTaskRemoved(Landroid/content/Intent;)V
.line 871
const-string v0, "notification"
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/NotificationManager;
.line 872
const/16 v1, 0x11b
invoke-virtual {v0, v1}, Landroid/app/NotificationManager;->cancel(I)V
.line 873
invoke-virtual {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->stopSelf()V
.line 874
return-void
.end method
.method protected refreshDeviceCache(Landroid/bluetooth/BluetoothGatt;Z)V
.registers 6
.prologue
const/4 v2, 0x0
.line 1408
if-nez p2, :cond_f
invoke-virtual {p1}, Landroid/bluetooth/BluetoothGatt;->getDevice()Landroid/bluetooth/BluetoothDevice;
move-result-object v0
invoke-virtual {v0}, Landroid/bluetooth/BluetoothDevice;->getBondState()I
move-result v0
const/16 v1, 0xa
if-ne v0, v1, :cond_42
.line 1409
:cond_f
const-string v0, "gatt.refresh() (hidden)"
invoke-virtual {p0, v2, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1414
:try_start_14
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v1, "refresh"
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Class;
invoke-virtual {v0, v1, v2}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 1415
if-eqz v0, :cond_42
.line 1416
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-virtual {v0, p1, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Boolean;
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
.line 1417
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Refreshing result: "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->logi(Ljava/lang/String;)V
:try_end_42
.catch Ljava/lang/Exception; {:try_start_14 .. :try_end_42} :catch_43
.line 1424
:cond_42
:goto_42
return-void
.line 1419
:catch_43
move-exception v0
.line 1420
const-string v1, "An exception occurred while refreshing device"
invoke-direct {p0, v1, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1421
const/16 v0, 0xf
const-string v1, "Refreshing failed"
invoke-virtual {p0, v0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
goto :goto_42
.end method
.method sendLogBroadcast(ILjava/lang/String;)V
.registers 6
.prologue
.line 1698
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "[DFU] "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1699
new-instance v1, Landroid/content/Intent;
const-string v2, "no.nordicsemi.android.dfu.broadcast.BROADCAST_LOG"
invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 1700
const-string v2, "no.nordicsemi.android.dfu.extra.EXTRA_LOG_INFO"
invoke-virtual {v1, v2, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1701
const-string v0, "no.nordicsemi.android.dfu.extra.EXTRA_LOG_LEVEL"
invoke-virtual {v1, v0, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1702
const-string v0, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_ADDRESS"
iget-object v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceAddress:Ljava/lang/String;
invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1703
invoke-static {p0}, Landroid/support/v4/content/i;->i(Landroid/content/Context;)Landroid/support/v4/content/i;
move-result-object v0
invoke-virtual {v0, v1}, Landroid/support/v4/content/i;->a(Landroid/content/Intent;)Z
.line 1704
return-void
.end method
.method protected terminateConnection(Landroid/bluetooth/BluetoothGatt;I)V
.registers 4
.prologue
.line 1318
iget v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
if-eqz v0, :cond_7
.line 1320
invoke-virtual {p0, p1}, Lno/nordicsemi/android/dfu/DfuBaseService;->disconnect(Landroid/bluetooth/BluetoothGatt;)V
.line 1324
:cond_7
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->refreshDeviceCache(Landroid/bluetooth/BluetoothGatt;Z)V
.line 1325
invoke-virtual {p0, p1}, Lno/nordicsemi/android/dfu/DfuBaseService;->close(Landroid/bluetooth/BluetoothGatt;)V
.line 1326
const/16 v0, 0x258
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->waitFor(I)V
.line 1327
if-eqz p2, :cond_18
.line 1328
invoke-direct {p0, p2}, Lno/nordicsemi/android/dfu/DfuBaseService;->report(I)V
.line 1329
:cond_18
return-void
.end method
.method protected updateErrorNotification(Landroid/support/v4/app/aw;)V
.registers 2
.prologue
.line 1575
return-void
.end method
.method protected updateForegroundNotification(Landroid/support/v4/app/aw;)V
.registers 2
.prologue
.line 1611
return-void
.end method
.method public updateProgressNotification()V
.registers 15
.prologue
const v13, 0x1080089
const/4 v12, 0x2
const/4 v11, 0x0
const/4 v10, 0x1
.line 1431
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mProgressInfo:Lno/nordicsemi/android/dfu/DfuProgressInfo;
.line 1432
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->getProgress()I
move-result v2
.line 1433
iget v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLastProgress:I
if-ne v0, v2, :cond_11
.line 1512
:cond_10
:goto_10
return-void
.line 1436
:cond_11
iput v2, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLastProgress:I
.line 1439
invoke-direct {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendProgressBroadcast(Lno/nordicsemi/android/dfu/DfuProgressInfo;)V
.line 1441
iget-boolean v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDisableNotification:Z
if-nez v0, :cond_10
.line 1446
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v4
.line 1447
iget-wide v6, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLastNotificationTime:J
sub-long v6, v4, v6
const-wide/16 v8, 0xfa
cmp-long v0, v6, v8
if-gez v0, :cond_2e
const/4 v0, -0x6
if-eq v0, v2, :cond_2e
const/4 v0, -0x7
if-ne v0, v2, :cond_10
.line 1449
:cond_2e
iput-wide v4, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLastNotificationTime:J
.line 1452
iget-object v3, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceAddress:Ljava/lang/String;
.line 1453
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceName:Ljava/lang/String;
if-eqz v0, :cond_b1
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mDeviceName:Ljava/lang/String;
.line 1455
:goto_38
new-instance v4, Landroid/support/v4/app/aw;
const-string v5, "dfu"
invoke-direct {v4, p0, v5}, Landroid/support/v4/app/aw;-><init>(Landroid/content/Context;Ljava/lang/String;)V
const v5, 0x1080088
.line 1456
invoke-virtual {v4, v5}, Landroid/support/v4/app/aw;->r(I)Landroid/support/v4/app/aw;
move-result-object v4
invoke-virtual {v4}, Landroid/support/v4/app/aw;->aP()Landroid/support/v4/app/aw;
move-result-object v4
.line 2353
const v5, -0x777778
iput v5, v4, Landroid/support/v4/app/aw;->mColor:I
.line 1460
packed-switch v2, :pswitch_data_1ae
.line 1491
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->getTotalParts()I
move-result v5
if-ne v5, v10, :cond_190
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_uploading:I
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
.line 1492
:goto_5e
sget v5, Lno/nordicsemi/android/dfu/R$string;->dfu_status_uploading_msg:I
new-array v6, v10, [Ljava/lang/Object;
aput-object v0, v6, v11
invoke-virtual {p0, v5, v6}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
.line 10044
invoke-virtual {v4, v12, v10}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1493
invoke-virtual {v4, v1}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
invoke-virtual {v1, v5}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
.line 1494
invoke-virtual {v1, v2, v11}, Landroid/support/v4/app/aw;->b(IZ)Landroid/support/v4/app/aw;
.line 1499
:goto_76
new-instance v1, Landroid/content/Intent;
invoke-virtual {p0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getNotificationTarget()Ljava/lang/Class;
move-result-object v5
invoke-direct {v1, p0, v5}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 1500
const/high16 v5, 0x10000000
invoke-virtual {v1, v5}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
.line 1501
const-string v5, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_ADDRESS"
invoke-virtual {v1, v5, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1502
const-string v3, "no.nordicsemi.android.dfu.extra.EXTRA_DEVICE_NAME"
invoke-virtual {v1, v3, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 1503
const-string v0, "no.nordicsemi.android.dfu.extra.EXTRA_PROGRESS"
invoke-virtual {v1, v0, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1504
const/high16 v0, 0x8000000
invoke-static {p0, v11, v1, v0}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v0
.line 10888
iput-object v0, v4, Landroid/support/v4/app/aw;->nD:Landroid/app/PendingIntent;
.line 1508
invoke-virtual {p0, v4, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->updateProgressNotification(Landroid/support/v4/app/aw;I)V
.line 1510
const-string v0, "notification"
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/NotificationManager;
.line 1511
const/16 v1, 0x11b
invoke-virtual {v4}, Landroid/support/v4/app/aw;->build()Landroid/app/Notification;
move-result-object v2
invoke-virtual {v0, v1, v2}, Landroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
goto/16 :goto_10
.line 1453
:cond_b1
sget v0, Lno/nordicsemi/android/dfu/R$string;->dfu_unknown_name:I
invoke-virtual {p0, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_38
.line 3044
:pswitch_b8
invoke-virtual {v4, v12, v10}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1462
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_connecting:I
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
sget v5, Lno/nordicsemi/android/dfu/R$string;->dfu_status_connecting_msg:I
new-array v6, v10, [Ljava/lang/Object;
aput-object v0, v6, v11
invoke-virtual {p0, v5, v6}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
invoke-virtual {v1, v5}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
.line 1463
invoke-virtual {v1, v11, v10}, Landroid/support/v4/app/aw;->b(IZ)Landroid/support/v4/app/aw;
goto :goto_76
.line 4044
:pswitch_d7
invoke-virtual {v4, v12, v10}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1466
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_starting:I
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
sget v5, Lno/nordicsemi/android/dfu/R$string;->dfu_status_starting_msg:I
invoke-virtual {p0, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v1, v5}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
.line 1467
invoke-virtual {v1, v11, v10}, Landroid/support/v4/app/aw;->b(IZ)Landroid/support/v4/app/aw;
goto :goto_76
.line 5044
:pswitch_f2
invoke-virtual {v4, v12, v10}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1470
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_switching_to_dfu:I
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
sget v5, Lno/nordicsemi/android/dfu/R$string;->dfu_status_switching_to_dfu_msg:I
invoke-virtual {p0, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v1, v5}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
.line 1471
invoke-virtual {v1, v11, v10}, Landroid/support/v4/app/aw;->b(IZ)Landroid/support/v4/app/aw;
goto/16 :goto_76
.line 6044
:pswitch_10e
invoke-virtual {v4, v12, v10}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1474
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_validating:I
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
sget v5, Lno/nordicsemi/android/dfu/R$string;->dfu_status_validating_msg:I
invoke-virtual {p0, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v1, v5}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
.line 1475
invoke-virtual {v1, v11, v10}, Landroid/support/v4/app/aw;->b(IZ)Landroid/support/v4/app/aw;
goto/16 :goto_76
.line 7044
:pswitch_12a
invoke-virtual {v4, v12, v10}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1478
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_disconnecting:I
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
sget v5, Lno/nordicsemi/android/dfu/R$string;->dfu_status_disconnecting_msg:I
new-array v6, v10, [Ljava/lang/Object;
aput-object v0, v6, v11
invoke-virtual {p0, v5, v6}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
invoke-virtual {v1, v5}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
.line 1479
invoke-virtual {v1, v11, v10}, Landroid/support/v4/app/aw;->b(IZ)Landroid/support/v4/app/aw;
goto/16 :goto_76
.line 8044
:pswitch_14a
invoke-virtual {v4, v12, v11}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1482
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_completed:I
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
invoke-virtual {v1, v13}, Landroid/support/v4/app/aw;->r(I)Landroid/support/v4/app/aw;
move-result-object v1
sget v5, Lno/nordicsemi/android/dfu/R$string;->dfu_status_completed_msg:I
.line 1483
invoke-virtual {p0, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v1, v5}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
invoke-virtual {v1}, Landroid/support/v4/app/aw;->aQ()Landroid/support/v4/app/aw;
move-result-object v1
.line 8353
const v5, -0xff47e6
iput v5, v1, Landroid/support/v4/app/aw;->mColor:I
goto/16 :goto_76
.line 9044
:pswitch_170
invoke-virtual {v4, v12, v11}, Landroid/support/v4/app/aw;->c(IZ)V
.line 1486
sget v1, Lno/nordicsemi/android/dfu/R$string;->dfu_status_aborted:I
invoke-virtual {p0, v1}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Landroid/support/v4/app/aw;->b(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
invoke-virtual {v1, v13}, Landroid/support/v4/app/aw;->r(I)Landroid/support/v4/app/aw;
move-result-object v1
sget v5, Lno/nordicsemi/android/dfu/R$string;->dfu_status_aborted_msg:I
.line 1487
invoke-virtual {p0, v5}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v1, v5}, Landroid/support/v4/app/aw;->c(Ljava/lang/CharSequence;)Landroid/support/v4/app/aw;
move-result-object v1
invoke-virtual {v1}, Landroid/support/v4/app/aw;->aQ()Landroid/support/v4/app/aw;
goto/16 :goto_76
.line 1491
:cond_190
sget v5, Lno/nordicsemi/android/dfu/R$string;->dfu_status_uploading_part:I
new-array v6, v12, [Ljava/lang/Object;
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->getCurrentPart()I
move-result v7
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v7
aput-object v7, v6, v11
invoke-virtual {v1}, Lno/nordicsemi/android/dfu/DfuProgressInfo;->getTotalParts()I
move-result v1
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v6, v10
invoke-virtual {p0, v5, v6}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
goto/16 :goto_5e
.line 1460
:pswitch_data_1ae
.packed-switch -0x7
:pswitch_170
:pswitch_14a
:pswitch_12a
:pswitch_10e
:pswitch_f2
:pswitch_d7
:pswitch_b8
.end packed-switch
.end method
.method protected updateProgressNotification(Landroid/support/v4/app/aw;I)V
.registers 8
.prologue
.line 1520
const/4 v0, -0x7
if-eq p2, v0, :cond_2c
const/4 v0, -0x6
if-eq p2, v0, :cond_2c
.line 1521
new-instance v0, Landroid/content/Intent;
const-string v1, "no.nordicsemi.android.dfu.broadcast.BROADCAST_ACTION"
invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 1522
const-string v1, "no.nordicsemi.android.dfu.extra.EXTRA_ACTION"
const/4 v2, 0x2
invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
.line 1523
const/4 v1, 0x1
const/high16 v2, 0x8000000
invoke-static {p0, v1, v0, v2}, Landroid/app/PendingIntent;->getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
move-result-object v0
.line 1524
sget v1, Lno/nordicsemi/android/dfu/R$drawable;->ic_action_notify_cancel:I
sget v2, Lno/nordicsemi/android/dfu/R$string;->dfu_action_abort:I
invoke-virtual {p0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->getString(I)Ljava/lang/String;
move-result-object v2
.line 11304
iget-object v3, p1, Landroid/support/v4/app/aw;->nA:Ljava/util/ArrayList;
new-instance v4, Landroid/support/v4/app/au;
invoke-direct {v4, v1, v2, v0}, Landroid/support/v4/app/au;-><init>(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)V
invoke-virtual {v3, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1526
:cond_2c
return-void
.end method
.method protected waitFor(I)V
.registers 6
.prologue
.line 1373
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLock:Ljava/lang/Object;
monitor-enter v1
.line 1375
const/4 v0, 0x0
:try_start_4
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "wait("
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, ")"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {p0, v0, v2}, Lno/nordicsemi/android/dfu/DfuBaseService;->sendLogBroadcast(ILjava/lang/String;)V
.line 1376
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLock:Ljava/lang/Object;
int-to-long v2, p1
invoke-virtual {v0, v2, v3}, Ljava/lang/Object;->wait(J)V
:try_end_22
.catch Ljava/lang/InterruptedException; {:try_start_4 .. :try_end_22} :catch_24
.catchall {:try_start_4 .. :try_end_22} :catchall_2b
.line 1380
:goto_22
:try_start_22
monitor-exit v1
return-void
.line 1377
:catch_24
move-exception v0
.line 1378
const-string v2, "Sleeping interrupted"
invoke-direct {p0, v2, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_22
.line 1380
:catchall_2b
move-exception v0
monitor-exit v1
:try_end_2d
.catchall {:try_start_22 .. :try_end_2d} :catchall_2b
throw v0
.end method
.method protected waitUntilDisconnected()V
.registers 3
.prologue
.line 1359
:try_start_0
iget-object v1, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLock:Ljava/lang/Object;
monitor-enter v1
:try_end_3
.catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_3} :catch_14
.line 1360
:goto_3
:try_start_3
iget v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mConnectionState:I
if-eqz v0, :cond_1b
iget v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mError:I
if-nez v0, :cond_1b
.line 1361
iget-object v0, p0, Lno/nordicsemi/android/dfu/DfuBaseService;->mLock:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->wait()V
goto :goto_3
.line 1362
:catchall_11
move-exception v0
monitor-exit v1
:try_end_13
.catchall {:try_start_3 .. :try_end_13} :catchall_11
:try_start_13
throw v0
:try_end_14
.catch Ljava/lang/InterruptedException; {:try_start_13 .. :try_end_14} :catch_14
.line 1363
:catch_14
move-exception v0
.line 1364
const-string v1, "Sleeping interrupted"
invoke-direct {p0, v1, v0}, Lno/nordicsemi/android/dfu/DfuBaseService;->loge(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1366
:goto_1a
return-void
.line 1362
:cond_1b
:try_start_1b
monitor-exit v1
:try_end_1c
.catchall {:try_start_1b .. :try_end_1c} :catchall_11
goto :goto_1a
.end method