Skip to content

Commit eeee9cb

Browse files
nomanrangelix
authored andcommitted
fix: correct banner filtering logic for networks and screens
1 parent 239bfab commit eeee9cb

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

common/src/commonMain/kotlin/com/blockstream/domain/banner/GetBannerUseCase.kt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,24 @@ class GetBannerUseCase() {
1212
): Banner? {
1313

1414
return withContext(context = Dispatchers.Default) {
15-
banners?.filterNot {
16-
// Filter closed banners
15+
val afterExcludedFilter = banners?.filterNot {
1716
excludedBanners.contains(it)
18-
}?.filterNot {
19-
// Filter networks (get networks from all accounts to also match greenlight)
20-
(!it.hasNetworks || ((it.networks ?: listOf()).intersect(
21-
sessionOrNull?.allAccounts?.value?.map { it.networkId }?.toSet() ?: emptySet()
22-
).isNotEmpty()))
23-
}?.filterNot {
24-
// Filter based on screen name
25-
(it.screens?.contains(screenName) == true || it.screens?.contains("*") == true)
26-
}?.filter {
27-
// Filter based on screen name
28-
(it.screens?.contains(screenName) == true || it.screens?.contains("*") == true)
29-
}?.shuffled()?.let {
30-
// Search for the already displayed banner, else give priority to those with screen name, else "*"
17+
}
18+
19+
val activeNetworks = sessionOrNull?.activeSessions?.map { it.network }?.toMutableList() ?: mutableListOf()
20+
sessionOrNull?.lightning?.network?.also { activeNetworks.add(it) }
21+
22+
val afterNetworkFilter = afterExcludedFilter?.filter { banner ->
23+
!banner.hasNetworks || ((banner.networks ?: listOf()).intersect(activeNetworks.toSet()).isNotEmpty())
24+
}
25+
26+
val afterScreenFilter = afterNetworkFilter?.filter { banner ->
27+
(banner.screens?.contains(screenName) == true || banner.screens?.contains("*") == true)
28+
}
29+
30+
afterScreenFilter?.shuffled()?.let {
3131
it.find { it == previousBanner } ?: it.find { it.screens?.contains(screenName) == true } ?: it.firstOrNull()
3232
}
3333
}
3434
}
35-
}
35+
}

0 commit comments

Comments
 (0)