# Manage Device Settings

This guide explains how to adjust the runtime configuration of the **Get Smart SDK Payment Service** using the `SettingsRepository`. You can control user experience elements such as the native transaction result pop-up and the service language.

## Prerequisites

Before modifying settings, ensure that you have:

* Imported the `redsys-tpv-business-lib` library into your project.
* Successfully initialized the TPV using `InitializationRepository.initTpv()`.
* Obtained an instance of `SettingsRepository` (via Dagger Hilt or manual instantiation).

---

## Controlling the Transaction Result Pop-up

By default, the **Get Smart SDK Payment Service** may display a native pop-up message upon the completion of a transaction. You can enable or disable this behavior to rely solely on your application's UI for feedback.

1. **Access the Repository**: Use your instance of `SettingsRepository`.
2. **Call `updateShowTransactionResult`**: Pass a boolean value to the function.
   * `true`: The service shows the native result message.
   * `false`: The service hides the result message, allowing you to show your own.

### Code Example

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

This setting applies to future transactions executed after the method call.

</Callout>

---

## Changing the Service Language

You can update the language used by the **Get Smart SDK Payment Service** UI (e.g., for system messages or PIN entry screens).

1. **Access the Repository**: Use your instance of `SettingsRepository`.
2. **Call `updateLanguage`**: Pass a value from the `LanguageIso6391` enum.

### Code Example

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

---

## Summary

* Use `updateShowTransactionResult(false)` to suppress native success/failure screens.
* Use `updateLanguage()` to localize the service UI.
* Both methods return a `RepositoryResult<Boolean>` indicating success or failure.

## Next Steps

* [**Tokenize Card Credentials**](/en/get-smart/get-smart-sdk/integration-guides/device-and-quality-assurance/tokenize-card-credentials): Learn how to manage tokens.