Skip to content

Commit 2e12f36

Browse files
committed
Add sort by Wi-Fi Standard option to AccessPoints view
Add STANDARD as a new SortBy option that orders access points by Wi-Fi standard descending (BE > AX > AC > N > LEGACY > UNKNOWN), with signal strength, SSID and BSSID as tiebreakers. - SortBy.kt: add sortByStandard() comparator and STANDARD enum entry - arrays.xml: add Standard option to sort_by_index_array and sort_by_array - strings.xml: add sort_by_standard string resource - SortByTest.kt: update size, ordinal and comparator assertions
1 parent fb34fd6 commit 2e12f36

4 files changed

Lines changed: 19 additions & 4 deletions

File tree

app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/SortBy.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,17 @@ fun sortByChannel(): Comparator<WiFiDetail> =
3636
fun sortByDefault(): Comparator<WiFiDetail> =
3737
compareBy<WiFiDetail> { it.wiFiIdentifier.ssid }.thenBy { it.wiFiIdentifier.bssid }
3838

39+
fun sortByStandard(): Comparator<WiFiDetail> =
40+
compareByDescending<WiFiDetail> { it.wiFiSignal.extra.wiFiStandard.wiFiStandardId }
41+
.thenByDescending { it.wiFiSignal.level }
42+
.thenBy { it.wiFiIdentifier.ssid }
43+
.thenBy { it.wiFiIdentifier.bssid }
44+
3945
enum class SortBy(
4046
val sort: Comparator<WiFiDetail>,
4147
) {
4248
STRENGTH(sortByStrength()),
4349
SSID(sortBySSID()),
4450
CHANNEL(sortByChannel()),
51+
STANDARD(sortByStandard()),
4552
}

app/src/main/res/values/arrays.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,15 @@
3535
<string-array name="sort_by_index_array" translatable="false">
3636
<item>0</item>
3737
<item>1</item>
38-
<item>2</item>
38+
<item>2</item>
39+
<item>3</item>
3940
</string-array>
4041

4142
<string-array name="sort_by_array">
4243
<item>@string/sort_by_signal_strength</item>
4344
<item>@string/sort_by_ssid</item>
44-
<item>@string/sort_by_channel</item>
45+
<item>@string/sort_by_channel</item>
46+
<item>@string/sort_by_standard</item>
4547
</string-array>
4648

4749
<string-array name="connection_view_index_array" translatable="false">

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@
171171
<string name="security_wps" translatable="false">"WPS"</string>
172172
<string name="selected_menu_key" translatable="false">"selected_menu"</string>
173173
<string name="sort_by_channel">"Channel"</string>
174+
<string name="sort_by_standard" translatable="false">"Standard"</string>
174175
<string name="sort_by_default" translatable="false">"0"</string>
175176
<string name="sort_by_key" translatable="false">"sort_by"</string>
176177
<string name="sort_by_signal_strength">"Signal Strength"</string>

app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/SortByTest.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,16 @@ class SortByTest {
2424
@Test
2525
fun sortBy() {
2626
assertThat(SortBy.entries)
27-
.hasSize(3)
28-
.containsExactly(SortBy.STRENGTH, SortBy.SSID, SortBy.CHANNEL)
27+
.hasSize(4)
28+
.containsExactly(SortBy.STRENGTH, SortBy.SSID, SortBy.CHANNEL, SortBy.STANDARD)
2929
}
3030

3131
@Test
3232
fun sortByOrdinal() {
3333
assertThat(SortBy.STRENGTH.ordinal).isEqualTo(0)
3434
assertThat(SortBy.SSID.ordinal).isEqualTo(1)
3535
assertThat(SortBy.CHANNEL.ordinal).isEqualTo(2)
36+
assertThat(SortBy.STANDARD.ordinal).isEqualTo(3)
3637
}
3738

3839
@Test
@@ -49,5 +50,9 @@ class SortByTest {
4950
SortBy.CHANNEL.sort.javaClass
5051
.isInstance(sortByChannel()),
5152
).isTrue
53+
assertThat(
54+
SortBy.STANDARD.sort.javaClass
55+
.isInstance(sortByStandard()),
56+
).isTrue
5257
}
5358
}

0 commit comments

Comments
 (0)