Skip to content

Commit 23bbcbf

Browse files
committed
Minor improvement
Minor improvement in displaying searches results Signed-off-by: Babak Arisian <[email protected]>
1 parent d32584f commit 23bbcbf

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

web/components/sink-device-list.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export class SinkDeviceList extends HTMLElement {
6666
this.setFilter = this.setFilter.bind(this);
6767
this.applyFilter = this.applyFilter.bind(this);
6868

69+
this.sinkClearList = this.sinkClearList.bind(this);
6970
this.sinkFound = this.sinkFound.bind(this);
7071
this.sinkUpdated = this.sinkUpdated.bind(this);
7172
this.sinkDisconnected = this.sinkDisconnected.bind(this);
@@ -84,6 +85,7 @@ export class SinkDeviceList extends HTMLElement {
8485

8586
this.#model = AssistantModel.getInstance();
8687

88+
this.#model.addEventListener('sink-list-cleared', this.sinkClearList)
8789
this.#model.addEventListener('sink-found', this.sinkFound)
8890
this.#model.addEventListener('sink-updated', this.sinkUpdated)
8991
this.#model.addEventListener('sink-disconnected', this.sinkDisconnected)
@@ -161,6 +163,16 @@ export class SinkDeviceList extends HTMLElement {
161163
.forEach(node => { node.style.order=order++ });
162164
}
163165

166+
sinkClearList(evt) {
167+
const elements = Array.from(this.#list.querySelectorAll('sink-item'));
168+
169+
elements.forEach(i => {
170+
if (i.getModel().state !== "connected") {
171+
i.remove();
172+
}
173+
});
174+
}
175+
164176
sinkFound(evt) {
165177
// Assume that the AssistantModel has eliminated duplicates
166178
// If the addr is random and RPA changed, device will appear

web/components/source-device-list.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export class SourceDeviceList extends HTMLElement {
6767
this.setFilter = this.setFilter.bind(this);
6868
this.applyFilter = this.applyFilter.bind(this);
6969

70+
this.sourceClearList = this.sourceClearList.bind(this);
7071
this.sourceFound = this.sourceFound.bind(this);
7172
this.sourceUpdated = this.sourceUpdated.bind(this);
7273
this.baseUpdated = this.baseUpdated.bind(this);
@@ -86,6 +87,7 @@ export class SourceDeviceList extends HTMLElement {
8687

8788
this.#model = AssistantModel.getInstance();
8889

90+
this.#model.addEventListener('source-list-cleared', this.sourceClearList)
8991
this.#model.addEventListener('source-found', this.sourceFound);
9092
this.#model.addEventListener('source-updated', this.sourceUpdated);
9193
this.#model.addEventListener('base-updated', this.baseUpdated);
@@ -156,6 +158,16 @@ export class SourceDeviceList extends HTMLElement {
156158
});
157159
}
158160

161+
sourceClearList(evt) {
162+
const elements = Array.from(this.#list.querySelectorAll('source-item'));
163+
164+
elements.forEach(i => {
165+
if (i.getModel().state !== "selected") {
166+
i.remove();
167+
}
168+
});
169+
}
170+
159171
sourceFound(evt) {
160172
// Assume that the AssistantModel has eliminated duplicates
161173
// If the addr is random and RPA changed, device will appear

web/models/assistant-model.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,7 +769,10 @@ class AssistantModel extends EventTarget {
769769

770770
this.#service.sendCMD(message)
771771
}
772+
772773
startSinkScan() {
774+
this.clearSinkList();
775+
773776
console.log("Sending Start Sink Scan CMD")
774777

775778
const message = {
@@ -783,6 +786,8 @@ class AssistantModel extends EventTarget {
783786
}
784787

785788
startSourceScan() {
789+
this.clearSourceList();
790+
786791
console.log("Sending Start Source Scan CMD")
787792

788793
const message = {
@@ -1106,6 +1111,20 @@ class AssistantModel extends EventTarget {
11061111

11071112
this.#service.sendCMD(message);
11081113
}
1114+
1115+
clearSinkList() {
1116+
this.#sinks = this.#sinks.filter(i => (i.state === "connected"));
1117+
console.log(`Sink list cleared`);
1118+
1119+
this.dispatchEvent(new CustomEvent('sink-list-cleared'));
1120+
}
1121+
1122+
clearSourceList() {
1123+
this.#sources = this.#sources.filter(i => i.state === "selected");
1124+
console.log(`Source list cleared`);
1125+
1126+
this.dispatchEvent(new CustomEvent('source-list-cleared'));
1127+
}
11091128
}
11101129

11111130
let _instance = null;

0 commit comments

Comments
 (0)