From 96422843d84e6841f8fa7f82f8b523c203ae8acf Mon Sep 17 00:00:00 2001 From: sasodoma Date: Sun, 20 Jul 2025 16:25:59 +0200 Subject: [PATCH 1/5] Implement AMOLED theme with black background --- .../com/vrem/wifianalyzer/settings/ThemeStyle.kt | 1 + app/src/main/res/values/arrays.xml | 2 ++ app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/styles.xml | 13 +++++++++++++ 4 files changed, 17 insertions(+) diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/settings/ThemeStyle.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/settings/ThemeStyle.kt index e220c59fb..63b3e7e45 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/settings/ThemeStyle.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/settings/ThemeStyle.kt @@ -25,5 +25,6 @@ import com.vrem.wifianalyzer.R enum class ThemeStyle(@param:StyleRes val theme: Int, @param:StyleRes val themeNoActionBar: Int, @param:ColorInt val colorGraphText: Int) { DARK(R.style.ThemeDark, R.style.ThemeDarkNoActionBar, Color.WHITE), LIGHT(R.style.ThemeLight, R.style.ThemeLightNoActionBar, Color.BLACK), + AMOLED(R.style.ThemeAmoled, R.style.ThemeAmoledNoActionBar, Color.WHITE), SYSTEM(R.style.ThemeSystem, R.style.ThemeSystemNoActionBar, Color.GRAY); } diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index c6bee50b8..3c972f19a 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -100,11 +100,13 @@ 0 1 2 + 3 @string/theme_dark @string/theme_light + @string/theme_amoled @string/theme_system diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f5fba3908..af9917ac4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -148,6 +148,7 @@ "0" "Dark" "Light" + "AMOLED" "System" "Wi-Fi off on Exit" diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 85b82b607..05ff15b6e 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -38,6 +38,19 @@ true + + + + - - From 8dbbfb04edcabdef0c3fedf89d4394f19b6e98e3 Mon Sep 17 00:00:00 2001 From: sasodoma Date: Mon, 21 Jul 2025 16:56:10 +0200 Subject: [PATCH 3/5] Define the color black in colors.xml --- app/src/main/res/values/colors.xml | 2 ++ app/src/main/res/values/styles.xml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 8a8d817ea..ebec56f35 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -40,4 +40,6 @@ #4CAF50 #616161 + + #000000 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1effd44ec..4df405ed7 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -41,8 +41,8 @@ From 72d6a1b30e5a365dcf1fdc38dd0403da876a73e6 Mon Sep 17 00:00:00 2001 From: sasodoma Date: Mon, 21 Jul 2025 17:47:16 +0200 Subject: [PATCH 4/5] Add the new theme to unit tests --- app/build.properties | 8 ++++---- .../com/vrem/wifianalyzer/settings/ThemeStyleTest.kt | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/build.properties b/app/build.properties index b5c82fa15..7ea3df516 100644 --- a/app/build.properties +++ b/app/build.properties @@ -1,7 +1,7 @@ #Build Properties -#Sat Jul 19 09:27:24 EDT 2025 -version_build=14 -version_major=3 +#Mon Jul 21 17:28:45 CEST 2025 version_minor=2 -version_patch=1 version_store=70 +version_patch=1 +version_build=17 +version_major=3 diff --git a/app/src/test/kotlin/com/vrem/wifianalyzer/settings/ThemeStyleTest.kt b/app/src/test/kotlin/com/vrem/wifianalyzer/settings/ThemeStyleTest.kt index 87b0b0124..26acd6719 100644 --- a/app/src/test/kotlin/com/vrem/wifianalyzer/settings/ThemeStyleTest.kt +++ b/app/src/test/kotlin/com/vrem/wifianalyzer/settings/ThemeStyleTest.kt @@ -25,13 +25,14 @@ import org.junit.Test class ThemeStyleTest { @Test fun themeStyle() { - assertThat(ThemeStyle.entries).hasSize(3) + assertThat(ThemeStyle.entries).hasSize(4) } @Test fun theme() { assertThat(ThemeStyle.LIGHT.theme).isEqualTo(R.style.ThemeLight) assertThat(ThemeStyle.DARK.theme).isEqualTo(R.style.ThemeDark) + assertThat(ThemeStyle.BLACK.theme).isEqualTo(R.style.ThemeBlack) assertThat(ThemeStyle.SYSTEM.theme).isEqualTo(R.style.ThemeSystem) } @@ -39,6 +40,7 @@ class ThemeStyleTest { fun themeNoActionBar() { assertThat(ThemeStyle.DARK.themeNoActionBar).isEqualTo(R.style.ThemeDarkNoActionBar) assertThat(ThemeStyle.LIGHT.themeNoActionBar).isEqualTo(R.style.ThemeLightNoActionBar) + assertThat(ThemeStyle.BLACK.themeNoActionBar).isEqualTo(R.style.ThemeBlackNoActionBar) assertThat(ThemeStyle.SYSTEM.themeNoActionBar).isEqualTo(R.style.ThemeSystemNoActionBar) } @@ -46,6 +48,7 @@ class ThemeStyleTest { fun colorGraphText() { assertThat(ThemeStyle.DARK.colorGraphText).isEqualTo(Color.WHITE) assertThat(ThemeStyle.LIGHT.colorGraphText).isEqualTo(Color.BLACK) + assertThat(ThemeStyle.BLACK.colorGraphText).isEqualTo(Color.WHITE) assertThat(ThemeStyle.SYSTEM.colorGraphText).isEqualTo(Color.GRAY) } From ce9cabffde9f48f6e979a09da00d122d6165e1bd Mon Sep 17 00:00:00 2001 From: sasodoma Date: Mon, 21 Jul 2025 18:32:52 +0200 Subject: [PATCH 5/5] Extend SettingsTest.kt to test all themes as well as an invalid ordinal --- app/build.properties | 8 +-- .../wifianalyzer/settings/SettingsTest.kt | 50 ++++++++++++++++++- 2 files changed, 53 insertions(+), 5 deletions(-) diff --git a/app/build.properties b/app/build.properties index 7ea3df516..6f9694f96 100644 --- a/app/build.properties +++ b/app/build.properties @@ -1,7 +1,7 @@ #Build Properties -#Mon Jul 21 17:28:45 CEST 2025 +#Mon Jul 21 18:30:25 CEST 2025 +version_build=18 +version_major=3 version_minor=2 -version_store=70 version_patch=1 -version_build=17 -version_major=3 +version_store=70 diff --git a/app/src/test/kotlin/com/vrem/wifianalyzer/settings/SettingsTest.kt b/app/src/test/kotlin/com/vrem/wifianalyzer/settings/SettingsTest.kt index 0a47a504f..74ffad674 100644 --- a/app/src/test/kotlin/com/vrem/wifianalyzer/settings/SettingsTest.kt +++ b/app/src/test/kotlin/com/vrem/wifianalyzer/settings/SettingsTest.kt @@ -159,7 +159,19 @@ class SettingsTest { } @Test - fun themeStyle() { + fun themeStyleDark() { + // setup + doReturn(ThemeStyle.DARK.ordinal) + .whenever(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) + // execute + val actual = fixture.themeStyle() + // validate + assertThat(actual).isEqualTo(ThemeStyle.DARK) + verify(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) + } + + @Test + fun themeStyleLight() { // setup doReturn(ThemeStyle.LIGHT.ordinal) .whenever(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) @@ -170,6 +182,42 @@ class SettingsTest { verify(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) } + @Test + fun themeStyleBlack() { + // setup + doReturn(ThemeStyle.BLACK.ordinal) + .whenever(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) + // execute + val actual = fixture.themeStyle() + // validate + assertThat(actual).isEqualTo(ThemeStyle.BLACK) + verify(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) + } + + @Test + fun themeStyleSystem() { + // setup + doReturn(ThemeStyle.SYSTEM.ordinal) + .whenever(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) + // execute + val actual = fixture.themeStyle() + // validate + assertThat(actual).isEqualTo(ThemeStyle.SYSTEM) + verify(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) + } + + @Test + fun themeStyleInvalid() { + // setup + doReturn(ThemeStyle.entries.size) + .whenever(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) + // execute + val actual = fixture.themeStyle() + // validate + assertThat(actual).isEqualTo(ThemeStyle.DARK) + verify(repository).stringAsInteger(R.string.theme_key, ThemeStyle.DARK.ordinal) + } + @Test fun channelGraphLegend() { // setup