[
{
"id": 22166,
"label": "Nome do aplicativo",
"nome": "APP_NAME",
"valor": nulo,
"tipo": "STRING",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22167,
"label": "Logotipo do aplicativo",
"nome": "APP_LOGO",
"valor": "https://i.ibb.co/j4Q48sG/DT040a9i8j.png",
"tipo": "IMAGEM",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22168,
"label": "Imagem de fundo",
"nome": "APP_BACKGROUND_IMAGE",
"valor": nulo,
"tipo": "IMAGEM",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22169,
"label": "Tipo de fundo do app",
"nome": "APP_BACKGROUND_TYPE",
"valor": {
"opções": [
{
"label": "Imagem",
"valor": "IMAGEM"
},
{
"rótulo": "Cor",
"valor": "COR"
}
],
"selecionado": "COR"
},
"tipo": "SELECIONAR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22170,
"label": "Cor de fundo",
"nome": "APP_BACKGROUND_COLOR",
"valor": "#080e16c7",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22171,
"label": "Cor do cartão inicial",
"nome": "APP_CARD_COLOR",
"valor": "#1d242e73",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22172,
"label": "Raio do cartão inicial",
"nome": "APP_CARD_RADIUS",
"valor": 20,
"tipo": "INTEIRO",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22173,
"label": "Cor do cartão de status",
"nome": "APP_CARD_STATUS_COLOR",
"valor": "#1d242e73",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22174,
"label": "Raio do cartão de status",
"nome": "APP_CARD_STATUS_RADIUS",
"valor": 25,
"tipo": "INTEIRO",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22175,
"label": "Cor do cartão de configurações",
"nome": "APP_CARD_CONFIG_COLOR",
"valor": "#4298e182",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22176,
"label": "Cor do fundo dos diálogos",
"nome": "APP_DIALOG_BACKGROUND_COLOR",
"valor": "#4298e182",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22177,
"label": "Cor do fundo do diálogo de log",
"nome": "APP_DIALOG_LOGGER_COLOR",
"valor": "#4298e182",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22178,
"label": "Cor das bordas",
"nome": "APP_BORDER_COLOR",
"valor": "#1d242e73",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22179,
"label": "Cor dos inputs",
"nome": "APP_INPUT_COLOR",
"valor": "#1d242e73",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22180,
"label": "Raio dos inputs",
"nome": "APP_INPUT_RADIUS",
"valor": 25,
"tipo": "INTEIRO",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22181,
"label": "Cor dos textos",
"nome": "APP_TEXT_COLOR",
"valor": "#FFFFFFFF",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22182,
"label": "Cor dos botões",
"nome": "APP_BUTTON_COLOR",
"valor": "#1d242e73",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22183,
"label": "Raio dos botões",
"nome": "APP_BUTTON_RADIUS",
"valor": 25,
"tipo": "INTEIRO",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22184,
"label": "Cor dos ícones",
"nome": "APP_ICON_COLOR",
"valor": "#FFFFFFFF",
"tipo": "COR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22185,
"label": "Exibir modo de conexão",
"nome": "APP_SHOW_CONNECTION_MODE",
"valor": verdadeiro,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22871,
"label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
"nome": "APP_CONFIG_AUTO_UPDATE",
"valor": verdadeiro,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22186,
"label": "Iniciar o aplicativo automaticamente ao reiniciar o dispositivo",
"nome": "APP_AUTO_START",
"valor": falso,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22187,
"label": "Usar limitador de conexão",
"nome": "APP_CONNECTION_LIMITER",
"valor": falso,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22188,
"label": "Usar botão de atualizações",
"nome": "APP_BTN_UPDATE_ENABLED",
"valor": falso,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22189,
"label": "Usar botão de registros",
"nome": "APP_BTN_LOGGER_ENABLED",
"valor": falso,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22190,
"label": "Usar botão de página webview",
"nome": "APP_BTN_PAGE_ENABLED",
"valor": falso,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22191,
"label": "Ativar caixa de diálogo de erros",
"nome": "APP_DIALOG_ERROR_ENABLED",
"valor": falso,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22192,
"label": "Ativar diálogo de checkuser",
"nome": "APP_CHECKUSER_DIALOG_ENABLED",
"valor": falso,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22193,
"label": "Ativar brinde de sucesso",
"nome": "APP_SUCCESS_TOAST_ENABLED",
"valor": verdadeiro,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22194,
"label": "Ativar brinde de erro",
"nome": "APP_ERROR_TOAST_ENABLED",
"valor": falso,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22195,
"label": "Usar layout webview",
"nome": "APP_LAYOUT_WEBVIEW_ENABLED",
"valor": verdadeiro,
"tipo": "BOOLEAN",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22196,
"label": "Mensagem",
"nome": "APP_MESSAGE",
"valor": nulo,
"tipo": "TEXTO",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22197,
"label": "URL de atualização do aplicativo",
"nome": "APP_UPDATE_URL",
"valor": nulo,
"tipo": "URL",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22198,
"label": "Tipo de mensagem",
"nome": "APP_MESSAGE_TYPE",
"valor": {
"opções": [
{
"rótulo": "Alerta",
"valor": "ALERTA"
},
{
"rótulo": "Informação",
"valor": "INFORMAÇÕES"
},
{
"label": "Boas boas-vindas",
"valor": "BEM-VINDO"
},
{
"label": "Sem mensagem",
"valor": "NENHUMA"
}
],
"selecionado": "NENHUMA"
},
"tipo": "SELECIONAR",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22199,
"label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
"nome": "APP_LAYOUT_WEBVIEW",
732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732L9.1 2.137a.145.145 0 0 1 0-.274l.774-. 258c.346-.115.617-.386.732-.732L10.863.1z\"\n />\n </svg>\n <span>Limpar Registro</span>\n </button>\n </section> \n </section>\n\n <section class=\"modal-alert-clear-data\">\n <header>\n <svg\n xmlns=\"http://www.w3.org /2000/svg\"\n width=\"16\"\n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-x-lg\"\n viewBox =\"0 0 16 16\"\n >\n <caminho\nd=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708 L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z\"\n />\n </ svg>\n </header>\n\n <section>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\ n height=\"16\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation-triangle\"\n viewBox=\"0 0 16 16\"\n >\n <caminho \nd=\"M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016.146.146 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.16 3.163 0 0 1-. 054.06.116.116 0 0 1-.066.017H1.146a.115.115 0 0 1-.066-.017.163.163 0 0 1-.054-.06.176.176 0 0 1 .002-.183L7.884 2.073a.14 7.147 0 0 1 0,054-0,057zm1,044-0,45a1,13 1,13 0 0 0-1,96 0L.165 13,233c-.457,778,091 1,767,98 1,767h13,713c.889 0 1,438-0,99,98-1,767 L8.982 1.566z\"\n />\n <caminho\nd=\"M7.002 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 5.995a.905.905 0 1 1 1,8 0l-.35 3.507 a.552.552 0 0 1-1.1 0L7.1 5.995z\"\n />\n </svg>\n\n <h1>ATENÇÃO</h1>\n\n <p>\n Ao limpar os dados do aplicativo, o aplicativo será redefinido como\n se foi instalado pela primeira vez! Essa ação é irreversível. Será necessário inserir o usuário e senha novamente e\n atualizar o aplicativo para carregar as configurações atuais de\n conexão VPN.\n </p>\n\n <div>\n <button type=\"button\" id =\"back-clear-data-button\">\n <svg\n xmlns=\"http://www.w3. const dtGetUUID = () => DtUuid.get()\n const dtSetUUID = (uuid) => DtUuid.set(uuid)\n\n const dtUpdate = () => DtStartAppUpdate.execute()\n\n const dtStartVpn = () => DtExecuteVpnStart.execute()\n const dtStopVpn = () => DtExecuteVpnStop.execute()\n\n const dtBatteryOptimization = () => DtIgnoreBatteryOptimizations.execute()\n const dtApnConfiguration = () => DtStartApnActivity .execute()\n const dtStartCheckUser = () => DtStartCheckUser.execute()\n const dtCleanDataApp = () => DtCleanApp.execute()\n const dtStartWebView = (url) => DtStartWebViewActivity.execute(url)\n const dtOpenBrowser = (url) => DtOpenExternalUrl.execute(url)\n </script>\n\n <!-- FUNÇÕES PARA O APP -->\n <script>\n const dtOnNewLogListener = () => writeModalContent ()\n const dtConfigClickListener = () => writeInputCarrierList()\n const dtCheckUserStartedListener = () => showModalLoading()\n const dtVpnStateListener = (estado) => vpnState(estado)\n const dtCheckUserModelListener = (modelo) => writeModalCheckUser(model)\n\n const dtMessageErrorListener = (model) => writeModalError(model)\n </script>\n\n <!-- FUNÇÕES DE AJUDA -->\n <script>\n const createSvgIcon = (iconPath, Class = \"\") => {\n const svg = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"svg\"\ n )\n svg.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\")\n svg.setAttribute(\"largura\", \"16\") \n svg.setAttribute(\"altura\", \"16\")\n svg.setAttribute(\"fill\", \"currentColor\")\n svg.setAttribute(\"viewBox\", \" 0 0 16 16\")\n svg.setAttribute(\"class\", Classe)\n\n const path = document.createElementNS(\n \"http://www.w3.org/2000/svg\ ",\n \"path\"\n )\n path.setAttribute(\"d\", iconPath)\n\n svg.appendChild(caminho)\n return svg\n }\n\n const createListItem = (iconPath, Class = \"\", texto) => {\n const li = document.createElement(\"li\")\n const svg = createSvgIcon(iconPath, Class)\n const span = document.createElement( \"span\")\n span.setAttribute(\"class\", Classe)\n span.innerHTML = text\n li.appendChild(svg)\n li.appendChild(span)\n return li\n } \n </script>\n\n <!-- FUNÇÕES DO LAYOUT -->\n <script>\n const vpnState = (state) => {\n const stateLabel = state || dtVpnState()\n\n switch (stateLabel) {\n case \"DISCONNECTED\":\n StartStopVPNButton. \"https://fast.com/pt/\" })\n }\n const hiddenModalSpeedtest = () => {\n IframeSpeedtest.attr({ src: \"\" })\n\n ModalSpeedtest. removeClass(\"show\")\n }\n\n const writeCarrierList = () => {\n const writeCarrierList = document.querySelector(\n \"section.modal-configs section\"\n )\n\ n writeCarrierList.innerHTML = \"\"\n\n const data = JSON.parse(dtAllConfigs())\n data.sort((a, b) => a.sorter - b.sorter)\n data.forEach ((item, índice) =>\n item.items.sort((a, b) => a.sorter - b.sorter)\n )\n data.forEach((category) => {\n const div = document.createElement(\"div\")\n const h1 = document.createElement(\"h1\")\n\n h1.classList.add(\"title\")\n h1.innerHTML = categoria. nome\n\n const ul = document.createElement(\"ul\")\n\n categoria.items.forEach((item) => {\n const li = document.createElement(\"li\")\ n li.innerHTML = `<img src=\"${item.icon}\" alt=\"icon\" /><div><h1>${\n item.name\n }</h1>< p>${item.description ?? \"\"}</p></div>`\n\n li.addEventListener(\"click\", () => {\n dtSetConfig(item.id) \n\n ModalCarrierList.removeClass(\"show\")\n })\n\n ul.appendChild(li)\n })\n\n div.appendChild(h1)\n div.appendChild(ul) \n\n writeCarrierList.appendChild(div)\n })\n }\n const writeInputCarrierList = () => {\n const data = JSON.parse(dtGetDefaultConfig())\n\n const isV2ray = dados?. mode?.toLowerCase()?.startsWith(\"v2ray\")\n\n InputCarrierValue.attr({\n espaço reservado: data.name ?? \"Escolha sua operadora\",\n })\n\n if (!data?.auth?.v2ray_uuid && isV2ray) {\n ContainerInputUser.style({ display: \"none\" })\n ContainerInputPassword. style({ display: \"none\" })\n ContainerInputUUID.style({ display: \"flex\" })\n InputUUIDValue.attr({ valor: dtGetUUID() ?? \"\" })\n } else {\n ContainerInputPassword.style({ display: \"flex\" })\n ContainerInputUUID.style({ display: \"none\" })\n InputUserValue.attr({ valor: dtGetUsername() ?? \ "\" })\n InputPasswordValue.attr({ valor: dtGetPassword() ?? \"\" })\n }\n }\n const showModalCarrierList = () => {\n writeCarrierList()\n\n ModalCarrierList.addClass(\"show\")\n }\n const hiddenModalCarrierList = () => {\n ModalCarrierList. removeClass(\"show\")\n }\n\n const writeModalContent = () => {\n const data = JSON.parse(dtGetLogs())\n\n let content = \"\"\n\ n data.forEach((item) => {\n content += `${Object.keys(item)} ${item[Object.keys(item)]} <br>`\n })\n\n ModalLoggerContent.html(content)\n }\n const showModalLogger = () => {\n dtOnNewLogListener()\n\n const modal = document.querySelector(\"section.modal-logs\")\n\n if (!modal.className.includes(\"show\")) {\n ModalLogger.addClass(\"show\")\n }\n }\n const hiddenModalLogger = () => {\n ModalLogger.removeClass( \"show\")\n }\n\n const startStopVpn = () => {\n const state = dtVpnState()\n\n if (state !== \"CONNECTED\") {\n dtStartVpn( )\n showModalVpnState()\n } else {\n dtStopVpn()\n }\n }\n\n const writeStatusVpn = (estado) => {\n const icon = state.icon\n const text = `< h1 style=\"color: ${state.color}\">${state.text}</h1>`\n\n ContentContainerSVpnState.html(ícone + texto)\n\n retornar ícone + texto\n } \n\n const writeModalVpnState = (state) => {\n const divIcon = `<div class=\"loading-status\">${state.icon}</div>`\n const titleStatus = `<h1 >${state.text}</h1>`\n\n ContentModalVpnState.html(divIcon + titleStatus)\n\n return divIcon + titleStatus\n }\n const showModalVpnState = () => {\n const data = JSON.parse(dtGetDefaultConfig())\n\n if (!data || !dtGetUsername() || !dtGetPassword()) {\n return\n } else {\n ModalVpnState.addClass(\"show\")\n }\n }\n const hiddenModalVpnState = () => {\n ModalVpnState.removeClass(\" show\")\n }\n\n const showModalLoading = () => {\n if (!JSON.parse(dtGetDefaultConfig())?.urlCheckUser) {\n hiddenModalVpnState()\n } else {\n hiddenModalVpnState ()\n ModalLoading.addClass(\"show\")\n }\n }\n const hiddenModalLoading = () => {\n ModalLoading.removeClass(\"show\")\n }\n\n const writeModalCheckUser = (model) => {\n const data = JSON.parse(model)\n\n ContentModalCheckUser.html(`\n <h1>DETALHES DO USUÁRIO</h1>\n\n <div>\n < i class=\"bi bi-person\"></i>\n <span>Nome do usuário: ${data.username}</span>\n </div>\n\n <div>\n <i class=\"bi bi-calendar-week\"></i>\n <span>Expiração: ${data.
"tipo": "HTML",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22200,
"label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
"nome": "APP_SUPPORT_BUTTON",
"valor": nulo,
"tipo": "HTML",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
},
{
"id": 22201,
"label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
"nome": "APP_WEB_VIEW",
"valor": nulo,
"tipo": "HTML",
"status": "ATIVO",
"user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
}
]