# Gerenciar Configurações do Dispositivo

Este guia explica como ajustar a configuração em tempo de execução do **Get Smart SDK Payment Service** utilizando o `SettingsRepository`. Você pode controlar elementos da experiência do usuário, como o pop-up nativo de resultado da transação e o idioma do serviço.

## Pré-requisitos

Antes de modificar as configurações, certifique-se de que você:

* Importou a biblioteca `redsys-tpv-business-lib` em seu projeto.
* Inicializou o TPV com sucesso usando `InitializationRepository.initTpv()`.
* Obteve uma instância de `SettingsRepository` (via Dagger Hilt ou instanciação manual).

---

## Controlando o Pop-up de Resultado da Transação

Por padrão, o **Get Smart SDK Payment Service** pode exibir uma mensagem pop-up nativa ao concluir uma transação. Você pode habilitar ou desabilitar esse comportamento para depender exclusivamente da interface do seu aplicativo para fornecer feedback.

1. **Acesse o Repositório**: Use sua instância de `SettingsRepository`.
2. **Chame `updateShowTransactionResult`**: Passe um valor booleano para a função.
   * `true`: O serviço mostra a mensagem de resultado nativa.
   * `false`: O serviço oculta a mensagem, permitindo que você mostre a sua própria.

### Exemplo 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")
    }
}
```

<Callout type="note">

Esta configuração se aplica a transações futuras executadas após a chamada do método.

</Callout>

---

## Alterando o Idioma do Serviço

Você pode atualizar o idioma utilizado pela interface do **Get Smart SDK Payment Service** (ex: para mensagens do sistema ou telas de inserção de PIN).

1. **Acesse o Repositório**: Use sua instância de `SettingsRepository`.
2. **Chame `updateLanguage`**: Passe um valor do enum `LanguageIso6391`.

### Exemplo de Código

```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")
    }
}
```

---

## Resumo

* Use `updateShowTransactionResult(false)` para suprimir as telas nativas de sucesso/erro.
* Use `updateLanguage()` para localizar a interface do serviço.
* Ambos os métodos retornam um `RepositoryResult<Boolean>` indicando o sucesso da operação.

## Próximos Passos

* [**Tokenizar Credenciais de Cartão**](/pt/get-smart/get-smart-sdk/integration-guides/device-and-quality-assurance/tokenize-card-credentials): Saiba como gerenciar tokens para pagamentos recorrentes.