Skip to content

Commit ca2058b

Browse files
simplify graph navigation
1 parent a962728 commit ca2058b

38 files changed

Lines changed: 294 additions & 942 deletions

app/build.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Build Properties
2-
#Fri Mar 21 16:09:58 EDT 2025
3-
version_build=6
2+
#Sun Mar 23 17:39:56 EDT 2025
3+
version_build=7
44
version_major=3
55
version_minor=1
66
version_patch=4

app/src/main/kotlin/com/vrem/wifianalyzer/Configuration.kt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,38 +18,14 @@
1818
package com.vrem.wifianalyzer
1919

2020
import com.vrem.annotation.OpenClass
21-
import com.vrem.wifianalyzer.wifi.band.WiFiBand
22-
import com.vrem.wifianalyzer.wifi.band.WiFiChannelPair
23-
import com.vrem.wifianalyzer.wifi.band.WiFiChannels
2421

2522
const val SIZE_MIN = 1024
2623
const val SIZE_MAX = 4096
2724

2825
@OpenClass
2926
class Configuration(val largeScreen: Boolean) {
30-
private var wiFiChannelPair = mutableMapOf<WiFiBand, WiFiChannelPair>()
31-
3227
var size = SIZE_MAX
3328

3429
val sizeAvailable: Boolean
3530
get() = size == SIZE_MAX
36-
37-
fun wiFiChannelPair(countryCode: String): Unit =
38-
WiFiBand.entries.forEach {
39-
this.wiFiChannelPair[it] = it.wiFiChannels.wiFiChannelPairFirst(countryCode)
40-
}
41-
42-
fun wiFiChannelPair(wiFiBand: WiFiBand): WiFiChannelPair =
43-
this.wiFiChannelPair[wiFiBand]!!
44-
45-
fun wiFiChannelPair(wiFiBand: WiFiBand, wiFiChannelPair: WiFiChannelPair) {
46-
this.wiFiChannelPair[wiFiBand] = wiFiChannelPair
47-
}
48-
49-
init {
50-
WiFiBand.entries.forEach {
51-
this.wiFiChannelPair[it] = WiFiChannels.UNKNOWN
52-
}
53-
54-
}
5531
}

app/src/main/kotlin/com/vrem/wifianalyzer/MainActivity.kt

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import androidx.core.view.GravityCompat
3131
import androidx.drawerlayout.widget.DrawerLayout
3232
import com.google.android.material.navigation.NavigationView
3333
import com.vrem.annotation.OpenClass
34-
import com.vrem.util.EMPTY
3534
import com.vrem.util.createContext
3635
import com.vrem.util.findOne
3736
import com.vrem.wifianalyzer.navigation.NavigationMenu
@@ -51,8 +50,6 @@ class MainActivity : AppCompatActivity(), NavigationMenuControl, OnSharedPrefere
5150
internal lateinit var optionMenu: OptionMenu
5251
internal lateinit var connectionView: ConnectionView
5352

54-
private var currentCountryCode: String = String.EMPTY
55-
5653
override fun attachBaseContext(newBase: Context) =
5754
super.attachBaseContext(newBase.createContext(Settings(Repository(newBase)).languageLocale()))
5855

@@ -63,7 +60,6 @@ class MainActivity : AppCompatActivity(), NavigationMenuControl, OnSharedPrefere
6360
val settings = mainContext.settings
6461
settings.initializeDefaultValues()
6562
setTheme(settings.themeStyle().themeNoActionBar)
66-
setWiFiChannelPairs(mainContext)
6763

6864
mainReload = MainReload(settings)
6965

@@ -106,15 +102,6 @@ class MainActivity : AppCompatActivity(), NavigationMenuControl, OnSharedPrefere
106102
}
107103
}
108104

109-
private fun setWiFiChannelPairs(mainContext: MainContext) {
110-
val settings = mainContext.settings
111-
val countryCode = settings.countryCode()
112-
if (countryCode != currentCountryCode) {
113-
mainContext.configuration.wiFiChannelPair(countryCode)
114-
currentCountryCode = countryCode
115-
}
116-
}
117-
118105
private val largeScreen: Boolean
119106
get() {
120107
val configuration = resources.configuration
@@ -130,7 +117,6 @@ class MainActivity : AppCompatActivity(), NavigationMenuControl, OnSharedPrefere
130117
recreate()
131118
} else {
132119
keepScreenOn()
133-
setWiFiChannelPairs(mainContext)
134120
update()
135121
}
136122
}

