diff --git a/android/.gitignore b/android/.gitignore index 5e18b2936..90bba78d9 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -13,3 +13,4 @@ local.properties /core/*/build keystore.properties keystore/ +*.jks diff --git a/android/app/src/main/java/io/clawdroid/navigation/NavRoutes.kt b/android/app/src/main/java/io/clawdroid/navigation/NavRoutes.kt index b6d39bfd6..7bec62978 100644 --- a/android/app/src/main/java/io/clawdroid/navigation/NavRoutes.kt +++ b/android/app/src/main/java/io/clawdroid/navigation/NavRoutes.kt @@ -4,7 +4,7 @@ object NavRoutes { const val CHAT = "chat" const val SETTINGS = "settings" const val BACKEND_SETTINGS = "backend_settings" - const val BACKEND_SETTINGS_LIST = "backend_settings/list" + const val BACKEND_SETTINGS_LIST = "backend_settings_list" const val BACKEND_SETTINGS_SECTION = "backend_settings/{sectionKey}" const val APP_SETTINGS = "app_settings" } diff --git a/android/backend/config/src/main/java/io/clawdroid/backend/config/ConfigViewModel.kt b/android/backend/config/src/main/java/io/clawdroid/backend/config/ConfigViewModel.kt index d5d399b73..ac85162c3 100644 --- a/android/backend/config/src/main/java/io/clawdroid/backend/config/ConfigViewModel.kt +++ b/android/backend/config/src/main/java/io/clawdroid/backend/config/ConfigViewModel.kt @@ -54,7 +54,8 @@ class ConfigViewModel(private val apiClient: ConfigApiClient) : ViewModel() { val section = s.sections.find { it.key == sectionKey } ?: return val fields = section.fields.map { field -> - val raw = extractNestedValue(config, field.key) + val fullKey = "$sectionKey.${field.key}" + val raw = extractNestedValue(config, fullKey) val display = jsonElementToEditString(raw, field.type) FieldState( key = field.key, @@ -97,7 +98,8 @@ class ConfigViewModel(private val apiClient: ConfigApiClient) : ViewModel() { saveJob = viewModelScope.launch { try { - val payload = buildNestedJsonObject(changed) + val prefixed = changed.map { it.copy(key = "${detail.sectionKey}.${it.key}") } + val payload = buildNestedJsonObject(prefixed) val result = apiClient.saveConfig(payload) if (result.error != null) { _uiState.update { it.copy(saveState = SaveState.Error(result.error)) }