.class public Lcom/clj/fastble/bluetooth/MultipleBluetoothController; .super Ljava/lang/Object; .source "MultipleBluetoothController.java" # instance fields .field private final bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/clj/fastble/utils/BleLruHashMap<", "Ljava/lang/String;", "Lcom/clj/fastble/bluetooth/BleBluetooth;", ">;" } .end annotation .end field .field private final bleTempHashMap:Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashMap<", "Ljava/lang/String;", "Lcom/clj/fastble/bluetooth/BleBluetooth;", ">;" } .end annotation .end field # direct methods .method public constructor ()V .registers 3 .line 23 invoke-direct {p0}, Ljava/lang/Object;->()V .line 24 new-instance v0, Lcom/clj/fastble/utils/BleLruHashMap; invoke-static {}, Lcom/clj/fastble/BleManager;->getInstance()Lcom/clj/fastble/BleManager; move-result-object v1 invoke-virtual {v1}, Lcom/clj/fastble/BleManager;->getMaxConnectCount()I move-result v1 invoke-direct {v0, v1}, Lcom/clj/fastble/utils/BleLruHashMap;->(I)V iput-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; .line 25 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V iput-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleTempHashMap:Ljava/util/HashMap; return-void .end method # virtual methods .method public declared-synchronized addBleBluetooth(Lcom/clj/fastble/bluetooth/BleBluetooth;)V .registers 4 monitor-enter p0 if-nez p1, :cond_5 .line 47 monitor-exit p0 return-void .line 49 :cond_5 :try_start_5 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {p1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDeviceKey()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Lcom/clj/fastble/utils/BleLruHashMap;->containsKey(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_1a .line 50 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {p1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDeviceKey()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1, p1}, Lcom/clj/fastble/utils/BleLruHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :try_end_1a .catchall {:try_start_5 .. :try_end_1a} :catchall_1c .line 52 :cond_1a monitor-exit p0 return-void :catchall_1c move-exception p1 :try_start_1d monitor-exit p0 :try_end_1e .catchall {:try_start_1d .. :try_end_1e} :catchall_1c throw p1 .end method .method public declared-synchronized buildConnectingBle(Lcom/clj/fastble/data/BleDevice;)Lcom/clj/fastble/bluetooth/BleBluetooth; .registers 4 monitor-enter p0 .line 29 :try_start_1 new-instance v0, Lcom/clj/fastble/bluetooth/BleBluetooth; invoke-direct {v0, p1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->(Lcom/clj/fastble/data/BleDevice;)V .line 30 iget-object p1, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleTempHashMap:Ljava/util/HashMap; invoke-virtual {v0}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDeviceKey()Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v1}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z move-result p1 if-nez p1, :cond_1b .line 31 iget-object p1, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleTempHashMap:Ljava/util/HashMap; invoke-virtual {v0}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDeviceKey()Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :try_end_1b .catchall {:try_start_1 .. :try_end_1b} :catchall_1d .line 33 :cond_1b monitor-exit p0 return-object v0 :catchall_1d move-exception p1 :try_start_1e monitor-exit p0 :try_end_1f .catchall {:try_start_1e .. :try_end_1f} :catchall_1d throw p1 .end method .method public declared-synchronized destroy()V .registers 3 monitor-enter p0 .line 94 :try_start_1 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {v0}, Lcom/clj/fastble/utils/BleLruHashMap;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_b invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_21 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Map$Entry; .line 95 invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/clj/fastble/bluetooth/BleBluetooth; invoke-virtual {v1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->destroy()V goto :goto_b .line 97 :cond_21 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {v0}, Lcom/clj/fastble/utils/BleLruHashMap;->clear()V .line 98 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleTempHashMap:Ljava/util/HashMap; invoke-virtual {v0}, Ljava/util/HashMap;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_30 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_46 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Map$Entry; .line 99 invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/clj/fastble/bluetooth/BleBluetooth; invoke-virtual {v1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->destroy()V goto :goto_30 .line 101 :cond_46 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleTempHashMap:Ljava/util/HashMap; invoke-virtual {v0}, Ljava/util/HashMap;->clear()V :try_end_4b .catchall {:try_start_1 .. :try_end_4b} :catchall_4d .line 102 monitor-exit p0 return-void :catchall_4d move-exception v0 :try_start_4e monitor-exit p0 :try_end_4f .catchall {:try_start_4e .. :try_end_4f} :catchall_4d throw v0 .end method .method public declared-synchronized disconnect(Lcom/clj/fastble/data/BleDevice;)V .registers 3 monitor-enter p0 .line 81 :try_start_1 invoke-virtual {p0, p1}, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->isContainDevice(Lcom/clj/fastble/data/BleDevice;)Z move-result v0 if-eqz v0, :cond_e .line 82 invoke-virtual {p0, p1}, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->getBleBluetooth(Lcom/clj/fastble/data/BleDevice;)Lcom/clj/fastble/bluetooth/BleBluetooth; move-result-object p1 invoke-virtual {p1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->disconnect()V :try_end_e .catchall {:try_start_1 .. :try_end_e} :catchall_10 .line 84 :cond_e monitor-exit p0 return-void :catchall_10 move-exception p1 :try_start_11 monitor-exit p0 :try_end_12 .catchall {:try_start_11 .. :try_end_12} :catchall_10 throw p1 .end method .method public declared-synchronized disconnectAllDevice()V .registers 3 monitor-enter p0 .line 87 :try_start_1 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {v0}, Lcom/clj/fastble/utils/BleLruHashMap;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_b invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_21 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Map$Entry; .line 88 invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/clj/fastble/bluetooth/BleBluetooth; invoke-virtual {v1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->disconnect()V goto :goto_b .line 90 :cond_21 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {v0}, Lcom/clj/fastble/utils/BleLruHashMap;->clear()V :try_end_26 .catchall {:try_start_1 .. :try_end_26} :catchall_28 .line 91 monitor-exit p0 return-void :catchall_28 move-exception v0 :try_start_29 monitor-exit p0 :try_end_2a .catchall {:try_start_29 .. :try_end_2a} :catchall_28 throw v0 .end method .method public declared-synchronized getBleBluetooth(Lcom/clj/fastble/data/BleDevice;)Lcom/clj/fastble/bluetooth/BleBluetooth; .registers 4 monitor-enter p0 if-eqz p1, :cond_20 .line 73 :try_start_3 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {p1}, Lcom/clj/fastble/data/BleDevice;->getKey()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Lcom/clj/fastble/utils/BleLruHashMap;->containsKey(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_20 .line 74 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {p1}, Lcom/clj/fastble/data/BleDevice;->getKey()Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Lcom/clj/fastble/utils/BleLruHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lcom/clj/fastble/bluetooth/BleBluetooth; :try_end_1b .catchall {:try_start_3 .. :try_end_1b} :catchall_1d monitor-exit p0 return-object p1 :catchall_1d move-exception p1 :try_start_1e monitor-exit p0 :try_end_1f .catchall {:try_start_1e .. :try_end_1f} :catchall_1d throw p1 .line 77 :cond_20 monitor-exit p0 const/4 p1, 0x0 return-object p1 .end method .method public declared-synchronized getBleBluetoothList()Ljava/util/List; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/List<", "Lcom/clj/fastble/bluetooth/BleBluetooth;", ">;" } .end annotation monitor-enter p0 .line 105 :try_start_1 new-instance v0, Ljava/util/ArrayList; iget-object v1, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {v1}, Lcom/clj/fastble/utils/BleLruHashMap;->values()Ljava/util/Collection; move-result-object v1 invoke-direct {v0, v1}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V .line 106 new-instance v1, Lcom/clj/fastble/bluetooth/MultipleBluetoothController$1; invoke-direct {v1, p0}, Lcom/clj/fastble/bluetooth/MultipleBluetoothController$1;->(Lcom/clj/fastble/bluetooth/MultipleBluetoothController;)V invoke-static {v0, v1}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V :try_end_14 .catchall {:try_start_1 .. :try_end_14} :catchall_16 .line 112 monitor-exit p0 return-object v0 :catchall_16 move-exception v0 :try_start_17 monitor-exit p0 :try_end_18 .catchall {:try_start_17 .. :try_end_18} :catchall_16 throw v0 .end method .method public declared-synchronized getDeviceList()Ljava/util/List; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/List<", "Lcom/clj/fastble/data/BleDevice;", ">;" } .end annotation monitor-enter p0 .line 116 :try_start_1 invoke-virtual {p0}, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->refreshConnectedDevice()V .line 117 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V .line 118 invoke-virtual {p0}, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->getBleBluetoothList()Ljava/util/List; move-result-object v1 invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v1 :cond_11 :goto_11 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_27 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/clj/fastble/bluetooth/BleBluetooth; if-eqz v2, :cond_11 .line 120 invoke-virtual {v2}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDevice()Lcom/clj/fastble/data/BleDevice; move-result-object v2 invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z :try_end_26 .catchall {:try_start_1 .. :try_end_26} :catchall_29 goto :goto_11 .line 123 :cond_27 monitor-exit p0 return-object v0 :catchall_29 move-exception v0 :try_start_2a monitor-exit p0 :try_end_2b .catchall {:try_start_2a .. :try_end_2b} :catchall_29 throw v0 .end method .method public declared-synchronized isContainDevice(Landroid/bluetooth/BluetoothDevice;)Z .registers 5 monitor-enter p0 if-eqz p1, :cond_29 .line 68 :try_start_3 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {p1}, Landroid/bluetooth/BluetoothDevice;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {p1}, Landroid/bluetooth/BluetoothDevice;->getAddress()Ljava/lang/String; move-result-object p1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Lcom/clj/fastble/utils/BleLruHashMap;->containsKey(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_29 const/4 p1, 0x1 goto :goto_2a :catchall_26 move-exception p1 monitor-exit p0 :try_end_28 .catchall {:try_start_3 .. :try_end_28} :catchall_26 throw p1 :cond_29 const/4 p1, 0x0 :goto_2a monitor-exit p0 return p1 .end method .method public declared-synchronized isContainDevice(Lcom/clj/fastble/data/BleDevice;)Z .registers 3 monitor-enter p0 if-eqz p1, :cond_14 .line 64 :try_start_3 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {p1}, Lcom/clj/fastble/data/BleDevice;->getKey()Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Lcom/clj/fastble/utils/BleLruHashMap;->containsKey(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_14 const/4 p1, 0x1 goto :goto_15 :catchall_11 move-exception p1 monitor-exit p0 :try_end_13 .catchall {:try_start_3 .. :try_end_13} :catchall_11 throw p1 :cond_14 const/4 p1, 0x0 :goto_15 monitor-exit p0 return p1 .end method .method public refreshConnectedDevice()V .registers 6 .line 128 invoke-virtual {p0}, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->getBleBluetoothList()Ljava/util/List; move-result-object v0 const/4 v1, 0x0 :goto_5 if-eqz v0, :cond_27 .line 129 invoke-interface {v0}, Ljava/util/List;->size()I move-result v2 if-ge v1, v2, :cond_27 .line 130 invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/clj/fastble/bluetooth/BleBluetooth; .line 131 invoke-static {}, Lcom/clj/fastble/BleManager;->getInstance()Lcom/clj/fastble/BleManager; move-result-object v3 invoke-virtual {v2}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDevice()Lcom/clj/fastble/data/BleDevice; move-result-object v4 invoke-virtual {v3, v4}, Lcom/clj/fastble/BleManager;->isConnected(Lcom/clj/fastble/data/BleDevice;)Z move-result v3 if-nez v3, :cond_24 .line 132 invoke-virtual {p0, v2}, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->removeBleBluetooth(Lcom/clj/fastble/bluetooth/BleBluetooth;)V :cond_24 add-int/lit8 v1, v1, 0x1 goto :goto_5 :cond_27 return-void .end method .method public declared-synchronized removeBleBluetooth(Lcom/clj/fastble/bluetooth/BleBluetooth;)V .registers 4 monitor-enter p0 if-nez p1, :cond_5 .line 56 monitor-exit p0 return-void .line 58 :cond_5 :try_start_5 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {p1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDeviceKey()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Lcom/clj/fastble/utils/BleLruHashMap;->containsKey(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1a .line 59 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleLruHashMap:Lcom/clj/fastble/utils/BleLruHashMap; invoke-virtual {p1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDeviceKey()Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Lcom/clj/fastble/utils/BleLruHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; :try_end_1a .catchall {:try_start_5 .. :try_end_1a} :catchall_1c .line 61 :cond_1a monitor-exit p0 return-void :catchall_1c move-exception p1 :try_start_1d monitor-exit p0 :try_end_1e .catchall {:try_start_1d .. :try_end_1e} :catchall_1c throw p1 .end method .method public declared-synchronized removeConnectingBle(Lcom/clj/fastble/bluetooth/BleBluetooth;)V .registers 4 monitor-enter p0 if-nez p1, :cond_5 .line 38 monitor-exit p0 return-void .line 40 :cond_5 :try_start_5 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleTempHashMap:Ljava/util/HashMap; invoke-virtual {p1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDeviceKey()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1a .line 41 iget-object v0, p0, Lcom/clj/fastble/bluetooth/MultipleBluetoothController;->bleTempHashMap:Ljava/util/HashMap; invoke-virtual {p1}, Lcom/clj/fastble/bluetooth/BleBluetooth;->getDeviceKey()Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; :try_end_1a .catchall {:try_start_5 .. :try_end_1a} :catchall_1c .line 43 :cond_1a monitor-exit p0 return-void :catchall_1c move-exception p1 :try_start_1d monitor-exit p0 :try_end_1e .catchall {:try_start_1d .. :try_end_1e} :catchall_1c throw p1 .end method