app/src/main/kotlin/com/vrem/wifianalyzer/export/Export.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class Export(private val exportIntent: ExportIntent = ExportIntent()) {
7878
"${wiFiSignal.primaryFrequency}$FREQUENCY_UNITS|" +
7979
"${wiFiSignal.centerWiFiChannel.channel}|" +
8080
"${wiFiSignal.centerFrequency}$FREQUENCY_UNITS|" +
81-
"${wiFiSignal.wiFiWidth.frequencyWidth}$FREQUENCY_UNITS (${wiFiSignal.frequencyStart} - ${wiFiSignal.frequencyEnd})|" +
81+
"${wiFiSignal.wiFiWidth.frequencyWidth}$FREQUENCY_UNITS (${wiFiSignal.wiFiChannelStart.frequency} - ${wiFiSignal.wiFiChannelEnd.frequency})|" +
8282
"${wiFiSignal.distance}|" +
8383
"${wiFiSignal.extra.is80211mc}|" +
8484
wiFiSecurity.capabilities + "|" +

app/src/main/kotlin/com/vrem/wifianalyzer/wifi/accesspoint/AccessPointDetail.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class AccessPointDetail {
5757
setViewSecurityTypes(view, wiFiDetail.wiFiSecurity)
5858
setViewVendorLong(view, wiFiDetail.wiFiAdditional)
5959
setViewWiFiBand(view, wiFiDetail.wiFiSignal)
60+
setViewWiFiChannelPair(view, wiFiDetail.wiFiSignal)
6061
setView80211mc(view, wiFiDetail.wiFiSignal)
6162
setViewWiFiStandard(view, wiFiDetail.wiFiSignal)
6263
setViewFastRoaming(view, wiFiDetail.wiFiSignal)
@@ -96,7 +97,7 @@ class AccessPointDetail {
9697
val wiFiSignal = wiFiDetail.wiFiSignal
9798
setLevelImage(view, wiFiSignal)
9899
setWiFiStandardImage(view, wiFiSignal)
99-
it.text = "${wiFiSignal.frequencyStart} - ${wiFiSignal.frequencyEnd}"
100+
it.text = "${wiFiSignal.wiFiChannelStart.frequency} - ${wiFiSignal.wiFiChannelEnd.frequency}"
100101
view.findViewById<TextView>(R.id.width).text =
101102
"(${wiFiSignal.wiFiWidth.frequencyWidth}${WiFiSignal.FREQUENCY_UNITS})"
102103
view.findViewById<TextView>(R.id.capabilities).text = wiFiDetail.wiFiSecurity.securities
@@ -169,4 +170,12 @@ class AccessPointDetail {
169170
it.visibility = if (wiFiSignal.extra.is80211mc) View.VISIBLE else View.GONE
170171
}
171172

173+
private fun setViewWiFiChannelPair(view: View, wiFiSignal: WiFiSignal) =
174+
with(wiFiSignal) {
175+
view.findViewById<TextView>(R.id.channel_start).text = "${wiFiChannelStart.channel}"
176+
view.findViewById<TextView>(R.id.channel_end).text = "${wiFiChannelEnd.channel}"
177+
view.findViewById<TextView>(R.id.channel_width).text =
178+
"(${wiFiWidth.frequencyWidth}${WiFiSignal.FREQUENCY_UNITS})"
179+
}
180+
172181
}

app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiBand.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@ internal val availableGHZ2: Available = { true }
2727
internal val availableGHZ5: Available = { MainContext.INSTANCE.wiFiManagerWrapper.is5GHzBandSupported() }
2828
internal val availableGHZ6: Available = { MainContext.INSTANCE.wiFiManagerWrapper.is6GHzBandSupported() }
2929

30-
enum class WiFiBand(@StringRes val textResource: Int, val wiFiChannels: WiFiChannels, val available: Available) {
30+
enum class WiFiBand(
31+
@StringRes val textResource: Int,
32+
val wiFiChannels: WiFiChannels,
33+
val available: Available,
34+
val maxX: Int = 9
35+
) {
3136
GHZ2(R.string.wifi_band_2ghz, WiFiChannelsGHZ2(), availableGHZ2),
3237
GHZ5(R.string.wifi_band_5ghz, WiFiChannelsGHZ5(), availableGHZ5),
3338
GHZ6(R.string.wifi_band_6ghz, WiFiChannelsGHZ6(), availableGHZ6);
@@ -37,7 +42,7 @@ enum class WiFiBand(@StringRes val textResource: Int, val wiFiChannels: WiFiChan
3742
val ghz6: Boolean get() = GHZ6 == this
3843

3944
companion object {
40-
fun find(frequency: Int): WiFiBand = entries.firstOrNull { it.wiFiChannels.inRange(frequency) } ?: GHZ2
45+
fun find(frequency: Int): WiFiBand = WiFiBand.entries.firstOrNull { it.wiFiChannels.inRange(frequency) } ?: GHZ2
4146
}
4247

4348
}

app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiChannelCountryGHZ6.kt

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,14 @@ package com.vrem.wifianalyzer.wifi.band
2020
import java.util.SortedSet
2121

2222
internal class WiFiChannelCountryGHZ6 {
23-
private val channelsSet1: Set<Int> = setOf(1, 5, 9, 13, 17, 21, 25, 29)
24-
private val channelsSet2: Set<Int> = setOf(33, 37, 41, 45, 49, 53, 57, 61)
25-
private val channelsSet3: Set<Int> = setOf(65, 69, 73, 77, 81, 85, 89, 93)
26-
private val channelsSet4: Set<Int> = setOf(97, 101, 105, 109, 113, 117, 121, 125)
27-
private val channelsSet5: Set<Int> = setOf(129, 133, 137, 141, 145, 149, 153, 157)
28-
private val channelsSet6: Set<Int> = setOf(161, 165, 169, 173, 177, 181, 185, 189)
29-
private val channelsSet7: Set<Int> = setOf(193, 197, 201, 205, 209, 213, 217, 221, 225, 229)
30-
private val channels: SortedSet<Int> = channelsSet1
31-
.union(channelsSet2)
32-
.union(channelsSet3)
33-
.union(channelsSet4)
34-
.union(channelsSet5)
35-
.union(channelsSet6)
36-
.union(channelsSet7)
37-
.toSortedSet()
3823

39-
fun findChannels(): SortedSet<Int> = channels
24+
fun findChannels(): SortedSet<Int> = sortedSetOf(
25+
1, 5, 9, 13, 17, 21, 25, 29,
26+
33, 37, 41, 45, 49, 53, 57, 61,
27+
65, 69, 73, 77, 81, 85, 89, 93,
28+
97, 101, 105, 109, 113, 117, 121, 125,
29+
129, 133, 137, 141, 145, 149, 153, 157,
30+
161, 165, 169, 173, 177, 181, 185, 189,
31+
193, 197, 201, 205, 209, 213, 217, 221, 225, 229
32+
)
4033
}

app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiChannels.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ package com.vrem.wifianalyzer.wifi.band
2020
typealias WiFiRange = Pair<Int, Int>
2121
typealias WiFiChannelPair = Pair<WiFiChannel, WiFiChannel>
2222

23-
fun WiFiChannelPair.channelCount(): Int = second.channel - first.channel + 1 + WiFiChannels.CHANNEL_OFFSET * 2
24-
2523
abstract class WiFiChannels(private val wiFiRange: WiFiRange, private val wiFiChannelPairs: List<WiFiChannelPair>) {
2624
fun inRange(frequency: Int): Boolean =
2725
frequency in wiFiRange.first..wiFiRange.second
@@ -57,7 +55,6 @@ abstract class WiFiChannels(private val wiFiRange: WiFiRange, private val wiFiCh
5755
abstract fun availableChannels(countryCode: String): List<WiFiChannel>
5856
abstract fun channelAvailable(countryCode: String, channel: Int): Boolean
5957
abstract fun wiFiChannelPairs(): List<WiFiChannelPair>
60-
abstract fun wiFiChannelPairFirst(countryCode: String): WiFiChannelPair
6158
abstract fun wiFiChannelByFrequency(frequency: Int, wiFiChannelPair: WiFiChannelPair): WiFiChannel
6259

6360
fun availableChannels(channels: Set<Int>): List<WiFiChannel> = channels.map { this.wiFiChannelByChannel(it) }

app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiChannelsGHZ2.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ package com.vrem.wifianalyzer.wifi.band
2020
class WiFiChannelsGHZ2 : WiFiChannels(RANGE, SETS) {
2121
override fun wiFiChannelPairs(): List<WiFiChannelPair> = listOf(SET)
2222

23-
override fun wiFiChannelPairFirst(countryCode: String): WiFiChannelPair = SET
24-
2523
override fun availableChannels(countryCode: String): List<WiFiChannel> =
2624
availableChannels(WiFiChannelCountry.find(countryCode).channelsGHZ2())
2725

app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiChannelsGHZ5.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,6 @@ package com.vrem.wifianalyzer.wifi.band
2020
class WiFiChannelsGHZ5 : WiFiChannels(RANGE, SETS) {
2121
override fun wiFiChannelPairs(): List<WiFiChannelPair> = SETS
2222

23-
override fun wiFiChannelPairFirst(countryCode: String): WiFiChannelPair =
24-
if (countryCode.isBlank())
25-
SET1
26-
else
27-
wiFiChannelPairs().firstOrNull { channelAvailable(countryCode, it.first.channel) } ?: SET1
28-
2923
override fun availableChannels(countryCode: String): List<WiFiChannel> =
3024
availableChannels(WiFiChannelCountry.find(countryCode).channelsGHZ5())
3125

0 commit comments

Comments
 (0)