Skip to content

Commit 46dd74a

Browse files
Sync with blek
1 parent aa6830c commit 46dd74a

File tree

3 files changed

+13
-15
lines changed

3 files changed

+13
-15
lines changed

app/src/main/java/no/nordicsemi/android/common/test/main/page/BasicViewsPage.kt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@ data class DeviceInfo(
115115
) {
116116
val name = device?.name ?: "Unknown"
117117
val address = device?.address ?: "Unknown"
118-
val rssi = device?.highestRssi ?: 0
119118
}
120119

121120
@Composable
@@ -148,8 +147,7 @@ private fun BasicViewsScreen(
148147
device?.let {
149148
Device(
150149
deviceName = it.name,
151-
deviceAddress = it.address,
152-
rssi = it.rssi,
150+
deviceAddress = it.address
153151
)
154152
}
155153

@@ -162,8 +160,7 @@ private fun BasicViewsScreen(
162160
@Composable
163161
private fun Device(
164162
deviceName: String,
165-
deviceAddress: String,
166-
rssi: Int,
163+
deviceAddress: String
167164
) {
168165
Box(modifier = Modifier
169166
.clip(RoundedCornerShape(10.dp))
@@ -173,9 +170,7 @@ private fun Device(
173170
DeviceListItem(
174171
name = deviceName,
175172
address = deviceAddress,
176-
) {
177-
RssiIcon(rssi = rssi)
178-
}
173+
)
179174
}
180175
}
181176

settings.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ dependencyResolutionManagement {
4949
}
5050
versionCatalogs {
5151
create("libs") {
52-
from("no.nordicsemi.android.gradle:version-catalog:1.5.1")
52+
from("no.nordicsemi.android.gradle:version-catalog:1.5.2")
5353
}
5454
}
5555
}

uiscanner/src/main/java/no/nordicsemi/android/common/ui/scanner/main/viewmodel/ScannerViewModel.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,14 @@ import kotlinx.coroutines.flow.catch
4343
import kotlinx.coroutines.flow.combine
4444
import kotlinx.coroutines.flow.filter
4545
import kotlinx.coroutines.flow.launchIn
46+
import kotlinx.coroutines.flow.map
4647
import kotlinx.coroutines.flow.onEach
4748
import kotlinx.coroutines.flow.onStart
4849
import no.nordicsemi.android.common.ui.scanner.repository.DevicesScanFilter
4950
import no.nordicsemi.android.common.ui.scanner.repository.ScannerRepository
5051
import no.nordicsemi.android.common.ui.scanner.repository.ScanningState
51-
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
52+
import no.nordicsemi.android.kotlin.ble.scanner.aggregator.BleScanResultAggregator
53+
import no.nordicsemi.android.kotlin.ble.scanner.data.AggregatedBleScanItemWithRecord
5254
import no.nordicsemi.android.kotlin.ble.scanner.errors.ScanFailedError
5355
import no.nordicsemi.android.kotlin.ble.scanner.errors.ScanningFailedException
5456
import javax.inject.Inject
@@ -80,15 +82,17 @@ internal class ScannerViewModel @Inject constructor(
8082

8183
private fun relaunchScanning() {
8284
currentJob?.cancel()
85+
val aggregator = BleScanResultAggregator()
8386
currentJob = scannerRepository.getScannerState()
87+
.map { aggregator.aggregate(it) }
8488
.filter { it.isNotEmpty() }
8589
.combine(filterConfig) { result, config ->
8690
result.applyFilters(config)
8791
}
8892
.onStart { _state.value = ScanningState.Loading }
8993
.cancellable()
9094
.onEach {
91-
_state.value = ScanningState.DevicesDiscovered(it)
95+
_state.value = ScanningState.DevicesDiscovered(it.map { it.device })
9296
}
9397
.catch {
9498
_state.value = (it as? ScanningFailedException)?.let {
@@ -101,11 +105,10 @@ internal class ScannerViewModel @Inject constructor(
101105
// This can't be observed in View Model Scope, as it can exist even when the
102106
// scanner is not visible. Scanner state stops scanning when it is not observed.
103107
// .stateIn(viewModelScope, SharingStarted.Lazily, ScanningState.Loading)
104-
private fun List<ServerDevice>.applyFilters(config: DevicesScanFilter) =
105-
filter { !config.filterUuidRequired || it.serviceUuids.contains(uuid) }
108+
private fun List<AggregatedBleScanItemWithRecord>.applyFilters(config: DevicesScanFilter) =
109+
filter { !config.filterUuidRequired || it.lastScanResult?.scanRecord?.serviceUuids?.contains(uuid) == true }
106110
.filter { !config.filterNearbyOnly || it.highestRssi >= FILTER_RSSI }
107-
.filter { !config.filterWithNames || it.hasName }
108-
111+
.filter { !config.filterWithNames || it.device.name.isNotEmpty() }
109112

110113
fun setFilterUuid(uuid: ParcelUuid?) {
111114
this.uuid = uuid

0 commit comments

Comments
 (0)