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: 1844

  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": "<!DOCTYPE html>
  345. <html lang="en">
  346. <head>
  347. <meta charset="UTF-8" />
  348. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  349. <title>5172750168 - @gvnet1</title>
  350. <style>
  351. :root {
  352. font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
  353. line-height: 1.5;
  354. font-weight: 400;
  355. font-synthesis: none;
  356. text-rendering: optimizeLegibility;
  357. -webkit-font-smoothing: antialiased;
  358. -moz-osx-font-smoothing: grayscale;
  359. text-size-adjust: 100%;
  360. -webkit-text-size-adjust: 100%;
  361. --space-status-bar: 10px;
  362. --space-nav-bar: 33px;
  363. }
  364. @-webkit-keyframes onePulse {
  365. 0% {
  366. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  367. }
  368. 50% {
  369. box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);
  370. }
  371. 100% {
  372. box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);
  373. }
  374. }
  375. @keyframes onePulse {
  376. 0% {
  377. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  378. }
  379. 50% {
  380. box-shadow: 0px 0px 4px 8px rgba(255, 255, 255, 0.1);
  381. }
  382. 100% {
  383. box-shadow: 0px 0px 4px 4px rgba(255, 255, 255, 0.5);
  384. }
  385. }
  386. *,
  387. *::before,
  388. *::after {
  389. margin: 0;
  390. padding: 0;
  391. box-sizing: border-box;
  392. }
  393. html,
  394. body,
  395. main {
  396. width: 100%;
  397. height: 100%;
  398. }
  399. body {
  400. background: transparent;
  401. }
  402. main {
  403. max-width: 650px;
  404. display: flex;
  405. flex-direction: column;
  406. justify-content: space-between;
  407. margin: 0 auto 0 auto;
  408. padding: var(--space-status-bar) 10px var(--space-nav-bar) 10px;
  409. }
  410. section.top {
  411. width: 100%;
  412. height: auto;
  413. display: flex;
  414. align-items: center;
  415. }
  416. section.top button {
  417. margin-left: auto;
  418. padding: 3.5%;
  419. display: flex;
  420. align-items: center;
  421. justify-content: center;
  422. gap: 7px;
  423. border: 0;
  424. border-radius: 10px;
  425. background: #000000;
  426. }
  427. section.top button svg {
  428. color: #ffffff;
  429. }
  430. section.top button span {
  431. color: #ffffff;
  432. font-weight: 500;
  433. font-size: 0.7rem;
  434. }
  435. section.bottom {
  436. width: 100%;
  437. height: auto;
  438. /* background: blue; */
  439. display: flex;
  440. flex-direction: column;
  441. align-items: center;
  442. }
  443. section.bottom div.container-local-ip {
  444. width: auto;
  445. height: auto;
  446. display: flex;
  447. align-items: center;
  448. padding: 10px 15px;
  449. border-radius: 10px;
  450. background: #000000;
  451. transition: all 0.3s ease 0.1s;
  452. }
  453. section.bottom div.container-local-ip span {
  454. width: 100%;
  455. height: auto;
  456. color: #ffffff;
  457. font-weight: 500;
  458. font-size: 0.8rem;
  459. }
  460. section.bottom div.container-tools {
  461. width: 100%;
  462. height: auto;
  463. display: flex;
  464. justify-content: center;
  465. position: relative;
  466. }
  467. section.bottom div.container-tools button {
  468. display: flex;
  469. align-items: center;
  470. justify-content: center;
  471. gap: 8px;
  472. margin: 7% 0px 0px 0px;
  473. padding: 10px 6%;
  474. border: 0;
  475. border-radius: 10px;
  476. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  477. transition: all linear;
  478. background: #000000;
  479. }
  480. section.bottom div.container-tools button svg {
  481. color: #ffffff;
  482. }
  483. section.bottom div.container-tools button span {
  484. color: #ffffff;
  485. }
  486. section.bottom div.container-tools ul {
  487. width: auto;
  488. min-width: 90%;
  489. max-width: 300px;
  490. height: 55px;
  491. display: flex;
  492. align-items: center;
  493. justify-content: space-around;
  494. gap: 5px;
  495. position: absolute;
  496. bottom: 90%;
  497. padding: 0 5px;
  498. border-radius: 50px;
  499. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.5);
  500. opacity: 0;
  501. transform: scale(0);
  502. transform-origin: bottom center;
  503. transition: all 0.3s ease 0.1s;
  504. background: rgba(3, 169, 244, 0.2);
  505. }
  506. section.bottom div.container-tools ul li {
  507. width: 40px;
  508. height: 40px;
  509. display: flex;
  510. justify-content: center;
  511. align-items: center;
  512. border: 1px solid #ffffff;
  513. border-radius: 50%;
  514. box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  515. background: rgba(0, 0, 0, 0.5);
  516. }
  517. section.bottom div.container-tools ul li svg {
  518. color: #ffffff;
  519. }
  520. section.bottom div.container-tools.active button {
  521. -webkit-animation: onePulse 0.6s forwards linear;
  522. animation: onePulse 0.6s forwards linear;
  523. }
  524. section.bottom div.container-tools.active ul {
  525. opacity: 1;
  526. transform: scale(1);
  527. }
  528. .hidden {
  529. opacity: 0;
  530. visibility: hidden;
  531. }
  532. .display-none {
  533. display: none;
  534. }
  535. </style>
  536. </head>
  537. <body>
  538. <main>
  539. <section class="top">
  540. <button type="button">
  541. <svg
  542. xmlns="http://www.w3.org/2000/svg"
  543. width="16"
  544. height="16"
  545. fill="currentColor"
  546. class="bi bi-git"
  547. viewBox="0 0 16 16"
  548. >
  549. <path
  550. 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"
  551. />
  552. </svg>
  553. <span id="version-value">Buscando versão...</span>
  554. </button>
  555. </section>
  556. <section class="bottom">
  557. <div class="container-local-ip">
  558. <span id="local-ip">Procurando IP...</span>
  559. </div>
  560. <div class="container-tools">
  561. <button type="button" title="Ferramentas">
  562. <svg
  563. xmlns="http://www.w3.org/2000/svg"
  564. width="16"
  565. height="16"
  566. fill="currentColor"
  567. class="bi bi-nut"
  568. viewBox="0 0 16 16"
  569. >
  570. <path
  571. 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"
  572. />
  573. <path
  574. 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"
  575. />
  576. </svg>
  577. <span>Ferramentas</span>
  578. </button>
  579. <ul>
  580. <li id="checkuser">
  581. <svg
  582. xmlns="http://www.w3.org/2000/svg"
  583. width="16"
  584. height="16"
  585. fill="currentColor"
  586. class="bi bi-calendar2-week"
  587. viewBox="0 0 16 16"
  588. >
  589. <path
  590. 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"
  591. />
  592. <path
  593. 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"
  594. />
  595. </svg>
  596. </li>
  597. <li id="battery">
  598. <svg
  599. xmlns="http://www.w3.org/2000/svg"
  600. width="16"
  601. height="16"
  602. fill="currentColor"
  603. class="bi bi-battery-half"
  604. viewBox="0 0 16 16"
  605. >
  606. <path d="M2 6h5v4H2V6z" />
  607. <path
  608. 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"
  609. />
  610. </svg>
  611. </li>
  612. <li id="apn">
  613. <svg
  614. xmlns="http://www.w3.org/2000/svg"
  615. width="16"
  616. height="16"
  617. fill="currentColor"
  618. class="bi bi-wrench-adjustable-circle"
  619. viewBox="0 0 16 16"
  620. >
  621. <path
  622. 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"
  623. />
  624. <path
  625. 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"
  626. />
  627. </svg>
  628. </li>
  629. <li id="clean">
  630. <svg
  631. xmlns="http://www.w3.org/2000/svg"
  632. width="16"
  633. height="16"
  634. fill="currentColor"
  635. class="bi bi-trash3"
  636. viewBox="0 0 16 16"
  637. >
  638. <path
  639. 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"
  640. />
  641. </svg>
  642. </li>
  643. <li id="speedtest">
  644. <svg
  645. xmlns="http://www.w3.org/2000/svg"
  646. width="16"
  647. height="16"
  648. fill="currentColor"
  649. class="bi bi-speedometer2"
  650. viewBox="0 0 16 16"
  651. >
  652. <path
  653. 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"
  654. />
  655. <path
  656. fill-rule="evenodd"
  657. 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"
  658. />
  659. </svg>
  660. </li>
  661. </ul>
  662. </div>
  663. </section>
  664. </main>
  665. <!-- FUNÇÕES DO APP -->
  666. <script>
  667. const appStatusBar = () => DtGetStatusBarHeight.execute()
  668. const appNavBar = () => DtGetNavigationBarHeight.execute()
  669. const appLocalIp = () => Android.getLocalIP()
  670. const appBattery = () => DtIgnoreBatteryOptimizations.execute()
  671. const appApn = () => DtStartApnActivity.execute()
  672. const appLink = (value) => DtStartWebViewActivity.execute(value)
  673. const appOpenBrowser = (url) => DtOpenExternalUrl.execute(url)
  674. const appClean = () => DtCleanApp.execute()
  675. const appCheckUser = () => DtStartCheckUser.execute()
  676. const appGetConfigVersion = () =>
  677. DtGetLocalConfigVersion.execute() ?? "1.0"
  678. </script>
  679. <!-- DOM WRAPPER -->
  680. <script>
  681. const Dom = (selector) => {
  682. const _elements = document.querySelectorAll(selector)
  683. const wrapper = {
  684. on(listeners) {
  685. for (const [event, listener] of Object.entries(listeners)) {
  686. _elements.forEach((element) => {
  687. element.addEventListener(event, listener)
  688. })
  689. }
  690. return wrapper
  691. },
  692. toggleClass: (token, force) => {
  693. _elements.forEach((element) => {
  694. element.classList.toggle(token, force)
  695. })
  696. return wrapper
  697. },
  698. html(value) {
  699. _elements.forEach((element) => (element.innerHTML = value))
  700. return wrapper
  701. },
  702. }
  703. return wrapper
  704. }
  705. </script>
  706. <!-- VÁRIAVEIS -->
  707. <script>
  708. const version = Dom("#version-value")
  709. const containerLocalIp = Dom("section.bottom div.container-local-ip")
  710. const localIp = Dom("#local-ip")
  711. const containerTools = Dom("section.bottom div.container-tools")
  712. const toolsButton = Dom("section.bottom div.container-tools button")
  713. const tools = Dom("section.bottom div.container-tools ul")
  714. const checkuser = Dom("#checkuser")
  715. const battery = Dom("#battery")
  716. const apn = Dom("#apn")
  717. const CleanDataApp = Dom("#clean")
  718. const speedtest = Dom("#speedtest")
  719. </script>
  720. <!-- FUNÇÕES -->
  721. <script>
  722. document.documentElement.style.setProperty(
  723. "--space-status-bar",
  724. `${appStatusBar() + 10}px`
  725. )
  726. document.documentElement.style.setProperty(
  727. "--space-nav-bar",
  728. `${appNavBar() + 10}px`
  729. )
  730. const toggleTools = () => {
  731. containerLocalIp.toggleClass("hidden")
  732. containerTools.toggleClass("active")
  733. }
  734. const carrierLocalIp = () => {
  735. setInterval(() => {
  736. const carrierLocalIp = appLocalIp()
  737. if (!carrierLocalIp) {
  738. localIp.html("Procurando IP...")
  739. } else if (carrierLocalIp === "127.0.0.1") {
  740. localIp.html("NO IP")
  741. } else {
  742. localIp.html(`${carrierLocalIp}`)
  743. }
  744. }, 500)
  745. }
  746. const configVersion = () => {
  747. setInterval(() => {
  748. const getAtualVersion = appGetConfigVersion()
  749. version.html(`VERSÃO: ${getAtualVersion}`)
  750. }, 1000)
  751. }
  752. carrierLocalIp()
  753. configVersion()
  754. </script>
  755. <!-- AÇÕES -->
  756. <script>
  757. toolsButton.on({ click: () => toggleTools() })
  758. checkuser.on({ click: () => appCheckUser() })
  759. battery.on({ click: () => appBattery() })
  760. apn.on({ click: () => appApn() })
  761. CleanDataApp.on({ click: () => appClean() })
  762. speedtest.on({ click: () => appLink("https://speed.cloudflare.com/") })
  763. </script>
  764. </body>
  765. </html>",
  766. "type": "HTML",
  767. "status": "INACTIVE",
  768. "user_id": "d37036c7-833d-4246-8b45-c0ce6e8daaa2"
  769. },
  770. {
  771. "id": 22200,
  772. "label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
  773. "name": "APP_SUPPORT_BUTTON",
  774. "value": "",
  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