Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix capitalisation of SI units #425

Closed
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ This is the official repository of WiFi Analyzer.
* The application has too many features to mention them all

**Please note WiFi Analyzer is not a WiFi password cracking or phishing tool.**

## Usage Tips
* Tap the title bar to switch between 2.4, 5 and 6 GHz WiFi band.
* SSID with `***` or `*hidden*` means it is hidden.
* Access Point security:
* <img src="images/ic_lock_black_18dp.png" alt="WPA2/WPA" height="20"> WPA3(SAE)/WPA2/WPA
* Access Point security:
* <img src="images/ic_lock_black_18dp.png" alt="WPA2/WPA" height="20"> WPA3(SAE)/WPA2/WPA
* <img src="images/ic_lock_outline_black_18dp.png" alt="WEP/WPS" height="20"> WEP/WPS
* <img src="images/ic_lock_open_black_18dp.png" alt="Disabled" height="20"> Disabled
* Wi-Fi Standard (Requires Android OS 11+):
Expand All @@ -53,7 +53,7 @@ This is the official repository of WiFi Analyzer.

## How-to
* [How to video](https://youtu.be/JJVKja0VDR0)
* [How to find the best 5Ghz WiFi Channel](https://www.maketecheasier.com/best-wifi-channel-for-5ghz-frequency/)
* [How to find the best 5 GHz WiFi Channel](https://www.maketecheasier.com/best-wifi-channel-for-5ghz-frequency/)
* [Understand Wi-Fi 4/5/6/6E/7 (802.11 n/ac/ax/be) - Make educated wireless router/AP upgrade decisions](https://www.duckware.com/tech/wifi-in-the-us.html)
* [Why Wi-Fi stinks and how to fix it](http://spectrum.ieee.org/telecom/wireless/why-wifi-stinksand-how-to-fix-it)
* [Wi-Fi channels list](https://en.wikipedia.org/wiki/List_of_WLAN_channels)
Expand Down Expand Up @@ -104,7 +104,7 @@ WiFi Analyzer is licensed under the GNU General Public License v3.0 (GPLv3).
## Contribute
* Feel free to fork the project and submit your changes.
* To learn how to submit a pull request [click here](https://github.com/VREMSoftwareDevelopment/WiFiAnalyzer/wiki/Pull-Request).
* We want to express our gratitude to all [people](https://github.com/VREMSoftwareDevelopment/WiFiAnalyzer/graphs/contributors) for their contributions, such as: patches, bug solving, updates and etc.
* We want to express our gratitude to all [people](https://github.com/VREMSoftwareDevelopment/WiFiAnalyzer/graphs/contributors) for their contributions, such as: patches, bug solving, updates and etc.
* If you would like to contribute financially to the project please feel free to send any amount through paypal.
* [![](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=62PA6HJ3BZL3E)
* Thanks to every one who already donated so far!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,4 +166,4 @@ class AboutFragment : Fragment() {
companion object {
private const val YEAR_FORMAT = "yyyy"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ internal val filterAction: Action = { Filter.build().show() }

internal val scannerAction: Action = { MainContext.INSTANCE.scannerService.toggle() }

internal val wiFiBandAction2: Action = { MainContext.INSTANCE.settings.wiFiBand(WiFiBand.GHZ2) }
internal val wiFiBandAction2: Action = { MainContext.INSTANCE.settings.wiFiBand(WiFiBand.band2GHz) }

internal val wiFiBandAction5: Action = { MainContext.INSTANCE.settings.wiFiBand(WiFiBand.GHZ5) }
internal val wiFiBandAction5: Action = { MainContext.INSTANCE.settings.wiFiBand(WiFiBand.band5GHz) }

internal val wiFiBandAction6: Action = { MainContext.INSTANCE.settings.wiFiBand(WiFiBand.GHZ6) }
internal val wiFiBandAction6: Action = { MainContext.INSTANCE.settings.wiFiBand(WiFiBand.band6GHz) }

internal enum class OptionAction(val key: Int, val action: Action) {
NO_ACTION(-1, noAction),
Expand All @@ -53,4 +53,4 @@ internal enum class OptionAction(val key: Int, val action: Action) {
}
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ class Settings(private val repository: Repository) {

fun timeGraphLegend(): GraphLegend = find(GraphLegend.values(), R.string.time_graph_legend_key, GraphLegend.LEFT)

fun wiFiBand(): WiFiBand = find(WiFiBand.values(), R.string.wifi_band_key, WiFiBand.GHZ2)
fun wiFiBand(): WiFiBand = find(WiFiBand.values(), R.string.wifi_band_key, WiFiBand.band2GHz)

fun wiFiOffOnExit(): Boolean =
if (minVersionQ()) {
Expand Down Expand Up @@ -107,7 +107,7 @@ class Settings(private val repository: Repository) {

fun saveSSIDs(values: Set<String>): Unit = repository.saveStringSet(R.string.filter_ssid_key, values)

fun findWiFiBands(): Set<WiFiBand> = findSet(WiFiBand.values(), R.string.filter_wifi_band_key, WiFiBand.GHZ2)
fun findWiFiBands(): Set<WiFiBand> = findSet(WiFiBand.values(), R.string.filter_wifi_band_key, WiFiBand.band2GHz)

fun saveWiFiBands(values: Set<WiFiBand>): Unit = saveSet(R.string.filter_wifi_band_key, values)

Expand Down Expand Up @@ -140,4 +140,4 @@ class Settings(private val repository: Repository) {
private const val GRAPH_Y_DEFAULT = 2
}

}
}
22 changes: 11 additions & 11 deletions app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiBand.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,22 @@ import com.vrem.wifianalyzer.R

typealias Available = () -> Boolean

internal val availableGHZ2: Available = { true }
internal val availableGHZ5: Available = { MainContext.INSTANCE.wiFiManagerWrapper.is5GHzBandSupported() }
internal val availableGHZ6: Available = { MainContext.INSTANCE.wiFiManagerWrapper.is6GHzBandSupported() }
internal val available2GHz: Available = { true }
internal val available5GHz: Available = { MainContext.INSTANCE.wiFiManagerWrapper.is5GHzBandSupported() }
internal val available6GHz: Available = { MainContext.INSTANCE.wiFiManagerWrapper.is6GHzBandSupported() }

enum class WiFiBand(@StringRes val textResource: Int, val wiFiChannels: WiFiChannels, val available: Available) {
GHZ2(R.string.wifi_band_2ghz, WiFiChannelsGHZ2(), availableGHZ2),
GHZ5(R.string.wifi_band_5ghz, WiFiChannelsGHZ5(), availableGHZ5),
GHZ6(R.string.wifi_band_6ghz, WiFiChannelsGHZ6(), availableGHZ6);
band2GHz(R.string.wifi_band_2ghz, WiFiChannels2GHz(), available2GHz),
band5GHz(R.string.wifi_band_5ghz, WiFiChannels5GHz(), available5GHz),
band6GHz(R.string.wifi_band_6ghz, WiFiChannels6GHz(), available6GHz);

val ghz2: Boolean get() = GHZ2 == this
val ghz5: Boolean get() = GHZ5 == this
val ghz6: Boolean get() = GHZ6 == this
val is2GHz: Boolean get() = band2GHz == this
val is5GHz: Boolean get() = band5GHz == this
val is6GHz: Boolean get() = band6GHz == this

companion object {
fun find(frequency: Int): WiFiBand = values().find { it.wiFiChannels.inRange(frequency) }
?: GHZ2
?: band2GHz
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ import java.util.SortedSet

class WiFiChannelCountry(private val country: Locale) {
private val unknown = "-Unknown"
private val wiFiChannelGHZ2 = WiFiChannelCountryGHZ2()
private val wiFiChannelGHZ5 = WiFiChannelCountryGHZ5()
private val wiFiChannelGHZ6 = WiFiChannelCountryGHZ6()
private val wiFiChannel2GHz = WiFiChannelCountry2GHz()
private val wiFiChannel5GHz = WiFiChannelCountry5GHz()
private val wiFiChannel6GHz = WiFiChannelCountry6GHz()

fun countryCode(): String = country.country

Expand All @@ -35,22 +35,22 @@ class WiFiChannelCountry(private val country: Locale) {
return if (country.country == countryName) countryName + unknown else countryName
}

fun channelsGHZ2(): SortedSet<Int> = wiFiChannelGHZ2.findChannels(country.country)
fun channels2GHz(): SortedSet<Int> = wiFiChannel2GHz.findChannels(country.country)

fun channelsGHZ5(): SortedSet<Int> = wiFiChannelGHZ5.findChannels(country.country)
fun channels5GHz(): SortedSet<Int> = wiFiChannel5GHz.findChannels(country.country)

fun channelsGHZ6(): SortedSet<Int> = wiFiChannelGHZ6.findChannels()
fun channels6GHz(): SortedSet<Int> = wiFiChannel6GHz.findChannels()

fun channelAvailableGHZ2(channel: Int): Boolean = channelsGHZ2().contains(channel)
fun channelAvailable2GHz(channel: Int): Boolean = channels2GHz().contains(channel)

fun channelAvailableGHZ5(channel: Int): Boolean = channelsGHZ5().contains(channel)
fun channelAvailable5GHz(channel: Int): Boolean = channels5GHz().contains(channel)

fun channelAvailableGHZ6(channel: Int): Boolean = channelsGHZ6().contains(channel)
fun channelAvailable6GHz(channel: Int): Boolean = channels6GHz().contains(channel)

companion object {
fun find(countryCode: String): WiFiChannelCountry = WiFiChannelCountry(findByCountryCode(countryCode))

fun findAll(): List<WiFiChannelCountry> = allCountries().map { WiFiChannelCountry(it) }
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ import com.vrem.util.toCapitalize
import java.util.Locale
import java.util.SortedSet

internal class WiFiChannelCountryGHZ2 {
internal class WiFiChannelCountry2GHz {
private val countries = setOf("AS", "CA", "CO", "DO", "FM", "GT", "GU", "MP", "MX", "PA", "PR", "UM", "US", "UZ", "VI")
private val channels = sortedSetOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
private val world = channels.union(setOf(12, 13)).toSortedSet()

fun findChannels(countryCode: String): SortedSet<Int> =
if (countries.contains(countryCode.toCapitalize(Locale.getDefault()))) channels else world

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ private val countriesETSI: Set<String> = setOf(
"IL" // ETSI Israel
)

internal class WiFiChannelCountryGHZ5 {
internal class WiFiChannelCountry5GHz {
private val channelsSet1: Set<Int> = setOf(36, 40, 44, 48, 52, 56, 60, 64)
private val channelsSet2: Set<Int> = setOf(100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144)
private val channelsSet3: Set<Int> = setOf(149, 153, 157, 161, 165)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ package com.vrem.wifianalyzer.wifi.band

import java.util.SortedSet

internal class WiFiChannelCountryGHZ6 {
internal class WiFiChannelCountry6GHz {
private val channelsSet1: Set<Int> = setOf(1, 5, 9, 13, 17, 21, 25, 29)
private val channelsSet2: Set<Int> = setOf(33, 37, 41, 45, 49, 53, 57, 61)
private val channelsSet3: Set<Int> = setOf(65, 69, 73, 77, 81, 85, 89, 93)
Expand All @@ -37,4 +37,4 @@ internal class WiFiChannelCountryGHZ6 {
.toSortedSet()

fun findChannels(): SortedSet<Int> = channels
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@
*/
package com.vrem.wifianalyzer.wifi.band

class WiFiChannelsGHZ2 : WiFiChannels(RANGE, SETS) {
class WiFiChannels2GHz : WiFiChannels(RANGE, SETS) {
override fun wiFiChannelPairs(): List<WiFiChannelPair> = listOf(SET)

override fun wiFiChannelPairFirst(countryCode: String): WiFiChannelPair = SET

override fun availableChannels(countryCode: String): List<WiFiChannel> =
availableChannels(WiFiChannelCountry.find(countryCode).channelsGHZ2())
availableChannels(WiFiChannelCountry.find(countryCode).channels2GHz())

override fun channelAvailable(countryCode: String, channel: Int): Boolean =
WiFiChannelCountry.find(countryCode).channelAvailableGHZ2(channel)
WiFiChannelCountry.find(countryCode).channelAvailable2GHz(channel)

override fun wiFiChannelByFrequency(frequency: Int, wiFiChannelPair: WiFiChannelPair): WiFiChannel =
if (inRange(frequency)) wiFiChannel(frequency, SET) else WiFiChannel.UNKNOWN
Expand All @@ -39,4 +39,4 @@ class WiFiChannelsGHZ2 : WiFiChannels(RANGE, SETS) {
)
private val SET: WiFiChannelPair = WiFiChannelPair(SETS[0].first, SETS[SETS.size - 1].second)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
*/
package com.vrem.wifianalyzer.wifi.band

class WiFiChannelsGHZ5 : WiFiChannels(RANGE, SETS) {
class WiFiChannels5GHz : WiFiChannels(RANGE, SETS) {
override fun wiFiChannelPairs(): List<WiFiChannelPair> = SETS

override fun wiFiChannelPairFirst(countryCode: String): WiFiChannelPair =
Expand All @@ -28,10 +28,10 @@ class WiFiChannelsGHZ5 : WiFiChannels(RANGE, SETS) {
?: SET1

override fun availableChannels(countryCode: String): List<WiFiChannel> =
availableChannels(WiFiChannelCountry.find(countryCode).channelsGHZ5())
availableChannels(WiFiChannelCountry.find(countryCode).channels5GHz())

override fun channelAvailable(countryCode: String, channel: Int): Boolean =
WiFiChannelCountry.find(countryCode).channelAvailableGHZ5(channel)
WiFiChannelCountry.find(countryCode).channelAvailable5GHz(channel)

override fun wiFiChannelByFrequency(frequency: Int, wiFiChannelPair: WiFiChannelPair): WiFiChannel =
if (inRange(frequency)) wiFiChannel(frequency, wiFiChannelPair) else WiFiChannel.UNKNOWN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
*/
package com.vrem.wifianalyzer.wifi.band

class WiFiChannelsGHZ6 : WiFiChannels(RANGE, SETS) {
class WiFiChannels6GHz : WiFiChannels(RANGE, SETS) {
override fun wiFiChannelPairs(): List<WiFiChannelPair> = SETS

override fun wiFiChannelPairFirst(countryCode: String): WiFiChannelPair =
Expand All @@ -28,10 +28,10 @@ class WiFiChannelsGHZ6 : WiFiChannels(RANGE, SETS) {
?: SET1

override fun availableChannels(countryCode: String): List<WiFiChannel> =
availableChannels(WiFiChannelCountry.find(countryCode).channelsGHZ6())
availableChannels(WiFiChannelCountry.find(countryCode).channels6GHz())

override fun channelAvailable(countryCode: String, channel: Int): Boolean =
WiFiChannelCountry.find(countryCode).channelAvailableGHZ6(channel)
WiFiChannelCountry.find(countryCode).channelAvailable6GHz(channel)

override fun wiFiChannelByFrequency(frequency: Int, wiFiChannelPair: WiFiChannelPair): WiFiChannel =
if (inRange(frequency)) wiFiChannel(frequency, wiFiChannelPair) else WiFiChannel.UNKNOWN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,17 @@ internal class ChannelAvailableAdapter(context: Context, wiFiChannelCountries: L
val resources = rootView.resources
val currentLocale = MainContext.INSTANCE.settings.languageLocale()
binding.channelAvailableCountry.text = "${it.countryCode()} - ${it.countryName(currentLocale)}"
binding.channelAvailableTitleGhz2.text = "${resources.getString(WiFiBand.GHZ2.textResource)} : "
binding.channelAvailableGhz2.text = it.channelsGHZ2().joinToString(",")
binding.channelAvailableTitleGhz5.text = "${resources.getString(WiFiBand.GHZ5.textResource)} : "
binding.channelAvailableGhz5.text = it.channelsGHZ5().joinToString(",")
binding.channelAvailableTitleGhz6.text = "${resources.getString(WiFiBand.GHZ6.textResource)} : "
binding.channelAvailableGhz6.text = it.channelsGHZ6().joinToString(",")
binding.channelAvailableTitle2GHz.text = "${resources.getString(WiFiBand.band2GHz.textResource)} : "
binding.channelAvailable2GHz.text = it.channels2GHz().joinToString(",")
binding.channelAvailableTitle5GHz.text = "${resources.getString(WiFiBand.band5GHz.textResource)} : "
binding.channelAvailable5GHz.text = it.channels5GHz().joinToString(",")
binding.channelAvailableTitle6GHz.text = "${resources.getString(WiFiBand.band6GHz.textResource)} : "
binding.channelAvailable6GHz.text = it.channels6GHz().joinToString(",")
}
return rootView
}

private fun create(parent: ViewGroup): ChannelAvailableDetailsBinding =
ChannelAvailableDetailsBinding.inflate(MainContext.INSTANCE.layoutInflater, parent, false)

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,33 +25,33 @@ import com.vrem.wifianalyzer.databinding.ChannelAvailableDetailsBinding
internal class ChannelAvailableAdapterBinding {
val root: View
val channelAvailableCountry: TextView
val channelAvailableTitleGhz2: TextView
val channelAvailableGhz2: TextView
val channelAvailableTitleGhz5: TextView
val channelAvailableGhz5: TextView
val channelAvailableTitleGhz6: TextView
val channelAvailableGhz6: TextView
val channelAvailableTitle2GHz: TextView
val channelAvailable2GHz: TextView
val channelAvailableTitle5GHz: TextView
val channelAvailable5GHz: TextView
val channelAvailableTitle6GHz: TextView
val channelAvailable6GHz: TextView

internal constructor(binding: ChannelAvailableDetailsBinding) {
root = binding.root
channelAvailableCountry = binding.channelAvailableCountry
channelAvailableTitleGhz2 = binding.channelAvailableTitleGhz2
channelAvailableGhz2 = binding.channelAvailableGhz2
channelAvailableTitleGhz5 = binding.channelAvailableTitleGhz5
channelAvailableGhz5 = binding.channelAvailableGhz5
channelAvailableTitleGhz6 = binding.channelAvailableTitleGhz6
channelAvailableGhz6 = binding.channelAvailableGhz6
channelAvailableTitle2GHz = binding.channelAvailableTitle2GHz
channelAvailable2GHz = binding.channelAvailable2GHz
channelAvailableTitle5GHz = binding.channelAvailableTitle5GHz
channelAvailable5GHz = binding.channelAvailable5GHz
channelAvailableTitle6GHz = binding.channelAvailableTitle6GHz
channelAvailable6GHz = binding.channelAvailable6GHz
}

internal constructor(view: View) {
root = view
channelAvailableCountry = view.findViewById(R.id.channel_available_country)
channelAvailableTitleGhz2 = view.findViewById(R.id.channel_available_title_ghz_2)
channelAvailableGhz2 = view.findViewById(R.id.channel_available_ghz_2)
channelAvailableTitleGhz5 = view.findViewById(R.id.channel_available_title_ghz_5)
channelAvailableGhz5 = view.findViewById(R.id.channel_available_ghz_5)
channelAvailableTitleGhz6 = view.findViewById(R.id.channel_available_title_ghz_6)
channelAvailableGhz6 = view.findViewById(R.id.channel_available_ghz_6)
channelAvailableTitle2GHz = view.findViewById(R.id.channel_available_title2_g_hz)
channelAvailable2GHz = view.findViewById(R.id.channel_available2_g_hz)
channelAvailableTitle5GHz = view.findViewById(R.id.channel_available_title5_g_hz)
channelAvailable5GHz = view.findViewById(R.id.channel_available5_g_hz)
channelAvailableTitle6GHz = view.findViewById(R.id.channel_available_title6_g_hz)
channelAvailable6GHz = view.findViewById(R.id.channel_available6_g_hz)
}

}
Loading