Skip to content

Commit

Permalink
fix(ble): fix conn.Close on Java
Browse files Browse the repository at this point in the history
Signed-off-by: Sacha Froment <sfroment42@gmail.com>
  • Loading branch information
sfroment committed Nov 29, 2018
1 parent 0f781a8 commit 27af7ec
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
Expand Up @@ -181,6 +181,16 @@ public void closeScannerAndAdvertiser() {
}
}

public void closeConnFromMa(String rMa) {
BertyDevice bDevice = getDeviceFromMa(rMa);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
bDevice.gatt.disconnect();
}
synchronized (bertyDevices) {
bertyDevices.remove(bDevice.addr);
}
}

public static Manager getInstance() {
if (instance == null) {
synchronized (Manager.class) {
Expand Down
1 change: 1 addition & 0 deletions client/react-native/gomobile/core/java.go
Expand Up @@ -18,6 +18,7 @@ func initBleFunc() {
ble.DialPeer = Manager.GetInstance().DialPeer
ble.InitScannerAndAdvertiser = Manager.GetInstance().InitScannerAndAdvertiser
ble.CloseScannerAndAdvertiser = Manager.GetInstance().CloseScannerAndAdvertiser
ble.CloseConnFromMa = Manager.GetInstance().CloseConnFromMa
}

func JavaToGo() string {
Expand Down
12 changes: 10 additions & 2 deletions core/network/ble/java.go
Expand Up @@ -19,6 +19,7 @@ var Write func(p []byte, ma string) bool = nil
var DialPeer func(ma string) bool = nil
var InitScannerAndAdvertiser func() = nil
var CloseScannerAndAdvertiser func() = nil
var CloseConnFromMa func(ma string) = nil

func (t *Transport) Dial(ctx context.Context, rAddr ma.Multiaddr, p peer.ID) (tpt.Conn, error) {
// if int(C.isDiscovering()) != 1 {
Expand All @@ -42,8 +43,15 @@ func (t *Transport) Dial(ctx context.Context, rAddr ma.Multiaddr, p peer.ID) (tp
}

func (b *Conn) Close() error {
// logger().Debug("BLEConn Close")
// b.closed = true
logger().Debug("BLEConn Close")
if b.closed == false {
val, err := b.rAddr.ValueForProtocol(PBle)
if err != nil {
return err
}
CloseConnFromMa(val)
}
b.closed = true
// val, err := b.rAddr.ValueForProtocol(PBle)
// if err != nil {
// logger().Debug("BLEConn close", zap.Error(err))
Expand Down

0 comments on commit 27af7ec

Please sign in to comment.