diff --git a/app/build.gradle b/app/build.gradle index 88d0d848..fe6f823a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ dependencies { testImplementation 'junit:junit:4.13.2' testImplementation 'org.mockito:mockito-core:5.11.0' testImplementation 'org.mockito.kotlin:mockito-kotlin:5.2.1' - testImplementation 'org.robolectric:robolectric:4.11.1' + testImplementation 'org.robolectric:robolectric:4.12.1' testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" testImplementation 'org.slf4j:slf4j-simple:2.0.12' diff --git a/app/build.properties b/app/build.properties index e99f128d..5b4ecf32 100644 --- a/app/build.properties +++ b/app/build.properties @@ -1,6 +1,6 @@ #Build Properties -#Sat Mar 23 10:01:16 EDT 2024 -version_build=15 +#Sun Apr 07 12:03:31 EDT 2024 +version_build=16 version_major=3 version_minor=1 version_patch=2 diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/export/Export.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/export/Export.kt index 3222363e..25dde9e8 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/export/Export.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/export/Export.kt @@ -41,7 +41,6 @@ class Export(private val exportIntent: ExportIntent = ExportIntent()) { "Center Frequency|" + "Width (Range)|" + "Distance|" + - "Timestamp|" + "802.11mc|" + "Security|" + "Standard|" + @@ -81,7 +80,6 @@ class Export(private val exportIntent: ExportIntent = ExportIntent()) { "${wiFiSignal.centerFrequency}$FREQUENCY_UNITS|" + "${wiFiSignal.wiFiWidth.frequencyWidth}$FREQUENCY_UNITS (${wiFiSignal.frequencyStart} - ${wiFiSignal.frequencyEnd})|" + "${wiFiSignal.distance}|" + - "${wiFiSignal.extra.timestamp}|" + "${wiFiSignal.extra.is80211mc}|" + wiFiSecurity.capabilities + "|" + wiFiSignal.extra.wiFiStandardDisplay(context) + "|" + diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/accesspoint/AccessPointDetail.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/accesspoint/AccessPointDetail.kt index fd4b551f..4a290810 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/accesspoint/AccessPointDetail.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/accesspoint/AccessPointDetail.kt @@ -24,17 +24,12 @@ import android.widget.TextView import androidx.annotation.LayoutRes import androidx.core.content.ContextCompat import com.vrem.annotation.OpenClass -import com.vrem.util.EMPTY import com.vrem.wifianalyzer.MainContext import com.vrem.wifianalyzer.R import com.vrem.wifianalyzer.wifi.model.WiFiAdditional import com.vrem.wifianalyzer.wifi.model.WiFiDetail import com.vrem.wifianalyzer.wifi.model.WiFiSecurity import com.vrem.wifianalyzer.wifi.model.WiFiSignal -import java.text.SimpleDateFormat -import java.util.Date -import java.util.Locale -import java.util.TimeZone @OpenClass class AccessPointDetail { @@ -67,7 +62,6 @@ class AccessPointDetail { setView80211mc(view, wiFiDetail.wiFiSignal) setViewWiFiStandard(view, wiFiDetail.wiFiSignal) setViewFastRoaming(view, wiFiDetail.wiFiSignal) - setTimestamp(view, wiFiDetail.wiFiSignal) enableTextSelection(view) return view } @@ -178,22 +172,4 @@ class AccessPointDetail { it.visibility = if (wiFiSignal.extra.is80211mc) View.VISIBLE else View.GONE } - private fun setTimestamp(view: View, wiFiSignal: WiFiSignal) = - view.findViewById(R.id.timestamp)?.let { - val milliseconds: Long = wiFiSignal.extra.timestamp / 1000 - if (0L == milliseconds) { - it.text = String.EMPTY - it.visibility = View.GONE - } else { - val simpleDateFormat = SimpleDateFormat(TIME_STAMP_FORMAT, Locale.US) - simpleDateFormat.timeZone = TimeZone.getTimeZone("GMT") - it.text = simpleDateFormat.format(Date(milliseconds)) - it.visibility = View.VISIBLE - } - } - - companion object { - private const val TIME_STAMP_FORMAT = "H:mm:ss.SSS" - } - } \ No newline at end of file diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignal.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignal.kt index 2b72484e..0ebc45ce 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignal.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignal.kt @@ -24,7 +24,6 @@ import com.vrem.wifianalyzer.wifi.band.WiFiChannel data class WiFiSignalExtra( val is80211mc: Boolean = false, val wiFiStandard: WiFiStandard = WiFiStandard.UNKNOWN, - val timestamp: Long = 0, val fastRoaming: List = listOf() ) { fun wiFiStandardDisplay(context: Context): String = diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiStandard.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiStandard.kt index 678972b5..4664964e 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiStandard.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiStandard.kt @@ -34,7 +34,7 @@ enum class WiFiStandard(val wiFiStandardId: WiFiStandardId, @StringRes val textR AC(5, R.string.wifi_standard_ac, R.drawable.ic_wifi_5), AX(6, R.string.wifi_standard_ax, R.drawable.ic_wifi_6), AD(7, R.string.wifi_standard_ad, R.drawable.ic_wifi_unknown), - BE(8, R.string.wifi_standard_be, R.drawable.ic_wifi_unknown); + BE(8, R.string.wifi_standard_be, R.drawable.ic_wifi_6); companion object { fun findOne(scanResult: ScanResult): WiFiStandard = diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/scanner/Transformer.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/scanner/Transformer.kt index 15acf3f9..97571351 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/scanner/Transformer.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/scanner/Transformer.kt @@ -21,7 +21,19 @@ import android.net.wifi.WifiInfo import com.vrem.annotation.OpenClass import com.vrem.util.nullToEmpty import com.vrem.util.ssid -import com.vrem.wifianalyzer.wifi.model.* +import com.vrem.wifianalyzer.wifi.model.FastRoaming +import com.vrem.wifianalyzer.wifi.model.WiFiConnection +import com.vrem.wifianalyzer.wifi.model.WiFiData +import com.vrem.wifianalyzer.wifi.model.WiFiDetail +import com.vrem.wifianalyzer.wifi.model.WiFiIdentifier +import com.vrem.wifianalyzer.wifi.model.WiFiSecurity +import com.vrem.wifianalyzer.wifi.model.WiFiSecurityType +import com.vrem.wifianalyzer.wifi.model.WiFiSignal +import com.vrem.wifianalyzer.wifi.model.WiFiSignalExtra +import com.vrem.wifianalyzer.wifi.model.WiFiStandard +import com.vrem.wifianalyzer.wifi.model.WiFiWidth +import com.vrem.wifianalyzer.wifi.model.convertIpV4Address +import com.vrem.wifianalyzer.wifi.model.convertSSID @Suppress("DEPRECATION") fun WifiInfo.ipV4Address(): Int = ipAddress @@ -54,7 +66,7 @@ internal class Transformer(private val cache: Cache) { val wiFiStandard = WiFiStandard.findOne(scanResult) val fastRoaming = FastRoaming.find(scanResult) val securityTypes = WiFiSecurityType.find(scanResult) - val extra = WiFiSignalExtra(mc80211, wiFiStandard, scanResult.timestamp, fastRoaming) + val extra = WiFiSignalExtra(mc80211, wiFiStandard, fastRoaming) val wiFiSignal = WiFiSignal(scanResult.frequency, centerFrequency, wiFiWidth, cacheResult.average, extra) val wiFiIdentifier = WiFiIdentifier(scanResult.ssid(), String.nullToEmpty(scanResult.BSSID)) val wiFiSecurity = WiFiSecurity(String.nullToEmpty(scanResult.capabilities), securityTypes) diff --git a/app/src/main/res/layout/access_point_view_popup.xml b/app/src/main/res/layout/access_point_view_popup.xml index d84e49da..101ed686 100644 --- a/app/src/main/res/layout/access_point_view_popup.xml +++ b/app/src/main/res/layout/access_point_view_popup.xml @@ -81,12 +81,6 @@ android:textStyle="italic" tools:text="[WPA][WPA2][WPS][WPA3]" /> - - (R.id.flag80211mc).visibility).isEqualTo(View.VISIBLE) } - @Test - fun makeViewDetailedWithTimestampNotVisible() { - // setup - val wiFiDetail = withWiFiDetail(timestamp = 999) - // execute - val actual = fixture.makeViewDetailed(wiFiDetail) - // validate - assertThat(actual.findViewById(R.id.timestamp).visibility).isEqualTo(View.GONE) - validateTextViewValue(actual, String.EMPTY, R.id.timestamp) - } - - @Test - fun makeViewDetailedWithTimestampVisible() { - // setup - val wiFiDetail = withWiFiDetail() - val expectedTimestamp = "0:00:01.000" - // execute - val actual = fixture.makeViewDetailed(wiFiDetail) - // validate - assertThat(actual.findViewById(R.id.timestamp).visibility).isEqualTo(View.VISIBLE) - validateTextViewValue(actual, expectedTimestamp, R.id.timestamp) - } - @Test fun makeViewDetailedWithFastRoaming() { // setup @@ -364,15 +351,14 @@ class AccessPointDetailTest { private fun withWiFiDetail( ssid: String = "SSID", wiFiAdditional: WiFiAdditional = WiFiAdditional.EMPTY, - is80211mc: Boolean = false, - timestamp: Long = 1000000 + is80211mc: Boolean = false ): WiFiDetail = WiFiDetail( WiFiIdentifier(ssid, "BSSID"), WiFiSecurity("[WPS-capabilities][WPA2-XYZ][XYZ-FT]", WiFiSecurityTypeTest.All), WiFiSignal( 1, 1, WiFiWidth.MHZ_40, 2, - WiFiSignalExtra(is80211mc, WiFiStandard.AC, timestamp, FastRoaming.entries.toList()) + WiFiSignalExtra(is80211mc, WiFiStandard.AC, FastRoaming.entries.toList()) ), wiFiAdditional ) diff --git a/app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignalExtraTest.kt b/app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignalExtraTest.kt index 146d47b4..ad6f4ea2 100644 --- a/app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignalExtraTest.kt +++ b/app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiSignalExtraTest.kt @@ -29,16 +29,13 @@ import org.robolectric.annotation.Config @Config(sdk = [Build.VERSION_CODES.UPSIDE_DOWN_CAKE]) class WiFiSignalExtraTest { private val mainActivity = RobolectricUtil.INSTANCE.activity - private val timestamp: Long = 123456789 - private val fixture: WiFiSignalExtra = - WiFiSignalExtra(true, WiFiStandard.AC, timestamp, FastRoaming.entries.toList()) + private val fixture: WiFiSignalExtra = WiFiSignalExtra(true, WiFiStandard.AC, FastRoaming.entries.toList()) @Test fun wiFiSignalExtra() { // validate assertThat(fixture.is80211mc).isTrue() assertThat(fixture.wiFiStandard).isEqualTo(WiFiStandard.AC) - assertThat(fixture.timestamp).isEqualTo(timestamp) assertThat(fixture.fastRoaming).isEqualTo(FastRoaming.entries.toList()) } diff --git a/app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiStandardTest.kt b/app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiStandardTest.kt index 40061fbc..cf5f4129 100644 --- a/app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiStandardTest.kt +++ b/app/src/test/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiStandardTest.kt @@ -25,7 +25,11 @@ import com.vrem.wifianalyzer.R import org.assertj.core.api.Assertions.assertThat import org.junit.Test import org.junit.runner.RunWith -import org.mockito.kotlin.* +import org.mockito.kotlin.doReturn +import org.mockito.kotlin.mock +import org.mockito.kotlin.verify +import org.mockito.kotlin.verifyNoMoreInteractions +import org.mockito.kotlin.whenever import org.robolectric.annotation.Config @RunWith(AndroidJUnit4::class) @@ -56,7 +60,7 @@ class WiFiStandardTest { assertThat(WiFiStandard.AC.imageResource).isEqualTo(R.drawable.ic_wifi_5) assertThat(WiFiStandard.AX.imageResource).isEqualTo(R.drawable.ic_wifi_6) assertThat(WiFiStandard.AD.imageResource).isEqualTo(R.drawable.ic_wifi_unknown) - assertThat(WiFiStandard.BE.imageResource).isEqualTo(R.drawable.ic_wifi_unknown) + assertThat(WiFiStandard.BE.imageResource).isEqualTo(R.drawable.ic_wifi_6) } @Test