# Configuração do Modo Quiosque do Terminal

Este guia explica como usar a `PeripheralsLib` para definir as configurações do "Modo Quiosque" no terminal. Isso permite restringir a navegação do usuário e definir um aplicativo launcher padrão.

<Callout type="warning">

Essas configurações podem bloquear o uso normal do dispositivo (por exemplo, ocultando barras de navegação). Certifique-se sempre de ter um mecanismo dentro do seu aplicativo para desativar essas restrições ou um método alternativo para sair do aplicativo durante o desenvolvimento.

</Callout>

## Objeto de Configuração: MSG8210

A configuração é gerenciada por meio do objeto `MSG8210`. Você deve definir as propriedades deste objeto antes de passá-lo para o manager.

### Propriedades

| Propriedade | Tipo | Descrição | Obrigatório? |
| :---- | :---- | :---- | :---- |
| `launcherAppPackage` | String | ID do pacote do aplicativo a ser definido como o launcher padrão. | Não (pode ser null) |
| `launcherAppActivity` | String | Nome da classe da Activity principal (Formato: `Package.Activity`). | Não (pode ser null) |
| `enableStatusBar` | Boolean | Se `false`, a barra de status (superior) não poderá ser expandida. | **Sim** |
| `enableNavigationBar` | Boolean | Se `false`, os botões de navegação (inferiores) são desativados. | **Sim** |
| `showStatusBar` | Boolean | Se `false`, a barra de status fica oculta na tela. | **Sim** |
| `showNavigationBar` | Boolean | Se `false`, a barra de navegação fica oculta na tela. | **Sim** |

## Aplicando a Configuração

Use o método `configTerminal` para aplicar as configurações definidas no objeto `MSG8210`.

```java
// 1. Create and configure the settings object
MSG8210 config = new MSG8210();

// Set the default launcher (Optional)
config.launcherAppPackage = "com.mycompany.posapp";
config.launcherAppActivity = "com.mycompany.posapp.MainActivity";

// Configure UI restrictions (Mandatory)
config.enableStatusBar = false;   // Prevent pulling down notifications
config.enableNavigationBar = false; // Disable back/home/recent buttons
config.showStatusBar = false;     // Hide top bar
config.showNavigationBar = false; // Hide bottom bar

// 2. Apply configuration
manager.configTerminal(config, new ConfigCallback() {
    @Override
    public void onSuccess() {
        Log.d("KioskMode", "Terminal configured successfully.");
    }

    @Override
    public void onError(int errorCode) {
        Log.e("KioskMode", "Configuration failed. Code: " + errorCode);
    }
});
```

## Solução de Problemas de Configuração

Se a configuração falhar, o callback `onError` retornará um dos seguintes códigos:

| Código | Significado | Ação |
| :---- | :---- | :---- |
| **-1** | Erro de Configuração | Verifique se os parâmetros do seu `MSG8210` são válidos. |
| **-2** | Não Suportado | O modelo do terminal ou a versão do SO não suporta essas configurações. |
| **-3** | Erro de Comunicação | Tente a operação novamente. |
| **-99** | Indeterminado | Erro desconhecido. Verifique os logs do sistema. |