[
    {
        "id": 4663,
        "label": "Nome do app",
        "name": "NETGO PRO",
        "value": null,
        "type": "STRING",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4664,
        "label": "Logo do app",
        "name": "APP_LOGO",
        "value": "https://i.ibb.co/HxrwYM0/Logo-Maker-Ca-1700539192171.png",
        "type": "IMAGE",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4665,
        "label": "Imagem de fundo",
        "name": "APP_BACKGROUND_IMAGE",
        "value": "https://i.ibb.co/p3Dd6MV/FB-IMG-1696985078357.jpg",
        "type": "IMAGE",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4666,
        "label": "Tipo do fundo do app",
        "name": "APP_BACKGROUND_TYPE",
        "value": {
            "options": [
                {
                    "label": "Imagem",
                    "value": "IMAGE"
                },
                {
                    "label": "Cor",
                    "value": "COLOR"
                }
            ],
            "selected": "IMAGE"
        },
        "type": "SELECT",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4667,
        "label": "Cor de fundo",
        "name": "APP_BACKGROUND_COLOR",
        "value": "#292D32C7",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4668,
        "label": "Cor do card inicial",
        "name": "APP_CARD_COLOR",
        "value": "#00000021",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12987,
        "label": "Raio do card inicial",
        "name": "APP_CARD_RADIUS",
        "value": 35,
        "type": "INTEGER",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12988,
        "label": "Cor do card de status",
        "name": "APP_CARD_STATUS_COLOR",
        "value": "#00000000",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12989,
        "label": "Raio do card de status",
        "name": "APP_CARD_STATUS_RADIUS",
        "value": 35,
        "type": "INTEGER",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4669,
        "label": "Cor do card de configurações",
        "name": "APP_CARD_CONFIG_COLOR",
        "value": "00000000",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4670,
        "label": "Cor do fundo dos dialogs",
        "name": "APP_DIALOG_BACKGROUND_COLOR",
        "value": "#00000021",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12990,
        "label": "Cor do fundo do dialog de log",
        "name": "APP_DIALOG_LOGGER_COLOR",
        "value": "#00000000",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4671,
        "label": "Cor das bordas",
        "name": "APP_BORDER_COLOR",
        "value": "#00000000",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12991,
        "label": "Cor dos inputs",
        "name": "APP_INPUT_COLOR",
        "value": "#000000b0",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12992,
        "label": "Raio dos inputs",
        "name": "APP_INPUT_RADIUS",
        "value": 35,
        "type": "INTEGER",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4672,
        "label": "Cor dos textos",
        "name": "APP_TEXT_COLOR",
        "value": "#FFFFFFFF",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4673,
        "label": "Cor dos botões",
        "name": "APP_BUTTON_COLOR",
        "value": "#000000b0",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12993,
        "label": "Raio dos botões",
        "name": "APP_BUTTON_RADIUS",
        "value": 35,
        "type": "INTEGER",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4674,
        "label": "Cor dos icones",
        "name": "APP_ICON_COLOR",
        "value": "#FFFFFFFF",
        "type": "COLOR",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4675,
        "label": "Exibir modo de conexão",
        "name": "APP_SHOW_CONNECTION_MODE",
        "value": false,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 23833,
        "label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
        "name": "APP_CONFIG_AUTO_UPDATE",
        "value": true,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4676,
        "label": "Iniciar o app automaticamente ao reiniciar o dispositivo",
        "name": "APP_AUTO_START",
        "value": false,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12994,
        "label": "Usar limiter de conexão",
        "name": "APP_CONNECTION_LIMITER",
        "value": false,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12995,
        "label": "Usar botão de atualizações",
        "name": "APP_BTN_UPDATE_ENABLED",
        "value": true,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12996,
        "label": "Usar botão de registros",
        "name": "APP_BTN_LOGGER_ENABLED",
        "value": true,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 12997,
        "label": "Usar botão de pagina webview",
        "name": "APP_BTN_PAGE_ENABLED",
        "value": false,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 23834,
        "label": "Ativar dialog de erros",
        "name": "APP_DIALOG_ERROR_ENABLED",
        "value": true,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 23835,
        "label": "Ativar dialog de checkuser",
        "name": "APP_CHECKUSER_DIALOG_ENABLED",
        "value": true,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 23836,
        "label": "Ativar toast de sucesso",
        "name": "APP_SUCCESS_TOAST_ENABLED",
        "value": true,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 23837,
        "label": "Ativar toast de erro",
        "name": "APP_ERROR_TOAST_ENABLED",
        "value": true,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 23838,
        "label": "Usar layout webview",
        "name": "APP_LAYOUT_WEBVIEW_ENABLED",
        "value": false,
        "type": "BOOLEAN",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4677,
        "label": "Mensagem",
        "name": "APP_MESSAGE",
        "value": null,
        "type": "TEXT",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4679,
        "label": "URL de atualização do aplicativo",
        "name": "APP_UPDATE_URL",
        "value": null,
        "type": "URL",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4678,
        "label": "Tipo de mensagem",
        "name": "APP_MESSAGE_TYPE",
        "value": {
            "options": [
                {
                    "label": "Alerta",
                    "value": "ALERT"
                },
                {
                    "label": "Informação",
                    "value": "INFO"
                },
                {
                    "label": "Boas vindas",
                    "value": "WELCOME"
                },
                {
                    "label": "Sem mensagem",
                    "value": "NONE"
                }
            ],
            "selected": "NONE"
        },
        "type": "SELECT",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 23839,
        "label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
        "name": "APP_LAYOUT_WEBVIEW",
        "value": null,
        "type": "HTML",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4681,
        "label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
        "name": "APP_SUPPORT_BUTTON",
        "value": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \t<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css\">\n    <title>Guardian</title>\n    <style>\n        body {\n            display: flex;\n            height: calc(100vh - 4.2rem);\n            align-items: flex-end;\n            justify-content: center;\n            overflow: hidden;\n            font-family: sans-serif;\n            font-size: 12px;\n            color: #656565;\n            position: relative;\n            margin: 0 auto;\n        }\n\n        .menu {\n            background: #000000b0;\n            border-radius: 50px;\n            height: 50px;\n            width: 50px;\n            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);\n            position: relative;\n            overflow: hidden;\n            transition: all 1.3s cubic-bezier(0.01, 0.41, 0.63, 1.2);\n        }\n\n        ul {\n            margin: 0;\n            padding: 0;\n            visibility: hidden;\n            position: absolute;\n            display: flex;\n            justify-content: space-between;\n            left: 80%;\n            width: 70%;\n            top: 50%;\n            height: 100%;\n            transform: translate(0, -50%);\n            transition: all 0.7s ease 0.1s;\n        }\n\n        li {\n            list-style: none;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        li span {\n            transform: rotateY(50deg);\n            opacity: 0;\n            transition: opacity 0.9s linear, transform 1.2s linear;\n        }\n\n        button {\n            border: none;\n            background: transparent;\n            width: 50px;\n            height: 50px;\n            position: absolute;\n            left: 0;\n            transition: all 1s ease;\n        }\n\n        button svg {\n            stroke: #000000b0;\n        }\n\n        button:before {\n            position: absolute;\n            content: '';\n            height: 4px;\n            background: #fff;\n            transform: rotate(180deg);\n            left: 0;\n            right: 0;\n            margin: 0 auto;\n            top: 35%;\n            width: 40%;\n            transition: all 1.1s cubic-bezier(0.25, -0.09, 0.72, 1.47);\n        }\n\n        button:after {\n            position: absolute;\n            content: '';\n            height: 4px;\n            background: #fff;\n            left: 0;\n            right: 0;\n            transform: rotate(-180deg);\n            margin: 0 auto;\n            top: 55%;\n            width: 40%;\n            transition: all 1.1s cubic-bezier(0.25, -0.09, 0.72, 1.47);\n        }\n\n        .active {\n            width: 400px;         \n            transition: all 1.3s cubic-bezier(0.01, 0.41, 0.63, 1.2);\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        .active ul {\n            visibility: visible;\n            left: 20px;\n            transition: all 1s ease 0.1s;\n        }\n\n        .active li span {\n            transform: rotateY(0);\n            opacity: 1;\n            transition: opacity 0.9s linear, transform 1.2s linear;\n        }\n\n        .active button {\n            left: 85%;\n            display: flex;\n            align-items: center;\n            transition: all 1s ease;\n        }\n\n        .active button:before {\n            transform: rotate(-45deg);\n            top: 50%;\n            transition: all 0.5s cubic-bezier(0.25, -0.09, 0.72, 1.47);\n        }\n\n        .active button:after {\n            transform: rotate(45deg);\n            top: 50%;\n            transition: all 0.5s cubic-bezier(0.25, -0.09, 0.72, 1.47);\n        }\n\n        .size {\n            color: var(--icon-color);\n            filter: drop-shadow(0 0 0.2rem #000000b0);\n            width: 2rem;\n            height: 2rem;\n\n        }\n\n        .item {\n            display: flex;\n            flex-direction: column;\n            justify-content: center;\n            align-items: center;\n        }\n\n        .item span {\n            color: #FFF;\n            font-weight: bold;\n        }\n        \n        .esquerda {\n\tdisplay: flex;\n\tgap: 0.5rem;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 10px;\n\tcolor: #fff;\n\tfont-weight: bold;\n\tfont-size: 1rem;\n\t}\n\t\n\t.direita {\n\tdisplay: flex;\n\tposition: absolute;\n\ttop: 0;\n\tright: 10px;\n\tcolor: #fff;\n\tfont-weight: bold;\n\tfont-size: 1rem;\n\t}\n\t\n\t#txtbtn.color {\n  color: green;\n    </style>\n</head>\n\n<body>\n    <div class=\"menu\">\n        <button></button>\n        <ul>\n            <li class=\"item\" onclick=\"DtStartCheckUser.execute()\">\n                <img class=\"size\" src=\"https://i.imgur.com/jd4emEU.png\">\n                <span class=\"text-item\">VALIDADE</span>\n            </li>            \n            <li class=\"item\" onclick=\"DtIgnoreBatteryOptimizations.execute()\">\n                <img class=\"size\" src=\"https://i.imgur.com/ThuS54K.png\">\n                <span class=\"text-item\">BATERIA</span>\n            </li>\n            <li class=\"item\" onclick=\"DtStartApnActivity.execute()\">\n                <img class=\"size\" src=\"https://i.imgur.com/s12CcMj.png\">\n                <span class=\"text-item\">APN</span>\n            </li>\n            <li class=\"item\">\n                <img class=\"size\" src=\"https://i.imgur.com/pAq7jVq.png\" id=\"btnHotSpot\">\n                <span id=\"txtbtn\" class=\"text-item\">HOTSPOT</span>\n            </li>\n        </ul>\n    </div>    \n    <script>\n        var input = document.querySelector('.menu');\n        var button = document.querySelector('button');\n        button.addEventListener('click', function (e) {\n            e.preventDefault();\n            input.classList.toggle('active');\n        })\n    </script>\n    <script>\n        class AndroidMock {\n            static getLocalIP() {\n                return '192.168.0.1';\n            }\n    \n            static getConfig() {\n                return JSON.stringify({\n                    urlCheckUser: 'URLAQUI'\n                });\n            }\n    \n            static getNetworkName() {\n                return 'REDE';\n            }\n    \n            static openRadioInfo() {\n                console.log('openRadioInfo');\n            }\n        }\n    </script>\n    \n    <script>\n        function showLocalIP(android) {\n            console.log(android.getNetworkName());\n            document.getElementById('name').innerHTML = ' ' + android.getNetworkName() + ':';\n            document.getElementById('ip').innerHTML = android.getLocalIP();\n    \n            setInterval(() => {\n                document.getElementById('name').innerHTML =\n                    ' ' + android.getNetworkName() + ':';\n                document.getElementById('ip').innerHTML = android.getLocalIP();\n            }, 2000)\n        }\n    \n        function showCheckUser(android) {\n            const config = JSON.parse(window?.DtGetDefaultConfig?.execute() ?? android.getConfig());\n    \n            const urlCheckUser = new URL(config.url_check_user);\n            urlCheckUser.protocol = 'ws:';\n            const socket = new WebSocket(urlCheckUser);\n            socket.onopen = function (e) {\n                socket.send(JSON.stringify({\n                    action: 'all',\n                    data: {}\n                }));\n            };\n    \n            socket.onmessage = function (event) {\n                const data = JSON.parse(event.data);\n                if (data.total === undefined)\n                    return;\n    \n                const total = data.total;\n                document.getElementById('total').innerHTML = ' ' + String(total).padStart(2, '0');\n                socket.close();\n            };\n        }\n    \n    \n    \n        window.onload = function () {\n            const android = window.Android || AndroidMock;\n            showLocalIP(android);\n            showCheckUser(android);\n        }\n        \n    const ms = `${window?.DtGetStatusBarHeight?.execute() ?? '30'}px`\n     \n    document.getElementById(\"topo\").style.marginTop = ms;\n    \n    document.getElementById(\"topo1\").style.marginTop = ms;\n    </script>\n    <script>\n        const startHotSpot = () => {\n            DtStartHotSpotService.execute();\n            txtbtn.textContent = 'HOTSPOT';\n            txtbtn.classList.add('color'); // Adiciona a classe para o texto ficar verde\n        }\n\n        const stopHotSpot = () => {\n            DtStopHotSpotService.execute();  \n            txtbtn.textContent = 'HOTSPOT';\n            txtbtn.classList.remove('color'); // Remove a classe para o texto não ficar verde\n        }\n\n        const toggleHotSpot = () => {\n            const hotSpotStatus = window?.DtGetStatusHotSpotService?.execute() ?? 'STOPPED';\n            hotSpotStatus == 'RUNNING' ? stopHotSpot() : startHotSpot();\n        }\n\n        const btnHotSpot = document.querySelector(\"#btnHotSpot\");\n        btnHotSpot.addEventListener('click', toggleHotSpot);\n\n        const hotSpotStatus = window?.DtGetStatusHotSpotService?.execute() ?? 'STOPPED';       \n        if (hotSpotStatus == 'RUNNING') {\n  txtbtn.textContent = 'HOTSPOT';\n  txtbtn.classList.add('color'); // Adiciona a classe para o texto ficar verde\n} else {\n  txtbtn.textContent = 'HOTSPOT';\n  txtbtn.classList.remove('color'); // Remove a classe para o texto não ficar verde\n}\n    </script>\n</body>\n\n</html>",
        "type": "HTML",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    },
    {
        "id": 4682,
        "label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
        "name": "APP_WEB_VIEW",
        "value": null,
        "type": "HTML",
        "status": "ACTIVE",
        "user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
    }
]