From 234a76dc2c7d2d1b1f336503ece6fea6dacd79e9 Mon Sep 17 00:00:00 2001 From: Daniel Frett Date: Fri, 24 Apr 2026 14:15:24 -0600 Subject: [PATCH 1/7] move downloadable languages UI to settings package hierarchy Relocates all downloadable languages source files from `ui/languages/downloadable` to `ui/settings/language/downloadable`, updating package declarations and imports accordingly. Co-Authored-By: Claude Sonnet 4.6 --- .../ui/languages/LanguageSettingsPresenter.kt | 2 +- .../downloadable/DownloadableLanguagesLayout.kt | 8 ++++---- .../downloadable/DownloadableLanguagesPresenter.kt | 12 +++++------- .../downloadable/DownloadableLanguagesScreen.kt | 6 ++---- .../LanguageDownloadStatusIndicator+Preview.kt | 2 +- .../downloadable/LanguageDownloadStatusIndicator.kt | 2 +- .../language}/downloadable/OfflineDialogOverlay.kt | 2 +- .../DownloadableLanguagesPresenterTest.kt | 4 ++-- ...agesLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} | 0 ...agesLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} | 0 ...sLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...Layout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} | 0 ...out()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ..._-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} | 0 ..._-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} | 0 ...Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...earching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} | 0 ...ching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...est_LanguageDownloadStatusIndicator()[NIGHT].png} | 0 ..._LanguageDownloadStatusIndicator()[NOTNIGHT].png} | 0 .../ui/languages/LanguageSettingsPresenterTest.kt | 2 +- .../DownloadableLanguagesLayoutPaparazziTest.kt | 7 +++---- .../downloadable/DownloadableLanguagesLayoutTest.kt | 4 ++-- .../LanguageDownloadStatusIndicatorPaparazziTest.kt | 2 +- 24 files changed, 24 insertions(+), 29 deletions(-) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/downloadable/DownloadableLanguagesLayout.kt (95%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/downloadable/DownloadableLanguagesPresenter.kt (92%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/downloadable/DownloadableLanguagesScreen.kt (81%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/downloadable/LanguageDownloadStatusIndicator+Preview.kt (95%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/downloadable/LanguageDownloadStatusIndicator.kt (98%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/downloadable/OfflineDialogOverlay.kt (95%) rename app/src/{testDebug/kotlin/org/cru/godtools/ui/languages => test/kotlin/org/cru/godtools/ui/settings/language}/downloadable/DownloadableLanguagesPresenterTest.kt (97%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NIGHT].png => org.cru.godtools.ui.settings.language.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NIGHT].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NOTNIGHT].png => org.cru.godtools.ui.settings.language.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NOTNIGHT].png} (100%) rename app/src/testDebug/kotlin/org/cru/godtools/ui/{languages => settings/language}/downloadable/DownloadableLanguagesLayoutPaparazziTest.kt (89%) rename app/src/testDebug/kotlin/org/cru/godtools/ui/{languages => settings/language}/downloadable/DownloadableLanguagesLayoutTest.kt (96%) rename app/src/testDebug/kotlin/org/cru/godtools/ui/{languages => settings/language}/downloadable/LanguageDownloadStatusIndicatorPaparazziTest.kt (95%) diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenter.kt b/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenter.kt index d797aded15..4c2d4f33eb 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenter.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenter.kt @@ -27,7 +27,7 @@ import org.cru.godtools.base.ui.circuit.screen.AppLanguageScreen import org.cru.godtools.db.repository.LanguagesRepository import org.cru.godtools.model.Language import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiState -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen class LanguageSettingsPresenter @AssistedInject constructor( @param:ApplicationContext diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayout.kt similarity index 95% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesLayout.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayout.kt index 91a57cf828..546fec9d20 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayout.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import androidx.activity.compose.BackHandler import androidx.compose.foundation.clickable @@ -45,9 +45,9 @@ import org.ccci.gto.android.common.compose.foundation.layout.padding import org.cru.godtools.R import org.cru.godtools.base.ui.theme.GodToolsTheme import org.cru.godtools.ui.languages.LanguageName -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen.UiState -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen.UiState.UiEvent -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen.UiState.UiLanguage +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState.UiEvent +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState.UiLanguage internal const val TEST_TAG_NAVIGATE_UP = "navigateUp" internal const val TEST_TAG_CANCEL_SEARCH = "cancelSearch" diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesPresenter.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesPresenter.kt similarity index 92% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesPresenter.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesPresenter.kt index 3930ce8aa9..6647f0a60a 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesPresenter.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesPresenter.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import android.content.Context import androidx.compose.runtime.Composable @@ -22,7 +22,6 @@ import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import java.util.Locale import javax.inject.Named -import kotlinx.collections.immutable.toImmutableList import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.NonCancellable import kotlinx.coroutines.flow.Flow @@ -40,9 +39,9 @@ import org.cru.godtools.db.repository.ToolsRepository import org.cru.godtools.model.Language import org.cru.godtools.model.Language.Companion.filterByDisplayAndNativeName import org.cru.godtools.model.Tool -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen.UiState -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen.UiState.UiEvent -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen.UiState.UiLanguage +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState.UiEvent +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState.UiLanguage class DownloadableLanguagesPresenter @AssistedInject constructor( @param:ApplicationContext @@ -71,8 +70,7 @@ class DownloadableLanguagesPresenter @AssistedInject constructor( totalTools = rememberTotalTools(lang.code), ) } - } - .toImmutableList(), + }, eventSink = { when (it) { UiEvent.NavigateUp -> navigator.pop() diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesScreen.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesScreen.kt similarity index 81% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesScreen.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesScreen.kt index b1bf782483..b84dfef6e8 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesScreen.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesScreen.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import androidx.compose.runtime.MutableState import androidx.compose.runtime.State @@ -7,8 +7,6 @@ import com.slack.circuit.runtime.CircuitUiEvent import com.slack.circuit.runtime.CircuitUiState import com.slack.circuit.runtime.screen.Screen import java.util.Locale -import kotlinx.collections.immutable.ImmutableList -import kotlinx.collections.immutable.persistentListOf import kotlinx.parcelize.Parcelize import org.cru.godtools.model.Language @@ -16,7 +14,7 @@ import org.cru.godtools.model.Language object DownloadableLanguagesScreen : Screen { data class UiState( val query: MutableState = mutableStateOf(""), - val languages: ImmutableList = persistentListOf(), + val languages: List = emptyList(), val isConnected: State = mutableStateOf(true), val eventSink: (UiEvent) -> Unit = {}, ) : CircuitUiState { diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/LanguageDownloadStatusIndicator+Preview.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/LanguageDownloadStatusIndicator+Preview.kt similarity index 95% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/LanguageDownloadStatusIndicator+Preview.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/LanguageDownloadStatusIndicator+Preview.kt index 7ea2ffe73a..6d54dac926 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/LanguageDownloadStatusIndicator+Preview.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/LanguageDownloadStatusIndicator+Preview.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/LanguageDownloadStatusIndicator.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/LanguageDownloadStatusIndicator.kt similarity index 98% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/LanguageDownloadStatusIndicator.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/LanguageDownloadStatusIndicator.kt index 1cba8ac72f..ba751eb8ef 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/LanguageDownloadStatusIndicator.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/LanguageDownloadStatusIndicator.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import androidx.compose.animation.core.animateFloatAsState import androidx.compose.foundation.border diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/OfflineDialogOverlay.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/OfflineDialogOverlay.kt similarity index 95% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/OfflineDialogOverlay.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/OfflineDialogOverlay.kt index 126a44fbf1..86dff0d8f9 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/downloadable/OfflineDialogOverlay.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/OfflineDialogOverlay.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import androidx.compose.material3.AlertDialog import androidx.compose.material3.Text diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesPresenterTest.kt b/app/src/test/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesPresenterTest.kt similarity index 97% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesPresenterTest.kt rename to app/src/test/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesPresenterTest.kt index ee92d9fb6e..6b88f72515 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesPresenterTest.kt +++ b/app/src/test/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesPresenterTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import android.app.Application import androidx.test.core.app.ApplicationProvider @@ -25,7 +25,7 @@ import org.cru.godtools.db.repository.ToolsRepository import org.cru.godtools.model.Language import org.cru.godtools.model.randomLanguage import org.cru.godtools.model.randomTool -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen.UiState.UiEvent +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState.UiEvent import org.junit.runner.RunWith import org.robolectric.annotation.Config diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_DownloadableLanguagesLayoutPaparazziTest_DownloadableLanguagesLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NIGHT].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NIGHT].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NIGHT].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NIGHT].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NOTNIGHT].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NOTNIGHT].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NOTNIGHT].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.downloadable_LanguageDownloadStatusIndicatorPaparazziTest_LanguageDownloadStatusIndicator()[NOTNIGHT].png diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenterTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenterTest.kt index af8db399cf..1ed49a4982 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenterTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenterTest.kt @@ -27,7 +27,7 @@ import org.cru.godtools.base.ui.circuit.screen.AppLanguageScreen import org.cru.godtools.db.repository.LanguagesRepository import org.cru.godtools.model.Language import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiEvent -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen import org.junit.runner.RunWith import org.robolectric.annotation.Config diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesLayoutPaparazziTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayoutPaparazziTest.kt similarity index 89% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesLayoutPaparazziTest.kt rename to app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayoutPaparazziTest.kt index 1ede09596a..90b002212f 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesLayoutPaparazziTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayoutPaparazziTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -8,10 +8,9 @@ import com.google.testing.junit.testparameterinjector.TestParameter import com.google.testing.junit.testparameterinjector.TestParameterInjector import java.util.Locale import kotlin.test.Test -import kotlinx.collections.immutable.persistentListOf import org.cru.godtools.base.ui.BasePaparazziTest import org.cru.godtools.model.Language -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen.UiState +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState import org.junit.runner.RunWith @RunWith(TestParameterInjector::class) @@ -22,7 +21,7 @@ class DownloadableLanguagesLayoutPaparazziTest( ) : BasePaparazziTest(deviceConfig = deviceConfig, nightMode = nightMode, accessibilityMode = accessibilityMode) { private val isConnected = mutableStateOf(true) private val state = UiState( - languages = persistentListOf( + languages = listOf( UiState.UiLanguage( Language(Locale.ENGLISH, isAdded = true), downloadedTools = 2, diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesLayoutTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayoutTest.kt similarity index 96% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesLayoutTest.kt rename to app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayoutTest.kt index adc9195466..67cedc1238 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/DownloadableLanguagesLayoutTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayoutTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import android.app.Application import androidx.activity.ComponentActivity @@ -15,7 +15,7 @@ import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertTrue -import org.cru.godtools.ui.languages.downloadable.DownloadableLanguagesScreen.UiState +import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState import org.junit.Rule import org.junit.runner.RunWith import org.robolectric.annotation.Config diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/LanguageDownloadStatusIndicatorPaparazziTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/downloadable/LanguageDownloadStatusIndicatorPaparazziTest.kt similarity index 95% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/LanguageDownloadStatusIndicatorPaparazziTest.kt rename to app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/downloadable/LanguageDownloadStatusIndicatorPaparazziTest.kt index 885c5d409c..e321c1a7cb 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/downloadable/LanguageDownloadStatusIndicatorPaparazziTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/downloadable/LanguageDownloadStatusIndicatorPaparazziTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.downloadable +package org.cru.godtools.ui.settings.language.downloadable import androidx.compose.foundation.layout.Row import com.android.ide.common.rendering.api.SessionParams.RenderingMode From d447250aab52d192b93261e71baa8b4811329d38 Mon Sep 17 00:00:00 2001 From: Daniel Frett Date: Fri, 24 Apr 2026 14:34:10 -0600 Subject: [PATCH 2/7] handle deleted snapshots in record-screenshots skill Update step 7 to use git diff --name-status to detect added, modified, and deleted snapshot files, and handle each appropriately rather than blindly checking out all changed files (which would re-create deletions). Co-Authored-By: Claude Sonnet 4.6 --- .claude/skills/record-screenshots/SKILL.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.claude/skills/record-screenshots/SKILL.md b/.claude/skills/record-screenshots/SKILL.md index 9cb854a45f..6e8283aa79 100644 --- a/.claude/skills/record-screenshots/SKILL.md +++ b/.claude/skills/record-screenshots/SKILL.md @@ -97,16 +97,26 @@ If there are multiple candidates at any step, show them and ask the user which c ### 7. Apply the snapshot changes locally -Stage the snapshot files from the remote commit: +The CI commit may add new snapshots, delete old ones (e.g. when a package was renamed), or both. Handle all cases: ```bash -# Get the list of files changed by the screenshot commit +# Get the full diff between local HEAD and the remote screenshot commit git diff --name-only HEAD origin/ +git diff --name-status HEAD origin/ +``` + +For files marked **A** (added) or **M** (modified) — stage them at the remote version: +```bash +git checkout origin/ -- [ ...] +``` -# Stage those files at the remote version -git checkout origin/ -- $(git diff --name-only HEAD origin/) +For files marked **D** (deleted) — remove them: +```bash +git rm [ ...] ``` +Do not use a single `git checkout origin/ -- $(git diff --name-only ...)` shortcut, as it cannot handle deletions (checking out a deleted file would re-create it instead of removing it). + ### 8. Create a fixup commit ```bash From 93f8711dad4d6c9dc0cb4b16d90ec2cfa57d08b6 Mon Sep 17 00:00:00 2001 From: Daniel Frett Date: Fri, 24 Apr 2026 14:39:16 -0600 Subject: [PATCH 3/7] move LanguageName & LocalizedName to ui/common package Relocates shared language name composables from `ui/languages` to `ui/common`, updating package declarations and imports across all consumers. Co-Authored-By: Claude Sonnet 4.6 --- .../ui/{languages => common}/LanguageName+Previews.kt | 2 +- .../cru/godtools/ui/{languages => common}/LanguageName.kt | 2 +- .../godtools/ui/{languages => common}/LocalizedName.kt | 8 ++++---- .../cru/godtools/ui/dashboard/lessons/LessonFilters.kt | 2 +- .../org/cru/godtools/ui/dashboard/tools/ToolFilters.kt | 2 +- .../cru/godtools/ui/languages/LanguageSettingsLayout.kt | 1 + .../cru/godtools/ui/languages/app/AppLanguageLayout.kt | 2 +- .../ui/languages/country/CountrySettingsLayout.kt | 2 +- .../language/downloadable/DownloadableLanguagesLayout.kt | 2 +- ..._LanguageNamePaparazziTest_LanguageNames()[NIGHT].png} | 0 ...nguageNamePaparazziTest_LanguageNames()[NOTNIGHT].png} | 0 .../ui/{languages => common}/LanguageNamePaparazziTest.kt | 2 +- 12 files changed, 13 insertions(+), 12 deletions(-) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => common}/LanguageName+Previews.kt (97%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => common}/LanguageName.kt (96%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => common}/LocalizedName.kt (89%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages_LanguageNamePaparazziTest_LanguageNames()[NIGHT].png => org.cru.godtools.ui.common_LanguageNamePaparazziTest_LanguageNames()[NIGHT].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages_LanguageNamePaparazziTest_LanguageNames()[NOTNIGHT].png => org.cru.godtools.ui.common_LanguageNamePaparazziTest_LanguageNames()[NOTNIGHT].png} (100%) rename app/src/testDebug/kotlin/org/cru/godtools/ui/{languages => common}/LanguageNamePaparazziTest.kt (97%) diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageName+Previews.kt b/app/src/main/kotlin/org/cru/godtools/ui/common/LanguageName+Previews.kt similarity index 97% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageName+Previews.kt rename to app/src/main/kotlin/org/cru/godtools/ui/common/LanguageName+Previews.kt index 268517cca7..20c1449fbf 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageName+Previews.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/common/LanguageName+Previews.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.common import androidx.compose.foundation.layout.Column import androidx.compose.material3.HorizontalDivider diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageName.kt b/app/src/main/kotlin/org/cru/godtools/ui/common/LanguageName.kt similarity index 96% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageName.kt rename to app/src/main/kotlin/org/cru/godtools/ui/common/LanguageName.kt index 3076f90733..0741ee152a 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageName.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/common/LanguageName.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.common import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LocalizedName.kt b/app/src/main/kotlin/org/cru/godtools/ui/common/LocalizedName.kt similarity index 89% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/LocalizedName.kt rename to app/src/main/kotlin/org/cru/godtools/ui/common/LocalizedName.kt index 544a1fbbfb..8e24e2fcba 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LocalizedName.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/common/LocalizedName.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.common import androidx.compose.foundation.text.InlineTextContent import androidx.compose.foundation.text.appendInlineContent @@ -17,7 +17,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.sp -private const val LANGUAGE_NAME_GAP = "[gap]" +private const val NAME_GAP = "[gap]" @Composable internal fun LocalizedName(name: String, secondName: String, modifier: Modifier = Modifier) { @@ -28,7 +28,7 @@ internal fun LocalizedName(name: String, secondName: String, modifier: Modifier remember(name, secondName, color, secondNameColor) { buildAnnotatedString { withStyle(SpanStyle(color = color)) { append(name) } - appendInlineContent(LANGUAGE_NAME_GAP, " ") + appendInlineContent(NAME_GAP, " ") withStyle(SpanStyle(color = secondNameColor)) { append(secondName) } } }, @@ -36,7 +36,7 @@ internal fun LocalizedName(name: String, secondName: String, modifier: Modifier overflow = TextOverflow.Ellipsis, inlineContent = remember { mapOf( - LANGUAGE_NAME_GAP to InlineTextContent( + NAME_GAP to InlineTextContent( Placeholder( width = 8.sp, height = 1.sp, diff --git a/app/src/main/kotlin/org/cru/godtools/ui/dashboard/lessons/LessonFilters.kt b/app/src/main/kotlin/org/cru/godtools/ui/dashboard/lessons/LessonFilters.kt index 61d1d0335f..60d34b15af 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/dashboard/lessons/LessonFilters.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/dashboard/lessons/LessonFilters.kt @@ -13,8 +13,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import org.cru.godtools.R import org.cru.godtools.base.LocalAppLanguage +import org.cru.godtools.ui.common.LanguageName import org.cru.godtools.ui.dashboard.filters.LazyFilterMenu -import org.cru.godtools.ui.languages.LanguageName @Composable @OptIn(ExperimentalLayoutApi::class) diff --git a/app/src/main/kotlin/org/cru/godtools/ui/dashboard/tools/ToolFilters.kt b/app/src/main/kotlin/org/cru/godtools/ui/dashboard/tools/ToolFilters.kt index 804f76fa7a..334ac96939 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/dashboard/tools/ToolFilters.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/dashboard/tools/ToolFilters.kt @@ -32,11 +32,11 @@ import org.cru.godtools.R import org.cru.godtools.base.LocalAppLanguage import org.cru.godtools.base.ui.util.getToolCategoryName import org.cru.godtools.model.Language +import org.cru.godtools.ui.common.LanguageName import org.cru.godtools.ui.dashboard.filters.FilterMenu import org.cru.godtools.ui.dashboard.filters.FilterMenuItem import org.cru.godtools.ui.dashboard.filters.LazyFilterMenu import org.cru.godtools.ui.dashboard.tools.ToolFiltersStateProducer.Filters -import org.cru.godtools.ui.languages.LanguageName import org.jetbrains.annotations.VisibleForTesting private val DROPDOWN_MAX_HEIGHT = 700.dp diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayout.kt index 982e5c4d53..5e8da20fc7 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayout.kt @@ -43,6 +43,7 @@ import org.cru.godtools.analytics.compose.RecordAnalyticsScreen import org.cru.godtools.analytics.model.AnalyticsScreenEvent import org.cru.godtools.base.ui.theme.GodToolsTheme import org.cru.godtools.shared.analytics.AnalyticsScreenNames +import org.cru.godtools.ui.common.LanguageName import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiEvent import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiState diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayout.kt index d0c9a15972..7d0b8343d9 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayout.kt @@ -50,7 +50,7 @@ import org.ccci.gto.android.common.util.content.localize import org.cru.godtools.R import org.cru.godtools.base.ui.circuit.screen.AppLanguageScreen import org.cru.godtools.base.ui.theme.GodToolsTheme -import org.cru.godtools.ui.languages.LanguageName +import org.cru.godtools.ui.common.LanguageName import org.cru.godtools.ui.languages.app.AppLanguagePresenter.UiEvent import org.cru.godtools.ui.languages.app.AppLanguagePresenter.UiState diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayout.kt index 88d9c3340e..6f2a4b1a0a 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayout.kt @@ -44,7 +44,7 @@ import kotlinx.coroutines.launch import org.ccci.gto.android.common.compose.foundation.layout.padding import org.cru.godtools.R import org.cru.godtools.base.ui.theme.GodToolsTheme -import org.cru.godtools.ui.languages.LocalizedName +import org.cru.godtools.ui.common.LocalizedName import org.cru.godtools.ui.languages.country.CountrySettingsPresenter.UiEvent import org.cru.godtools.ui.languages.country.CountrySettingsPresenter.UiState diff --git a/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayout.kt index 546fec9d20..76b8774e50 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/downloadable/DownloadableLanguagesLayout.kt @@ -44,7 +44,7 @@ import kotlinx.coroutines.launch import org.ccci.gto.android.common.compose.foundation.layout.padding import org.cru.godtools.R import org.cru.godtools.base.ui.theme.GodToolsTheme -import org.cru.godtools.ui.languages.LanguageName +import org.cru.godtools.ui.common.LanguageName import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState.UiEvent import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen.UiState.UiLanguage diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageNamePaparazziTest_LanguageNames()[NIGHT].png b/app/src/test/snapshots/images/org.cru.godtools.ui.common_LanguageNamePaparazziTest_LanguageNames()[NIGHT].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageNamePaparazziTest_LanguageNames()[NIGHT].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.common_LanguageNamePaparazziTest_LanguageNames()[NIGHT].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageNamePaparazziTest_LanguageNames()[NOTNIGHT].png b/app/src/test/snapshots/images/org.cru.godtools.ui.common_LanguageNamePaparazziTest_LanguageNames()[NOTNIGHT].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageNamePaparazziTest_LanguageNames()[NOTNIGHT].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.common_LanguageNamePaparazziTest_LanguageNames()[NOTNIGHT].png diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageNamePaparazziTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/common/LanguageNamePaparazziTest.kt similarity index 97% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageNamePaparazziTest.kt rename to app/src/testDebug/kotlin/org/cru/godtools/ui/common/LanguageNamePaparazziTest.kt index ae3699e377..527a0cb5bd 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageNamePaparazziTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/common/LanguageNamePaparazziTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.common import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding From 3b4283ebab215413ec17b09a36329461cc677618 Mon Sep 17 00:00:00 2001 From: Daniel Frett Date: Fri, 24 Apr 2026 14:56:25 -0600 Subject: [PATCH 4/7] remove unused LanguageSettingsViewModel Co-Authored-By: Claude Sonnet 4.6 --- .../ui/languages/LanguageSettingsViewModel.kt | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsViewModel.kt diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsViewModel.kt b/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsViewModel.kt deleted file mode 100644 index f3e521e777..0000000000 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsViewModel.kt +++ /dev/null @@ -1,43 +0,0 @@ -package org.cru.godtools.ui.languages - -import android.content.Context -import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope -import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext -import javax.inject.Inject -import kotlinx.collections.immutable.persistentListOf -import kotlinx.collections.immutable.toImmutableList -import kotlinx.coroutines.flow.SharingStarted -import kotlinx.coroutines.flow.combine -import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.flow.flow -import kotlinx.coroutines.flow.map -import kotlinx.coroutines.flow.stateIn -import org.ccci.gto.android.common.androidx.core.app.LocaleConfigCompat -import org.ccci.gto.android.common.androidx.core.os.asIterable -import org.cru.godtools.base.Settings -import org.cru.godtools.db.repository.LanguagesRepository -import org.cru.godtools.model.Language - -@HiltViewModel -internal class LanguageSettingsViewModel @Inject constructor( - @ApplicationContext context: Context, - languagesRepository: LanguagesRepository, - settings: Settings, -) : ViewModel() { - val appLanguage = settings.appLanguageFlow - .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5_000), settings.appLanguage) - - val appLanguages = flow { emit(LocaleConfigCompat.getSupportedLocales(context)?.asIterable() ?: emptyList()) } - .map { it.count() } - .distinctUntilChanged() - .stateIn(viewModelScope, SharingStarted.Lazily, 0) - - val pinnedLanguages = languagesRepository.getPinnedLanguagesFlow() - .combine(settings.appLanguageFlow) { pinned, app -> - pinned.sortedWith(Language.displayNameComparator(context, app)) - .toImmutableList() - } - .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5_000), persistentListOf()) -} From 18843feb7d2756f9fe31a2a646319cd453961be0 Mon Sep 17 00:00:00 2001 From: Daniel Frett Date: Fri, 24 Apr 2026 15:06:06 -0600 Subject: [PATCH 5/7] move LanguageSettings UI to settings/language package Relocates all LanguageSettings source files from `ui/languages` to `ui/settings/language`, updating package declarations and imports across all consumers. Co-Authored-By: Claude Sonnet 4.6 --- .../org/cru/godtools/ui/drawer/DrawerMenuLayout.kt | 2 +- .../language}/LanguageSettingsDeepLinkParser.kt | 2 +- .../language}/LanguageSettingsLayout.kt | 6 +++--- .../language}/LanguageSettingsModule.kt | 2 +- .../language}/LanguageSettingsPresenter.kt | 14 +++++--------- .../language}/LanguageSettingsScreen.kt | 2 +- .../LanguageSettingsDeepLinkParserTest.kt | 6 +++--- .../language}/LanguageSettingsPresenterTest.kt | 4 ++-- ...gsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} | 0 ...gsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} | 0 ...ayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...yout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} | 0 ...t()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 .../LanguageSettingsLayoutPaparazziTest.kt | 7 +++---- .../language}/LanguageSettingsLayoutTest.kt | 6 +++--- 15 files changed, 23 insertions(+), 28 deletions(-) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/LanguageSettingsDeepLinkParser.kt (94%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/LanguageSettingsLayout.kt (97%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/LanguageSettingsModule.kt (90%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/LanguageSettingsPresenter.kt (86%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/LanguageSettingsScreen.kt (74%) rename app/src/test/kotlin/org/cru/godtools/ui/{languages => settings/language}/LanguageSettingsDeepLinkParserTest.kt (90%) rename app/src/{testDebug/kotlin/org/cru/godtools/ui/languages => test/kotlin/org/cru/godtools/ui/settings/language}/LanguageSettingsPresenterTest.kt (97%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png => org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/testDebug/kotlin/org/cru/godtools/ui/{languages => settings/language}/LanguageSettingsLayoutPaparazziTest.kt (84%) rename app/src/testDebug/kotlin/org/cru/godtools/ui/{languages => settings/language}/LanguageSettingsLayoutTest.kt (93%) diff --git a/app/src/main/kotlin/org/cru/godtools/ui/drawer/DrawerMenuLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/drawer/DrawerMenuLayout.kt index 090cbe90a4..e612bd7d90 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/drawer/DrawerMenuLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/drawer/DrawerMenuLayout.kt @@ -68,9 +68,9 @@ import org.cru.godtools.ui.account.delete.DeleteAccountScreen import org.cru.godtools.ui.account.startAccountActivity import org.cru.godtools.ui.drawer.DrawerMenuScreen.Event import org.cru.godtools.ui.drawer.DrawerMenuScreen.State -import org.cru.godtools.ui.languages.LanguageSettingsScreen import org.cru.godtools.ui.languages.country.CountrySettingsScreen import org.cru.godtools.ui.login.startLoginActivity +import org.cru.godtools.ui.settings.language.LanguageSettingsScreen @Composable fun DrawerMenuLayout( diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsDeepLinkParser.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsDeepLinkParser.kt similarity index 94% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsDeepLinkParser.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsDeepLinkParser.kt index 4a0b842726..b07b9ab3a4 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsDeepLinkParser.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsDeepLinkParser.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.settings.language import android.net.Uri import org.cru.godtools.BuildConfig.HOST_GODTOOLS_CUSTOM_URI diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsLayout.kt similarity index 97% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayout.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsLayout.kt index 5e8da20fc7..455badb518 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsLayout.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.settings.language import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.fillMaxHeight @@ -44,8 +44,8 @@ import org.cru.godtools.analytics.model.AnalyticsScreenEvent import org.cru.godtools.base.ui.theme.GodToolsTheme import org.cru.godtools.shared.analytics.AnalyticsScreenNames import org.cru.godtools.ui.common.LanguageName -import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiEvent -import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiState +import org.cru.godtools.ui.settings.language.LanguageSettingsPresenter.UiEvent +import org.cru.godtools.ui.settings.language.LanguageSettingsPresenter.UiState internal const val TEST_TAG_ACTION_BACK = "action_navigate_back" diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsModule.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsModule.kt similarity index 90% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsModule.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsModule.kt index 8bd07c420a..2d15b308bc 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsModule.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsModule.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.settings.language import dagger.Module import dagger.Provides diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenter.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsPresenter.kt similarity index 86% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenter.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsPresenter.kt index 4c2d4f33eb..6e0871ae60 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenter.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsPresenter.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.settings.language import android.content.Context import androidx.compose.runtime.Composable @@ -16,9 +16,6 @@ import dagger.assisted.AssistedInject import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import java.util.Locale -import kotlinx.collections.immutable.ImmutableList -import kotlinx.collections.immutable.persistentListOf -import kotlinx.collections.immutable.toImmutableList import kotlinx.coroutines.flow.combine import org.ccci.gto.android.common.androidx.core.app.LocaleConfigCompat import org.ccci.gto.android.common.androidx.core.os.asIterable @@ -26,7 +23,7 @@ import org.cru.godtools.base.Settings import org.cru.godtools.base.ui.circuit.screen.AppLanguageScreen import org.cru.godtools.db.repository.LanguagesRepository import org.cru.godtools.model.Language -import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiState +import org.cru.godtools.ui.settings.language.LanguageSettingsPresenter.UiState import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen class LanguageSettingsPresenter @AssistedInject constructor( @@ -39,11 +36,11 @@ class LanguageSettingsPresenter @AssistedInject constructor( data class UiState( val appLanguage: Locale, val appLanguages: Int = 0, - val downloadedLanguages: ImmutableList = persistentListOf(), + val downloadedLanguages: List = emptyList(), val eventSink: (UiEvent) -> Unit = {}, ) : CircuitUiState - interface UiEvent : CircuitUiEvent { + sealed interface UiEvent : CircuitUiEvent { data object NavigateUp : UiEvent data object AppLanguage : UiEvent data object DownloadableLanguages : UiEvent @@ -75,9 +72,8 @@ class LanguageSettingsPresenter @AssistedInject constructor( private fun produceDownloadedLanguagesState() = remember { combine(languagesRepository.getPinnedLanguagesFlow(), settings.appLanguageFlow) { pinned, app -> pinned.sortedWith(Language.displayNameComparator(context, app)) - .toImmutableList() } - }.collectAsState(persistentListOf()) + }.collectAsState(emptyList()) @AssistedFactory @CircuitInject(LanguageSettingsScreen::class, SingletonComponent::class) diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsScreen.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsScreen.kt similarity index 74% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsScreen.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsScreen.kt index 9d00e18433..490421a8b0 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/LanguageSettingsScreen.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsScreen.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.settings.language import com.slack.circuit.runtime.screen.Screen import kotlinx.parcelize.Parcelize diff --git a/app/src/test/kotlin/org/cru/godtools/ui/languages/LanguageSettingsDeepLinkParserTest.kt b/app/src/test/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsDeepLinkParserTest.kt similarity index 90% rename from app/src/test/kotlin/org/cru/godtools/ui/languages/LanguageSettingsDeepLinkParserTest.kt rename to app/src/test/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsDeepLinkParserTest.kt index 0ee3893d69..798e25725d 100644 --- a/app/src/test/kotlin/org/cru/godtools/ui/languages/LanguageSettingsDeepLinkParserTest.kt +++ b/app/src/test/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsDeepLinkParserTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.settings.language import android.app.Application import android.net.Uri @@ -8,8 +8,8 @@ import kotlin.test.assertEquals import kotlin.test.assertFalse import kotlin.test.assertTrue import org.cru.godtools.BuildConfig.HOST_GODTOOLS_CUSTOM_URI -import org.cru.godtools.ui.languages.LanguageSettingsDeepLinkParser.isDeepLinkSupported -import org.cru.godtools.ui.languages.LanguageSettingsDeepLinkParser.parseDeepLink +import org.cru.godtools.ui.settings.language.LanguageSettingsDeepLinkParser.isDeepLinkSupported +import org.cru.godtools.ui.settings.language.LanguageSettingsDeepLinkParser.parseDeepLink import org.junit.runner.RunWith import org.robolectric.annotation.Config diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenterTest.kt b/app/src/test/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsPresenterTest.kt similarity index 97% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenterTest.kt rename to app/src/test/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsPresenterTest.kt index 1ed49a4982..484983a913 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsPresenterTest.kt +++ b/app/src/test/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsPresenterTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.settings.language import android.app.Application import android.content.Context @@ -26,7 +26,7 @@ import org.cru.godtools.base.Settings import org.cru.godtools.base.ui.circuit.screen.AppLanguageScreen import org.cru.godtools.db.repository.LanguagesRepository import org.cru.godtools.model.Language -import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiEvent +import org.cru.godtools.ui.settings.language.LanguageSettingsPresenter.UiEvent import org.cru.godtools.ui.settings.language.downloadable.DownloadableLanguagesScreen import org.junit.runner.RunWith import org.robolectric.annotation.Config diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language_LanguageSettingsLayoutPaparazziTest_LanguageSettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayoutPaparazziTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsLayoutPaparazziTest.kt similarity index 84% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayoutPaparazziTest.kt rename to app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsLayoutPaparazziTest.kt index cc3cdb5c0c..9151846b0c 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayoutPaparazziTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsLayoutPaparazziTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.settings.language import app.cash.paparazzi.DeviceConfig import com.android.resources.NightMode @@ -6,10 +6,9 @@ import com.google.testing.junit.testparameterinjector.TestParameter import com.google.testing.junit.testparameterinjector.TestParameterInjector import java.util.Locale import kotlin.test.Test -import kotlinx.collections.immutable.persistentListOf import org.cru.godtools.base.ui.BasePaparazziTest import org.cru.godtools.model.Language -import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiState +import org.cru.godtools.ui.settings.language.LanguageSettingsPresenter.UiState import org.junit.runner.RunWith @RunWith(TestParameterInjector::class) @@ -21,7 +20,7 @@ class LanguageSettingsLayoutPaparazziTest( private val state = UiState( appLanguage = Locale.FRENCH, appLanguages = 1234, - downloadedLanguages = persistentListOf( + downloadedLanguages = listOf( Language(Locale.ENGLISH), Language(Locale.FRENCH), Language(Locale.GERMAN), diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayoutTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsLayoutTest.kt similarity index 93% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayoutTest.kt rename to app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsLayoutTest.kt index 44c0622ac0..4e19b385b0 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/LanguageSettingsLayoutTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/LanguageSettingsLayoutTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages +package org.cru.godtools.ui.settings.language import android.app.Application import androidx.activity.ComponentActivity @@ -19,8 +19,8 @@ import kotlin.test.BeforeTest import kotlin.test.Test import org.cru.godtools.base.ui.compose.LocalEventBus import org.cru.godtools.ui.drawer.putDrawerViewModel -import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiEvent -import org.cru.godtools.ui.languages.LanguageSettingsPresenter.UiState +import org.cru.godtools.ui.settings.language.LanguageSettingsPresenter.UiEvent +import org.cru.godtools.ui.settings.language.LanguageSettingsPresenter.UiState import org.greenrobot.eventbus.EventBus import org.junit.Rule import org.junit.runner.RunWith From 8729a0f8912def968c3f8186e35ff70714ac4de7 Mon Sep 17 00:00:00 2001 From: Daniel Frett Date: Fri, 24 Apr 2026 15:23:13 -0600 Subject: [PATCH 6/7] move AppLanguage UI to settings/language/app package Co-Authored-By: Claude Sonnet 4.6 --- .../language}/app/AppLanguageLayout.kt | 6 +++--- .../language}/app/AppLanguagePresenter.kt | 15 +++++---------- .../language}/app/AppLanguagePresenterTest.kt | 4 ++-- ...eLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} | 0 ...eLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} | 0 ...yout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...out()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} | 0 ...()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} | 0 ...Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} | 0 ...rching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...ching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} | 0 ...ng[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 .../app/AppLanguageLayoutPaparazziTest.kt | 9 ++++----- .../language}/app/AppLanguageLayoutTest.kt | 9 ++++----- 15 files changed, 18 insertions(+), 25 deletions(-) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/app/AppLanguageLayout.kt (97%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings/language}/app/AppLanguagePresenter.kt (88%) rename app/src/{testDebug/kotlin/org/cru/godtools/ui/languages => test/kotlin/org/cru/godtools/ui/settings/language}/app/AppLanguagePresenterTest.kt (97%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/testDebug/kotlin/org/cru/godtools/ui/{languages => settings/language}/app/AppLanguageLayoutPaparazziTest.kt (81%) rename app/src/testDebug/kotlin/org/cru/godtools/ui/{languages => settings/language}/app/AppLanguageLayoutTest.kt (93%) diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguageLayout.kt similarity index 97% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayout.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguageLayout.kt index 7d0b8343d9..5e30f90d87 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguageLayout.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.app +package org.cru.godtools.ui.settings.language.app import androidx.compose.foundation.background import androidx.compose.foundation.clickable @@ -51,8 +51,8 @@ import org.cru.godtools.R import org.cru.godtools.base.ui.circuit.screen.AppLanguageScreen import org.cru.godtools.base.ui.theme.GodToolsTheme import org.cru.godtools.ui.common.LanguageName -import org.cru.godtools.ui.languages.app.AppLanguagePresenter.UiEvent -import org.cru.godtools.ui.languages.app.AppLanguagePresenter.UiState +import org.cru.godtools.ui.settings.language.app.AppLanguagePresenter.UiEvent +import org.cru.godtools.ui.settings.language.app.AppLanguagePresenter.UiState internal const val TEST_TAG_ACTION_BACK = "action_navigate_back" internal const val TEST_TAG_CANCEL_SEARCH = "action_cancel_search" diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguagePresenter.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguagePresenter.kt similarity index 88% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguagePresenter.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguagePresenter.kt index a3b73eb0ae..a9cc52156f 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/app/AppLanguagePresenter.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguagePresenter.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.app +package org.cru.godtools.ui.settings.language.app import android.content.Context import androidx.compose.runtime.Composable @@ -19,9 +19,6 @@ import dagger.assisted.AssistedInject import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import java.util.Locale -import kotlinx.collections.immutable.ImmutableList -import kotlinx.collections.immutable.persistentListOf -import kotlinx.collections.immutable.toImmutableList import org.ccci.gto.android.common.androidx.core.app.LocaleConfigCompat import org.ccci.gto.android.common.androidx.core.os.asIterable import org.cru.godtools.base.Settings @@ -29,7 +26,7 @@ import org.cru.godtools.base.ui.circuit.screen.AppLanguageScreen import org.cru.godtools.base.util.filterByDisplayAndNativeName import org.cru.godtools.base.util.getDisplayName import org.cru.godtools.base.util.getPrimaryCollator -import org.cru.godtools.ui.languages.app.AppLanguagePresenter.UiState +import org.cru.godtools.ui.settings.language.app.AppLanguagePresenter.UiState class AppLanguagePresenter @AssistedInject constructor( @param:ApplicationContext @@ -38,7 +35,7 @@ class AppLanguagePresenter @AssistedInject constructor( @Assisted private val navigator: Navigator, ) : Presenter { data class UiState( - val languages: ImmutableList = persistentListOf(), + val languages: List = emptyList(), val languageQuery: MutableState = mutableStateOf(""), val selectedLanguage: Locale? = null, val eventSink: (UiEvent) -> Unit = {} @@ -90,7 +87,7 @@ class AppLanguagePresenter @AssistedInject constructor( } @Composable - private fun rememberLanguages(appLanguage: Locale, query: String): ImmutableList { + private fun rememberLanguages(appLanguage: Locale, query: String): List { val languages = remember { LocaleConfigCompat.getSupportedLocales(context)?.asIterable() ?: emptyList() } val sortedLanguages = remember(appLanguage) { languages.sortedWith( @@ -99,9 +96,7 @@ class AppLanguagePresenter @AssistedInject constructor( } return remember(sortedLanguages, appLanguage, query) { - sortedLanguages - .filterByDisplayAndNativeName(query, context, inLocale = appLanguage) - .toImmutableList() + sortedLanguages.filterByDisplayAndNativeName(query, context, inLocale = appLanguage) } } diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/app/AppLanguagePresenterTest.kt b/app/src/test/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguagePresenterTest.kt similarity index 97% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/app/AppLanguagePresenterTest.kt rename to app/src/test/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguagePresenterTest.kt index f7b2b9352e..8898ea7c2e 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/app/AppLanguagePresenterTest.kt +++ b/app/src/test/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguagePresenterTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.app +package org.cru.godtools.ui.settings.language.app import android.app.Application import androidx.compose.runtime.mutableStateOf @@ -26,7 +26,7 @@ import org.ccci.gto.android.common.androidx.compose.ui.platform.AndroidUiDispatc import org.ccci.gto.android.common.androidx.core.app.LocaleConfigCompat import org.cru.godtools.base.Settings import org.cru.godtools.base.ui.circuit.screen.AppLanguageScreen -import org.cru.godtools.ui.languages.app.AppLanguagePresenter.UiEvent +import org.cru.godtools.ui.settings.language.app.AppLanguagePresenter.UiEvent import org.junit.runner.RunWith import org.robolectric.annotation.Config diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.language.app_AppLanguageLayoutPaparazziTest_AppLanguageLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayoutPaparazziTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguageLayoutPaparazziTest.kt similarity index 81% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayoutPaparazziTest.kt rename to app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguageLayoutPaparazziTest.kt index 7728c0d9ba..15600580dc 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayoutPaparazziTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguageLayoutPaparazziTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.app +package org.cru.godtools.ui.settings.language.app import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -9,9 +9,8 @@ import com.google.testing.junit.testparameterinjector.TestParameterInjector import java.util.Locale import kotlin.test.Ignore import kotlin.test.Test -import kotlinx.collections.immutable.persistentListOf import org.cru.godtools.base.ui.BasePaparazziTest -import org.cru.godtools.ui.languages.app.AppLanguagePresenter.UiState +import org.cru.godtools.ui.settings.language.app.AppLanguagePresenter.UiState import org.junit.runner.RunWith @RunWith(TestParameterInjector::class) @@ -21,7 +20,7 @@ class AppLanguageLayoutPaparazziTest( @TestParameter accessibilityMode: AccessibilityMode, ) : BasePaparazziTest(deviceConfig = deviceConfig, nightMode = nightMode, accessibilityMode = accessibilityMode) { private val state = UiState( - languages = persistentListOf(Locale.ENGLISH, Locale.FRENCH, Locale.GERMAN, Locale("es")) + languages = listOf(Locale.ENGLISH, Locale.FRENCH, Locale.GERMAN, Locale("es")) ) @Test @@ -35,7 +34,7 @@ class AppLanguageLayoutPaparazziTest( AppLanguageLayout( state.copy( languageQuery = remember { mutableStateOf("en") }, - languages = persistentListOf(Locale.ENGLISH, Locale.FRENCH) + languages = listOf(Locale.ENGLISH, Locale.FRENCH) ) ) } diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayoutTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguageLayoutTest.kt similarity index 93% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayoutTest.kt rename to app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguageLayoutTest.kt index bdabc191fb..6ef859ed94 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/app/AppLanguageLayoutTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/language/app/AppLanguageLayoutTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.app +package org.cru.godtools.ui.settings.language.app import android.app.Application import androidx.compose.runtime.mutableStateOf @@ -14,9 +14,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import com.slack.circuit.test.TestEventSink import java.util.Locale import kotlin.test.Test -import kotlinx.collections.immutable.persistentListOf -import org.cru.godtools.ui.languages.app.AppLanguagePresenter.UiEvent -import org.cru.godtools.ui.languages.app.AppLanguagePresenter.UiState +import org.cru.godtools.ui.settings.language.app.AppLanguagePresenter.UiEvent +import org.cru.godtools.ui.settings.language.app.AppLanguagePresenter.UiState import org.junit.Rule import org.junit.runner.RunWith import org.robolectric.annotation.Config @@ -48,7 +47,7 @@ class AppLanguageLayoutTest { setContent { AppLanguageLayout( UiState( - languages = persistentListOf(Locale.ENGLISH, Locale.FRENCH), + languages = listOf(Locale.ENGLISH, Locale.FRENCH), eventSink = events ) ) From 86394740fc5449f3184a533d580fb6e5e25e33d3 Mon Sep 17 00:00:00 2001 From: Daniel Frett Date: Fri, 24 Apr 2026 15:39:42 -0600 Subject: [PATCH 7/7] move CountrySettings UI to settings/country package Co-Authored-By: Claude Sonnet 4.6 --- .../org/cru/godtools/ui/drawer/DrawerMenuLayout.kt | 2 +- .../country/CountrySettingsConfirmationOverlay.kt | 2 +- .../country/CountrySettingsLayout.kt | 6 +++--- .../country/CountrySettingsPresenter.kt | 8 +++----- .../country/CountrySettingsScreen.kt | 2 +- ...SettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} | 0 ...SettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} | 0 ...tingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...ingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} | 0 ...sLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...firmationOverlay[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} | 0 ...mationOverlay[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...ationOverlay[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} | 0 ...onOverlay[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...ut()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} | 0 ...ut()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} | 0 ...)_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ..._-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} | 0 ...Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...Selected_Country[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} | 0 ...Selected_Country[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} | 0 ...ected_Country[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 ...cted_Country[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} | 0 ...d_Country[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} | 0 .../country/CountrySettingsLayoutPaparazziTest.kt | 9 ++++----- 25 files changed, 13 insertions(+), 16 deletions(-) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings}/country/CountrySettingsConfirmationOverlay.kt (97%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings}/country/CountrySettingsLayout.kt (97%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings}/country/CountrySettingsPresenter.kt (94%) rename app/src/main/kotlin/org/cru/godtools/ui/{languages => settings}/country/CountrySettingsScreen.kt (75%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/test/snapshots/images/{org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png => org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png} (100%) rename app/src/testDebug/kotlin/org/cru/godtools/ui/{languages => settings}/country/CountrySettingsLayoutPaparazziTest.kt (91%) diff --git a/app/src/main/kotlin/org/cru/godtools/ui/drawer/DrawerMenuLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/drawer/DrawerMenuLayout.kt index e612bd7d90..cf41582418 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/drawer/DrawerMenuLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/drawer/DrawerMenuLayout.kt @@ -68,8 +68,8 @@ import org.cru.godtools.ui.account.delete.DeleteAccountScreen import org.cru.godtools.ui.account.startAccountActivity import org.cru.godtools.ui.drawer.DrawerMenuScreen.Event import org.cru.godtools.ui.drawer.DrawerMenuScreen.State -import org.cru.godtools.ui.languages.country.CountrySettingsScreen import org.cru.godtools.ui.login.startLoginActivity +import org.cru.godtools.ui.settings.country.CountrySettingsScreen import org.cru.godtools.ui.settings.language.LanguageSettingsScreen @Composable diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsConfirmationOverlay.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsConfirmationOverlay.kt similarity index 97% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsConfirmationOverlay.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsConfirmationOverlay.kt index b294f817ed..798ce79081 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsConfirmationOverlay.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsConfirmationOverlay.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.country +package org.cru.godtools.ui.settings.country import androidx.compose.material3.AlertDialog import androidx.compose.material3.ExperimentalMaterial3Api diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayout.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsLayout.kt similarity index 97% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayout.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsLayout.kt index 6f2a4b1a0a..168c1f67a1 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayout.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsLayout.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.country +package org.cru.godtools.ui.settings.country import androidx.compose.foundation.background import androidx.compose.foundation.clickable @@ -45,8 +45,8 @@ import org.ccci.gto.android.common.compose.foundation.layout.padding import org.cru.godtools.R import org.cru.godtools.base.ui.theme.GodToolsTheme import org.cru.godtools.ui.common.LocalizedName -import org.cru.godtools.ui.languages.country.CountrySettingsPresenter.UiEvent -import org.cru.godtools.ui.languages.country.CountrySettingsPresenter.UiState +import org.cru.godtools.ui.settings.country.CountrySettingsPresenter.UiEvent +import org.cru.godtools.ui.settings.country.CountrySettingsPresenter.UiState internal const val TEST_TAG_ACTION_BACK = "action_navigate_back" internal const val TEST_TAG_CANCEL_SEARCH = "action_cancel_search" diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsPresenter.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsPresenter.kt similarity index 94% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsPresenter.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsPresenter.kt index 123f976325..705100c5cd 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsPresenter.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsPresenter.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.country +package org.cru.godtools.ui.settings.country import android.content.Context import android.icu.text.LocaleDisplayNames @@ -23,15 +23,13 @@ import dagger.assisted.AssistedInject import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import java.util.Locale -import kotlinx.collections.immutable.ImmutableList -import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toImmutableList import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.cru.godtools.base.Settings import org.cru.godtools.base.util.getPrimaryCollator -import org.cru.godtools.ui.languages.country.CountrySettingsPresenter.UiState +import org.cru.godtools.ui.settings.country.CountrySettingsPresenter.UiState class CountrySettingsPresenter @AssistedInject constructor( @param:ApplicationContext private val context: Context, @@ -40,7 +38,7 @@ class CountrySettingsPresenter @AssistedInject constructor( ) : Presenter { // what the screen needs to know data class UiState( - val countries: List = persistentListOf(), + val countries: List = emptyList(), val query: MutableState = mutableStateOf(""), val countryCode: String? = null, val eventSink: (UiEvent) -> Unit = {}, diff --git a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsScreen.kt b/app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsScreen.kt similarity index 75% rename from app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsScreen.kt rename to app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsScreen.kt index 296266b665..569902a6f1 100644 --- a/app/src/main/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsScreen.kt +++ b/app/src/main/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsScreen.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.country +package org.cru.godtools.ui.settings.country import com.slack.circuit.runtime.screen.Screen import kotlinx.parcelize.Parcelize diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_ConfirmationOverlay[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Searching[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Nexus_5,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png b/app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png similarity index 100% rename from app/src/test/snapshots/images/org.cru.godtools.ui.languages.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png rename to app/src/test/snapshots/images/org.cru.godtools.ui.settings.country_CountrySettingsLayoutPaparazziTest_CountrySettingsLayout()_-_Selected_Country[Pixel_6_Pro,NOTNIGHT,NO_ACCESSIBILITY].png diff --git a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayoutPaparazziTest.kt b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsLayoutPaparazziTest.kt similarity index 91% rename from app/src/testDebug/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayoutPaparazziTest.kt rename to app/src/testDebug/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsLayoutPaparazziTest.kt index 484f31ed09..a0e82a2114 100644 --- a/app/src/testDebug/kotlin/org/cru/godtools/ui/languages/country/CountrySettingsLayoutPaparazziTest.kt +++ b/app/src/testDebug/kotlin/org/cru/godtools/ui/settings/country/CountrySettingsLayoutPaparazziTest.kt @@ -1,4 +1,4 @@ -package org.cru.godtools.ui.languages.country +package org.cru.godtools.ui.settings.country import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -10,8 +10,8 @@ import com.slack.circuit.overlay.OverlayEffect import kotlin.test.Test import kotlinx.collections.immutable.persistentListOf import org.cru.godtools.base.ui.BasePaparazziTest -import org.cru.godtools.ui.languages.country.CountrySettingsPresenter.CountryItem -import org.cru.godtools.ui.languages.country.CountrySettingsPresenter.UiState +import org.cru.godtools.ui.settings.country.CountrySettingsPresenter.CountryItem +import org.cru.godtools.ui.settings.country.CountrySettingsPresenter.UiState import org.junit.Assume.assumeFalse import org.junit.runner.RunWith @@ -21,7 +21,7 @@ class CountrySettingsLayoutPaparazziTest( @TestParameter nightMode: NightMode, @TestParameter accessibilityMode: AccessibilityMode, ) : BasePaparazziTest(deviceConfig = deviceConfig, nightMode = nightMode, accessibilityMode = accessibilityMode) { - private val countries = persistentListOf( + private val countries = listOf( CountryItem("BR", "Brazil", "Brasil"), CountryItem("EC", "Ecuador", "Ecuador"), CountryItem("FR", "France", "France"), @@ -34,7 +34,6 @@ class CountrySettingsLayoutPaparazziTest( CountryItem("ES", "Spain", "España"), CountryItem("GB", "United Kingdom", "United Kingdom"), CountryItem("US", "United States", "United States"), - ) private val state = UiState(countries = countries)