Skip to content

Commit

Permalink
remove timestamp
Browse files Browse the repository at this point in the history
  • Loading branch information
VREMSoftwareDevelopment committed Apr 7, 2024
1 parent c80b8db commit b03837e
Show file tree
Hide file tree
Showing 12 changed files with 57 additions and 79 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Expand Up @@ -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'
Expand Down
4 changes: 2 additions & 2 deletions 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
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/kotlin/com/vrem/wifianalyzer/export/Export.kt
Expand Up @@ -41,7 +41,6 @@ class Export(private val exportIntent: ExportIntent = ExportIntent()) {
"Center Frequency|" +
"Width (Range)|" +
"Distance|" +
"Timestamp|" +
"802.11mc|" +
"Security|" +
"Standard|" +
Expand Down Expand Up @@ -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) + "|" +
Expand Down
Expand Up @@ -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 {
Expand Down Expand Up @@ -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
}
Expand Down Expand Up @@ -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<TextView>(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"
}

}
Expand Up @@ -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<FastRoaming> = listOf()
) {
fun wiFiStandardDisplay(context: Context): String =
Expand Down
Expand Up @@ -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 =
Expand Down
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down
6 changes: 0 additions & 6 deletions app/src/main/res/layout/access_point_view_popup.xml
Expand Up @@ -81,12 +81,6 @@
android:textStyle="italic"
tools:text="[WPA][WPA2][WPS][WPA3]" />

<TextView
android:id="@+id/timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="13:35:45.123" />

<TextView
android:id="@+id/vendorLong"
android:layout_width="wrap_content"
Expand Down
26 changes: 19 additions & 7 deletions app/src/test/kotlin/com/vrem/wifianalyzer/export/ExportTest.kt
Expand Up @@ -21,11 +21,23 @@ import android.content.Context
import android.content.Intent
import com.vrem.wifianalyzer.MainActivity
import com.vrem.wifianalyzer.R
import com.vrem.wifianalyzer.wifi.model.*
import com.vrem.wifianalyzer.wifi.model.FastRoaming
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.WiFiSignal
import com.vrem.wifianalyzer.wifi.model.WiFiSignalExtra
import com.vrem.wifianalyzer.wifi.model.WiFiStandard
import com.vrem.wifianalyzer.wifi.model.WiFiWidth
import org.assertj.core.api.Assertions.assertThat
import org.junit.After
import org.junit.Test
import org.mockito.kotlin.*
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
import org.mockito.kotlin.times
import org.mockito.kotlin.verify
import org.mockito.kotlin.verifyNoMoreInteractions
import org.mockito.kotlin.whenever
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
Expand Down Expand Up @@ -115,18 +127,18 @@ class ExportTest {
private fun title(timestamp: String): String = "$name-$timestamp"

private fun data(timestamp: String): String =
"Time Stamp|SSID|BSSID|Strength|Primary Channel|Primary Frequency|Center Channel|Center Frequency|Width (Range)|Distance|Timestamp|802.11mc|Security|Standard|FastRoaming\n" +
timestamp + "|SSID10|BSSID10|-10dBm|3|2422MHz|5|2432MHz|40MHz (2412 - 2452)|~0.0m|123456789|true|capabilities10|802.11AC|802.11R\n" +
timestamp + "|SSID20|BSSID20|-20dBm|5|2432MHz|7|2442MHz|40MHz (2422 - 2462)|~0.1m|123456789|true|capabilities20|802.11AC|802.11R\n" +
timestamp + "|SSID30|BSSID30|-30dBm|7|2442MHz|9|2452MHz|40MHz (2432 - 2472)|~0.3m|123456789|true|capabilities30|802.11AC|802.11R\n"
"Time Stamp|SSID|BSSID|Strength|Primary Channel|Primary Frequency|Center Channel|Center Frequency|Width (Range)|Distance|802.11mc|Security|Standard|FastRoaming\n" +
timestamp + "|SSID10|BSSID10|-10dBm|3|2422MHz|5|2432MHz|40MHz (2412 - 2452)|~0.0m|true|capabilities10|802.11AC|802.11R\n" +
timestamp + "|SSID20|BSSID20|-20dBm|5|2432MHz|7|2442MHz|40MHz (2422 - 2462)|~0.1m|true|capabilities20|802.11AC|802.11R\n" +
timestamp + "|SSID30|BSSID30|-30dBm|7|2442MHz|9|2452MHz|40MHz (2432 - 2472)|~0.3m|true|capabilities30|802.11AC|802.11R\n"

private fun timestamp(date: Date): String = SimpleDateFormat("yyyy/MM/dd-HH:mm:ss", Locale.US).format(date)

private fun withWiFiDetails(): List<WiFiDetail> =
listOf(withWiFiDetail(10), withWiFiDetail(20), withWiFiDetail(30))

private fun withWiFiDetail(offset: Int): WiFiDetail {
val wiFiSignalExtra = WiFiSignalExtra(true, WiFiStandard.AC, 123456789, listOf(FastRoaming.FR_802_11R))
val wiFiSignalExtra = WiFiSignalExtra(true, WiFiStandard.AC, listOf(FastRoaming.FR_802_11R))
val wiFiSignal = WiFiSignal(2412 + offset, 2422 + offset, WiFiWidth.MHZ_40, -offset, wiFiSignalExtra)
val wiFiIdentifier = WiFiIdentifier("SSID$offset", "BSSID$offset")
val wiFiSecurity = WiFiSecurity("capabilities$offset")
Expand Down
Expand Up @@ -27,7 +27,17 @@ import com.vrem.util.EMPTY
import com.vrem.wifianalyzer.MainContextHelper.INSTANCE
import com.vrem.wifianalyzer.R
import com.vrem.wifianalyzer.RobolectricUtil
import com.vrem.wifianalyzer.wifi.model.*
import com.vrem.wifianalyzer.wifi.model.FastRoaming
import com.vrem.wifianalyzer.wifi.model.WiFiAdditional
import com.vrem.wifianalyzer.wifi.model.WiFiConnection
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.WiFiSecurityTypeTest
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 org.assertj.core.api.Assertions.assertThat
import org.junit.After
import org.junit.Before
Expand Down Expand Up @@ -326,29 +336,6 @@ class AccessPointDetailTest {
assertThat(actual.findViewById<View>(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<View>(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<View>(R.id.timestamp).visibility).isEqualTo(View.VISIBLE)
validateTextViewValue(actual, expectedTimestamp, R.id.timestamp)
}

@Test
fun makeViewDetailedWithFastRoaming() {
// setup
Expand All @@ -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
)
Expand Down
Expand Up @@ -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())
}

Expand Down
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit b03837e

Please sign in to comment.