# Gestionar ajustes del dispositivo

Esta guía explica cómo ajustar la configuración en tiempo de ejecución del **Get Smart SDK Payment Service** utilizando el `SettingsRepository`. Puedes controlar elementos de la experiencia del usuario, como la ventana emergente (pop-up) nativa de resultado de la transacción y el idioma del servicio.

## Prerrequisitos

Antes de modificar los ajustes, asegúrate de que has:

* Importado la biblioteca `redsys-tpv-business-lib` en tu proyecto.
* Inicializado el TPV con éxito utilizando `InitializationRepository.initTpv()`.
* Obtenido una instancia de `SettingsRepository` (vía Dagger Hilt o instanciación manual).

---

## Control de la ventana emergente de resultado

Por defecto, el **Get Smart SDK Payment Service** puede mostrar un mensaje emergente nativo al finalizar una transacción. Puedes habilitar o deshabilitar este comportamiento para depender únicamente de la interfaz de tu aplicación para el feedback.

1. **Accede al Repositorio**: Usa tu instancia de `SettingsRepository`.
2. **Llama a `updateShowTransactionResult`**: Pasa un valor booleano a la función.
   * `true`: El servicio muestra el mensaje de resultado nativo.
   * `false`: El servicio oculta el mensaje, permitiéndote mostrar el tuyo propio.

### Ejemplo de código

```kotlin
suspend fun configureResultUi(showNativePopup: Boolean) {
    // repository is an instance of SettingsRepository
    val result = settingsRepository.updateShowTransactionResult(
        showTransactionResult = showNativePopup
    )

    if (result is RepositoryResult.Success) {
        // The boolean data confirms the new state
        println("✅ UI Preference Updated: Native popup is now ${if (result.data) "enabled" else "disabled"}")
    } else {
        println("❌ Failed to update UI preference")
    }
}
```

---

## Cambiar el idioma del servicio

Puedes actualizar el idioma utilizado por la interfaz de usuario del **Get Smart SDK Payment Service** (p. ej., para mensajes del sistema o pantallas de entrada de PIN).

```kotlin
suspend fun setServiceLanguage(lang: LanguageIso6391) {
    // repository is an instance of SettingsRepository
    val result = settingsRepository.updateLanguage(
        language = lang
    )

    if (result is RepositoryResult.Success) {
        println("✅ Language Updated to ${lang.name}")
    } else {
        println("❌ Failed to update language")
    }
}
```

---

## Próximos pasos

* [**Tokenizar Credenciales de Tarjeta**](/es/get-smart/get-smart-sdk/integration-guides/device-and-quality-assurance/tokenize-card-credentials): Aprende a gestionar tokens.