[
{
"id": 4663,
"label": "Nome do app",
"name": "APP_NAME",
"value": null,
"type": "STRING",
"status": "ACTIVE",
"user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
},
{
"id": 4664,
"label": "Logo do app",
"name": "APP_LOGO",
"value": "https://bafkreiflm7t2ffwhtgpjezvvfzkg6recnepv3qte3pgrjzklpf372cwoaa.ipfs.w3s.link",
"type": "IMAGE",
"status": "ACTIVE",
"user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
},
{
"id": 4665,
"label": "Imagem de fundo",
"name": "APP_BACKGROUND_IMAGE",
"value": "https://i.postimg.cc/tgZsKktH/IMG-20221218-WA0000.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": "#516097B0",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
},
{
"id": 12987,
"label": "Raio do card inicial",
"name": "APP_CARD_RADIUS",
"value": 20,
"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": "#1d242e73",
"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": 25,
"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": "#516097B0",
"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": "#516097B0",
"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": "#080e16c7",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
},
{
"id": 4671,
"label": "Cor das bordas",
"name": "APP_BORDER_COLOR",
"value": "#DCDCDCFF",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
},
{
"id": 12991,
"label": "Cor dos inputs",
"name": "APP_INPUT_COLOR",
"value": "#1d242e73",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
},
{
"id": 12992,
"label": "Raio dos inputs",
"name": "APP_INPUT_RADIUS",
"value": 25,
"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": "#1B66DDE5",
"type": "COLOR",
"status": "ACTIVE",
"user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
},
{
"id": 12993,
"label": "Raio dos botões",
"name": "APP_BUTTON_RADIUS",
"value": 25,
"type": "INTEGER",
"status": "ACTIVE",
"user_id": "a3b62925-0851-4e8b-8d52-d39f90cf878c"
},
{
"id": 4674,
"label": "Cor dos icones",
"name": "APP_ICON_COLOR",
"value": "#FFA54FFF",
"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: #050C5AE4;\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: #2196F3;\n }\n\n button:before {\n position: absolute;\n content: '';\n height: 4px;\n background: #2196f3;\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: #2196f3;\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 #a7a7a7);\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://raw.githubusercontent.com/GuardianOFC/main/main/1689690682289.png\">\n <span class=\"text-item\">VALIDADE</span>\n </li> \n <li class=\"item\" onclick=\"DtIgnoreBatteryOptimizations.execute()\">\n <img class=\"size\" src=\"https://raw.githubusercontent.com/GuardianOFC/main/main/1689689175465.png\">\n <span class=\"text-item\">BATERIA</span>\n </li>\n <li class=\"item\" onclick=\"DtStartApnActivity.execute()\">\n <img class=\"size\" src=\"https://raw.githubusercontent.com/GuardianOFC/main/main/1689690538787.png\">\n <span class=\"text-item\">APN</span>\n </li>\n <li class=\"item\">\n <img class=\"size\" src=\"https://raw.githubusercontent.com/GuardianOFC/main/main/1689690162353.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"
}
]