From f19fd835633bd3aaba7face06a5fdeda319ebb51 Mon Sep 17 00:00:00 2001
From: DD Liu <liudi@media.mit.edu>
Date: Mon, 23 Nov 2020 01:01:06 -0500
Subject: [PATCH] Handle user did not pick peripheral

---
 src/io/ble.js |  9 +++++++++
 src/io/bt.js  | 10 ++++++++++
 2 files changed, 19 insertions(+)

diff --git a/src/io/ble.js b/src/io/ble.js
index 9e3f33053..52a14f0b7 100644
--- a/src/io/ble.js
+++ b/src/io/ble.js
@@ -190,6 +190,15 @@ class BLE extends JSONRPC {
                 window.clearTimeout(this._discoverTimeoutID);
             }
             break;
+        case 'userDidNotPickPeripheral':
+            // this._availablePeripherals[params.peripheralId] = params;
+            this._runtime.emit(
+                this._runtime.constructor.PERIPHERAL_SCAN_TIMEOUT
+            );
+            if (this._discoverTimeoutID) {
+                window.clearTimeout(this._discoverTimeoutID);
+            }
+            break;
         case 'characteristicDidChange':
             if (this._characteristicDidChangeCallback) {
                 this._characteristicDidChangeCallback(params.message);
diff --git a/src/io/bt.js b/src/io/bt.js
index bb9b10761..312a45170 100644
--- a/src/io/bt.js
+++ b/src/io/bt.js
@@ -128,6 +128,16 @@ class BT extends JSONRPC {
                 window.clearTimeout(this._discoverTimeoutID);
             }
             break;
+        //TODO why isn't 'user did pick peripheral' here?
+        case 'userDidNotPickPeripheral':
+            // this._availablePeripherals[params.peripheralId] = params;
+            this._runtime.emit(
+                this._runtime.constructor.PERIPHERAL_SCAN_TIMEOUT
+            );
+            if (this._discoverTimeoutID) {
+                window.clearTimeout(this._discoverTimeoutID);
+            }
+            break;
         case 'didReceiveMessage':
             this._messageCallback(params); // TODO: refine?
             break;