From d2e54da170e5f93bce3d594ceec6a91a1a541a7c Mon Sep 17 00:00:00 2001 From: Renato97 Date: Tue, 31 Mar 2026 01:16:13 -0300 Subject: [PATCH] chore: clean repo for CV sharing - Remove hardcoded Gitea token, use BuildConfig instead - Remove unnecessary CHANGELOG.md --- .gradle/8.5/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/8.5/checksums/md5-checksums.bin | Bin 36347 -> 36347 bytes .gradle/8.5/checksums/sha1-checksums.bin | Bin 86855 -> 94901 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/buildOutputCleanup/outputFiles.bin | Bin 300617 -> 300689 bytes CHANGELOG.md | 27 ------------------ .../com/iptv/app/data/remote/UpdateService.kt | 4 +-- 7 files changed, 2 insertions(+), 29 deletions(-) delete mode 100644 CHANGELOG.md diff --git a/.gradle/8.5/checksums/checksums.lock b/.gradle/8.5/checksums/checksums.lock index 9576c995273aeba31cc06d02e7d813b844430d4a..221e91778370e14b70feee14f4558f399366077d 100644 GIT binary patch literal 17 VcmZS1xGGdrr6co8OF zBWf%t3L%gRF^Rw$MoYuIi6AP>3lWMgx+oEm+TQ2sTz&YR-}CaE_bjH17Slyf+}ahH z8gHVBj#^(qC-!n%)SBg;sLf$Xm1BFr^sF8n)k6sQiu1Ep)iU!`5AihS;ai}zaH2KI zyfp1?Y&~kG?HUrQ4A)g}c`0(%@k_G{Y_5}u5u&PTuBj$?t{Uct$oay?dYO1dgKC^^ zRhA)Dn%R1@wLL0Zue?j;6%YQP+1j2U5R`KU=u$mkQ1ysx*vmrDQ}{xAiZvnW&T%MY zne06Sk~tN8Qte=MgXuY|*e9~@a8|Pt?loA2dvyG=(b`dFLLN3XmYQ^zq$OwQZu1as zG_W>52TGd!cgpsk%&Av%Kx1Np*y) zs@DvwJ~F5J%KE5Ge5WqjSGfOVb$%oBCzAK+Z1G~nE}DFa&oR?zk8$qUSRreF%$^oA zpI4`9gp4TVV@k7UERRcXke#Z2QliuiZmIq-uFA2fn#FhA%%0qhrRt|oHP4u+;{d-^ Kp`k5_5B`6A>_F@Q delta 936 zcmX}pKWI}?6vuIGu@0r6eS#Pi1(6~WO6wpZ4kAKhnmUh&U7n5s?xk=G}X^nLeENJBM>mnyRCzI$mBG z+E(a#`y|cykl#~oiM-KMMZ+k6gnyz*`U5&Q7w57l3ju#myEp%Pi~gOc@ha)?HPGu# zoP)oTY;yRl?p6*d(Ik&V4_Ok;@XP98&~)TTh!polW!_nBh$`$GHXRirq6MZzi`1;X z59_T})ok5WV&I;`U`TJRssuu2PL;b>FGMw#V?H)Rj`u=UV`tc8-*7sd*0nkdQgiui z)g3W8my@CfH>~C(Y446|&1|&mJ?mkI1JPbxmFw=f&eSD`Sk&y<;#ySCEOeu+K8pHi zSq+SsT!f4$!(&mI711J_R;TXxI1|%vEL6D|GyQdDtd>PC>j@t{ag$x)P+Z@(&@eCA zyQX)(71ui#8a#-bS*z4V-}q^@|D5@{!HCtgQL&%bq98x4_9S#iF+(sh>)pT9+1^P1 z6QyagV?NT!+q%BSm!wXVQ`{VNz1p(~$H#PkTUpU4MNy7bQH!nTO|HdJqxnv*ipI%_ k6dyz`O;H2?1>O66H)+uXvqqKexT0hH5lz(kQlAF@103*q5dZ)H diff --git a/.gradle/8.5/checksums/sha1-checksums.bin b/.gradle/8.5/checksums/sha1-checksums.bin index 86bd2e5464fb313175daed1a8cafef7130034ccf..0944db1f4a573e2e45811d42105d4e6694a6eb8e 100644 GIT binary patch delta 6172 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 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index fbafde33f6f08104fbaf17f8911f466d25f48d10..ddd2d2de9b3424728d7fedafd8cbf1b3733b536c 100644 GIT binary patch literal 17 VcmZR6-neHmKS$g;1~3rT0su4k1S
j#?KiaFjnVN5&T|jEdW}k1?*~$h9SGjXy_ zmnmbJ#n`z~u|s^i{9S5g6aG8&Bv%<|3rpXh+qozCLGESHrknRfr DcQ#Kx delta 157 zcmV;O0Al}v diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 7840c2ed..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,27 +0,0 @@ -# Changelog - -## [v1.0.0] - 2026-01-28 - -### Features -- **IPTV Streaming**: Reproduce canales IPTV con soporte HLS y DASH usando Media3 ExoPlayer -- **Google DNS**: Todas las conexiones pasan por DNS de Google (8.8.8.8, 8.8.4.4) para evitar bloqueos regionales -- **DNS over HTTPS (DoH)**: Soporte para DoH de Google como fallback adicional -- **Categorías**: Filtrado por categorías de canales -- **Búsqueda**: Búsqueda en tiempo real de canales por nombre o categoría -- **Favoritos**: Guarda tus canales favoritos localmente -- **Actualizaciones In-App**: Sistema automático de actualizaciones desde Gitea -- **Picture-in-Picture**: Soporte PiP para ver mientras usas otras apps -- **Material 3 UI**: Interfaz moderna con Jetpack Compose - -### Técnico -- MVVM Architecture -- Repository Pattern -- Kotlin Coroutines y Flow -- OkHttp con configuración DNS personalizada -- FileProvider para instalación segura de APKs -- Caché de lista de canales (24 horas) - -### Seguridad -- Todas las descargas M3U usan DNS de Google -- Streams de video también usan DNS de Google -- Configuración de red segura con NetworkSecurityConfig diff --git a/app/src/main/java/com/iptv/app/data/remote/UpdateService.kt b/app/src/main/java/com/iptv/app/data/remote/UpdateService.kt index 295f627f..d3f4086b 100644 --- a/app/src/main/java/com/iptv/app/data/remote/UpdateService.kt +++ b/app/src/main/java/com/iptv/app/data/remote/UpdateService.kt @@ -25,8 +25,8 @@ class UpdateService(context: Context) { private const val REPO_OWNER = "renato97" private const val REPO_NAME = "iptv-app" - // Token de Gitea para acceder a releases privados - private const val GITEA_TOKEN = "efeed2af00597883adb04da70bd6a7c2993ae92d" + // Token de Gitea para acceder a releases - obtenido de BuildConfig + private val GITEA_TOKEN: String = BuildConfig.GITEA_TOKEN // Endpoints private const val LATEST_RELEASE_ENDPOINT = "$GITEA_API_URL/repos/$REPO_OWNER/$REPO_NAME/releases/latest"