[
{
"id": 21986,
"label": "Nome do app",
"name": "APP_NAME",
"value": "DTunnel VPN",
"type": "STRING",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21987,
"label": "Logo do app",
"name": "APP_LOGO",
"value": "",
"type": "IMAGE",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21988,
"label": "Imagem de fundo",
"name": "APP_BACKGROUND_IMAGE",
"value": "https://i.imgur.com/KBDrAyZ.jpg",
"type": "IMAGE",
"status": "INACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21989,
"label": "Tipo do fundo do app",
"name": "APP_BACKGROUND_TYPE",
"value": {
"options": [
{
"label": "Imagem",
"value": "IMAGE"
},
{
"label": "Cor",
"value": "COLOR"
}
],
"selected": "COLOR"
},
"type": "SELECT",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21990,
"label": "Cor de fundo",
"name": "APP_BACKGROUND_COLOR",
"value": "#000000",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21991,
"label": "Cor do card inicial",
"name": "APP_CARD_COLOR",
"value": "#ffffff10",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21992,
"label": "Raio do card inicial",
"name": "APP_CARD_RADIUS",
"value": 20,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21993,
"label": "Cor do card de status",
"name": "APP_CARD_STATUS_COLOR",
"value": "#00000070",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21994,
"label": "Raio do card de status",
"name": "APP_CARD_STATUS_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21995,
"label": "Cor do card de configurações",
"name": "APP_CARD_CONFIG_COLOR",
"value": "#0E171EC9",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21996,
"label": "Cor do fundo dos dialogs",
"name": "APP_DIALOG_BACKGROUND_COLOR",
"value": "#050C5AE4",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21997,
"label": "Cor do fundo do dialog de log",
"name": "APP_DIALOG_LOGGER_COLOR",
"value": "#080e16c7",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21998,
"label": "Cor das bordas",
"name": "APP_BORDER_COLOR",
"value": "#ffffff50",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 21999,
"label": "Cor dos inputs",
"name": "APP_INPUT_COLOR",
"value": "#00000050",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22000,
"label": "Raio dos inputs",
"name": "APP_INPUT_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22001,
"label": "Cor dos textos",
"name": "APP_TEXT_COLOR",
"value": "#FFFFFFFF",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22002,
"label": "Cor dos botões",
"name": "APP_BUTTON_COLOR",
"value": "#00000050",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22003,
"label": "Raio dos botões",
"name": "APP_BUTTON_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22004,
"label": "Cor dos icones",
"name": "APP_ICON_COLOR",
"value": "#FFFFFFFF",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22005,
"label": "Exibir modo de conexão",
"name": "APP_SHOW_CONNECTION_MODE",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22648,
"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": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22006,
"label": "Iniciar o app automaticamente ao reiniciar o dispositivo",
"name": "APP_AUTO_START",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22007,
"label": "Usar limiter de conexão",
"name": "APP_CONNECTION_LIMITER",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22008,
"label": "Usar botão de atualizações",
"name": "APP_BTN_UPDATE_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22009,
"label": "Usar botão de registros",
"name": "APP_BTN_LOGGER_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22010,
"label": "Usar botão de pagina webview",
"name": "APP_BTN_PAGE_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22011,
"label": "Ativar dialog de erros",
"name": "APP_DIALOG_ERROR_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22012,
"label": "Ativar dialog de checkuser",
"name": "APP_CHECKUSER_DIALOG_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22013,
"label": "Ativar toast de sucesso",
"name": "APP_SUCCESS_TOAST_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22014,
"label": "Ativar toast de erro",
"name": "APP_ERROR_TOAST_ENABLED",
"value": true,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22015,
"label": "Usar layout webview",
"name": "APP_LAYOUT_WEBVIEW_ENABLED",
"value": false,
"type": "BOOLEAN",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22016,
"label": "Mensagem",
"name": "APP_MESSAGE",
"value": null,
"type": "TEXT",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22017,
"label": "URL de atualização do aplicativo",
"name": "APP_UPDATE_URL",
"value": null,
"type": "URL",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22018,
"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": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22019,
"label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
"name": "APP_LAYOUT_WEBVIEW",
"value": null,
"type": "HTML",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22020,
"label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
"name": "APP_SUPPORT_BUTTON",
"value": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n\n <title>HOME</title>\n\n <style>\n :root {\n font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;\n line-height: 1.5;\n font-weight: 400;\n font-synthesis: none;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n\n --space-status-bar: 10px;\n --space-nav-bar: 33px;\n }\n\n @-webkit-keyframes onePulse {\n 0% {\n box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);\n }\n 50% {\n box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);\n }\n 100% {\n box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);\n }\n }\n\n @keyframes onePulse {\n 0% {\n box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);\n }\n 50% {\n box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);\n }\n 100% {\n box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);\n }\n }\n\n *,\n *::before,\n *::after {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n html,\n body,\n main {\n width: 100%;\n height: 100%;\n }\n\n body {\n background: transparent;\n }\n\n main {\n max-width: 650px;\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n margin: 0 auto 0 auto;\n padding: var(--space-status-bar) 10px var(--space-nav-bar) 10px;\n }\n\n section.top {\n width: 100%;\n height: auto;\n\n display: flex;\n align-items: center;\n }\n\n section.top button {\n margin-left: auto;\n padding: 3.5%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 7px;\n\n border: 0;\n border-radius: 10px;\n\n background: #00000000;\n }\n\n section.top button svg {\n color: #00000000;\n }\n\n section.top button span {\n color: #ffffff;\n font-weight: 500;\n font-size: 0.7rem;\n }\n\n section.bottom {\n width: 100%;\n height: auto;\n /* background: blue; */\n\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n section.bottom div.container-local-ip {\n width: auto;\n height: auto;\n\n display: flex;\n align-items: center;\n\n padding: 10px 15px;\n\n border-radius: 10px;\n\n background: #000000;\n\n transition: all 0.3s ease 0.1s;\n }\n\n section.bottom div.container-local-ip span {\n width: 100%;\n height: auto;\n\n color: #ffffff;\n font-weight: 500;\n font-size: 0.8rem;\n }\n\n section.bottom div.container-tools {\n width: 100%;\n height: auto;\n\n display: flex;\n justify-content: center;\n\n position: relative;\n }\n\n section.bottom div.container-tools button {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n\n margin: 7% 0px 0px 0px;\n padding: 10px 6%;\n\n border: 0;\n border-radius: 10px;\n\n box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);\n\n transition: all linear;\n\n background: #000000;\n }\n\n section.bottom div.container-tools button svg {\n color: #ffffff;\n }\n\n section.bottom div.container-tools button span {\n color: #ffffff;\n }\n\n section.bottom div.container-tools ul {\n width: auto;\n min-width: 90%;\n max-width: 300px;\n height: 55px;\n\n display: flex;\n align-items: center;\n justify-content: space-around;\n gap: 5px;\n\n position: absolute;\n bottom: 90%;\n\n padding: 0 5px;\n\n border-radius: 50px;\n box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);\n\n opacity: 0;\n transform: scale(0);\n transform-origin: bottom center;\n\n transition: all 0.3s ease 0.1s;\n\n background: rgba(255, 255, 255, 0.2);\n }\n\n section.bottom div.container-tools ul li {\n width: 40px;\n height: 40px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border: 1px solid #ffffff;\n border-radius: 50%;\n\n box-shadow: 0px 0px 10px 0px rgba(255, 255, 255, 0.5);\n\n background: rgba(255, 255, 255, 0.5);\n }\n\n section.bottom div.container-tools ul li svg {\n color: #ffffff;\n }\n\n section.bottom div.container-tools.active button {\n -webkit-animation: onePulse 0.6s forwards linear;\n animation: onePulse 0.6s forwards linear;\n }\n\n section.bottom div.container-tools.active ul {\n opacity: 1;\n transform: scale(1);\n }\n\n .hidden {\n opacity: 0;\n visibility: hidden;\n }\n\n .display-none {\n display: none;\n }\n </style>\n </head>\n <body>\n <main>\n <section class=\"top\">\n <button type=\"button\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-git\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M15.698 7.287 8.712.302a1.03 1.03 0 0 0-1.457 0l-1.45 1.45 1.84 1.84a1.223 1.223 0 0 1 1.55 1.56l1.773 1.774a1.224 1.224 0 0 1 1.267 2.025 1.226 1.226 0 0 1-2.002-1.334L8.58 5.963v4.353a1.226 1.226 0 1 1-1.008-.036V5.887a1.226 1.226 0 0 1-.666-1.608L5.093 2.465l-4.79 4.79a1.03 1.03 0 0 0 0 1.457l6.986 6.986a1.03 1.03 0 0 0 1.457 0l6.953-6.953a1.031 1.031 0 0 0 0-1.457\"\n />\n </svg>\n\n <span id=\"version-value\">Buscando versão...</span>\n </button>\n </section>\n\n <section class=\"bottom\">\n <div class=\"container-local-ip\">\n <span id=\"local-ip\">Procurando IP...</span>\n </div>\n\n <div class=\"container-tools\">\n <button type=\"button\" title=\"Ferramentas\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-nut\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"m11.42 2 3.428 6-3.428 6H4.58L1.152 8 4.58 2h6.84zM4.58 1a1 1 0 0 0-.868.504l-3.428 6a1 1 0 0 0 0 .992l3.428 6A1 1 0 0 0 4.58 15h6.84a1 1 0 0 0 .868-.504l3.429-6a1 1 0 0 0 0-.992l-3.429-6A1 1 0 0 0 11.42 1H4.58z\"\n />\n <path\n d=\"M6.848 5.933a2.5 2.5 0 1 0 2.5 4.33 2.5 2.5 0 0 0-2.5-4.33zm-1.78 3.915a3.5 3.5 0 1 1 6.061-3.5 3.5 3.5 0 0 1-6.062 3.5z\"\n />\n </svg>\n\n <span>Ferramentas</span>\n </button>\n\n <ul>\n <li id=\"checkuser\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-calendar2-week\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM2 2a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H2z\"\n />\n <path\n d=\"M2.5 4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5H3a.5.5 0 0 1-.5-.5V4zM11 7.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1zm-3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1zm-5 3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1zm3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1z\"\n />\n </svg>\n </li>\n\n <li id=\"battery\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-battery-half\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M2 6h5v4H2V6z\" />\n <path\n d=\"M2 4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H2zm10 1a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h10zm4 3a1.5 1.5 0 0 1-1.5 1.5v-3A1.5 1.5 0 0 1 16 8z\"\n />\n </svg>\n </li>\n\n <li id=\"apn\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-wrench-adjustable-circle\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M12.496 8a4.491 4.491 0 0 1-1.703 3.526L9.497 8.5l2.959-1.11c.027.2.04.403.04.61Z\"\n />\n <path\n d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1 0a7 7 0 1 0-13.202 3.249l1.988-1.657a4.5 4.5 0 0 1 7.537-4.623L7.497 6.5l1 2.5 1.333 3.11c-.56.251-1.18.39-1.833.39a4.49 4.49 0 0 1-1.592-.29L4.747 14.2A7 7 0 0 0 15 8Zm-8.295.139a.25.25 0 0 0-.288-.376l-1.5.5.159.474.808-.27-.595.894a.25.25 0 0 0 .287.376l.808-.27-.595.894a.25.25 0 0 0 .287.376l1.5-.5-.159-.474-.808.27.596-.894a.25.25 0 0 0-.288-.376l-.808.27.596-.894Z\"\n />\n </svg>\n </li>\n\n <li id=\"clean\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-trash3\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z\"\n />\n </svg>\n </li>\n\n <li id=\"speedtest\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-speedometer2\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M8 4a.5.5 0 0 1 .5.5V6a.5.5 0 0 1-1 0V4.5A.5.5 0 0 1 8 4zM3.732 5.732a.5.5 0 0 1 .707 0l.915.914a.5.5 0 1 1-.708.708l-.914-.915a.5.5 0 0 1 0-.707zM2 10a.5.5 0 0 1 .5-.5h1.586a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 10zm9.5 0a.5.5 0 0 1 .5-.5h1.5a.5.5 0 0 1 0 1H12a.5.5 0 0 1-.5-.5zm.754-4.246a.389.389 0 0 0-.527-.02L7.547 9.31a.91.91 0 1 0 1.302 1.258l3.434-4.297a.389.389 0 0 0-.029-.518z\"\n />\n <path\n fill-rule=\"evenodd\"\n d=\"M0 10a8 8 0 1 1 15.547 2.661c-.442 1.253-1.845 1.602-2.932 1.25C11.309 13.488 9.475 13 8 13c-1.474 0-3.31.488-4.615.911-1.087.352-2.49.003-2.932-1.25A7.988 7.988 0 0 1 0 10zm8-7a7 7 0 0 0-6.603 9.329c.203.575.923.876 1.68.63C4.397 12.533 6.358 12 8 12s3.604.532 4.923.96c.757.245 1.477-.056 1.68-.631A7 7 0 0 0 8 3z\"\n />\n </svg>\n </li>\n </ul>\n </div>\n </section>\n </main>\n\n <!-- FUNÇÕES DO APP -->\n <script>\n const appStatusBar = () => DtGetStatusBarHeight.execute()\n const appNavBar = () => DtGetNavigationBarHeight.execute()\n\n const appLocalIp = () => Android.getLocalIP()\n\n const appBattery = () => DtIgnoreBatteryOptimizations.execute()\n const appApn = () => DtStartApnActivity.execute()\n const appLink = (value) => DtStartWebViewActivity.execute(value)\n const appOpenBrowser = (url) => DtOpenExternalUrl.execute(url)\n const appClean = () => DtCleanApp.execute()\n const appCheckUser = () => DtStartCheckUser.execute()\n const appGetConfigVersion = () =>\n DtGetLocalConfigVersion.execute() ?? \"1.0\"\n </script>\n\n <!-- DOM WRAPPER -->\n <script>\n const Dom = (selector) => {\n const _elements = document.querySelectorAll(selector)\n\n const wrapper = {\n on(listeners) {\n for (const [event, listener] of Object.entries(listeners)) {\n _elements.forEach((element) => {\n element.addEventListener(event, listener)\n })\n }\n\n return wrapper\n },\n toggleClass: (token, force) => {\n _elements.forEach((element) => {\n element.classList.toggle(token, force)\n })\n\n return wrapper\n },\n html(value) {\n _elements.forEach((element) => (element.innerHTML = value))\n return wrapper\n },\n }\n\n return wrapper\n }\n </script>\n\n <!-- VÁRIAVEIS -->\n <script>\n const version = Dom(\"#version-value\")\n const containerLocalIp = Dom(\"section.bottom div.container-local-ip\")\n const localIp = Dom(\"#local-ip\")\n\n const containerTools = Dom(\"section.bottom div.container-tools\")\n const toolsButton = Dom(\"section.bottom div.container-tools button\")\n const tools = Dom(\"section.bottom div.container-tools ul\")\n\n const checkuser = Dom(\"#checkuser\")\n const battery = Dom(\"#battery\")\n const apn = Dom(\"#apn\")\n const CleanDataApp = Dom(\"#clean\")\n const speedtest = Dom(\"#speedtest\")\n </script>\n\n <!-- FUNÇÕES -->\n <script>\n document.documentElement.style.setProperty(\n \"--space-status-bar\",\n `${appStatusBar() + 10}px`\n )\n\n document.documentElement.style.setProperty(\n \"--space-nav-bar\",\n `${appNavBar() + 10}px`\n )\n\n const toggleTools = () => {\n containerLocalIp.toggleClass(\"hidden\")\n containerTools.toggleClass(\"active\")\n }\n\n const carrierLocalIp = () => {\n setInterval(() => {\n const carrierLocalIp = appLocalIp()\n\n if (!carrierLocalIp) {\n localIp.html(\"Procurando IP...\")\n } else if (carrierLocalIp === \"127.0.0.1\") {\n localIp.html(\"NO IP\")\n } else {\n localIp.html(`${carrierLocalIp}`)\n }\n }, 500)\n }\n const configVersion = () => {\n setInterval(() => {\n const getAtualVersion = appGetConfigVersion()\n\n version.html(`VERSÃO: ${getAtualVersion}`)\n }, 1000)\n }\n\n carrierLocalIp()\n configVersion()\n </script>\n\n <!-- AÇÕES -->\n <script>\n toolsButton.on({ click: () => toggleTools() })\n\n checkuser.on({ click: () => appCheckUser() })\n battery.on({ click: () => appBattery() })\n apn.on({ click: () => appApn() })\n CleanDataApp.on({ click: () => appClean() })\n speedtest.on({ click: () => appLink(\"https://fast.com\") })\n </script>\n </body>\n</html>\n",
"type": "HTML",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
},
{
"id": 22021,
"label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
"name": "APP_WEB_VIEW",
"value": null,
"type": "HTML",
"status": "ACTIVE",
"user_id": "72220ba2-dafc-4ba7-b4ec-f98f0cf6b60b"
}
]