DT-4.5-layout


SUBMITTED BY: locked

DATE: Oct. 28, 2023, 6:31 p.m.

UPDATED: Oct. 29, 2023, 12:13 a.m.

FORMAT: Text only

SIZE: 26.7 kB

HITS: 1759

  1. [
  2. {
  3. "id": 22166,
  4. "label": "Nome do app",
  5. "name": "APP_NAME",
  6. "value": "DTunnel VPN",
  7. "type": "STRING",
  8. "status": "ACTIVE",
  9. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  10. },
  11. {
  12. "id": 22167,
  13. "label": "Logo do app",
  14. "name": "APP_LOGO",
  15. "value": "https://i.imgur.com/X8N65Tk.png",
  16. "type": "IMAGE",
  17. "status": "ACTIVE",
  18. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  19. },
  20. {
  21. "id": 22168,
  22. "label": "Imagem de fundo",
  23. "name": "APP_BACKGROUND_IMAGE",
  24. "value": "https://i.imgur.com/J0G1Gz4.jpg",
  25. "type": "IMAGE",
  26. "status": "ACTIVE",
  27. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  28. },
  29. {
  30. "id": 22169,
  31. "label": "Tipo do fundo do app",
  32. "name": "APP_BACKGROUND_TYPE",
  33. "value": {
  34. "options": [
  35. {
  36. "label": "Imagem",
  37. "value": "IMAGE"
  38. },
  39. {
  40. "label": "Cor",
  41. "value": "COLOR"
  42. }
  43. ],
  44. "selected": "IMAGE"
  45. },
  46. "type": "SELECT",
  47. "status": "ACTIVE",
  48. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  49. },
  50. {
  51. "id": 22170,
  52. "label": "Cor de fundo",
  53. "name": "APP_BACKGROUND_COLOR",
  54. "value": "#080e16c7",
  55. "type": "COLOR",
  56. "status": "ACTIVE",
  57. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  58. },
  59. {
  60. "id": 22171,
  61. "label": "Cor do card inicial",
  62. "name": "APP_CARD_COLOR",
  63. "value": "#1d242e73",
  64. "type": "COLOR",
  65. "status": "ACTIVE",
  66. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  67. },
  68. {
  69. "id": 22172,
  70. "label": "Raio do card inicial",
  71. "name": "APP_CARD_RADIUS",
  72. "value": 20,
  73. "type": "INTEGER",
  74. "status": "ACTIVE",
  75. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  76. },
  77. {
  78. "id": 22173,
  79. "label": "Cor do card de status",
  80. "name": "APP_CARD_STATUS_COLOR",
  81. "value": "#1d242e73",
  82. "type": "COLOR",
  83. "status": "ACTIVE",
  84. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  85. },
  86. {
  87. "id": 22174,
  88. "label": "Raio do card de status",
  89. "name": "APP_CARD_STATUS_RADIUS",
  90. "value": 25,
  91. "type": "INTEGER",
  92. "status": "ACTIVE",
  93. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  94. },
  95. {
  96. "id": 22175,
  97. "label": "Cor do card de configurações",
  98. "name": "APP_CARD_CONFIG_COLOR",
  99. "value": "#1D1D1D",
  100. "type": "COLOR",
  101. "status": "ACTIVE",
  102. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  103. },
  104. {
  105. "id": 22176,
  106. "label": "Cor do fundo dos dialogs",
  107. "name": "APP_DIALOG_BACKGROUND_COLOR",
  108. "value": "#1D1D1D",
  109. "type": "COLOR",
  110. "status": "ACTIVE",
  111. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  112. },
  113. {
  114. "id": 22177,
  115. "label": "Cor do fundo do dialog de log",
  116. "name": "APP_DIALOG_LOGGER_COLOR",
  117. "value": "#1D1D1D",
  118. "type": "COLOR",
  119. "status": "ACTIVE",
  120. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  121. },
  122. {
  123. "id": 22178,
  124. "label": "Cor das bordas",
  125. "name": "APP_BORDER_COLOR",
  126. "value": "#1d242e73",
  127. "type": "COLOR",
  128. "status": "ACTIVE",
  129. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  130. },
  131. {
  132. "id": 22179,
  133. "label": "Cor dos inputs",
  134. "name": "APP_INPUT_COLOR",
  135. "value": "#1d242e73",
  136. "type": "COLOR",
  137. "status": "ACTIVE",
  138. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  139. },
  140. {
  141. "id": 22180,
  142. "label": "Raio dos inputs",
  143. "name": "APP_INPUT_RADIUS",
  144. "value": 25,
  145. "type": "INTEGER",
  146. "status": "ACTIVE",
  147. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  148. },
  149. {
  150. "id": 22181,
  151. "label": "Cor dos textos",
  152. "name": "APP_TEXT_COLOR",
  153. "value": "#FFFFFFFF",
  154. "type": "COLOR",
  155. "status": "ACTIVE",
  156. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  157. },
  158. {
  159. "id": 22182,
  160. "label": "Cor dos botões",
  161. "name": "APP_BUTTON_COLOR",
  162. "value": "#1d242e73",
  163. "type": "COLOR",
  164. "status": "ACTIVE",
  165. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  166. },
  167. {
  168. "id": 22183,
  169. "label": "Raio dos botões",
  170. "name": "APP_BUTTON_RADIUS",
  171. "value": 25,
  172. "type": "INTEGER",
  173. "status": "ACTIVE",
  174. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  175. },
  176. {
  177. "id": 22184,
  178. "label": "Cor dos icones",
  179. "name": "APP_ICON_COLOR",
  180. "value": "#FFFFFFFF",
  181. "type": "COLOR",
  182. "status": "ACTIVE",
  183. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  184. },
  185. {
  186. "id": 22185,
  187. "label": "Exibir modo de conexão",
  188. "name": "APP_SHOW_CONNECTION_MODE",
  189. "value": true,
  190. "type": "BOOLEAN",
  191. "status": "ACTIVE",
  192. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  193. },
  194. {
  195. "id": 22871,
  196. "label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
  197. "name": "APP_CONFIG_AUTO_UPDATE",
  198. "value": true,
  199. "type": "BOOLEAN",
  200. "status": "ACTIVE",
  201. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  202. },
  203. {
  204. "id": 22186,
  205. "label": "Iniciar o app automaticamente ao reiniciar o dispositivo",
  206. "name": "APP_AUTO_START",
  207. "value": false,
  208. "type": "BOOLEAN",
  209. "status": "ACTIVE",
  210. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  211. },
  212. {
  213. "id": 22187,
  214. "label": "Usar limiter de conexão",
  215. "name": "APP_CONNECTION_LIMITER",
  216. "value": false,
  217. "type": "BOOLEAN",
  218. "status": "ACTIVE",
  219. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  220. },
  221. {
  222. "id": 22188,
  223. "label": "Usar botão de atualizações",
  224. "name": "APP_BTN_UPDATE_ENABLED",
  225. "value": true,
  226. "type": "BOOLEAN",
  227. "status": "ACTIVE",
  228. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  229. },
  230. {
  231. "id": 22189,
  232. "label": "Usar botão de registros",
  233. "name": "APP_BTN_LOGGER_ENABLED",
  234. "value": true,
  235. "type": "BOOLEAN",
  236. "status": "ACTIVE",
  237. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  238. },
  239. {
  240. "id": 22190,
  241. "label": "Usar botão de pagina webview",
  242. "name": "APP_BTN_PAGE_ENABLED",
  243. "value": true,
  244. "type": "BOOLEAN",
  245. "status": "ACTIVE",
  246. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  247. },
  248. {
  249. "id": 22191,
  250. "label": "Ativar dialog de erros",
  251. "name": "APP_DIALOG_ERROR_ENABLED",
  252. "value": true,
  253. "type": "BOOLEAN",
  254. "status": "ACTIVE",
  255. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  256. },
  257. {
  258. "id": 22192,
  259. "label": "Ativar dialog de checkuser",
  260. "name": "APP_CHECKUSER_DIALOG_ENABLED",
  261. "value": true,
  262. "type": "BOOLEAN",
  263. "status": "ACTIVE",
  264. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  265. },
  266. {
  267. "id": 22193,
  268. "label": "Ativar toast de sucesso",
  269. "name": "APP_SUCCESS_TOAST_ENABLED",
  270. "value": true,
  271. "type": "BOOLEAN",
  272. "status": "ACTIVE",
  273. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  274. },
  275. {
  276. "id": 22194,
  277. "label": "Ativar toast de erro",
  278. "name": "APP_ERROR_TOAST_ENABLED",
  279. "value": true,
  280. "type": "BOOLEAN",
  281. "status": "ACTIVE",
  282. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  283. },
  284. {
  285. "id": 22195,
  286. "label": "Usar layout webview",
  287. "name": "APP_LAYOUT_WEBVIEW_ENABLED",
  288. "value": false,
  289. "type": "BOOLEAN",
  290. "status": "ACTIVE",
  291. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  292. },
  293. {
  294. "id": 22196,
  295. "label": "Mensagem",
  296. "name": "APP_MESSAGE",
  297. "value": null,
  298. "type": "TEXT",
  299. "status": "ACTIVE",
  300. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  301. },
  302. {
  303. "id": 22197,
  304. "label": "URL de atualização do aplicativo",
  305. "name": "APP_UPDATE_URL",
  306. "value": null,
  307. "type": "URL",
  308. "status": "ACTIVE",
  309. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  310. },
  311. {
  312. "id": 22198,
  313. "label": "Tipo de mensagem",
  314. "name": "APP_MESSAGE_TYPE",
  315. "value": {
  316. "options": [
  317. {
  318. "label": "Alerta",
  319. "value": "ALERT"
  320. },
  321. {
  322. "label": "Informação",
  323. "value": "INFO"
  324. },
  325. {
  326. "label": "Boas vindas",
  327. "value": "WELCOME"
  328. },
  329. {
  330. "label": "Sem mensagem",
  331. "value": "NONE"
  332. }
  333. ],
  334. "selected": "NONE"
  335. },
  336. "type": "SELECT",
  337. "status": "ACTIVE",
  338. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  339. },
  340. {
  341. "id": 22199,
  342. "label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
  343. "name": "APP_LAYOUT_WEBVIEW",
  344. "value": "",
  345. "type": "HTML",
  346. "status": "INACTIVE",
  347. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  348. },
  349. {
  350. "id": 22200,
  351. "label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
  352. "name": "APP_SUPPORT_BUTTON",
  353. "value": "<!DOCTYPE html>
  354. <html lang="en">
  355. <head>
  356. <meta charset="UTF-8" />
  357. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  358. <title>5172750168 - @gvnet1</title>
  359. <style>
  360. :root {
  361. font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
  362. line-height: 1.5;
  363. font-weight: 400;
  364. font-synthesis: none;
  365. text-rendering: optimizeLegibility;
  366. -webkit-font-smoothing: antialiased;
  367. -moz-osx-font-smoothing: grayscale;
  368. text-size-adjust: 100%;
  369. -webkit-text-size-adjust: 100%;
  370. --space-status-bar: 10px;
  371. --space-nav-bar: 33px;
  372. }
  373. @-webkit-keyframes onePulse {
  374. 0% {
  375. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  376. }
  377. 50% {
  378. box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);
  379. }
  380. 100% {
  381. box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);
  382. }
  383. }
  384. @keyframes onePulse {
  385. 0% {
  386. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  387. }
  388. 50% {
  389. box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);
  390. }
  391. 100% {
  392. box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);
  393. }
  394. }
  395. *,
  396. *::before,
  397. *::after {
  398. margin: 0;
  399. padding: 0;
  400. box-sizing: border-box;
  401. }
  402. html,
  403. body,
  404. main {
  405. width: 100%;
  406. height: 100%;
  407. }
  408. body {
  409. background: transparent;
  410. }
  411. main {
  412. max-width: 650px;
  413. display: flex;
  414. flex-direction: column;
  415. justify-content: space-between;
  416. margin: 0 auto 0 auto;
  417. padding: var(--space-status-bar) 10px var(--space-nav-bar) 10px;
  418. }
  419. section.top {
  420. width: 100%;
  421. height: auto;
  422. display: flex;
  423. align-items: center;
  424. }
  425. section.top button {
  426. margin-left: auto;
  427. padding: 3.5%;
  428. display: flex;
  429. align-items: center;
  430. justify-content: center;
  431. gap: 7px;
  432. border: 0;
  433. border-radius: 10px;
  434. background: #000000;
  435. }
  436. section.top button svg {
  437. color: #ffffff;
  438. }
  439. section.top button span {
  440. color: #ffffff;
  441. font-weight: 500;
  442. font-size: 0.7rem;
  443. }
  444. section.bottom {
  445. width: 100%;
  446. height: auto;
  447. /* background: blue; */
  448. display: flex;
  449. flex-direction: column;
  450. align-items: center;
  451. }
  452. section.bottom div.container-local-ip {
  453. width: auto;
  454. height: auto;
  455. display: flex;
  456. align-items: center;
  457. padding: 10px 15px;
  458. border-radius: 10px;
  459. background: #000000;
  460. transition: all 0.3s ease 0.1s;
  461. }
  462. section.bottom div.container-local-ip span {
  463. width: 100%;
  464. height: auto;
  465. color: #ffffff;
  466. font-weight: 500;
  467. font-size: 0.8rem;
  468. }
  469. section.bottom div.container-tools {
  470. width: 100%;
  471. height: auto;
  472. display: flex;
  473. justify-content: center;
  474. position: relative;
  475. }
  476. section.bottom div.container-tools button {
  477. display: flex;
  478. align-items: center;
  479. justify-content: center;
  480. gap: 8px;
  481. margin: 7% 0px 0px 0px;
  482. padding: 10px 6%;
  483. border: 0;
  484. border-radius: 10px;
  485. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  486. transition: all linear;
  487. background: #000000;
  488. }
  489. section.bottom div.container-tools button svg {
  490. color: #ffffff;
  491. }
  492. section.bottom div.container-tools button span {
  493. color: #ffffff;
  494. }
  495. section.bottom div.container-tools ul {
  496. width: auto;
  497. min-width: 90%;
  498. max-width: 300px;
  499. height: 55px;
  500. display: flex;
  501. align-items: center;
  502. justify-content: space-around;
  503. gap: 5px;
  504. position: absolute;
  505. bottom: 90%;
  506. padding: 0 5px;
  507. border-radius: 50px;
  508. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  509. opacity: 0;
  510. transform: scale(0);
  511. transform-origin: bottom center;
  512. transition: all 0.3s ease 0.1s;
  513. background: rgba(3, 169, 244, 0.2);
  514. }
  515. section.bottom div.container-tools ul li {
  516. width: 40px;
  517. height: 40px;
  518. display: flex;
  519. justify-content: center;
  520. align-items: center;
  521. border: 1px solid #ffffff;
  522. border-radius: 50%;
  523. box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  524. background: rgba(0, 0, 0, 0.5);
  525. }
  526. section.bottom div.container-tools ul li svg {
  527. color: #ffffff;
  528. }
  529. section.bottom div.container-tools.active button {
  530. -webkit-animation: onePulse 0.6s forwards linear;
  531. animation: onePulse 0.6s forwards linear;
  532. }
  533. section.bottom div.container-tools.active ul {
  534. opacity: 1;
  535. transform: scale(1);
  536. }
  537. .hidden {
  538. opacity: 0;
  539. visibility: hidden;
  540. }
  541. .display-none {
  542. display: none;
  543. }
  544. </style>
  545. </head>
  546. <body>
  547. <main>
  548. <section class="top">
  549. <button type="button">
  550. <svg
  551. xmlns="http://www.w3.org/2000/svg"
  552. width="16"
  553. height="16"
  554. fill="currentColor"
  555. class="bi bi-git"
  556. viewBox="0 0 16 16"
  557. >
  558. <path
  559. 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"
  560. />
  561. </svg>
  562. <span id="version-value">Buscando versão...</span>
  563. </button>
  564. </section>
  565. <section class="bottom">
  566. <div class="container-local-ip">
  567. <span id="local-ip">Procurando IP...</span>
  568. </div>
  569. <div class="container-tools">
  570. <button type="button" title="Ferramentas">
  571. <svg
  572. xmlns="http://www.w3.org/2000/svg"
  573. width="16"
  574. height="16"
  575. fill="currentColor"
  576. class="bi bi-nut"
  577. viewBox="0 0 16 16"
  578. >
  579. <path
  580. 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"
  581. />
  582. <path
  583. 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"
  584. />
  585. </svg>
  586. <span>Ferramentas</span>
  587. </button>
  588. <ul>
  589. <li id="checkuser">
  590. <svg
  591. xmlns="http://www.w3.org/2000/svg"
  592. width="16"
  593. height="16"
  594. fill="currentColor"
  595. class="bi bi-calendar2-week"
  596. viewBox="0 0 16 16"
  597. >
  598. <path
  599. 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"
  600. />
  601. <path
  602. 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"
  603. />
  604. </svg>
  605. </li>
  606. <li id="battery">
  607. <svg
  608. xmlns="http://www.w3.org/2000/svg"
  609. width="16"
  610. height="16"
  611. fill="currentColor"
  612. class="bi bi-battery-half"
  613. viewBox="0 0 16 16"
  614. >
  615. <path d="M2 6h5v4H2V6z" />
  616. <path
  617. 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"
  618. />
  619. </svg>
  620. </li>
  621. <li id="apn">
  622. <svg
  623. xmlns="http://www.w3.org/2000/svg"
  624. width="16"
  625. height="16"
  626. fill="currentColor"
  627. class="bi bi-wrench-adjustable-circle"
  628. viewBox="0 0 16 16"
  629. >
  630. <path
  631. 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"
  632. />
  633. <path
  634. 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"
  635. />
  636. </svg>
  637. </li>
  638. <li id="clean">
  639. <svg
  640. xmlns="http://www.w3.org/2000/svg"
  641. width="16"
  642. height="16"
  643. fill="currentColor"
  644. class="bi bi-trash3"
  645. viewBox="0 0 16 16"
  646. >
  647. <path
  648. 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"
  649. />
  650. </svg>
  651. </li>
  652. <li id="speedtest">
  653. <svg
  654. xmlns="http://www.w3.org/2000/svg"
  655. width="16"
  656. height="16"
  657. fill="currentColor"
  658. class="bi bi-speedometer2"
  659. viewBox="0 0 16 16"
  660. >
  661. <path
  662. 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"
  663. />
  664. <path
  665. fill-rule="evenodd"
  666. 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"
  667. />
  668. </svg>
  669. </li>
  670. </ul>
  671. </div>
  672. </section>
  673. </main>
  674. <!-- FUNÇÕES DO APP -->
  675. <script>
  676. const appStatusBar = () => DtGetStatusBarHeight.execute()
  677. const appNavBar = () => DtGetNavigationBarHeight.execute()
  678. const appLocalIp = () => Android.getLocalIP()
  679. const appBattery = () => DtIgnoreBatteryOptimizations.execute()
  680. const appApn = () => DtStartApnActivity.execute()
  681. const appLink = (value) => DtStartWebViewActivity.execute(value)
  682. const appOpenBrowser = (url) => DtOpenExternalUrl.execute(url)
  683. const appClean = () => DtCleanApp.execute()
  684. const appCheckUser = () => DtStartCheckUser.execute()
  685. const appGetConfigVersion = () =>
  686. DtGetLocalConfigVersion.execute() ?? "1.0"
  687. </script>
  688. <!-- DOM WRAPPER -->
  689. <script>
  690. const Dom = (selector) => {
  691. const _elements = document.querySelectorAll(selector)
  692. const wrapper = {
  693. on(listeners) {
  694. for (const [event, listener] of Object.entries(listeners)) {
  695. _elements.forEach((element) => {
  696. element.addEventListener(event, listener)
  697. })
  698. }
  699. return wrapper
  700. },
  701. toggleClass: (token, force) => {
  702. _elements.forEach((element) => {
  703. element.classList.toggle(token, force)
  704. })
  705. return wrapper
  706. },
  707. html(value) {
  708. _elements.forEach((element) => (element.innerHTML = value))
  709. return wrapper
  710. },
  711. }
  712. return wrapper
  713. }
  714. </script>
  715. <!-- VÁRIAVEIS -->
  716. <script>
  717. const version = Dom("#version-value")
  718. const containerLocalIp = Dom("section.bottom div.container-local-ip")
  719. const localIp = Dom("#local-ip")
  720. const containerTools = Dom("section.bottom div.container-tools")
  721. const toolsButton = Dom("section.bottom div.container-tools button")
  722. const tools = Dom("section.bottom div.container-tools ul")
  723. const checkuser = Dom("#checkuser")
  724. const battery = Dom("#battery")
  725. const apn = Dom("#apn")
  726. const CleanDataApp = Dom("#clean")
  727. const speedtest = Dom("#speedtest")
  728. </script>
  729. <!-- FUNÇÕES -->
  730. <script>
  731. document.documentElement.style.setProperty(
  732. "--space-status-bar",
  733. `${appStatusBar() + 10}px`
  734. )
  735. document.documentElement.style.setProperty(
  736. "--space-nav-bar",
  737. `${appNavBar() + 10}px`
  738. )
  739. const toggleTools = () => {
  740. containerLocalIp.toggleClass("hidden")
  741. containerTools.toggleClass("active")
  742. }
  743. const carrierLocalIp = () => {
  744. setInterval(() => {
  745. const carrierLocalIp = appLocalIp()
  746. if (!carrierLocalIp) {
  747. localIp.html("Procurando IP...")
  748. } else if (carrierLocalIp === "127.0.0.1") {
  749. localIp.html("NO IP")
  750. } else {
  751. localIp.html(`${carrierLocalIp}`)
  752. }
  753. }, 500)
  754. }
  755. const configVersion = () => {
  756. setInterval(() => {
  757. const getAtualVersion = appGetConfigVersion()
  758. version.html(`VERSÃO: ${getAtualVersion}`)
  759. }, 1000)
  760. }
  761. carrierLocalIp()
  762. configVersion()
  763. </script>
  764. <!-- AÇÕES -->
  765. <script>
  766. toolsButton.on({ click: () => toggleTools() })
  767. checkuser.on({ click: () => appCheckUser() })
  768. battery.on({ click: () => appBattery() })
  769. apn.on({ click: () => appApn() })
  770. CleanDataApp.on({ click: () => appClean() })
  771. speedtest.on({ click: () => appLink("https://speed.cloudflare.com/") })
  772. </script>
  773. </body>
  774. </html>",
  775. "type": "HTML",
  776. "status": "ACTIVE",
  777. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  778. },
  779. {
  780. "id": 22201,
  781. "label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
  782. "name": "APP_WEB_VIEW",
  783. "value": null,
  784. "type": "HTML",
  785. "status": "ACTIVE",
  786. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  787. }
  788. ]

comments powered by Disqus