From 5c0540e72783e1c35585915128dbadfdd70ac112 Mon Sep 17 00:00:00 2001 From: Abderrahim-Mouhcine Date: Sun, 16 Aug 2026 19:57:47 +0100 Subject: [PATCH] Initial upload: iptv-android-tv-2 --- .gitignore | 7 + IA/Développer-lecteur-vidéo-Google-TV (1).txt | 4310 +++++++++++++++++ IA/Développer-lecteur-vidéo-Google-TV.json | 1767 +++++++ IA/Développer-lecteur-vidéo-Google-TV.txt | 3903 +++++++++++++++ IA/SPECIFICATIONS_IMEDIA_TV_PLUS.md | 1578 ++++++ README.md | 133 + README_UPDATE_ADVANCED_TV.md | 39 + README_UPDATE_CATEGORIES.md | 43 + README_UPDATE_CATEGORY_SORT.md | 34 + README_UPDATE_EPG_REPLAY.md | 40 + README_UPDATE_LOGOS.md | 29 + README_UPDATE_PLAYER_BACK_FOCUS.md | 24 + README_UPDATE_PROGRAM_GUIDE.md | 32 + README_UPDATE_REPLAY_GUIDE.md | 43 + README_UPDATE_SERIES_EPISODE_NAMES.md | 27 + README_UPDATE_SPLASH_BACKGROUND.md | 26 + README_UPDATE_UI_COMPACT.md | 32 + README_UPDATE_UI_FOCUS_ACTIONS.md | 25 + README_UPDATE_VOD_SERIES.md | 45 + README_UPDATE_VOD_SERIES_FAVORITES.md | 30 + app/build.gradle.kts | 62 + app/proguard-rules.pro | 2 + app/src/main/AndroidManifest.xml | 34 + .../java/ma/tkgraph/xtreamtv/MainActivity.kt | 929 ++++ .../xtreamtv/data/model/EpgFullResponse.kt | 8 + .../xtreamtv/data/model/EpgProgramDto.kt | 186 + .../xtreamtv/data/model/EpgShortResponse.kt | 8 + .../xtreamtv/data/model/LiveCategoryDto.kt | 14 + .../xtreamtv/data/model/LiveStreamDto.kt | 38 + .../tkgraph/xtreamtv/data/model/SeriesDto.kt | 46 + .../xtreamtv/data/model/SeriesInfoResponse.kt | 121 + .../xtreamtv/data/model/VodStreamDto.kt | 45 + .../data/model/XtreamAccountResponse.kt | 60 + .../xtreamtv/data/model/XtreamConfig.kt | 7 + .../xtreamtv/data/network/XtreamApi.kt | 87 + .../xtreamtv/data/network/XtreamApiFactory.kt | 24 + .../data/repository/XtreamRepository.kt | 82 + .../xtreamtv/data/storage/ConfigStorage.kt | 139 + .../xtreamtv/ui/components/ChannelLogo.kt | 106 + .../tkgraph/xtreamtv/ui/screens/HomeScreen.kt | 1070 ++++ .../xtreamtv/ui/screens/LoginScreen.kt | 188 + .../xtreamtv/ui/screens/PlayerScreen.kt | 368 ++ .../xtreamtv/ui/screens/ProgramGuideScreen.kt | 1081 +++++ .../xtreamtv/ui/screens/ReplayGuideScreen.kt | 511 ++ .../xtreamtv/ui/screens/SeriesScreen.kt | 829 ++++ .../tkgraph/xtreamtv/ui/screens/VodScreen.kt | 661 +++ .../ma/tkgraph/xtreamtv/ui/theme/Theme.kt | 43 + .../xtreamtv/util/CategorySortUtils.kt | 73 + .../tkgraph/xtreamtv/util/XtreamUrlBuilder.kt | 71 + .../drawable-nodpi/imedia_tv_background.png | Bin 0 -> 3113832 bytes .../res/drawable/ic_launcher_foreground.xml | 9 + .../main/res/drawable/launch_background.xml | 13 + app/src/main/res/drawable/tv_banner.xml | 9 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/themes.xml | 11 + apply-update.ps1 | 13 + build.gradle.kts | 4 + gradle.properties | 4 + gradle/libs.versions.toml | 31 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 248 + gradlew.bat | 93 + image/icone.png | Bin 0 -> 41562 bytes image/imedia tv backgroung.png | Bin 0 -> 2236411 bytes settings.gradle.kts | 18 + xtream-google-tv-player/.gitignore | 7 + xtream-google-tv-player/README.md | 133 + xtream-google-tv-player/app/build.gradle.kts | 65 + .../app/proguard-rules.pro | 2 + .../app/src/main/AndroidManifest.xml | 33 + .../java/ma/tkgraph/xtreamtv/MainActivity.kt | 78 + .../xtreamtv/data/model/LiveStreamDto.kt | 38 + .../data/model/XtreamAccountResponse.kt | 60 + .../xtreamtv/data/model/XtreamConfig.kt | 7 + .../xtreamtv/data/network/XtreamApi.kt | 21 + .../xtreamtv/data/network/XtreamApiFactory.kt | 24 + .../data/repository/XtreamRepository.kt | 17 + .../tkgraph/xtreamtv/ui/screens/HomeScreen.kt | 152 + .../xtreamtv/ui/screens/LoginScreen.kt | 147 + .../xtreamtv/ui/screens/PlayerScreen.kt | 103 + .../ma/tkgraph/xtreamtv/ui/theme/Theme.kt | 43 + .../tkgraph/xtreamtv/util/XtreamUrlBuilder.kt | 42 + .../res/drawable/ic_launcher_foreground.xml | 9 + .../app/src/main/res/drawable/tv_banner.xml | 9 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 9 + xtream-google-tv-player/build.gradle.kts | 5 + .../gradle/libs.versions.toml | 32 + xtream-google-tv-player/settings.gradle.kts | 18 + 90 files changed, 20580 insertions(+) create mode 100644 .gitignore create mode 100644 IA/Développer-lecteur-vidéo-Google-TV (1).txt create mode 100644 IA/Développer-lecteur-vidéo-Google-TV.json create mode 100644 IA/Développer-lecteur-vidéo-Google-TV.txt create mode 100644 IA/SPECIFICATIONS_IMEDIA_TV_PLUS.md create mode 100644 README.md create mode 100644 README_UPDATE_ADVANCED_TV.md create mode 100644 README_UPDATE_CATEGORIES.md create mode 100644 README_UPDATE_CATEGORY_SORT.md create mode 100644 README_UPDATE_EPG_REPLAY.md create mode 100644 README_UPDATE_LOGOS.md create mode 100644 README_UPDATE_PLAYER_BACK_FOCUS.md create mode 100644 README_UPDATE_PROGRAM_GUIDE.md create mode 100644 README_UPDATE_REPLAY_GUIDE.md create mode 100644 README_UPDATE_SERIES_EPISODE_NAMES.md create mode 100644 README_UPDATE_SPLASH_BACKGROUND.md create mode 100644 README_UPDATE_UI_COMPACT.md create mode 100644 README_UPDATE_UI_FOCUS_ACTIONS.md create mode 100644 README_UPDATE_VOD_SERIES.md create mode 100644 README_UPDATE_VOD_SERIES_FAVORITES.md create mode 100644 app/build.gradle.kts create mode 100644 app/proguard-rules.pro create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgFullResponse.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgShortResponse.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveStreamDto.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/SeriesDto.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/SeriesInfoResponse.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/VodStreamDto.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamAccountResponse.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamConfig.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApiFactory.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/ui/components/ChannelLogo.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/LoginScreen.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ProgramGuideScreen.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ReplayGuideScreen.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/SeriesScreen.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/VodScreen.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/ui/theme/Theme.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/util/CategorySortUtils.kt create mode 100644 app/src/main/java/ma/tkgraph/xtreamtv/util/XtreamUrlBuilder.kt create mode 100644 app/src/main/res/drawable-nodpi/imedia_tv_background.png create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/launch_background.xml create mode 100644 app/src/main/res/drawable/tv_banner.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 apply-update.ps1 create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 image/icone.png create mode 100644 image/imedia tv backgroung.png create mode 100644 settings.gradle.kts create mode 100644 xtream-google-tv-player/.gitignore create mode 100644 xtream-google-tv-player/README.md create mode 100644 xtream-google-tv-player/app/build.gradle.kts create mode 100644 xtream-google-tv-player/app/proguard-rules.pro create mode 100644 xtream-google-tv-player/app/src/main/AndroidManifest.xml create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveStreamDto.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamAccountResponse.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamConfig.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApiFactory.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/LoginScreen.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/ui/theme/Theme.kt create mode 100644 xtream-google-tv-player/app/src/main/java/ma/tkgraph/xtreamtv/util/XtreamUrlBuilder.kt create mode 100644 xtream-google-tv-player/app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 xtream-google-tv-player/app/src/main/res/drawable/tv_banner.xml create mode 100644 xtream-google-tv-player/app/src/main/res/values/strings.xml create mode 100644 xtream-google-tv-player/app/src/main/res/values/themes.xml create mode 100644 xtream-google-tv-player/build.gradle.kts create mode 100644 xtream-google-tv-player/gradle/libs.versions.toml create mode 100644 xtream-google-tv-player/settings.gradle.kts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e532d3a --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.gradle/ +build/ +local.properties +.idea/ +*.iml +.DS_Store +app/build/ diff --git a/IA/Développer-lecteur-vidéo-Google-TV (1).txt b/IA/Développer-lecteur-vidéo-Google-TV (1).txt new file mode 100644 index 0000000..a09289b --- /dev/null +++ b/IA/Développer-lecteur-vidéo-Google-TV (1).txt @@ -0,0 +1,4310 @@ +From: https://chatgpt.com/c/6a299d9e-ca0c-83ea-babc-6cf02e126458 + + + +you asked + +message time: 2026-06-10 18:24:21 + +je veux développer un lecteur de video sur google tv qui peut lire le flux extream + + +chatgpt response + +Je vais cadrer ça proprement : Google TV = Android TV, donc le lecteur doit être natif Android, avec Media3/ExoPlayer pour éviter de réinventer la roue carrée, invention humaine déjà très complète. Je vérifie les docs actuelles avant de te donner une base technique exploitable. + +Je pars du principe que par “flux extream” tu veux dire Xtream Codes / IPTV compatible Xtream. Donc oui, c’est faisable sur Google TV, qui repose sur Android TV. La voie propre : application Android TV native en Kotlin + Jetpack Compose for TV + Media3 ExoPlayer. Faire ça autrement serait une invitation à souffrir, donc évidemment l’humanité l’a déjà essayé. + +1. Architecture recommandée + +Stack technique + +Élément Choix recommandé +Plateforme Android TV / Google TV +Langage Kotlin +Interface Jetpack Compose for TV +Lecteur vidéo AndroidX Media3 ExoPlayer +Flux supportés HLS .m3u8, MPEG-TS .ts, MP4, DASH selon le serveur +API Xtream player_api.php, get.php, xmltv.php +Stockage DataStore ou Room +Réseau Retrofit ou Ktor +Publication APK / AAB Google Play TV + +Google recommande Compose for TV pour construire des interfaces adaptées à la télécommande, au focus et aux grands écrans. Media3 ExoPlayer est le composant moderne pour lire des fichiers ou flux vidéo/audio locaux ou distants. (Android Developers) + +2. Fonctionnement d’un flux Xtream + +Un accès Xtream contient généralement : + +Serveur : http://exemple.com:8080 +Username : user +Password : pass + +Les services compatibles Xtream utilisent souvent des endpoints comme : + +/player_api.php?username=USER&password=PASS +/player_api.php?username=USER&password=PASS&action=get_live_streams +/player_api.php?username=USER&password=PASS&action=get_vod_streams +/get.php?username=USER&password=PASS&type=m3u_plus&output=m3u8 +/xmltv.php?username=USER&password=PASS + +Ces formats sont largement utilisés par les fournisseurs Xtream compatibles, même si l’écosystème est assez “documentation éparpillée dans un tiroir en feu”. Les exemples publics montrent notamment get.php pour récupérer une playlist M3U et player_api.php pour récupérer les chaînes, VOD, séries et EPG. (GitHub) + +3. Ce que ton application doit faire + +MVP conseillé + +La première version devrait contenir : + +Écran de connexion Xtream + +URL serveur +Nom d’utilisateur +Mot de passe + + +Validation du compte + +Appel à player_api.php +Vérification que l’abonnement est actif + + +Catalogue + +Chaînes Live +Films VOD +Séries +Catégories + + +Lecteur vidéo + +Lecture HLS .m3u8 +Lecture MPEG-TS .ts +Pause / lecture +Retour +Changement de chaîne +Gestion erreurs réseau + + +Interface TV + +Navigation avec télécommande +Focus clair +Grandes cartes +Texte lisible +Aucun élément minuscule, ce n’est pas une appli pour fourmis. + +4. Dépendances Android nécessaires + +Dans build.gradle.kts : + +dependencies { + val media3Version = "1.10.1" + + implementation("androidx.media3:media3-exoplayer:$media3Version") + implementation("androidx.media3:media3-exoplayer-hls:$media3Version") + implementation("androidx.media3:media3-exoplayer-dash:$media3Version") + implementation("androidx.media3:media3-ui:$media3Version") + implementation("androidx.media3:media3-session:$media3Version") + + implementation("androidx.tv:tv-foundation:1.0.0") + implementation("androidx.tv:tv-material:1.0.0") + + implementation("com.squareup.retrofit2:retrofit:2.11.0") + implementation("com.squareup.retrofit2:converter-gson:2.11.0") +} + +La version stable Media3 indiquée par Android Developers au 12 mai 2026 est 1.10.1, avec des modules pour ExoPlayer, HLS, DASH, UI, Leanback et MediaSession. (Android Developers) + +5. Manifest Android TV + +Dans AndroidManifest.xml : + + + + + + + + + + + + + + + + + + + + + + + +Pour être reconnu comme une app TV, Android demande une activité compatible TV avec le launcher Leanback, et Google Play impose aussi des critères de qualité spécifiques aux apps Android TV. (Android Developers) + +6. Modèle de configuration Xtream + +data class XtreamConfig( + val serverUrl: String, + val username: String, + val password: String +) + +Normalisation simple : + +fun cleanServerUrl(url: String): String { + return url.trim().removeSuffix("/") +} + +7. Générer une URL de lecture + +Pour une chaîne live : + +fun buildLiveUrl( + config: XtreamConfig, + streamId: Int, + extension: String = "m3u8" +): String { + val baseUrl = cleanServerUrl(config.serverUrl) + return "$baseUrl/live/${config.username}/${config.password}/$streamId.$extension" +} + +Pour VOD : + +fun buildVodUrl( + config: XtreamConfig, + streamId: Int, + extension: String = "mp4" +): String { + val baseUrl = cleanServerUrl(config.serverUrl) + return "$baseUrl/movie/${config.username}/${config.password}/$streamId.$extension" +} + +Pour séries : + +fun buildSeriesUrl( + config: XtreamConfig, + episodeId: Int, + extension: String = "mp4" +): String { + val baseUrl = cleanServerUrl(config.serverUrl) + return "$baseUrl/series/${config.username}/${config.password}/$episodeId.$extension" +} + +Certains fournisseurs utilisent .ts, d’autres .m3u8. Pour Google TV, privilégie HLS .m3u8 quand disponible : ExoPlayer supporte officiellement HLS, DASH et d’autres formats courants, mais les codecs internes doivent aussi être compatibles avec l’appareil. (Android Developers) + +8. Lecteur vidéo avec Media3 ExoPlayer + +Exemple simple en Kotlin Compose : + +@Composable +fun VideoPlayerScreen( + streamUrl: String +) { + val context = LocalContext.current + + val player = remember { + ExoPlayer.Builder(context).build().apply { + val mediaItem = MediaItem.fromUri(streamUrl) + setMediaItem(mediaItem) + prepare() + playWhenReady = true + } + } + + DisposableEffect(Unit) { + onDispose { + player.release() + } + } + + AndroidView( + modifier = Modifier.fillMaxSize(), + factory = { ctx -> + PlayerView(ctx).apply { + this.player = player + useController = true + keepScreenOn = true + } + } + ) +} + +Ce code lit directement une URL .m3u8, .ts, .mp4 ou autre format compatible. Media3 fournit l’interface Player pour lire, mettre en pause, chercher dans le flux et exposer les informations de lecture. (Android Developers) + +9. API Retrofit pour Xtream + +interface XtreamApi { + + @GET("player_api.php") + suspend fun getAccountInfo( + @Query("username") username: String, + @Query("password") password: String + ): XtreamAccountResponse + + @GET("player_api.php") + suspend fun getLiveStreams( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_live_streams" + ): List + + @GET("player_api.php") + suspend fun getVodStreams( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_vod_streams" + ): List + + @GET("player_api.php") + suspend fun getSeries( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_series" + ): List +} + +Exemple DTO live : + +data class LiveStreamDto( + val name: String, + val stream_id: Int, + val stream_icon: String?, + val category_id: String?, + val epg_channel_id: String? +) + +10. Interface TV recommandée + +Accueil + +[Continuer à regarder] + +[Live TV] + Sport | News | Films | Enfants | Généraliste + +[VOD] + Films récents | Action | Comédie | Drame + +[Séries] + Derniers épisodes | Populaires + +Navigation télécommande + +L’interface doit être pensée pour : + +boutons larges ; +focus visible ; +navigation horizontale/verticale fluide ; +retour rapide au lecteur ; +changement de chaîne avec haut/bas ; +recherche simple ; +favoris. + +Sur TV, le focus est plus important que le design décoratif. Une belle interface impossible à naviguer avec une télécommande reste une punition, pas un produit. + +11. Fonctions importantes à prévoir + +Fonction Priorité +Lecture Live Très haute +Lecture VOD Haute +Séries Haute +Favoris Haute +Reprise de lecture Moyenne +EPG / guide TV Haute +Recherche Haute +Contrôle parental Moyenne +Multi-profils Moyenne +Catch-up TV Selon fournisseur +Sous-titres Haute pour VOD +Choix qualité Selon flux + +12. Points sensibles + +Légalité + +Ton lecteur doit uniquement lire des flux pour lesquels l’utilisateur ou le fournisseur possède les droits. Ne construis pas une app orientée contournement, piratage, partage d’identifiants ou accès non autorisé. En plus d’être illégal, c’est le genre de décision qui transforme un projet commercial en dossier pénible. + +Sécurité + +Ne stocke pas les identifiants en clair. + +Utilise : + +EncryptedSharedPreferences ou DataStore chiffré ; +HTTPS si le fournisseur le permet ; +masquage du mot de passe ; +suppression rapide du compte ; +aucun log contenant username/password. + +Compatibilité + +Tous les flux IPTV ne sont pas propres. Certains serveurs envoient des .ts instables, des codecs douteux ou des playlists mal formées. ExoPlayer est solide, mais il ne fera pas de miracle avec un flux bricolé au chalumeau. + +13. Plan de développement conseillé + +Phase 1 — MVP + +Créer projet Android TV Kotlin. +Ajouter Media3. +Ajouter écran login Xtream. +Tester player_api.php. +Afficher les chaînes live. +Lire une chaîne avec ExoPlayer. + +Phase 2 — Catalogue + +Catégories live. +VOD. +Séries. +Images. +Recherche. +Favoris. + +Phase 3 — Expérience TV + +Focus télécommande. +Design Google TV. +Écran lecteur avancé. +Zapping rapide. +Guide EPG. + +Phase 4 — Produit commercial + +Abonnements ou licence app. +Analytics anonymes. +Crash reporting. +Publication Google Play TV. +Politique de confidentialité. +Conditions d’utilisation. + +Conclusion + +Le meilleur choix technique est : + +Android TV natif ++ Kotlin ++ Jetpack Compose for TV ++ Media3 ExoPlayer ++ API Xtream + +C’est stable, compatible Google TV, publiable sur Play Store et suffisamment flexible pour lire du live, VOD, séries et EPG. Le vrai travail ne sera pas seulement le lecteur vidéo, mais la qualité de l’expérience TV : navigation fluide, zapping rapide, gestion des erreurs et interface propre. Le lecteur, lui, c’est la partie presque civilisée de cette aventure. + + +you asked + +message time: 2026-06-10 18:26:49 + +ok, donne moi les fichiers à créer en zip + + +chatgpt response + +Je vais te préparer un ZIP de base complet pour un lecteur Google TV compatible Xtream : projet Android Kotlin, écran de connexion, liste de chaînes et lecteur vidéo. Bref, le squelette avant que les bugs ne viennent réclamer leur héritage. + +Je crée un projet minimal mais structuré, pas juste trois fichiers jetés dans un dossier comme une armoire de bureau municipal. Il contiendra déjà l’API Xtream, l’interface TV, et le lecteur Media3/ExoPlayer. + +C’est prêt. J’ai créé un ZIP avec un projet Android TV / Google TV Kotlin pour lire un accès Xtream compatible, avec écran de connexion, récupération des chaînes Live et lecteur vidéo Media3/ExoPlayer. Voilà, un squelette propre, pas une pile de fichiers abandonnés dans un coin numérique. + +Télécharger le ZIP + +📦 Télécharger le projet Xtream Google TV Player + +Ce que le ZIP contient + +Projet Android Kotlin complet. +MainActivity.kt +Écran de connexion Xtream. +Liste des chaînes Live. +Lecteur vidéo avec Media3 ExoPlayer. +API Retrofit vers player_api.php. +Génération d’URL Live Xtream. +Manifest compatible Android TV / Google TV. +README avec les instructions de lancement. + +Versions utilisées + +Le projet utilise notamment Media3 1.10.1, version listée officiellement dans les releases AndroidX Media3, ainsi que les dépendances Compose TV tv-material:1.1.0 et tv-foundation:1.0.0. J’ai aussi configuré Compose avec le BOM 2026.04.01, recommandé dans les notes Compose d’avril 2026. (Android Developers) + +Important + +Je n’ai pas compilé le projet dans Android Studio ici, parce que l’environnement de génération Android complet n’est pas disponible dans cette session. Le ZIP est structuré pour être ouvert directement dans Android Studio. Il faudra ensuite faire une synchronisation Gradle, puis lancer sur un appareil ou émulateur Android TV / Google TV. Le projet utilise Android Gradle Plugin 9.0.1, dont la compatibilité officielle mentionne notamment JDK 17 et SDK Android 36. (Android Developers) + + +you asked + +message time: 2026-06-10 18:32:52 + +ok. donne moi les commandes pour compiler et créer une apk et le transférer dans la box + + +chatgpt response + +Voici les commandes Windows PowerShell pour compiler le projet, créer l’APK et l’envoyer dans ta box Google TV. Parce qu’évidemment, brancher une télé à un ordinateur n’était pas assez absurde, il fallait aussi lui parler en ADB. + +Les commandes Android officielles passent par le Gradle Wrapper (gradlew.bat sous Windows) et l’installation peut se faire avec ADB. Android indique aussi que le projet AGP 9.0 utilise JDK 17 et Gradle 9.1.0 minimum. (Android Developers) + + +1. Décompresser le ZIP + +Adapte le chemin selon l’endroit où tu as téléchargé le fichier. + +cd D:\07-Logiciels\03-FIN65 + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player.zip" -DestinationPath . +cd .\xtream-google-tv-player + + +2. Vérifier Java et ADB + +java -version +adb version + +Il faut avoir : + +Java 17 +ADB installé avec Android SDK Platform Tools + +Si adb n’est pas reconnu, ajoute temporairement Platform Tools au PATH : + +$env:Path += ";$env:LOCALAPPDATA\Android\Sdk\platform-tools" +adb version + + +3. Créer le Gradle Wrapper si absent + +Dans le ZIP que je t’ai donné, il n’y a pas encore gradlew.bat. Donc il faut le générer une seule fois. Oui, évidemment, encore une petite cérémonie rituelle avant de compiler. + +Installe Gradle si besoin : + +winget install Gradle.Gradle + +Puis dans le dossier du projet : + +gradle wrapper --gradle-version 9.1.0 + +Vérifie : + +.\gradlew.bat --version + + +4. Compiler l’APK debug + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +L’APK sera créé ici : + +app\build\outputs\apk\debug\app-debug.apk + + +5. Activer ADB sur la box Google TV + +Sur ta box Google TV : + +Paramètres +> Système +> À propos +> Cliquer 7 fois sur "Build" / "Version" + +Ensuite : + +Paramètres +> Système +> Options pour les développeurs +> Activer le débogage USB / débogage réseau / débogage sans fil + +Selon la version Android de la box, tu auras soit une connexion simple en 5555, soit un système avec code d’appairage. Android permet le débogage via USB ou Wi-Fi avec ADB. (Android Developers) + + +Méthode A — Connexion ADB classique + +Utilise cette méthode si la box affiche seulement son IP. + +Exemple : + +adb connect 192.168.1.50:5555 +adb devices + +Si la box apparaît dans la liste : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lancer l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +Méthode B — Connexion avec code d’appairage + +Sur certaines Google TV récentes, tu verras : + +Adresse IP + port d’appairage +Code d’appairage + +Commande : + +adb pair 192.168.1.50:37123 + +Entre le code affiché sur la TV. + +Ensuite connecte-toi au port ADB normal affiché par la box : + +adb connect 192.168.1.50:42195 +adb devices + +Puis installe l’APK : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lancer l’app : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +6. Commande complète rapide + +Quand tout est déjà configuré : + +cd D:\07-Logiciels\03-FIN65\xtream-google-tv-player + +.\gradlew.bat clean :app:assembleDebug + +adb connect 192.168.1.50:5555 + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Remplace : + +192.168.1.50 + +par l’adresse IP réelle de ta box. + + +7. Désinstaller l’application si besoin + +adb uninstall ma.tkgraph.xtreamtv + +Puis réinstaller : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + + +8. Voir les logs en cas de bug + +adb logcat | findstr Xtream + +Ou logs Android complets : + +adb logcat + + +9. Créer une APK release + +Pour une APK release non signée : + +.\gradlew.bat :app:assembleRelease + +Chemin probable : + +app\build\outputs\apk\release\app-release-unsigned.apk + +Pour une installation directe sur ta box, utilise plutôt l’APK debug : + +app-debug.apk + +Elle est déjà signée automatiquement pour les tests. La release propre servira plus tard pour une distribution sérieuse, donc quand on arrêtera de vivre comme des développeurs qui installent tout à la main par Wi-Fi. + + +you asked + +message time: 2026-06-10 19:15:48 + +voila ce que j'ai + + +chatgpt response + +Parfait. D’après tes captures, tu as déjà l’essentiel : + +Android SDK Platform 36.1 installé +Android SDK Build-Tools installé +Android SDK Platform-Tools installé +Command-line Tools installé +Android Emulator installé +Java disponible via Android Studio / PyCharm +Le projet est ici : + +D:\07-Logiciels\11-IPTV Andoid TV 2 + +Le dossier correct est celui qui contient : + +app +gradle +build.gradle.kts +settings.gradle.kts +README + +Donc ne rentre pas dans le dossier xtream-google-tv-player à l’intérieur, sauf si c’est une deuxième copie. Oui, le zip s’est visiblement installé comme une poupée russe inutile, la poésie de Windows. + + +1. Ouvre PowerShell dans le bon dossier + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Vérifie que tu es au bon endroit : + +dir + +Tu dois voir : + +app +gradle +build.gradle.kts +settings.gradle.kts + + +2. Configurer Java avec Android Studio + +Tu as Java ici : + +D:\Program Files\Android\Android Studio\jbr\bin\java.exe + +Donc dans PowerShell : + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:Path = "$env:JAVA_HOME\bin;$env:Path" + +Teste : + +java -version + +Tu dois obtenir une version Java/JDK, idéalement 17 ou plus. + + +3. Configurer ADB + +Ton SDK est sûrement ici : + +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;$env:Path" + +Teste : + +adb version + +Si ça répond avec une version ADB, c’est bon. + + +4. Vérifier si gradlew.bat existe + +Dans ton dossier projet, tape : + +dir gradlew.bat + +Si gradlew.bat existe + +Passe directement à la compilation : + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +Si gradlew.bat n’existe pas + +Installe Gradle : + +winget install Gradle.Gradle + +Ferme PowerShell, rouvre-le, puis retourne dans le dossier : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Remets Java : + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:Path = "$env:JAVA_HOME\bin;$env:Path" + +Puis crée le wrapper Gradle : + +gradle wrapper --gradle-version 9.1.0 + +Ensuite compile : + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +5. Emplacement de l’APK générée + +Après compilation, ton APK sera ici : + +.\app\build\outputs\apk\debug\app-debug.apk + +Vérifie avec : + +dir ".\app\build\outputs\apk\debug\" + + +6. Activer ADB sur la box Google TV + +Sur ta box : + +Paramètres +> Système +> À propos +> Version / Build +> Clique 7 fois + +Puis : + +Paramètres +> Système +> Options pour les développeurs +> Débogage USB ou Débogage sans fil + +Sur Google TV récente, il y a souvent Débogage sans fil avec code d’appairage. + + +7. Connecter la box en Wi-Fi avec ADB + +Méthode avec appairage + +Sur la TV, ouvre : + +Débogage sans fil +> Associer avec un code + +Tu verras : + +Adresse IP : 192.168.1.xx +Port d’appairage : 37xxx +Code : 123456 + +Sur ton PC : + +adb pair 192.168.1.xx:37xxx + +Entre le code affiché sur la TV. + +Ensuite connecte-toi au port ADB normal affiché dans l’écran du débogage sans fil : + +adb connect 192.168.1.xx:xxxxx + +Vérifie : + +adb devices + +Tu dois voir un appareil en mode : + +device + + +8. Installer l’APK dans la box + +Depuis le dossier du projet : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Si tout va bien : + +Success + +La civilisation tient encore debout, brièvement. + + +9. Lancer l’application + +Essaie d’abord : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Si ça ne lance rien, liste les packages : + +adb shell pm list packages | findstr xtream + +Puis lance avec le package trouvé. + + +10. Commandes complètes à copier-coller + +Adapte seulement l’adresse IP de ta box. + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;$env:Path" + +java -version +adb version + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +adb connect 192.168.1.xx:xxxxx +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +11. Si tu as une erreur Gradle + +Lance : + +.\gradlew.bat --version + +Puis : + +.\gradlew.bat :app:assembleDebug --stacktrace + +L’erreur importante sera en bas. Pas les 300 lignes où Gradle raconte sa vie comme s’il écrivait ses mémoires. + + +you asked + +message time: 2026-06-10 19:19:49 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> dir + +Directory: D:\07-Logiciels\11-IPTV Andoid TV 2 + +Mode LastWriteTime Length Name + + +d----- 10/06/2026 18:32 app +d----- 10/06/2026 18:32 gradle +d----- 10/06/2026 19:10 xtream-google-tv-player +-a---- 10/06/2026 18:32 67 .gitignore +-a---- 10/06/2026 18:32 170 build.gradle.kts +-a---- 10/06/2026 18:32 3539 README.md +-a---- 10/06/2026 18:32 340 settings.gradle.kts + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> D:\Program Files\Android\Android Studio\jbr\bin\java.exe +D:\Program : The term 'D:\Program' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the +path is correct and try again. +At line:1 char:1 + +D:\Program Files\Android\Android Studio\jbr\bin\java.exe + + CategoryInfo : ObjectNotFound: (D:\Program:String) [], CommandNotFoundException + + FullyQualifiedErrorId : CommandNotFoundException + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> 'D:\Program Files\Android\Android Studio\jbr\bin\java.exe' +D:\Program Files\Android\Android Studio\jbr\bin\java.exe +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:JAVA_HOME\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> java -version +openjdk version "21.0.10" 2026-01-20 +OpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) +OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb version +Android Debug Bridge version 1.0.41 +Version 37.0.0-14910828 +Installed as C:\Users\abmou\AppData\Local\Android\Sdk\platform-tools\adb.exe +Running on Windows 10.0.26200 +PS D:\07-Logiciels\11-IPTV Andoid TV 2> dir gradlew.bat +dir : Cannot find path 'D:\07-Logiciels\11-IPTV Andoid TV 2\gradlew.bat' because it does not exist. +At line:1 char:1 + +dir gradlew.bat + + CategoryInfo : ObjectNotFound: (D:\07-Logiciels...V 2\gradlew.bat:String) [Get-ChildItem], ItemNotFoundException + + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> winget install Gradle.Gradle +The msstore source requires that you view the following agreements before using. +Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction +The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US"). + +Do you agree to all the source agreements terms? +[Y] Yes [N] No: y +No package found matching input criteria. +PS D:\07-Logiciels\11-IPTV Andoid TV 2> winget install Gradle.Gradle +No package found matching input criteria. +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + +Powershell réouvert : +Windows PowerShell +Copyright (C) Microsoft Corporation. All rights reserved. + +Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows + +PS C:\WINDOWS\system32> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:JAVA_HOME\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 +gradle : The term 'gradle' is not recognized as the name of a cmdlet, function, script file, or operable program. +Check the spelling of the name, or if a path was included, verify that the path is correct and try again. +At line:1 char:1 + +gradle wrapper --gradle-version 9.1.0 + + CategoryInfo : ObjectNotFound: (gradle:String) [], CommandNotFoundException + + FullyQualifiedErrorId : CommandNotFoundException + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Tu es presque prêt. Le problème est simple : Java fonctionne, ADB fonctionne, mais Gradle n’est pas installé et le projet n’a pas encore gradlew.bat. + +Donc PowerShell te dit littéralement : “gradle ? connais pas.” Très utile, comme toujours. + + +1. Petite correction Java + +Cette commande ne marche pas à cause des espaces dans Program Files : + +D:\Program Files\Android\Android Studio\jbr\bin\java.exe + +Pour exécuter un chemin avec espaces dans PowerShell, il faut utiliser & : + +& "D:\Program Files\Android\Android Studio\jbr\bin\java.exe" -version + +Mais tu as déjà bien configuré Java ensuite : + +java -version + +Et ça répond : + +openjdk version "21.0.10" + +Donc Java est OK. + + +2. Le vrai blocage + +Cette erreur : + +gradle : The term 'gradle' is not recognized + +veut dire : + +Gradle n’est pas installé ou pas dans le PATH. + +Et comme winget install Gradle.Gradle ne trouve rien, on va faire plus fiable : installer Gradle manuellement avec PowerShell. + + +3. Installer Gradle manuellement + +Copie-colle ce bloc complet dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$gradleVersion = "9.1.0" +$gradleInstallDir = "D:\Tools\Gradle" +$gradleZip = "$env:TEMP\gradle-$gradleVersion-bin.zip" + +New-Item -ItemType Directory -Force -Path $gradleInstallDir + +Invoke-WebRequest ` + -Uri "https://services.gradle.org/distributions/gradle-$gradleVersion-bin.zip" ` + -OutFile $gradleZip + +Expand-Archive -Path $gradleZip -DestinationPath $gradleInstallDir -Force + +$env:Path = "$gradleInstallDir\gradle-$gradleVersion\bin;$env:Path" + +gradle -v + +Si tout est bon, tu dois voir une réponse avec : + +Gradle 9.1.0 + + +4. Configurer Java + Android SDK + +Toujours dans PowerShell : + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" + +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" + +java -version +adb version +gradle -v + +Tu dois avoir les 3 commandes qui répondent. + + +5. Créer gradlew.bat + +Maintenant, dans ton dossier projet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +gradle wrapper --gradle-version 9.1.0 --distribution-type bin + +Ensuite vérifie : + +dir gradlew.bat + +Tu dois voir : + +gradlew.bat + +Si ce fichier apparaît, la bête respire. + + +6. Compiler l’APK debug + +Maintenant utilise le wrapper du projet : + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +L’APK sera ici : + +.\app\build\outputs\apk\debug\app-debug.apk + +Vérifie : + +dir ".\app\build\outputs\apk\debug\" + + +7. Commande complète à copier-coller + +Tu peux utiliser ce bloc complet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" + +java -version +adb version +gradle -v + +gradle wrapper --gradle-version 9.1.0 --distribution-type bin + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +8. Si le téléchargement Gradle bloque + +Si Invoke-WebRequest échoue, essaie cette version : + +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + +Invoke-WebRequest ` + -Uri "https://services.gradle.org/distributions/gradle-9.1.0-bin.zip" ` + -OutFile "$env:TEMP\gradle-9.1.0-bin.zip" + +Puis : + +Expand-Archive -Path "$env:TEMP\gradle-9.1.0-bin.zip" -DestinationPath "D:\Tools\Gradle" -Force +$env:Path = "D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" +gradle -v + + +9. Installer l’APK sur la box après compilation + +Quand l’APK existe, connecte ta box : + +adb devices + +Si elle est en Wi-Fi : + +adb connect 192.168.1.xx:xxxxx + +Puis installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lance l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +10. Si tu as une erreur à la compilation + +Lance cette commande : + +.\gradlew.bat :app:assembleDebug --stacktrace + +Et récupère surtout les 20 dernières lignes. Pas tout le roman Gradle, sinon on va finir par lire sa biographie non autorisée. + + +you asked + +message time: 2026-06-10 19:23:58 + +Windows PowerShell +Copyright (C) Microsoft Corporation. All rights reserved. + +Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows + +PS C:\WINDOWS\system32> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:JAVA_HOME\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 +gradle : The term 'gradle' is not recognized as the name of a cmdlet, function, script file, or operable program. +Check the spelling of the name, or if a path was included, verify that the path is correct and try again. +At line:1 char:1 + +gradle wrapper --gradle-version 9.1.0 + + CategoryInfo : ObjectNotFound: (gradle:String) [], CommandNotFoundException + + FullyQualifiedErrorId : CommandNotFoundException + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> & "D:\Program Files\Android\Android Studio\jbr\bin\java.exe" -version +openjdk version "21.0.10" 2026-01-20 +OpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) PS D:\07-Logiciels\11-IPTV Andoid TV 2> java -version openjdk version "21.0.10" 2026-01-20 OpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $gradleVersion = "9.1.0" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $gradleInstallDir = "D:\Tools\Gradle" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $gradleZip = "$env:TEMP\gradle-$gradleVersion-bin.zip" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> New-Item -ItemType Directory -Force -Path $gradleInstallDir + +Directory: D:\Tools + +Mode LastWriteTime Length Name + + +d----- 10/06/2026 19:22 Gradle + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Invoke-WebRequest ` + + -Uri "https://services.gradle.org/distributions/gradle-$gradleVersion-bin.zip" ` + -OutFile $gradleZip +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Expand-Archive -Path $gradleZip -DestinationPath $gradleInstallDir -Force +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$gradleInstallDir\gradle-$gradleVersion\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle -v + + + + + +Welcome to Gradle 9.1.0! + +Here are the highlights of this release: + +Full Java 25 support +Native task graph visualization +Enhanced console output + +For more details see https://docs.gradle.org/9.1.0/release-notes.html + + +Gradle 9.1.0 + +Build time: 2025-09-18 13:05:56 UTC +Revision: e45a8dbf2470c2e2474ccc25be9f49331406a07e + +Kotlin: 2.2.0 +Groovy: 4.0.28 +Ant: Apache Ant(TM) version 1.10.15 compiled on August 25 2024 +Launcher JVM: 21.0.10 (JetBrains s.r.o. 21.0.10+-14961533-b1163.108) +Daemon JVM: D:\Program Files\Android\Android Studio\jbr (no JDK specified, using current Java home) +OS: Windows 11 10.0 amd64 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> java -version +openjdk version "21.0.10" 2026-01-20 +OpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) +OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb version +Android Debug Bridge version 1.0.41 +Version 37.0.0-14910828 +Installed as C:\Users\abmou\AppData\Local\Android\Sdk\platform-tools\adb.exe +Running on Windows 10.0.26200 +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle -v + + +Gradle 9.1.0 + +Build time: 2025-09-18 13:05:56 UTC +Revision: e45a8dbf2470c2e2474ccc25be9f49331406a07e + +Kotlin: 2.2.0 +Groovy: 4.0.28 +Ant: Apache Ant(TM) version 1.10.15 compiled on August 25 2024 +Launcher JVM: 21.0.10 (JetBrains s.r.o. 21.0.10+-14961533-b1163.108) +Daemon JVM: D:\Program Files\Android\Android Studio\jbr (no JDK specified, using current Java home) +OS: Windows 11 10.0 amd64 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 --distribution-type bin +Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details + +FAILURE: Build failed with an exception. + +Where: +Build file 'D:\07-Logiciels\11-IPTV Andoid TV 2\app\build.gradle.kts' line: 1 + + +What went wrong: +An exception occurred applying plugin request [id: 'org.jetbrains.kotlin.android', version: '2.4.0'] + +Failed to apply plugin 'org.jetbrains.kotlin.android'. +Failed to apply plugin 'org.jetbrains.kotlin.android' + The 'org.jetbrains.kotlin.android' plugin is no longer required for Kotlin support since AGP 9.0. + Solution: Remove the 'org.jetbrains.kotlin.android' plugin from this project's build file: app\build.gradle.kts. + See https://kotl.in/gradle/agp-built-in-kotlin for more details. +java.lang.Throwable (no error message) + + + + +Try: + +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 21s +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Tu as fait correctement la partie environnement : + +Java : OK +ADB : OK +Gradle 9.1.0 : OK +SDK Android : OK + +Le blocage vient maintenant du projet que je t’ai fourni : dans app/build.gradle.kts, il y a encore le plugin : + +alias(libs.plugins.kotlin.android) + +Avec Android Gradle Plugin 9.0+, ce plugin ne doit plus être utilisé, car Kotlin est maintenant intégré directement dans AGP. Android recommande de supprimer ce plugin du fichier module, du fichier racine et du catalogue libs.versions.toml. Bref, le futur est arrivé, et il casse les anciens fichiers comme un stagiaire trop motivé. (Android Developers) + + +1. Corriger les fichiers Gradle + +Copie-colle ce bloc complet dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +# Supprimer le plugin Kotlin Android du build racine +(Get-Content ".\build.gradle.kts") | +Where-Object { $_ -notmatch "libs\.plugins\.kotlin\.android" } | +Set-Content ".\build.gradle.kts" + +# Supprimer le plugin Kotlin Android du module app +(Get-Content ".\app\build.gradle.kts") | +Where-Object { $_ -notmatch "libs\.plugins\.kotlin\.android" } | +Set-Content ".\app\build.gradle.kts" + +# Supprimer la déclaration du plugin Kotlin Android dans le catalogue de versions +(Get-Content ".\gradle\libs.versions.toml") | +Where-Object { $_ -notmatch "^kotlin-android\s*=" } | +Set-Content ".\gradle\libs.versions.toml" + + +2. Vérifier que les lignes ont bien disparu + +Select-String -Path ".\build.gradle.kts" -Pattern "kotlin.android" +Select-String -Path ".\app\build.gradle.kts" -Pattern "kotlin.android" +Select-String -Path ".\gradle\libs.versions.toml" -Pattern "kotlin-android" + +Si tout est bon, ces commandes ne doivent rien afficher. + + +3. Recréer le Gradle Wrapper + +Maintenant relance : + +gradle wrapper --gradle-version 9.1.0 --distribution-type bin + +Vérifie que gradlew.bat existe : + +dir gradlew.bat + +Tu dois voir : + +gradlew.bat + + +4. Compiler l’APK + +Ensuite : + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +L’APK sera ici : + +.\app\build\outputs\apk\debug\app-debug.apk + +Vérifie : + +dir ".\app\build\outputs\apk\debug\" + + +5. Commandes complètes après correction + +Quand les fichiers sont corrigés, tu peux utiliser ce bloc : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" + +gradle wrapper --gradle-version 9.1.0 --distribution-type bin + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +6. Installer dans la box Google TV + +Après compilation : + +adb devices + +Si ta box est déjà connectée, tu verras un appareil. + +Sinon, avec l’IP de la box : + +adb connect 192.168.1.xx:xxxxx + +Puis installe l’APK : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lance l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +7. Si une nouvelle erreur apparaît + +Lance : + +.\gradlew.bat :app:assembleDebug --stacktrace + +Et récupère uniquement les 30 dernières lignes. Le reste, c’est Gradle qui récite son roman intérieur. + + +you asked + +message time: 2026-06-10 19:26:41 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> # Supprimer le plugin Kotlin Android du build racine +PS D:\07-Logiciels\11-IPTV Andoid TV 2> (Get-Content ".\build.gradle.kts") | + +Where-Object { $_ -notmatch "libs.plugins.kotlin.android" } | +Set-Content ".\build.gradle.kts" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> # Supprimer le plugin Kotlin Android du module app +PS D:\07-Logiciels\11-IPTV Andoid TV 2> (Get-Content ".\app\build.gradle.kts") | +Where-Object { $_ -notmatch "libs.plugins.kotlin.android" } | +Set-Content ".\app\build.gradle.kts" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> # Supprimer la déclaration du plugin Kotlin Android dans le catalogue de versions +PS D:\07-Logiciels\11-IPTV Andoid TV 2> (Get-Content ".\gradle\libs.versions.toml") | +Where-Object { $_ -notmatch "^kotlin-android\s*=" } | +Set-Content ".\gradle\libs.versions.toml" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Select-String -Path ".\build.gradle.kts" -Pattern "kotlin.android" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Select-String -Path ".\app\build.gradle.kts" -Pattern "kotlin.android" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Select-String -Path ".\gradle\libs.versions.toml" -Pattern "kotlin-android" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 --distribution-type bin + + + + + +BUILD SUCCESSFUL in 6s +1 actionable task: 1 executed +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html +PS D:\07-Logiciels\11-IPTV Andoid TV 2> dir gradlew.bat + +Directory: D:\07-Logiciels\11-IPTV Andoid TV 2 + +Mode LastWriteTime Length Name + + +-a---- 10/06/2026 19:25 2896 gradlew.bat + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean +Downloading https://services.gradle.org/distributions/gradle-9.1.0-bin.zip +............10%.............20%.............30%.............40%.............50%............60%.............70%.............80%.............90%.............100% + +BUILD SUCCESSFUL in 9s +1 actionable task: 1 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug + +FAILURE: Build failed with an exception. + +What went wrong: +Could not determine the dependencies of task ':app:packageDebug'. + +Could not create task ':app:compileDebugJavaWithJavac'. +Failed to calculate the value of task ':app:compileDebugJavaWithJavac' property 'javaCompiler'. +Cannot find a Java installation on your machine (Windows 11 10.0 amd64) matching: {languageVersion=17, vendor=any vendor, implementation=vendor-specific, nativeImageCapable=false}. Toolchain download repositories have not been configured. + + + + +Try: + +Learn more about toolchain auto-detection and auto-provisioning at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sec:auto_detection. +Learn more about toolchain repositories at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sub:download_repositories. +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 987ms +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Très bien, on avance. Là, Gradle Wrapper est créé, donc la partie pénible est passée. Le nouveau problème est clair : + +Cannot find a Java installation matching: languageVersion=17 + +Ton projet demande explicitement un JDK 17, mais ta machine utilise : + +Java 21 + +Donc Gradle cherche Java 17, ne le trouve pas, et s’effondre comme un meuble en kit monté sans notice. + +Le plus simple : on supprime la demande forcée de JDK 17 dans app/build.gradle.kts, tout en gardant la compilation compatible Java 17. + + +1. Supprimer le bloc kotlin { jvmToolchain(17) } + +Copie-colle ceci dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$content = Get-Content ".\app\build.gradle.kts" -Raw +$content = $content -replace '(?s)\s*kotlin\s*\{\s*jvmToolchain$17$\s*\}', '' +Set-Content ".\app\build.gradle.kts" $content + + +2. Vérifier que le bloc a disparu + +Select-String -Path ".\app\build.gradle.kts" -Pattern "jvmToolchain" + +Si rien ne s’affiche, c’est bon. + + +3. Nettoyer et recompiler + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +4. Si tu veux faire tout d’un coup + +Copie-colle ce bloc complet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" + +$content = Get-Content ".\app\build.gradle.kts" -Raw +$content = $content -replace '(?s)\s*kotlin\s*\{\s*jvmToolchain$17$\s*\}', '' +Set-Content ".\app\build.gradle.kts" $content + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +5. Résultat attendu + +Si la compilation réussit, tu dois voir : + +BUILD SUCCESSFUL + +L’APK sera ici : + +D:\07-Logiciels\11-IPTV Andoid TV 2\app\build\outputs\apk\debug\app-debug.apk + +Vérifie : + +dir ".\app\build\outputs\apk\debug\" + + +6. Ensuite installation sur la box + +Quand l’APK existe : + +adb devices + +Puis, si ta box est en Wi-Fi : + +adb connect 192.168.1.xx:xxxxx + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lance l’app : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +7. Si une autre erreur apparaît + +Lance : + +.\gradlew.bat :app:assembleDebug --stacktrace + +Et récupère les 30 dernières lignes. Le reste, c’est Gradle qui fait du théâtre administratif. + + +you asked + +message time: 2026-06-10 19:51:35 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> dir gradlew.bat + +Directory: D:\07-Logiciels\11-IPTV Andoid TV 2 + +Mode LastWriteTime Length Name + + +-a---- 10/06/2026 19:25 2896 gradlew.bat + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean +Downloading https://services.gradle.org/distributions/gradle-9.1.0-bin.zip +............10%.............20%.............30%.............40%.............50%............60%.............70%.............80%.............90%.............100% + +BUILD SUCCESSFUL in 9s +1 actionable task: 1 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug + +FAILURE: Build failed with an exception. + +What went wrong: +Could not determine the dependencies of task ':app:packageDebug'. + +Could not create task ':app:compileDebugJavaWithJavac'. +Failed to calculate the value of task ':app:compileDebugJavaWithJavac' property 'javaCompiler'. +Cannot find a Java installation on your machine (Windows 11 10.0 amd64) matching: {languageVersion=17, vendor=any vendor, implementation=vendor-specific, nativeImageCapable=false}. Toolchain download repositories have not been configured. + + + + +Try: + +Learn more about toolchain auto-detection and auto-provisioning at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sec:auto_detection. +Learn more about toolchain repositories at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sub:download_repositories. +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 987ms +PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $content = Get-Content ".\app\build.gradle.kts" -Raw +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $content = $content -replace '(?s)\skotlin\s{\sjvmToolchain$17$\s}', '' +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Set-Content ".\app\build.gradle.kts" $content +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Select-String -Path ".\app\build.gradle.kts" -Pattern "jvmToolchain" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean + +BUILD SUCCESSFUL in 1s +1 actionable task: 1 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug +The Daemon will expire immediately since the JVM garbage collector is thrashing. +The project memory settings are likely not configured or are configured to an insufficient value. +The memory settings for this project must be adjusted to avoid this failure. +These settings can be adjusted by setting 'org.gradle.jvmargs' in 'gradle.properties'. +The currently configured max heap space is '512 MiB' and the configured max metaspace is '384 MiB'. +For more information on how to set these values, please refer to https://docs.gradle.org/9.1.0/userguide/build_environment.html#sec:configuring_jvm_memory in the Gradle documentation. +To disable this warning, set 'org.gradle.daemon.performance.disable-logging=true'. +Daemon is stopping immediately since the JVM garbage collector is thrashing + +FAILURE: Build failed with an exception. + +What went wrong: +Gradle build daemon has been stopped: since the JVM garbage collector is thrashing + + +Try: + +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Bon, cette fois ce n’est plus Kotlin, ni Java, ni ADB. C’est Gradle qui manque de mémoire : + +currently configured max heap space is '512 MiB' +Gradle build daemon has been stopped + +512 Mo pour compiler Android en 2026, c’est à peu près comme vouloir faire tourner Photoshop sur une calculatrice. On va lui donner plus de RAM. + + +1. Fermer ce qui consomme beaucoup + +Avant de relancer : + +ferme l’émulateur Android si ouvert ; +ferme Android Studio temporairement ; +ferme Chrome si tu as 47 onglets ouverts comme tout être humain mal encadré. + +Ensuite reste dans PowerShell. + + +2. Créer / corriger gradle.properties + +Copie-colle exactement ceci : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat --stop + +$gradleProperties = @" +org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8 -XX:+UseG1GC +org.gradle.parallel=false +org.gradle.configuration-cache=false +android.useAndroidX=true +"@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\gradle.properties", + $gradleProperties, + [System.Text.UTF8Encoding]::new($false) +) + + +3. Vérifier le fichier + +type ".\gradle.properties" + +Tu dois voir : + +org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8 -XX:+UseG1GC +org.gradle.parallel=false +org.gradle.configuration-cache=false +android.useAndroidX=true + + +4. Relancer la compilation sans daemon + +Utilise cette commande : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + + +5. Si ton PC manque de RAM + +Si ça bloque encore, baisse à 2 Go au lieu de 4 Go : + +$gradleProperties = @" +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+UseG1GC +org.gradle.parallel=false +org.gradle.configuration-cache=false +android.useAndroidX=true +"@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\gradle.properties", + $gradleProperties, + [System.Text.UTF8Encoding]::new($false) +) + +Puis : + +.\gradlew.bat --stop +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + + +6. Si la compilation réussit + +Tu dois voir : + +BUILD SUCCESSFUL + +L’APK sera ici : + +.\app\build\outputs\apk\debug\app-debug.apk + +Vérifie : + +dir ".\app\build\outputs\apk\debug\" + + +7. Installer sur la box ensuite + +Quand l’APK existe : + +adb devices + +Puis : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lancer l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +Lance d’abord la correction mémoire avec 4096m. Si l’erreur suivante apparaît, envoie uniquement le bloc à partir de FAILURE: Build failed, pas toute la tragédie administrative de Gradle. + + +chatgpt response + +Ça y est : la compilation a réussi. Dans ton log, malgré les avertissements D8/R8 qui font leur petit spectacle dramatique, la ligne importante est bien : + +BUILD SUCCESSFUL in 47s +36 actionable tasks: 36 executed + +Donc l’APK debug a normalement été créé. Les warnings Kotlin/D8 sont bruyants, mais pas bloquants ici. Gradle adore faire peur aux gens, probablement par vocation administrative. + + +1. Vérifier que l’APK existe + +Dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +dir ".\app\build\outputs\apk\debug\" + +Tu dois voir un fichier comme : + +app-debug.apk + +Chemin complet : + +D:\07-Logiciels\11-IPTV Andoid TV 2\app\build\outputs\apk\debug\app-debug.apk + + +2. Connecter la box Google TV + +Si ta box est déjà connectée + +Tape : + +adb devices + +Si tu vois un appareil avec : + +device + +c’est bon. + + +Si tu dois connecter en Wi-Fi + +Sur la box Google TV : + +Paramètres +> Système +> Options pour les développeurs +> Débogage sans fil + +Puis depuis PowerShell : + +adb connect 192.168.1.xx:xxxxx + +Remplace par l’IP et le port affichés sur la box. + +Vérifie : + +adb devices + + +3. Installer l’APK sur la box + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Si tout va bien : + +Success + + +4. Lancer l’application + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +5. Commandes complètes à copier-coller + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +adb devices + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +6. Si l’installation échoue + +Cas 1 : ancienne version déjà installée + +adb uninstall ma.tkgraph.xtreamtv +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Cas 2 : version downgrade + +adb install -r -d ".\app\build\outputs\apk\debug\app-debug.apk" + +Cas 3 : appareil non autorisé + +Si adb devices affiche : + +unauthorized + +regarde l’écran de la box et accepte l’autorisation ADB. Oui, même la télé veut une confirmation maintenant. Admirable époque. + + +7. Les warnings D8/R8 + +Tu peux les ignorer pour l’instant, car l’APK a été généré. Plus tard, on pourra nettoyer ça en alignant mieux : + +Android Gradle Plugin ; +Compose ; +Kotlin intégré AGP ; +Media3 ; +dépendances TV. + +Mais maintenant, l’étape suivante est simple : installer l’APK dans la box et tester l’ouverture de l’app. + + +you asked + +message time: 2026-06-10 20:10:47 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb connect 192.168.1.124 +failed to authenticate to 192.168.1.124:5555 +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb connect 192.168.1.124 +already connected to 192.168.1.124:5555 +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb devices +List of devices attached +192.168.1.124:5555 device + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +Performing Streamed Install +Success +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Parfait. L’APK est installé avec succès sur ta box Google TV. + +La ligne importante : + +Success + +Donc là, l’application est bien dans la box. Petite victoire contre l’administration ADB, ce qui mérite presque une médaille en plastique. + + +1. Lancer l’application depuis PowerShell + +Tape : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Si l’app s’ouvre sur la TV, c’est bon. + + +2. Si elle ne s’ouvre pas + +Vérifie d’abord que le package existe bien : + +adb shell pm list packages | findstr xtream + +Tu devrais voir : + +package:ma.tkgraph.xtreamtv + +Puis relance : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +3. Ouvrir depuis la box + +Sur Google TV, va dans : + +Applications +> Voir toutes les applications +> Xtream Google TV Player + +Selon la box, l’application peut aussi apparaître dans : + +Paramètres +> Applications +> Voir toutes les applications + +Si elle n’apparaît pas directement sur l’accueil, c’est normal : certaines apps installées par ADB ne sont pas immédiatement mises en avant, parce que Google TV adore cacher les choses comme un meuble IKEA cache ses vis. + + +4. Tester l’application + +Dans l’app, entre : + +URL serveur : http://ton-serveur:port +Username : ton_identifiant +Password : ton_mot_de_passe + +Exemple de format : + +http://exemple.com:8080 + +Évite de mettre / à la fin de l’URL. + +Correct : + +http://exemple.com:8080 + +À éviter : + +http://exemple.com:8080/ + + +5. Voir les logs si l’app plante + +Lance cette commande avant d’ouvrir l’app : + +adb logcat | findstr xtream + +Ou plus large : + +adb logcat | findstr ma.tkgraph + +Puis ouvre l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +6. Si tu veux désinstaller / réinstaller + +adb uninstall ma.tkgraph.xtreamtv +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + + +7. Commandes utiles maintenant + +adb devices +adb shell monkey -p ma.tkgraph.xtreamtv 1 +adb shell pm list packages | findstr xtream +adb logcat | findstr ma.tkgraph + +Ton étape actuelle : lancer l’app et tester la connexion Xtream. Si l’écran s’ouvre, on passe ensuite à l’amélioration du design TV, favoris, catégories, EPG et zapping. + + +you asked + +message time: 2026-06-10 20:12:46 + +je trouve l'appli, mais ouvrir est désactivée + + +chatgpt response + +Ça veut dire que l’APK est bien installée, mais que Google TV ne voit probablement aucune activité lançable. Autrement dit : l’application existe, mais elle n’a pas de “porte d’entrée” déclarée correctement. Très moderne : une maison sans porte, mais avec un joli reçu d’installation. + +On va corriger le AndroidManifest.xml. + + +1. Tester le lancement par ADB + +Lance d’abord cette commande : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Si tu vois une erreur du type : + +No activities found to run + +alors c’est bien le manifest qui est incomplet. + +Teste aussi : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Si cette commande ouvre l’app, alors l’activité existe, mais elle n’est pas bien déclarée pour le launcher TV. + + +2. Remplacer le manifest + +Ouvre ce fichier : + +D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\AndroidManifest.xml + +Remplace tout son contenu par ceci : + + + + + + + + + + + + + + + + + + + + + + + + + + +Le point important est ici : + + + + +LEANBACK_LAUNCHER sert à Google TV / Android TV. +LAUNCHER aide certaines interfaces à activer le bouton Ouvrir. Parce qu’apparemment une seule catégorie n’était pas assez claire pour l’empire Android. + + +3. Correction rapide par PowerShell + +Tu peux aussi remplacer le fichier directement avec PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$manifest = @" + + + + + + + + + + + + + + + + + + + + + + + + +"@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\AndroidManifest.xml", + $manifest, + [System.Text.UTF8Encoding]::new($false) +) + + +4. Recompiler l’APK + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + + +5. Désinstaller l’ancienne version + +Important : désinstalle l’ancienne app avant de réinstaller, sinon Google TV peut garder l’ancien état. + +adb uninstall ma.tkgraph.xtreamtv + + +6. Réinstaller la nouvelle APK + +adb install ".\app\build\outputs\apk\debug\app-debug.apk" + + +7. Lancer l’application + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Ou directement : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + + +8. Vérifier l’activité lançable + +Après installation, tape : + +adb shell cmd package resolve-activity --brief ma.tkgraph.xtreamtv + +Et aussi : + +adb shell pm dump ma.tkgraph.xtreamtv | findstr MAIN +adb shell pm dump ma.tkgraph.xtreamtv | findstr LEANBACK +adb shell pm dump ma.tkgraph.xtreamtv | findstr LAUNCHER + +Tu dois voir que MainActivity est bien associée à : + +android.intent.action.MAIN +android.intent.category.LAUNCHER +android.intent.category.LEANBACK_LAUNCHER + + +Résumé + +Ton installation est bonne. Le problème vient presque sûrement du manifest. Corrige-le, recompile, désinstalle, réinstalle. + +Commande finale utile : + +adb uninstall ma.tkgraph.xtreamtv +adb install ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +you asked + +message time: 2026-06-10 20:18:47 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb shell monkey -p ma.tkgraph.xtreamtv 1 + bash arg: -p + bash arg: ma.tkgraph.xtreamtv + bash arg: 1 +args: [-p, ma.tkgraph.xtreamtv, 1] + arg: "-p" + arg: "ma.tkgraph.xtreamtv" + arg: "1" +data="ma.tkgraph.xtreamtv" +** No activities found to run, monkey aborted. +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + +elle a démarré avec : +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +Starting: Intent { cmp=ma.tkgraph.xtreamtv/.MainActivity } +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Très bien, le diagnostic est confirmé : + +monkey : No activities found to run +am start -n ma.tkgraph.xtreamtv/.MainActivity : démarre + +Donc l’activité existe, l’application fonctionne, mais elle n’est pas déclarée comme application lançable pour le launcher. C’est exactement le problème du AndroidManifest.xml. + +Il faut ajouter : + + + +en plus de : + + + +Parce que manifestement Google TV a besoin qu’on lui explique deux fois où est la porte. + + +1. Corriger le Manifest automatiquement + +Copie-colle ceci dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$path = ".\app\src\main\AndroidManifest.xml" +$content = Get-Content $path -Raw + +$leanback = ' ' +$launcher = ' ' + +if ($content -notmatch 'android.intent.category.LAUNCHER') { + $content = $content.Replace($leanback, "$leanback`r`n$launcher") + [System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\AndroidManifest.xml", + $content, + [System.Text.UTF8Encoding]::new($false) + ) +} + +type ".\app\src\main\AndroidManifest.xml" + +Tu dois voir maintenant dans le fichier : + + + + + + + + +2. Recompiler l’APK + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Attends : + +BUILD SUCCESSFUL + + +3. Désinstaller l’ancienne version + +C’est important, sinon Google TV peut garder l’ancien état du launcher. + +adb uninstall ma.tkgraph.xtreamtv + + +4. Réinstaller la nouvelle version + +adb install ".\app\build\outputs\apk\debug\app-debug.apk" + + +5. Tester le lancement normal + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Cette fois, tu ne dois plus avoir : + +No activities found to run + + +6. Vérifier les activités lançables + +Teste aussi : + +adb shell cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.LAUNCHER ma.tkgraph.xtreamtv + +Puis : + +adb shell cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.LEANBACK_LAUNCHER ma.tkgraph.xtreamtv + +Tu dois voir MainActivity. + + +7. Si le bouton “Ouvrir” reste désactivé + +Redémarre simplement la box : + +adb reboot + +Après redémarrage, va dans les applications. Le bouton Ouvrir devrait être actif. + +Le fait que cette commande fonctionne : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +confirme que le code de l’app n’est pas le problème. Il faut juste corriger la déclaration launcher, reconstruire, désinstaller, réinstaller. La plomberie Android dans toute sa splendeur. + + +you asked + +message time: 2026-06-10 20:27:19 + +ça marche maintenant + + +chatgpt response + +Parfait. L’application démarre maintenant sur la box Google TV. Donc le cycle infernal est validé : + +Projet compilé +APK générée +APK installée +Application lançable + +La cause était bien le AndroidManifest.xml : l’activité existait, mais elle n’était pas correctement exposée au launcher TV. Android, ce grand philosophe, avait donc installé l’application sans lui donner de bouton pour l’ouvrir. + +Prochaine étape logique + +Maintenant tu peux tester : + +URL serveur Xtream +Username +Password + +Puis vérifier : + +si la connexion API fonctionne ; +si les chaînes Live se chargent ; +si le lecteur démarre bien le flux ; +si le zapping / retour télécommande fonctionne correctement. + +Commandes à garder + +Pour recompiler après modification : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Pour réinstaller : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Pour lancer : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Ou directement : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +À faire maintenant + +Avant de modifier plus loin, garde une copie du dossier actuel, parce que là tu as une version fonctionnelle de base : + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - version OK lancement" -Recurse + +Ensuite, on pourra améliorer proprement : + +design TV plus professionnel ; +mémorisation des identifiants Xtream ; +catégories Live ; +favoris ; +EPG / guide TV ; +zapping chaîne suivante/précédente ; +écran de chargement et messages d’erreur propres. + +Bref, maintenant on passe de “ça démarre” à “ça ressemble à un vrai produit”, cette étape rare où le logiciel cesse d’être seulement une preuve que l’univers tolère notre souffrance. + + +you asked + +message time: 2026-06-10 20:31:13 + +ok + + +chatgpt response + +Nickel. Garde cette version comme base stable avant de toucher au reste. + +Prochaine priorité conseillée + +On devrait améliorer dans cet ordre : + +Sauvegarde des identifiants Xtream + +éviter de retaper URL, username, password à chaque ouverture. + + +Chargement des catégories Live + +Sports, Films, News, Général, etc. + + +Interface TV plus propre + +cartes plus grandes ; +focus visible ; +navigation télécommande fluide. + + +Favoris + +ajouter / retirer une chaîne favorite. + + +Lecteur vidéo amélioré + +bouton retour ; +chaîne suivante / précédente ; +message si le flux ne marche pas. + + +EPG / guide TV + +programme actuel et suivant. + +Sauvegarde recommandée + +Fais une copie de sécurité maintenant : + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - OK lancement" -Recurse + +Voilà. On a transformé un ZIP en APK installée sur Google TV. L’informatique a brièvement obéi, événement assez rare pour être noté. + + +you asked + +message time: 2026-06-10 20:31:51 + +ok + + +chatgpt response + +Très bien. + +Pour la suite, la meilleure prochaine étape est de sauvegarder les identifiants Xtream dans l’application, pour ne pas les retaper à chaque lancement. + +On fera ensuite : + +1. Sauvegarde URL / username / password +2. Connexion automatique au démarrage +3. Liste des catégories Live +4. Favoris +5. Design TV plus propre +6. EPG + +Quand tu veux continuer, on attaque directement les fichiers à modifier, avec le contenu complet de chaque fichier. + + +you asked + +message time: 2026-06-10 20:33:02 + +ok + + +chatgpt response + +On continue donc avec la sauvegarde automatique des identifiants Xtream. L’application retiendra : + +Serveur +Username +Password + +Au prochain lancement, elle essaiera de se reconnecter automatiquement. Oui, incroyable, une application qui se souvient de quelque chose, la technologie tient encore debout. + +Pour cette première version, on utilise SharedPreferences. C’est suffisant pour tester. Plus tard, on passera en stockage chiffré propre. + + + + +1. Fais une sauvegarde avant modification + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - OK sauvegarde avant identifiants" -Recurse + + +2. Copie-colle ce bloc PowerShell complet + +Il va créer/modifier les fichiers nécessaires. + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +New-Item -ItemType Directory -Force -Path ".\app\src\main\java\ma\tkgraph\xtreamtv\data\storage" + +$configStorage = @' +package ma.tkgraph.xtreamtv.data.storage + +import android.content.Context +import ma.tkgraph.xtreamtv.data.model.XtreamConfig + +class ConfigStorage(context: Context) { + + private val preferences = context.applicationContext.getSharedPreferences( + PREFERENCES_NAME, + Context.MODE_PRIVATE + ) + + fun save(config: XtreamConfig) { + preferences.edit() + .putString(KEY_SERVER_URL, config.serverUrl.trim()) + .putString(KEY_USERNAME, config.username.trim()) + .putString(KEY_PASSWORD, config.password.trim()) + .apply() + } + + fun load(): XtreamConfig? { + val serverUrl = preferences.getString(KEY_SERVER_URL, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + ?: return null + + val username = preferences.getString(KEY_USERNAME, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + ?: return null + + val password = preferences.getString(KEY_PASSWORD, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + ?: return null + + return XtreamConfig( + serverUrl = serverUrl, + username = username, + password = password + ) + } + + fun clear() { + preferences.edit().clear().apply() + } + + companion object { + private const val PREFERENCES_NAME = "xtream_config" + private const val KEY_SERVER_URL = "server_url" + private const val KEY_USERNAME = "username" + private const val KEY_PASSWORD = "password" + } +} +'@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\java\ma\tkgraph\xtreamtv\data\storage\ConfigStorage.kt", + $configStorage, + [System.Text.UTF8Encoding]::new($false) +) + +$loginScreen = @' +package ma.tkgraph.xtreamtv.ui.screens + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.widthIn +import androidx.compose.material3.Button +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.launch +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.data.model.XtreamConfig +import ma.tkgraph.xtreamtv.data.network.XtreamApiFactory +import ma.tkgraph.xtreamtv.data.repository.XtreamRepository + +@Composable +fun LoginScreen( + initialConfig: XtreamConfig? = null, + initialErrorMessage: String? = null, + onLoginSuccess: (XtreamConfig, List) -> Unit +) { + var serverUrl by remember(initialConfig?.serverUrl) { + mutableStateOf(initialConfig?.serverUrl.orEmpty()) + } + + var username by remember(initialConfig?.username) { + mutableStateOf(initialConfig?.username.orEmpty()) + } + + var password by remember(initialConfig?.password) { + mutableStateOf(initialConfig?.password.orEmpty()) + } + + var isLoading by remember { mutableStateOf(false) } + + var errorMessage by remember(initialErrorMessage) { + mutableStateOf(initialErrorMessage) + } + + val scope = rememberCoroutineScope() + + Box( + modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.background) + .padding(48.dp), + contentAlignment = Alignment.Center + ) { + Column( + modifier = Modifier.widthIn(max = 720.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + horizontalAlignment = Alignment.Start + ) { + Text( + text = "Xtream TV Player", + style = MaterialTheme.typography.headlineLarge, + color = MaterialTheme.colorScheme.onBackground + ) + + Text( + text = "Connecte ton accès Xtream compatible pour charger les chaînes Live.", + style = MaterialTheme.typography.bodyLarge, + color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f) + ) + + Spacer(modifier = Modifier.height(8.dp)) + + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = serverUrl, + onValueChange = { serverUrl = it }, + label = { Text("Serveur : http://exemple.com:8080") }, + singleLine = true + ) + + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = username, + onValueChange = { username = it }, + label = { Text("Utilisateur") }, + singleLine = true + ) + + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = password, + onValueChange = { password = it }, + label = { Text("Mot de passe") }, + singleLine = true, + visualTransformation = PasswordVisualTransformation() + ) + + Button( + enabled = !isLoading && + serverUrl.isNotBlank() && + username.isNotBlank() && + password.isNotBlank(), + onClick = { + scope.launch { + isLoading = true + errorMessage = null + + runCatching { + val config = XtreamConfig( + serverUrl = serverUrl.trim(), + username = username.trim(), + password = password.trim() + ) + + val repository = XtreamRepository( + XtreamApiFactory.create(config.serverUrl) + ) + + val account = repository.checkAccount( + username = config.username, + password = config.password + ) + + val isAuthorized = account.userInfo?.auth == "1" + val isActive = account.userInfo?.status.equals( + other = "Active", + ignoreCase = true + ) + + if (!isAuthorized || !isActive) { + error("Compte non autorisé ou abonnement inactif.") + } + + val streams = repository.loadLiveStreams( + username = config.username, + password = config.password + ) + + onLoginSuccess(config, streams) + }.onFailure { throwable -> + errorMessage = throwable.message ?: "Connexion impossible au serveur." + } + + isLoading = false + } + } + ) { + if (isLoading) { + CircularProgressIndicator( + modifier = Modifier.height(22.dp), + strokeWidth = 2.dp + ) + } else { + Text("Se connecter") + } + } + + errorMessage?.let { message -> + Text( + text = message, + color = MaterialTheme.colorScheme.error, + style = MaterialTheme.typography.bodyMedium + ) + } + } + } +} +'@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\java\ma\tkgraph\xtreamtv\ui\screens\LoginScreen.kt", + $loginScreen, + [System.Text.UTF8Encoding]::new($false) +) + +$mainActivity = @' +package ma.tkgraph.xtreamtv + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.unit.dp +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.data.model.XtreamConfig +import ma.tkgraph.xtreamtv.data.network.XtreamApiFactory +import ma.tkgraph.xtreamtv.data.repository.XtreamRepository +import ma.tkgraph.xtreamtv.data.storage.ConfigStorage +import ma.tkgraph.xtreamtv.ui.screens.HomeScreen +import ma.tkgraph.xtreamtv.ui.screens.LoginScreen +import ma.tkgraph.xtreamtv.ui.screens.PlayerScreen +import ma.tkgraph.xtreamtv.ui.theme.XtreamTvTheme +import ma.tkgraph.xtreamtv.util.XtreamUrlBuilder + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + XtreamTvTheme { + XtreamTvApp() + } + } + } +} + +private sealed interface AppScreen { + data object Loading : AppScreen + data object Login : AppScreen + data object Home : AppScreen + data class Player(val title: String, val url: String) : AppScreen +} + +@Composable +private fun XtreamTvApp() { + val context = LocalContext.current + val configStorage = remember { ConfigStorage(context) } + + var screen by remember { mutableStateOf(AppScreen.Loading) } + var config by remember { mutableStateOf(null) } + var liveStreams by remember { mutableStateOf>(emptyList()) } + var loginErrorMessage by remember { mutableStateOf(null) } + + LaunchedEffect(Unit) { + val savedConfig = configStorage.load() + + if (savedConfig == null) { + screen = AppScreen.Login + return@LaunchedEffect + } + + runCatching { + val streams = loadLiveStreamsFromServer(savedConfig) + config = savedConfig + liveStreams = streams + loginErrorMessage = null + screen = AppScreen.Home + }.onFailure { + configStorage.clear() + config = null + liveStreams = emptyList() + loginErrorMessage = "Connexion automatique impossible. Vérifie tes identifiants." + screen = AppScreen.Login + } + } + + when (val currentScreen = screen) { + AppScreen.Loading -> LoadingScreen( + message = "Connexion automatique en cours..." + ) + + AppScreen.Login -> LoginScreen( + initialConfig = configStorage.load(), + initialErrorMessage = loginErrorMessage, + onLoginSuccess = { newConfig, streams -> + configStorage.save(newConfig) + config = newConfig + liveStreams = streams + loginErrorMessage = null + screen = AppScreen.Home + } + ) + + AppScreen.Home -> HomeScreen( + streams = liveStreams, + onStreamSelected = { stream -> + val currentConfig = config ?: return@HomeScreen + + val url = XtreamUrlBuilder.liveUrl( + config = currentConfig, + streamId = stream.streamId, + extension = "m3u8" + ) + + screen = AppScreen.Player( + title = stream.name.orEmpty().ifBlank { "Chaîne ${stream.streamId}" }, + url = url + ) + }, + onLogout = { + configStorage.clear() + config = null + liveStreams = emptyList() + loginErrorMessage = null + screen = AppScreen.Login + } + ) + + is AppScreen.Player -> PlayerScreen( + title = currentScreen.title, + streamUrl = currentScreen.url, + onBack = { screen = AppScreen.Home } + ) + } +} + +@Composable +private fun LoadingScreen( + message: String +) { + Box( + modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.background), + contentAlignment = Alignment.Center + ) { + Column( + verticalArrangement = Arrangement.spacedBy(18.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + CircularProgressIndicator() + Text( + text = message, + color = MaterialTheme.colorScheme.onBackground, + style = MaterialTheme.typography.bodyLarge + ) + } + } +} + +private suspend fun loadLiveStreamsFromServer( + config: XtreamConfig +): List { + val repository = XtreamRepository( + XtreamApiFactory.create(config.serverUrl) + ) + + val account = repository.checkAccount( + username = config.username, + password = config.password + ) + + val isAuthorized = account.userInfo?.auth == "1" + val isActive = account.userInfo?.status.equals( + other = "Active", + ignoreCase = true + ) + + if (!isAuthorized || !isActive) { + error("Compte non autorisé ou abonnement inactif.") + } + + return repository.loadLiveStreams( + username = config.username, + password = config.password + ) +} +'@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\java\ma\tkgraph\xtreamtv\MainActivity.kt", + $mainActivity, + [System.Text.UTF8Encoding]::new($false) +) + + +3. Compiler + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Résultat attendu : + +BUILD SUCCESSFUL + + +4. Réinstaller sur la box + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Puis lance : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Ou : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +Résultat attendu + +Après cette modification : + +première ouverture : tu saisis les identifiants Xtream ; +connexion réussie : l’app sauvegarde les identifiants ; +prochaine ouverture : connexion automatique ; +bouton Déconnexion : supprime les identifiants sauvegardés. + +Voilà, l’app commence enfin à avoir une mémoire. Modeste, certes, mais déjà plus fiable que beaucoup de réunions humaines. + + +you asked + +message time: 2026-06-10 20:37:36 + +ok, l'appli a bien sa mémoire + + +chatgpt response + +Parfait. Donc maintenant l’app sait : + +1. Sauvegarder les identifiants Xtream +2. Se reconnecter automatiquement au démarrage +3. Supprimer les identifiants avec Déconnexion + +On a donc une vraie base fonctionnelle. Une application avec de la mémoire, chose qui reste malheureusement supérieure à certains logiciels payants. + +À faire avant la suite + +Fais une sauvegarde de cette version stable : + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - OK mémoire Xtream" -Recurse + +Prochaine amélioration recommandée + +La suite logique : ajouter les catégories Live. + +Actuellement, l’app charge probablement toutes les chaînes en une seule liste. Il faut maintenant organiser : + +Toutes les chaînes +Sports +Films +News +Documentaires +Enfants +Maroc +France +Arabes +Favoris + +Techniquement, on va ajouter : + +1. API get_live_categories +2. Modèle LiveCategoryDto +3. Affichage des catégories à gauche +4. Filtrage des chaînes par category_id +5. Bouton “Toutes” +6. Préparation pour “Favoris” + +Commande Xtream utilisée : + +/player_api.php?username=USER&password=PASS&action=get_live_categories + +Ensuite, chaque chaîne Live possède déjà généralement : + +category_id + +Donc on peut filtrer proprement sans bricoler la liste comme un humain pressé un vendredi à 18h. + +État actuel du projet + +Tu as maintenant : + +Élément Statut +Compilation APK OK +Installation Google TV OK +Lancement application OK +Connexion Xtream OK +Mémoire identifiants OK +Connexion automatique OK +Catégories Live Prochaine étape +Favoris Après catégories +EPG Après favoris +Design TV premium Après structure fonctionnelle + +La prochaine intervention doit modifier principalement : + +XtreamApi.kt +LiveCategoryDto.kt +XtreamRepository.kt +MainActivity.kt +HomeScreen.kt + +On peut passer à l’étape catégories Live avec les fichiers complets à remplacer. + + +you asked + +message time: 2026-06-10 20:39:33 + +procède directement et donne moi le fichier zip avec tous les fichiers modifiés + + +chatgpt response + +C’est prêt. J’ai préparé le ZIP avec les fichiers modifiés pour ajouter les catégories Live Xtream et garder les corrections déjà validées : mémoire des identifiants, launcher Google TV, Gradle corrigé, etc. Bref, pas juste trois fichiers balancés au hasard dans un sac plastique numérique. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Catégories Live + +Ce que le ZIP ajoute + +Appel API Xtream : + +action=get_live_categories + +Nouveau modèle : + +LiveCategoryDto.kt + +Affichage des catégories à gauche. +Filtrage des chaînes par catégorie. +Compteur de chaînes par catégorie. +Catégorie “Toutes”. +Catégorie “Non classées” si nécessaire. +Conservation de la mémoire des identifiants. +Manifest corrigé avec : + +LEANBACK_LAUNCHER +LAUNCHER + +Fichiers inclus + +build.gradle.kts +gradle.properties +gradle/libs.versions.toml +app/build.gradle.kts +app/src/main/AndroidManifest.xml +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/LoginScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +apply-update.ps1 +README_UPDATE_CATEGORIES.md + +Installation rapide + +Décompresse le ZIP dans ton projet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant categories" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-categories-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Puis installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Option avec script inclus + +Après extraction, tu peux aussi lancer : + +.\apply-update.ps1 + +Ce script fait la sauvegarde, copie les fichiers et lance la compilation. Oui, un script qui travaille pendant que nous contemplons l’absurdité du cycle compiler-installer-tester. + + +you asked + +message time: 2026-06-10 21:01:54 + +ça marche. on avance plus rapidement maintenant : + +Design sophistiqué +Possibilité de mettre des chaines en favori +quand on fait retour arrière, on revient dans le menu à la même chaine et même catégorie +possibilité d'épingler une chaine pour démarrer directement avec cette chaine +afficher la résolution de la chaine +zone de recherche de catégorie +zone de recherche de chaine +naviguer avec les boutons droite/gauche pour zapper entre les chaines + + +chatgpt response + +C’est prêt. J’ai préparé un ZIP avec les fichiers modifiés pour passer à une version plus avancée de l’app. On commence enfin à quitter le territoire du “ça démarre” pour entrer dans celui du “ça ressemble à un vrai produit”, événement rare dans le monde Android. + +Télécharger le ZIP + +📦 Télécharger la mise à jour avancée Google TV + +Fonctions ajoutées + +Cette mise à jour ajoute : + +design TV plus sophistiqué ; +favoris chaînes ; +catégorie Favoris automatique ; +retour depuis le lecteur vers la même catégorie et la même chaîne ; +chaîne épinglée au démarrage ; +affichage de la résolution détectée pendant la lecture ; +recherche de catégorie ; +recherche de chaîne ; +zapping gauche/droite dans le lecteur ; +raccourcis clavier/test :← / → : chaîne précédente / suivante ; +F : favori ; +P : épingler. + +Fichiers modifiés dans le ZIP + +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt +README_UPDATE_ADVANCED_TV.md +apply-update.ps1 + +Installation rapide + +Décompresse le ZIP dans ton projet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant update avancee" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-advanced-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Option avec script + +Après extraction : + +.\apply-update.ps1 + +Puis : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Note importante + +Je n’ai pas compilé l’APK ici dans ton environnement Windows, donc si Gradle décide encore de réciter de la poésie d’erreur, envoie seulement le bloc à partir de : + +FAILURE: Build failed + +Pas tout le roman judiciaire de la JVM. + + +you asked + +message time: 2026-06-10 21:17:08 + +on avance, mais le menu ne ressemble pas à grand chose, les caractères sont trop gros. dans les zones de texte, la couleur est foncé dans un arrière plan foncé. pas de noms de chaines. impossible d'arriver aux moutons épingler ou favori. essaie de réduire la taille des zones et du texte. je te laisse voir. + + +chatgpt response + +Tu as raison : l’interface était trop massive, les boutons mangeaient tout l’espace, et les noms de chaînes se faisaient écraser comme une pauvre variable dans un vieux script PowerShell. J’ai préparé une mise à jour UI compacte. + +Télécharger le ZIP + +📦 Télécharger la mise à jour UI compacte + +Corrections incluses + +Textes réduits. +Zones de recherche plus petites. +Texte des champs en blanc sur fond sombre. +Catégories plus compactes. +Liste des chaînes plus lisible. +Noms des chaînes visibles. +Suppression des gros boutons dans chaque ligne. +Ajout d’une barre d’action séparée pour :regarder ; +ajouter / retirer favori ; +épingler / désépingler. + + +Les boutons ne devraient plus écraser le nom des chaînes. +Le focus TV est plus propre. + +Installation + +Dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant UI compacte" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-ui-compact-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Ce qui a changé techniquement + +Le ZIP modifie surtout : + +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt + +J’ai aussi inclus : + +README_UPDATE_UI_COMPACT.md +apply-update.ps1 + +Je n’ai pas compilé dans ton environnement Windows, donc si Gradle refait son numéro de diva, envoie uniquement la partie à partir de : + +FAILURE: Build failed + + +you asked + +message time: 2026-06-10 21:26:36 + +c mieux, mais toujours impossible d'accéder au boutons favorie et epingler. + + +chatgpt response + +Oui, là le problème est clair : les boutons Favori et Épingler sont dans une barre d’action au-dessus de la liste, mais la navigation TV reste coincée dans la liste. Merci Android TV, ce labyrinthe ergonomique payé au focus perdu. + +J’ai corrigé ça avec une version où les actions sont directement dans chaque ligne de chaîne. + +Télécharger le ZIP corrigé + +📦 Télécharger la mise à jour UI Focus Actions + +Ce que cette version change + +Les boutons ne sont plus seulement en haut. +Chaque chaîne affiche maintenant :Voir +☆ / ★ Favori +Pin / Ép. + + +Depuis une ligne de chaîne, tu peux aller vers la droite avec la télécommande pour atteindre les actions. +Texte encore un peu réduit. +Badges et boutons plus compacts. +Le nom de la chaîne garde plus d’espace. +La barre du haut devient informative, elle ne bloque plus l’accès aux actions. + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant UI focus actions" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-ui-focus-actions-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Navigation attendue + +Dans la liste des chaînes : + +OK sur le nom de chaîne = regarder +Droite = accéder à Voir / ★ / Pin +★ = ajouter ou retirer des favoris +Pin = épingler la chaîne +Ép. = chaîne déjà épinglée + +Là, les boutons devraient enfin être atteignables sans devoir supplier la télécommande comme un oracle capricieux. + + +you asked + +message time: 2026-06-10 21:40:14 + +l'affichage sur la chaine de la résolution et nom de la chaine, les indications doivent disparaitre après 3 secondes et quand l'utilisateur clique sur le bouton retour, les infos apparaissent, un deuxième clique sur retour permet de revenir au menu. sinon, supprime les infos : F:favori, P épingler ça ne sert à rien. aussi tu peux ajouter la confirmation de quitter l'application quand on clique sur retour dans le menu. quand on revient au menu à partir d'une chaine, le focus doit être sur le nom de la chaine pas dans les zones de texte. + + +chatgpt response + +J’ai préparé la mise à jour. Elle corrige exactement les points que tu viens de signaler, parce qu’à ce stade on fait de l’ergonomie, pas du mobilier décoratif pour télécommande hostile. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Player / Retour / Focus + +Corrections incluses + +Dans le lecteur : + +nom de la chaîne + résolution visibles au démarrage ; +disparition automatique après 3 secondes ; +premier clic sur Retour : les infos réapparaissent ; +deuxième clic sur Retour : retour au menu. + + +Suppression des indications inutiles : + +F : favori +P : épingler + + +Dans le menu : + +bouton Retour affiche une confirmation avant de quitter l’application ; +au retour depuis une chaîne, le focus revient sur la ligne de la chaîne sélectionnée, pas dans les champs de recherche. + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant player back focus" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-player-back-focus-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Fichiers modifiés + +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt + +Si Gradle refait son opéra tragique, envoie uniquement le bloc à partir de FAILURE: Build failed. + + +you asked + +message time: 2026-06-10 21:46:04 + +tu peux ajouter les logo des chainens + + +you asked + +message time: 2026-06-10 21:47:09 + +ok. maintenant on peux ajouter les logos aux chaines dans l'application. ne part pas sur de la création d'image STP. + + +chatgpt response + +Tu as raison, pas de génération d’image. Là on parle des logos fournis par Xtream via le champ stream_icon, pas d’inventer des logos façon usine à hallucinations graphiques. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Logos chaînes + +Ce que ça ajoute + +Affichage du logo de chaque chaîne dans la liste. +Affichage du logo dans l’overlay du lecteur avec le nom de la chaîne et la résolution. +Fallback automatique avec initiales si le logo est absent ou impossible à charger. +Ajout de Coil 3 pour charger les images distantes dans Compose. La doc officielle Coil indique bien l’usage de coil-compose avec AsyncImage, et recommande aussi une dépendance réseau comme coil-network-okhttp pour les images distantes. (coil-kt.github.io) + +Fichiers inclus + +app/build.gradle.kts +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/components/ChannelLogo.kt +README_UPDATE_LOGOS.md +apply-update.ps1 + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant logos chaines" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-logos-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Les logos dépendront évidemment de ce que ton fournisseur Xtream renvoie dans stream_icon. Si leur serveur envoie des liens cassés, vides ou moisis, l’app affichera les initiales. L’humanité ne manque jamais une occasion de casser une URL. + + +you asked + +message time: 2026-06-10 21:54:38 + +on peut programmer maintenant l'epg et le replay + + +chatgpt response + +Oui. J’ai préparé une mise à jour avec EPG + Replay / Catch-up pour les flux Xtream compatibles. + +Télécharger le ZIP + +📦 Télécharger la mise à jour EPG + Replay + +Ce que cette version ajoute + +Chargement EPG via : + +player_api.php?action=get_short_epg + +Affichage dans le menu : + +programme en cours ; +programme suivant ; +indication Replay si disponible. + + +Bouton Replay dans la ligne de la chaîne. + + +Lecture replay via URL Xtream : + +/timeshift/username/password/durée/date/stream_id.ts + +Affichage dans le lecteur : + +logo ; +nom de chaîne ; +résolution ; +programme en cours ; +badge Replay quand on lit un replay. + + +Conservation : + +favoris ; +épinglage ; +recherche ; +zapping gauche/droite ; +retour vers la même chaîne dans le menu. + +Fichiers modifiés / ajoutés + +app/build.gradle.kts +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgShortResponse.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveStreamDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt +app/src/main/java/ma/tkgraph/xtreamtv/util/XtreamUrlBuilder.kt +README_UPDATE_EPG_REPLAY.md +apply-update.ps1 + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant EPG replay" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-epg-replay-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Important + +Le replay dépend totalement du serveur Xtream. Il faut que ton fournisseur renvoie correctement : + +tv_archive +has_archive +start +end +epg_listings + +Si le serveur ne fournit pas ces données, l’EPG affichera EPG indisponible ou le bouton Replay restera désactivé. Charmant, mais au moins ce sera honnête. + + +you asked + +message time: 2026-06-10 22:04:27 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean --no-daemon +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build + +BUILD SUCCESSFUL in 7s +1 actionable task: 1 executed +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug --no-daemon +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build + +Task :app:compileDebugKotlin FAILED +e: file:///D:/07-Logiciels/11-IPTV%20Andoid%20TV%202/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt:107:25 Unsupported escape sequence. +e: file:///D:/07-Logiciels/11-IPTV%20Andoid%20TV%202/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt:107:31 Unsupported escape sequence. + + + +[Incubating] Problems report is available at: file:///D:/07-Logiciels/11-IPTV%20Andoid%20TV%202/build/reports/problems/problems-report.html + +FAILURE: Build failed with an exception. + +What went wrong: +Execution failed for task ':app:compileDebugKotlin'. + +A failure occurred while executing org.jetbrains.kotlin.compilerRunner.btapi.BuildToolsApiCompilationWork +Compilation error. See log for more details + + + + +Try: + +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 17s +29 actionable tasks: 29 executed +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Erreur simple : dans Kotlin, \d dans une chaîne classique n’est pas accepté. Il fallait écrire la regex en chaîne brute. Encore une victoire du langage contre la santé mentale. + +La ligne fautive était : + +Regex("(\d{2}:\d{2})") + +Elle est corrigée en : + +Regex("""(\d{2}:\d{2})""") + +ZIP corrigé + +📦 Télécharger la mise à jour EPG + Replay corrigée + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-epg-replay-fix1.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Ensuite : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Correction rapide sans ZIP + +Tu peux aussi corriger directement avec PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$content = Get-Content ".\app\src\main\java\ma\tkgraph\xtreamtv\data\model\EpgProgramDto.kt" -Raw +$content = $content -replace 'Regex$"\(\\d\{2\}:\\d\{2\}$"\)', 'Regex("""(\d{2}:\d{2})""")' +Set-Content ".\app\src\main\java\ma\tkgraph\xtreamtv\data\model\EpgProgramDto.kt" $content + +Le ZIP corrigé est plus propre. Le patch direct existe au cas où Windows décide encore de transformer une tâche simple en rite initiatique. + + +you asked + +message time: 2026-06-10 22:12:09 + +le replay marche. mais il ne te donne pas le choix de l'emission pour la quelle tu veux voir le replay, il faut pour chaque chaine sélectionnée avoir la liste du programme complet sur les jours qu'on a, l'utilisateur choisi l'émission à revoir. + + +chatgpt response + +Tu as raison : le replay qui lance seulement “l’émission courante”, c’est trop limité. C’est un replay avec amnésie sélective, magnifique concept, mais mauvais produit. + +J’ai préparé une mise à jour avec un vrai écran Guide Replay par chaîne. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Replay Guide complet + +Ce que ça ajoute + +Le bouton Replay devient Guide. +Quand tu sélectionnes une chaîne, tu peux ouvrir le programme complet disponible. +Les émissions sont groupées par jour. +L’utilisateur choisit directement l’émission à revoir. +Ajout d’une recherche dans les émissions. +Bouton Revoir sur chaque programme disponible. +Retour vers le menu en gardant la chaîne sélectionnée. +Lecture toujours via l’URL Xtream timeshift. + +Fichiers modifiés / ajoutés + +app/build.gradle.kts +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgFullResponse.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ReplayGuideScreen.kt + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant replay guide complet" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-replay-guide-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Utilisation attendue + +Dans la liste des chaînes : + +Guide → ouvre le programme complet de la chaîne +Revoir → lance l’émission sélectionnée en replay +Retour → revient au menu + +Le guide complet dépend toujours de ce que le serveur Xtream renvoie avec get_simple_data_table. Si le fournisseur ne donne que 1 jour, tu verras 1 jour. S’il donne 7 jours, tu verras 7 jours. L’application affiche la vérité du serveur, même quand cette vérité ressemble à un placard vide. + + +you asked + +message time: 2026-06-10 22:17:39 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +Performing Streamed Install +Success +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +Starting: Intent { cmp=ma.tkgraph.xtreamtv/.MainActivity } +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean --no-daemon +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build + +BUILD SUCCESSFUL in 11s +1 actionable task: 1 executed +<=============> 100% EXECUTING [8s] +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug --no-daemon.\gradlew.bat :app:assembleDebug --no-daemon +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build + +FAILURE: Build failed with an exception. + +What went wrong: +Problem configuring task :app:assembleDebug from command line. + +Unknown command-line option '--no-daemon.\gradlew.bat'. + + + + +Try: + +Run gradlew help --task :app:assembleDebug to get task usage details. +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 6s +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +L’erreur vient uniquement d’une commande collée deux fois sur la même ligne : + +.\gradlew.bat :app:assembleDebug --no-daemon.\gradlew.bat :app:assembleDebug --no-daemon + +Gradle a donc compris : + +--no-daemon.\gradlew.bat + +comme une option bizarre. Évidemment, il n’a pas apprécié cette poésie PowerShell. + +Commande correcte + +Relance simplement ceci, une ligne à la fois : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon + +.\gradlew.bat :app:assembleDebug --no-daemon + +Attends : + +BUILD SUCCESSFUL + +Ensuite installe la nouvelle APK : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Puis lance : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Bloc complet propre à copier-coller + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Important + +Tu as installé une APK avant de recompiler : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Donc ta box a probablement encore l’ancienne version, pas forcément la version Replay Guide complet. Il faut bien : + +1. compiler avec succès +2. installer après compilation +3. lancer l’app + +PowerShell n’a pas cassé le projet. Il a juste avalé deux commandes comme un grille-pain qui mange une fourchette. + + +you asked + +message time: 2026-06-10 22:30:47 + +dans la recherche dès que je clique sur une lettre la zone de texte perd le focus. on peut maintenant ajouter un ecran "guide des programme avec toutes les chaines et l'utilisateur peut choisir l'émission qu'il veut + + +chatgpt response + +Oui. J’ai préparé une mise à jour avec deux corrections importantes : + +Correction du focus dans les zones de recherche + +la zone ne perd plus le focus après avoir tapé une lettre ; +le focus automatique sur la chaîne ne se déclenche plus pendant la saisie ; +il revient sur la chaîne uniquement quand tu reviens depuis le lecteur ou un guide. + + +Ajout d’un écran “Guide des programmes” global + +bouton Guide TV dans l’accueil ; +liste des catégories ; +liste de toutes les chaînes ; +recherche catégorie ; +recherche chaîne ; +recherche émission ; +programmes complets de la chaîne sélectionnée ; +bouton Direct ; +bouton Revoir pour lancer l’émission en replay quand disponible. + +Bref, on se rapproche enfin d’un vrai guide TV, pas d’une liste de chaînes déguisée avec trois boutons tristes. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Guide TV global + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant guide TV global" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-program-guide-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Fichiers modifiés / ajoutés + +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ReplayGuideScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ProgramGuideScreen.kt + +Utilisation attendue + +Dans l’accueil : + +Guide TV + +ouvre le guide global. + +Dans le guide : + +Catégories à gauche +Chaînes au centre +Programmes à droite + +Tu sélectionnes une chaîne, l’app charge son guide complet, puis tu choisis l’émission à revoir. Si le fournisseur Xtream ne renvoie pas le guide complet pour une chaîne, l’écran affichera simplement que rien n’est disponible. Très élégant de la part du serveur, comme toujours. + + +you asked + +message time: 2026-06-10 22:45:55 + +on peut ajouter les VOD et series. + + +chatgpt response + +Oui, c’est prêt. J’ai ajouté VOD + Séries dans une mise à jour séparée, parce que mélanger ça directement avec le Live sans écran dédié aurait été une belle façon de transformer l’app en placard mal rangé. + +Télécharger le ZIP + +📦 Télécharger la mise à jour VOD + Séries + +Ce que ça ajoute + +Bouton VOD dans l’écran Live. + + +Bouton Séries dans l’écran Live. + + +Écran catalogue VOD : + +catégories VOD ; +recherche catégorie ; +recherche film ; +logos / affiches ; +lecture du film. + + +Écran catalogue Séries : + +catégories séries ; +recherche catégorie ; +recherche série ; +chargement des saisons / épisodes ; +recherche épisode ; +lecture épisode. + +Endpoints Xtream ajoutés + +get_vod_categories +get_vod_streams +get_series_categories +get_series +get_series_info + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant VOD series" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-vod-series-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Notes utiles + +La lecture VOD utilise : + +/movie/username/password/stream_id.extension + +La lecture série utilise : + +/series/username/password/episode_id.extension + +L’extension vient du champ Xtream container_extension. Si le serveur ne donne rien, l’app utilise mp4. Oui, on compense les silences du serveur, comme d’habitude. + + +you asked + +message time: 2026-06-10 22:57:16 + +on peut ajouter la mise en favorie des VOD et series + + +chatgpt response + +Oui, c’est prêt. J’ai ajouté la mise en favori des VOD et des séries. On évite ainsi le grand sport humain qui consiste à rechercher le même film 12 fois parce qu’on a refusé d’ajouter une étoile. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Favoris VOD + Séries + +Ce que ça ajoute + +Bouton ☆ / ★ sur chaque film VOD. +Bouton ☆ / ★ sur chaque série. +Catégorie automatique ★ Favoris dans le catalogue VOD. +Catégorie automatique ★ Favoris dans le catalogue Séries. +Sauvegarde persistante des favoris. +Badge Favori dans les lignes VOD / Séries. +Badge Favori dans l’overlay du lecteur quand le film ou la série est marqué favori. + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant favoris VOD series" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-vod-series-favorites-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Fichiers modifiés + +app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/VodScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/SeriesScreen.kt + +Si Gradle se remet à faire son théâtre, envoie uniquement le bloc à partir de FAILURE: Build failed. + + +you asked + +message time: 2026-06-10 23:04:43 + +on ne vois pas les noms des episodes + + +chatgpt response + +Oui, on voit bien le problème : le panneau épisodes affiche juste des petits points, donc soit le serveur renvoie le titre dans un autre champ que title, soit il renvoie un titre vide/. et l’interface n’a pas de vrai fallback. Encore un serveur Xtream qui communique comme une imprimante en fin de vie. + +J’ai préparé une correction. + +Télécharger le ZIP + +📦 Télécharger la correction noms des épisodes + +Ce que ça corrige + +Les titres d’épisodes utilisent maintenant plusieurs champs possibles : + +title +name +episode_name + + +Si le serveur renvoie un titre vide, ., - ou ..., l’app affiche un nom lisible : + +Épisode 1 • Nom de la série +Épisode 2 • Nom de la série + +Le bouton Lire est réduit pour laisser plus de place au titre. +Le titre d’épisode peut s’afficher sur 2 lignes. +Les métadonnées affichent :saison ; +extension ; +durée si disponible ; +date si disponible ; +ID épisode. + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant noms episodes series" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-series-episode-names-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Fichiers modifiés + +app/src/main/java/ma/tkgraph/xtreamtv/data/model/SeriesInfoResponse.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/SeriesScreen.kt + +Après ça, même si ton fournisseur renvoie des titres d’épisodes façon “.”, l’interface affichera quelque chose de compréhensible. Minimalement civilisé, donc déjà un progrès. + + +you asked + +message time: 2026-06-10 23:14:40 + +on peut trier les catégories par les catgorie en français puis l'arabe pui les autres + + +chatgpt response + +Oui. J’ai préparé une mise à jour pour trier les catégories dans cet ordre : + +1. Catégories françaises +2. Catégories arabes +3. Autres catégories + +Les catégories internes restent en haut : + +Toutes les chaînes / Toutes les VOD / Toutes les séries +Favoris + +Parce que si “Favoris” part se perdre entre “Albania” et “Arabic Kids”, autant abandonner l’interface à une télécommande possédée. + +Télécharger le ZIP + +📦 Télécharger la mise à jour tri des catégories + +Écrans concernés + +Le tri est appliqué sur : + +Live TV +Guide TV global +VOD +Séries + +Fichiers modifiés / ajoutés + +app/src/main/java/ma/tkgraph/xtreamtv/util/CategorySortUtils.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ProgramGuideScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/VodScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/SeriesScreen.kt + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant tri categories" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-category-sort-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Le tri reconnaît notamment les catégories avec FR, FRANCE, FRENCH, puis AR, ARABIC, ARABE, MAROC, MOROCCO, texte arabe, etc. + + +you asked + +message time: 2026-06-10 23:28:42 + +au démarrage il y a un ecran blanc de chargement, tu peux le modifier avec l'ecran avec l'image en jointure + + +you asked + +message time: 2026-06-10 23:29:46 + +je ne demande pas la modification de l'image. je que dans le programme : au démarrage il y a un ecran blanc de chargement, tu peux le modifier avec l'ecran avec l'image en jointure + + +chatgpt response + +Oui, compris : on ne touche pas à l’image, on l’intègre dans l’application comme écran de démarrage. J’ai préparé le ZIP qui remplace l’écran blanc de chargement par ton visuel iMedia TV+. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Splash iMedia TV+ + +Ce que ça modifie + +Ajout de ton image dans : + +app/src/main/res/drawable-nodpi/imedia_tv_background.png + +Ajout d’un fond de lancement Android : + +app/src/main/res/drawable/launch_background.xml + +Modification du thème Android pour éviter l’écran blanc avant le chargement Compose : + +app/src/main/res/values/themes.xml + +Modification de l’écran LoadingScreen dans : + +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt + +Résultat attendu : + +au démarrage, l’image iMedia TV+ apparaît ; +pendant la connexion automatique, le message de chargement s’affiche en bas ; +plus d’écran blanc froid façon salle d’attente administrative. + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant splash iMedia" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-splash-background-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Le ZIP contient aussi un README_UPDATE_SPLASH_BACKGROUND.md et un apply-update.ps1, parce qu’apparemment même les écrans de chargement ont maintenant besoin d’un dossier de cérémonie. \ No newline at end of file diff --git a/IA/Développer-lecteur-vidéo-Google-TV.json b/IA/Développer-lecteur-vidéo-Google-TV.json new file mode 100644 index 0000000..161e2f9 --- /dev/null +++ b/IA/Développer-lecteur-vidéo-Google-TV.json @@ -0,0 +1,1767 @@ +[ + { + "id": "9ad5cb25-ba3d-42e2-93a8-3a38a1cb6592", + "ids": [ + "90580c7a-9b37-4b5a-a725-d9e21220e894", + "65907959-aa42-4192-b4e7-6be88b5a5397", + "5966c855-2821-43f9-bc7c-0b44e2e181da", + "70ed65ef-ce59-44c5-a204-0afaaa2ca75a", + "5bdc4922-193a-4c9d-b48c-ba628cd34e4f", + "efbea3af-1f0f-4172-9b57-87c3a22dbf18", + "9ad5cb25-ba3d-42e2-93a8-3a38a1cb6592" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "je veux développer un lecteur de video sur google tv qui peut lire le flux extream " + } + ], + "created_at": "2026-06-10 18:24:21", + "updated_at": 1781112335.85047 + }, + { + "id": "838e497d-2503-415a-80e6-ac1588762b16", + "ids": [ + "b00dc5ce-d91b-4344-b7a5-e9630f9cd6b6", + "45a1764e-b649-4a26-bd33-fe791443b880", + "4ee8057b-c208-4e64-a014-ff1d9e74bad0", + "a831b5b4-8e1e-4417-b400-01ef597f4e73", + "e32f3788-f309-485d-85d0-4bd27bec3665", + "faa72457-01b2-45bd-9e8d-22d2a9ae2d8c", + "dfb379ce-3ca4-4742-8746-542e4bcd941e", + "664f42f2-7bea-4e0f-935f-5e903a15fdcc", + "e300c217-a6a8-474f-8413-7a7cbff2193a", + "c7422769-1dac-4cf9-8c50-23dce7108a67", + "22821a18-745a-4fa5-8860-122d92d1436a", + "ef0e6c5c-c2a0-4b03-9cf7-23ac71f5711d", + "41c3dbc3-1c57-4cb5-91b8-151bc1b35523", + "838e497d-2503-415a-80e6-ac1588762b16" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Je vais cadrer ça proprement : Google TV = Android TV, donc le lecteur doit être natif Android, avec Media3/ExoPlayer pour éviter de réinventer la roue carrée, invention humaine déjà très complète. Je vérifie les docs actuelles avant de te donner une base technique exploitable." + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Je pars du principe que par **“flux extream”** tu veux dire **Xtream Codes / IPTV compatible Xtream**. Donc oui, c’est faisable sur **Google TV**, qui repose sur **Android TV**. La voie propre : **application Android TV native en Kotlin + Jetpack Compose for TV + Media3 ExoPlayer**. Faire ça autrement serait une invitation à souffrir, donc évidemment l’humanité l’a déjà essayé.\n\n## 1. Architecture recommandée\n\n### Stack technique\n\n| Élément | Choix recommandé |\n|---|---|\n| Plateforme | Android TV / Google TV |\n| Langage | Kotlin |\n| Interface | Jetpack Compose for TV |\n| Lecteur vidéo | AndroidX Media3 ExoPlayer |\n| Flux supportés | HLS `.m3u8`, MPEG-TS `.ts`, MP4, DASH selon le serveur |\n| API Xtream | `player_api.php`, `get.php`, `xmltv.php` |\n| Stockage | DataStore ou Room |\n| Réseau | Retrofit ou Ktor |\n| Publication | APK / AAB Google Play TV |\n\nGoogle recommande Compose for TV pour construire des interfaces adaptées à la télécommande, au focus et aux grands écrans. Media3 ExoPlayer est le composant moderne pour lire des fichiers ou flux vidéo/audio locaux ou distants. ([Android Developers](https://developer.android.com/training/tv/playback/compose?utm_source=chatgpt.com))\n\n## 2. Fonctionnement d’un flux Xtream\n\nUn accès Xtream contient généralement :\n\n```txt\nServeur : http://exemple.com:8080\nUsername : user\nPassword : pass\n```\n\nLes services compatibles Xtream utilisent souvent des endpoints comme :\n\n```txt\n/player_api.php?username=USER&password=PASS\n/player_api.php?username=USER&password=PASS&action=get_live_streams\n/player_api.php?username=USER&password=PASS&action=get_vod_streams\n/get.php?username=USER&password=PASS&type=m3u_plus&output=m3u8\n/xmltv.php?username=USER&password=PASS\n```\n\nCes formats sont largement utilisés par les fournisseurs Xtream compatibles, même si l’écosystème est assez “documentation éparpillée dans un tiroir en feu”. Les exemples publics montrent notamment `get.php` pour récupérer une playlist M3U et `player_api.php` pour récupérer les chaînes, VOD, séries et EPG. ([GitHub](https://github.com/pavan-kumar-murapala/yupp?utm_source=chatgpt.com))\n\n## 3. Ce que ton application doit faire\n\n### MVP conseillé\n\nLa première version devrait contenir :\n\n1. **Écran de connexion Xtream**\n - URL serveur\n - Nom d’utilisateur\n - Mot de passe\n\n2. **Validation du compte**\n - Appel à `player_api.php`\n - Vérification que l’abonnement est actif\n\n3. **Catalogue**\n - Chaînes Live\n - Films VOD\n - Séries\n - Catégories\n\n4. **Lecteur vidéo**\n - Lecture HLS `.m3u8`\n - Lecture MPEG-TS `.ts`\n - Pause / lecture\n - Retour\n - Changement de chaîne\n - Gestion erreurs réseau\n\n5. **Interface TV**\n - Navigation avec télécommande\n - Focus clair\n - Grandes cartes\n - Texte lisible\n - Aucun élément minuscule, ce n’est pas une appli pour fourmis.\n\n## 4. Dépendances Android nécessaires\n\nDans `build.gradle.kts` :\n\n```kotlin\ndependencies {\n val media3Version = \"1.10.1\"\n\n implementation(\"androidx.media3:media3-exoplayer:$media3Version\")\n implementation(\"androidx.media3:media3-exoplayer-hls:$media3Version\")\n implementation(\"androidx.media3:media3-exoplayer-dash:$media3Version\")\n implementation(\"androidx.media3:media3-ui:$media3Version\")\n implementation(\"androidx.media3:media3-session:$media3Version\")\n\n implementation(\"androidx.tv:tv-foundation:1.0.0\")\n implementation(\"androidx.tv:tv-material:1.0.0\")\n\n implementation(\"com.squareup.retrofit2:retrofit:2.11.0\")\n implementation(\"com.squareup.retrofit2:converter-gson:2.11.0\")\n}\n```\n\nLa version stable Media3 indiquée par Android Developers au 12 mai 2026 est **1.10.1**, avec des modules pour ExoPlayer, HLS, DASH, UI, Leanback et MediaSession. ([Android Developers](https://developer.android.com/jetpack/androidx/releases/media3))\n\n## 5. Manifest Android TV\n\nDans `AndroidManifest.xml` :\n\n```xml\n\n\n \n\n \n\n \n\n \n\n \n\n \n \n \n \n\n \n\n \n\n```\n\nPour être reconnu comme une app TV, Android demande une activité compatible TV avec le launcher Leanback, et Google Play impose aussi des critères de qualité spécifiques aux apps Android TV. ([Android Developers](https://developer.android.com/training/tv/get-started/create?utm_source=chatgpt.com))\n\n## 6. Modèle de configuration Xtream\n\n```kotlin\ndata class XtreamConfig(\n val serverUrl: String,\n val username: String,\n val password: String\n)\n```\n\nNormalisation simple :\n\n```kotlin\nfun cleanServerUrl(url: String): String {\n return url.trim().removeSuffix(\"/\")\n}\n```\n\n## 7. Générer une URL de lecture\n\nPour une chaîne live :\n\n```kotlin\nfun buildLiveUrl(\n config: XtreamConfig,\n streamId: Int,\n extension: String = \"m3u8\"\n): String {\n val baseUrl = cleanServerUrl(config.serverUrl)\n return \"$baseUrl/live/${config.username}/${config.password}/$streamId.$extension\"\n}\n```\n\nPour VOD :\n\n```kotlin\nfun buildVodUrl(\n config: XtreamConfig,\n streamId: Int,\n extension: String = \"mp4\"\n): String {\n val baseUrl = cleanServerUrl(config.serverUrl)\n return \"$baseUrl/movie/${config.username}/${config.password}/$streamId.$extension\"\n}\n```\n\nPour séries :\n\n```kotlin\nfun buildSeriesUrl(\n config: XtreamConfig,\n episodeId: Int,\n extension: String = \"mp4\"\n): String {\n val baseUrl = cleanServerUrl(config.serverUrl)\n return \"$baseUrl/series/${config.username}/${config.password}/$episodeId.$extension\"\n}\n```\n\nCertains fournisseurs utilisent `.ts`, d’autres `.m3u8`. Pour Google TV, privilégie **HLS `.m3u8`** quand disponible : ExoPlayer supporte officiellement HLS, DASH et d’autres formats courants, mais les codecs internes doivent aussi être compatibles avec l’appareil. ([Android Developers](https://developer.android.com/media/media3/exoplayer/supported-formats?utm_source=chatgpt.com))\n\n## 8. Lecteur vidéo avec Media3 ExoPlayer\n\nExemple simple en Kotlin Compose :\n\n```kotlin\n@Composable\nfun VideoPlayerScreen(\n streamUrl: String\n) {\n val context = LocalContext.current\n\n val player = remember {\n ExoPlayer.Builder(context).build().apply {\n val mediaItem = MediaItem.fromUri(streamUrl)\n setMediaItem(mediaItem)\n prepare()\n playWhenReady = true\n }\n }\n\n DisposableEffect(Unit) {\n onDispose {\n player.release()\n }\n }\n\n AndroidView(\n modifier = Modifier.fillMaxSize(),\n factory = { ctx ->\n PlayerView(ctx).apply {\n this.player = player\n useController = true\n keepScreenOn = true\n }\n }\n )\n}\n```\n\nCe code lit directement une URL `.m3u8`, `.ts`, `.mp4` ou autre format compatible. Media3 fournit l’interface `Player` pour lire, mettre en pause, chercher dans le flux et exposer les informations de lecture. ([Android Developers](https://developer.android.com/media/media3/exoplayer?utm_source=chatgpt.com))\n\n## 9. API Retrofit pour Xtream\n\n```kotlin\ninterface XtreamApi {\n\n @GET(\"player_api.php\")\n suspend fun getAccountInfo(\n @Query(\"username\") username: String,\n @Query(\"password\") password: String\n ): XtreamAccountResponse\n\n @GET(\"player_api.php\")\n suspend fun getLiveStreams(\n @Query(\"username\") username: String,\n @Query(\"password\") password: String,\n @Query(\"action\") action: String = \"get_live_streams\"\n ): List\n\n @GET(\"player_api.php\")\n suspend fun getVodStreams(\n @Query(\"username\") username: String,\n @Query(\"password\") password: String,\n @Query(\"action\") action: String = \"get_vod_streams\"\n ): List\n\n @GET(\"player_api.php\")\n suspend fun getSeries(\n @Query(\"username\") username: String,\n @Query(\"password\") password: String,\n @Query(\"action\") action: String = \"get_series\"\n ): List\n}\n```\n\nExemple DTO live :\n\n```kotlin\ndata class LiveStreamDto(\n val name: String,\n val stream_id: Int,\n val stream_icon: String?,\n val category_id: String?,\n val epg_channel_id: String?\n)\n```\n\n## 10. Interface TV recommandée\n\n### Accueil\n\n```txt\n[Continuer à regarder]\n\n[Live TV]\n Sport | News | Films | Enfants | Généraliste\n\n[VOD]\n Films récents | Action | Comédie | Drame\n\n[Séries]\n Derniers épisodes | Populaires\n```\n\n### Navigation télécommande\n\nL’interface doit être pensée pour :\n\n- boutons larges ;\n- focus visible ;\n- navigation horizontale/verticale fluide ;\n- retour rapide au lecteur ;\n- changement de chaîne avec haut/bas ;\n- recherche simple ;\n- favoris.\n\nSur TV, le focus est plus important que le design décoratif. Une belle interface impossible à naviguer avec une télécommande reste une punition, pas un produit.\n\n## 11. Fonctions importantes à prévoir\n\n| Fonction | Priorité |\n|---|---|\n| Lecture Live | Très haute |\n| Lecture VOD | Haute |\n| Séries | Haute |\n| Favoris | Haute |\n| Reprise de lecture | Moyenne |\n| EPG / guide TV | Haute |\n| Recherche | Haute |\n| Contrôle parental | Moyenne |\n| Multi-profils | Moyenne |\n| Catch-up TV | Selon fournisseur |\n| Sous-titres | Haute pour VOD |\n| Choix qualité | Selon flux |\n\n## 12. Points sensibles\n\n### Légalité\n\nTon lecteur doit uniquement lire des flux pour lesquels l’utilisateur ou le fournisseur possède les droits. Ne construis pas une app orientée contournement, piratage, partage d’identifiants ou accès non autorisé. En plus d’être illégal, c’est le genre de décision qui transforme un projet commercial en dossier pénible.\n\n### Sécurité\n\nNe stocke pas les identifiants en clair.\n\nUtilise :\n\n- `EncryptedSharedPreferences` ou DataStore chiffré ;\n- HTTPS si le fournisseur le permet ;\n- masquage du mot de passe ;\n- suppression rapide du compte ;\n- aucun log contenant username/password.\n\n### Compatibilité\n\nTous les flux IPTV ne sont pas propres. Certains serveurs envoient des `.ts` instables, des codecs douteux ou des playlists mal formées. ExoPlayer est solide, mais il ne fera pas de miracle avec un flux bricolé au chalumeau.\n\n## 13. Plan de développement conseillé\n\n### Phase 1 — MVP\n\n- Créer projet Android TV Kotlin.\n- Ajouter Media3.\n- Ajouter écran login Xtream.\n- Tester `player_api.php`.\n- Afficher les chaînes live.\n- Lire une chaîne avec ExoPlayer.\n\n### Phase 2 — Catalogue\n\n- Catégories live.\n- VOD.\n- Séries.\n- Images.\n- Recherche.\n- Favoris.\n\n### Phase 3 — Expérience TV\n\n- Focus télécommande.\n- Design Google TV.\n- Écran lecteur avancé.\n- Zapping rapide.\n- Guide EPG.\n\n### Phase 4 — Produit commercial\n\n- Abonnements ou licence app.\n- Analytics anonymes.\n- Crash reporting.\n- Publication Google Play TV.\n- Politique de confidentialité.\n- Conditions d’utilisation.\n\n## Conclusion\n\nLe meilleur choix technique est :\n\n```txt\nAndroid TV natif\n+ Kotlin\n+ Jetpack Compose for TV\n+ Media3 ExoPlayer\n+ API Xtream\n```\n\nC’est stable, compatible Google TV, publiable sur Play Store et suffisamment flexible pour lire du live, VOD, séries et EPG. Le vrai travail ne sera pas seulement le lecteur vidéo, mais la qualité de l’expérience TV : navigation fluide, zapping rapide, gestion des erreurs et interface propre. Le lecteur, lui, c’est la partie presque civilisée de cette aventure." + } + ], + "created_at": "2026-06-10 18:24:46", + "updated_at": 0 + }, + { + "id": "cebfa84a-a3bc-4767-bd1b-ea6d5cf50c23", + "ids": [ + "cebfa84a-a3bc-4767-bd1b-ea6d5cf50c23" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "ok, donne moi les fichiers à créer en zip" + } + ], + "created_at": "2026-06-10 18:26:49", + "updated_at": 1781112644.04581 + }, + { + "id": "66725ce1-15dc-412d-a00e-975bf2654918", + "ids": [ + "1986ab59-f22e-495f-b9c2-ac304df3ddfb", + "6aad72d9-6bee-4640-af6d-1af24d5476d8", + "b789e471-de8e-4226-940f-eef9983b9858", + "ee015346-674a-4d97-b662-6f4faedccb2e", + "2342b686-e23b-43aa-8a96-3559ca2d8edd", + "7739a9f4-93e1-4a62-9997-34d48addfbed", + "cc31b600-aa98-4c3b-997f-0fa7eaa0a2e1", + "739a965f-babb-4060-8beb-1bd9ffc9a72a", + "8f37c90b-e185-4467-9d55-cec2fef13093", + "00f8eae0-1742-4591-bb55-b59d45d2cfce", + "de909c03-2068-4b1b-a9f3-8c89ecce16e6", + "620de180-7ebb-4b5e-814d-80389c9f120b", + "6ec29dd6-6a5e-4acf-880f-a16456c52242", + "6c1bc38e-169f-4364-b73f-dc98395a8b4f", + "cf751c0b-99d3-4cb7-9c2b-0701c5e1721d", + "d2f5b2b3-942e-4a75-b7fb-fbf879a735fc", + "66725ce1-15dc-412d-a00e-975bf2654918" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "Je vais te préparer un **ZIP de base complet** pour un lecteur Google TV compatible Xtream : projet Android Kotlin, écran de connexion, liste de chaînes et lecteur vidéo. Bref, le squelette avant que les bugs ne viennent réclamer leur héritage." + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Je crée un projet **minimal mais structuré**, pas juste trois fichiers jetés dans un dossier comme une armoire de bureau municipal. Il contiendra déjà l’API Xtream, l’interface TV, et le lecteur Media3/ExoPlayer." + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "C’est prêt. J’ai créé un ZIP avec un **projet Android TV / Google TV Kotlin** pour lire un accès **Xtream compatible**, avec écran de connexion, récupération des chaînes Live et lecteur vidéo Media3/ExoPlayer. Voilà, un squelette propre, pas une pile de fichiers abandonnés dans un coin numérique.\n\n### Télécharger le ZIP\n\n[📦 Télécharger le projet Xtream Google TV Player](sandbox:/mnt/data/xtream-google-tv-player.zip)\n\n### Ce que le ZIP contient\n\n- Projet Android Kotlin complet.\n- `MainActivity.kt`\n- Écran de connexion Xtream.\n- Liste des chaînes Live.\n- Lecteur vidéo avec **Media3 ExoPlayer**.\n- API Retrofit vers `player_api.php`.\n- Génération d’URL Live Xtream.\n- Manifest compatible **Android TV / Google TV**.\n- README avec les instructions de lancement.\n\n### Versions utilisées\n\nLe projet utilise notamment **Media3 1.10.1**, version listée officiellement dans les releases AndroidX Media3, ainsi que les dépendances Compose TV `tv-material:1.1.0` et `tv-foundation:1.0.0`. J’ai aussi configuré Compose avec le BOM `2026.04.01`, recommandé dans les notes Compose d’avril 2026. ([Android Developers](https://developer.android.com/jetpack/androidx/releases/media3?utm_source=chatgpt.com))\n\n### Important\n\nJe n’ai pas compilé le projet dans Android Studio ici, parce que l’environnement de génération Android complet n’est pas disponible dans cette session. Le ZIP est structuré pour être ouvert directement dans **Android Studio**. Il faudra ensuite faire une synchronisation Gradle, puis lancer sur un appareil ou émulateur **Android TV / Google TV**. Le projet utilise Android Gradle Plugin `9.0.1`, dont la compatibilité officielle mentionne notamment JDK 17 et SDK Android 36. ([Android Developers](https://developer.android.com/build/releases/agp-9-0-0-release-notes?utm_source=chatgpt.com))" + } + ], + "created_at": "2026-06-10 18:30:30", + "updated_at": 1781112647.151744 + }, + { + "id": "77a24dbd-fd8c-4ea3-8ac7-c8722db4c68d", + "ids": [ + "77a24dbd-fd8c-4ea3-8ac7-c8722db4c68d" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "ok. donne moi les commandes pour compiler et créer une apk et le transférer dans la box" + } + ], + "created_at": "2026-06-10 18:32:52", + "updated_at": 1781112832.029425 + }, + { + "id": "6c9169ad-3eee-4f65-ad71-123a1d6621cb", + "ids": [ + "3c74f95c-7d45-43f7-8e50-877c0b44fcd5", + "78ec384f-871a-4e62-aa2b-7a7d9909917e", + "cb7fd853-5712-4bcc-b957-4b17d4629b34", + "933f0e22-923a-4d26-807a-2f1b25d1fd5b", + "c129f822-965d-4c13-a472-2c357057ed78", + "853cb30d-c668-46b1-8895-7fbed2d0dd20", + "f3178edd-feae-49e5-91cc-2ac0f3a4c490", + "d7392a5b-984f-4553-bf0b-6580855665f5", + "ee62f85b-6635-4d97-8a6f-57eb28f9c549", + "d950b150-8a17-40c6-a1b3-20c46fedd45d", + "4ad99d39-4fb6-48d7-b8fa-440af3095f43", + "804d10ba-bd19-422f-a7cb-ef35f8cd4f23", + "9bd6e43d-d703-4bb6-8696-6f2e9e612c19", + "a7377d3c-6dad-4fcc-b360-4ffa771d6c91", + "6c9169ad-3eee-4f65-ad71-123a1d6621cb" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Voici les commandes **Windows PowerShell** pour compiler le projet, créer l’APK et l’envoyer dans ta box Google TV. Parce qu’évidemment, brancher une télé à un ordinateur n’était pas assez absurde, il fallait aussi lui parler en ADB.\n\nLes commandes Android officielles passent par le **Gradle Wrapper** (`gradlew.bat` sous Windows) et l’installation peut se faire avec **ADB**. Android indique aussi que le projet AGP 9.0 utilise **JDK 17** et **Gradle 9.1.0 minimum**. ([Android Developers](https://developer.android.com/build/building-cmdline?hl=fr&utm_source=chatgpt.com))\n\n---\n\n## 1. Décompresser le ZIP\n\nAdapte le chemin selon l’endroit où tu as téléchargé le fichier.\n\n```powershell\ncd D:\\07-Logiciels\\03-FIN65\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player.zip\" -DestinationPath .\ncd .\\xtream-google-tv-player\n```\n\n---\n\n## 2. Vérifier Java et ADB\n\n```powershell\njava -version\nadb version\n```\n\nIl faut avoir :\n\n```txt\nJava 17\nADB installé avec Android SDK Platform Tools\n```\n\nSi `adb` n’est pas reconnu, ajoute temporairement Platform Tools au PATH :\n\n```powershell\n$env:Path += \";$env:LOCALAPPDATA\\Android\\Sdk\\platform-tools\"\nadb version\n```\n\n---\n\n## 3. Créer le Gradle Wrapper si absent\n\nDans le ZIP que je t’ai donné, il n’y a pas encore `gradlew.bat`. Donc il faut le générer une seule fois. Oui, évidemment, encore une petite cérémonie rituelle avant de compiler.\n\nInstalle Gradle si besoin :\n\n```powershell\nwinget install Gradle.Gradle\n```\n\nPuis dans le dossier du projet :\n\n```powershell\ngradle wrapper --gradle-version 9.1.0\n```\n\nVérifie :\n\n```powershell\n.\\gradlew.bat --version\n```\n\n---\n\n## 4. Compiler l’APK debug\n\n```powershell\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n```\n\nL’APK sera créé ici :\n\n```txt\napp\\build\\outputs\\apk\\debug\\app-debug.apk\n```\n\n---\n\n## 5. Activer ADB sur la box Google TV\n\nSur ta box Google TV :\n\n```txt\nParamètres\n> Système\n> À propos\n> Cliquer 7 fois sur \"Build\" / \"Version\"\n```\n\nEnsuite :\n\n```txt\nParamètres\n> Système\n> Options pour les développeurs\n> Activer le débogage USB / débogage réseau / débogage sans fil\n```\n\nSelon la version Android de la box, tu auras soit une connexion simple en `5555`, soit un système avec code d’appairage. Android permet le débogage via USB ou Wi-Fi avec ADB. ([Android Developers](https://developer.android.com/studio/debug/dev-options?utm_source=chatgpt.com))\n\n---\n\n# Méthode A — Connexion ADB classique\n\nUtilise cette méthode si la box affiche seulement son IP.\n\nExemple :\n\n```powershell\nadb connect 192.168.1.50:5555\nadb devices\n```\n\nSi la box apparaît dans la liste :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nLancer l’application :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n# Méthode B — Connexion avec code d’appairage\n\nSur certaines Google TV récentes, tu verras :\n\n```txt\nAdresse IP + port d’appairage\nCode d’appairage\n```\n\nCommande :\n\n```powershell\nadb pair 192.168.1.50:37123\n```\n\nEntre le code affiché sur la TV.\n\nEnsuite connecte-toi au port ADB normal affiché par la box :\n\n```powershell\nadb connect 192.168.1.50:42195\nadb devices\n```\n\nPuis installe l’APK :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nLancer l’app :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n## 6. Commande complète rapide\n\nQuand tout est déjà configuré :\n\n```powershell\ncd D:\\07-Logiciels\\03-FIN65\\xtream-google-tv-player\n\n.\\gradlew.bat clean :app:assembleDebug\n\nadb connect 192.168.1.50:5555\n\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\nRemplace :\n\n```txt\n192.168.1.50\n```\n\npar l’adresse IP réelle de ta box.\n\n---\n\n## 7. Désinstaller l’application si besoin\n\n```powershell\nadb uninstall ma.tkgraph.xtreamtv\n```\n\nPuis réinstaller :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\n---\n\n## 8. Voir les logs en cas de bug\n\n```powershell\nadb logcat | findstr Xtream\n```\n\nOu logs Android complets :\n\n```powershell\nadb logcat\n```\n\n---\n\n## 9. Créer une APK release\n\nPour une APK release non signée :\n\n```powershell\n.\\gradlew.bat :app:assembleRelease\n```\n\nChemin probable :\n\n```txt\napp\\build\\outputs\\apk\\release\\app-release-unsigned.apk\n```\n\nPour une installation directe sur ta box, utilise plutôt l’APK debug :\n\n```txt\napp-debug.apk\n```\n\nElle est déjà signée automatiquement pour les tests. La release propre servira plus tard pour une distribution sérieuse, donc quand on arrêtera de vivre comme des développeurs qui installent tout à la main par Wi-Fi." + } + ], + "created_at": "2026-06-10 18:33:23", + "updated_at": 1781115066.8206 + }, + { + "id": "007036ea-42a7-4c9c-8865-374801110f40", + "ids": [ + "007036ea-42a7-4c9c-8865-374801110f40" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "attachment", + "attachment": { + "id": "file_00000000c1107243bf8aeacb54be0163", + "size": 121790, + "name": "image(511).png", + "mime_type": "image/png", + "width": 987, + "height": 832, + "source": "local", + "library_file_id": "libfile_09378647e76c81918e382b5a3a273da5", + "is_big_paste": false, + "url": "https://chatgpt.com/backend-api/estuary/content?id=file_00000000c1107243bf8aeacb54be0163&ts=494757&p=fs&cid=1&sig=a140a54f58adfc8689237dbe4f89c9d0d4fe20bb3562955c7165fea6d7401f47&v=0" + } + }, + { + "type": "attachment", + "attachment": { + "id": "file_00000000744071f4b2b9cd39c37b2e25", + "size": 151139, + "name": "image(512).png", + "mime_type": "image/png", + "width": 981, + "height": 843, + "source": "local", + "library_file_id": "libfile_cda21164dbb88191a5b5ddd4bdafa646", + "is_big_paste": false, + "url": "https://chatgpt.com/backend-api/estuary/content?id=file_00000000744071f4b2b9cd39c37b2e25&ts=494757&p=fs&cid=1&sig=ce6bec8fa9d80628631d9475ca9bb6566dc95f8515e38cb9a39bbebb1b2034a8&v=0" + } + }, + { + "type": "attachment", + "attachment": { + "id": "file_00000000e4e071f48ab1c1ce35edb1c5", + "size": 27476, + "name": "image(513).png", + "mime_type": "image/png", + "width": 769, + "height": 326, + "source": "local", + "library_file_id": "libfile_4375d378c6c88191a07e7f4ec3be2666", + "is_big_paste": false, + "url": "https://chatgpt.com/backend-api/estuary/content?id=file_00000000e4e071f48ab1c1ce35edb1c5&ts=494757&p=fs&cid=1&sig=635f92bcfb72a249a373f285f26d1fdabb7c79dfc8f0bc16fd42bf2f2cffeaf8&v=0" + } + }, + { + "type": "attachment", + "attachment": { + "id": "file_000000008aac71f4979b2b2360530428", + "size": 34248, + "name": "image(514).png", + "mime_type": "image/png", + "width": 844, + "height": 461, + "source": "local", + "library_file_id": "libfile_a74bccbf39f08191b820891bba45820b", + "is_big_paste": false, + "url": "https://chatgpt.com/backend-api/estuary/content?id=file_000000008aac71f4979b2b2360530428&ts=494757&p=fs&cid=1&sig=b498105f35fbd5d157e9a2000bc6d7d61ac259a5736392f7b1ebda10b43d3eed&v=0" + } + }, + { + "type": "text", + "content": "voila ce que j'ai" + } + ], + "created_at": "2026-06-10 19:15:48", + "updated_at": 1781115385.459237 + }, + { + "id": "13befa4f-742c-4d32-9b0f-82bc06748635", + "ids": [ + "353d1f69-ac84-4ca1-b9e0-54c95af4b09e", + "d2f2fd8f-c573-47be-950b-26e983344ae4", + "13befa4f-742c-4d32-9b0f-82bc06748635" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Parfait. D’après tes captures, tu as déjà l’essentiel :\n\n- **Android SDK Platform 36.1 installé**\n- **Android SDK Build-Tools installé**\n- **Android SDK Platform-Tools installé**\n- **Command-line Tools installé**\n- **Android Emulator installé**\n- **Java disponible via Android Studio / PyCharm**\n- Le projet est ici :\n\n```powershell\nD:\\07-Logiciels\\11-IPTV Andoid TV 2\n```\n\nLe dossier correct est celui qui contient :\n\n```txt\napp\ngradle\nbuild.gradle.kts\nsettings.gradle.kts\nREADME\n```\n\nDonc **ne rentre pas dans le dossier `xtream-google-tv-player` à l’intérieur**, sauf si c’est une deuxième copie. Oui, le zip s’est visiblement installé comme une poupée russe inutile, la poésie de Windows.\n\n---\n\n# 1. Ouvre PowerShell dans le bon dossier\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n```\n\nVérifie que tu es au bon endroit :\n\n```powershell\ndir\n```\n\nTu dois voir :\n\n```txt\napp\ngradle\nbuild.gradle.kts\nsettings.gradle.kts\n```\n\n---\n\n# 2. Configurer Java avec Android Studio\n\nTu as Java ici :\n\n```txt\nD:\\Program Files\\Android\\Android Studio\\jbr\\bin\\java.exe\n```\n\nDonc dans PowerShell :\n\n```powershell\n$env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\n$env:Path = \"$env:JAVA_HOME\\bin;$env:Path\"\n```\n\nTeste :\n\n```powershell\njava -version\n```\n\nTu dois obtenir une version Java/JDK, idéalement **17** ou plus.\n\n---\n\n# 3. Configurer ADB\n\nTon SDK est sûrement ici :\n\n```powershell\n$env:ANDROID_HOME = \"$env:LOCALAPPDATA\\Android\\Sdk\"\n$env:Path = \"$env:ANDROID_HOME\\platform-tools;$env:ANDROID_HOME\\cmdline-tools\\latest\\bin;$env:Path\"\n```\n\nTeste :\n\n```powershell\nadb version\n```\n\nSi ça répond avec une version ADB, c’est bon.\n\n---\n\n# 4. Vérifier si `gradlew.bat` existe\n\nDans ton dossier projet, tape :\n\n```powershell\ndir gradlew.bat\n```\n\n## Si `gradlew.bat` existe\n\nPasse directement à la compilation :\n\n```powershell\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n```\n\n## Si `gradlew.bat` n’existe pas\n\nInstalle Gradle :\n\n```powershell\nwinget install Gradle.Gradle\n```\n\nFerme PowerShell, rouvre-le, puis retourne dans le dossier :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n```\n\nRemets Java :\n\n```powershell\n$env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\n$env:Path = \"$env:JAVA_HOME\\bin;$env:Path\"\n```\n\nPuis crée le wrapper Gradle :\n\n```powershell\ngradle wrapper --gradle-version 9.1.0\n```\n\nEnsuite compile :\n\n```powershell\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n```\n\n---\n\n# 5. Emplacement de l’APK générée\n\nAprès compilation, ton APK sera ici :\n\n```powershell\n.\\app\\build\\outputs\\apk\\debug\\app-debug.apk\n```\n\nVérifie avec :\n\n```powershell\ndir \".\\app\\build\\outputs\\apk\\debug\\\"\n```\n\n---\n\n# 6. Activer ADB sur la box Google TV\n\nSur ta box :\n\n```txt\nParamètres\n> Système\n> À propos\n> Version / Build\n> Clique 7 fois\n```\n\nPuis :\n\n```txt\nParamètres\n> Système\n> Options pour les développeurs\n> Débogage USB ou Débogage sans fil\n```\n\nSur Google TV récente, il y a souvent **Débogage sans fil avec code d’appairage**.\n\n---\n\n# 7. Connecter la box en Wi-Fi avec ADB\n\n## Méthode avec appairage\n\nSur la TV, ouvre :\n\n```txt\nDébogage sans fil\n> Associer avec un code\n```\n\nTu verras :\n\n```txt\nAdresse IP : 192.168.1.xx\nPort d’appairage : 37xxx\nCode : 123456\n```\n\nSur ton PC :\n\n```powershell\nadb pair 192.168.1.xx:37xxx\n```\n\nEntre le code affiché sur la TV.\n\nEnsuite connecte-toi au port ADB normal affiché dans l’écran du débogage sans fil :\n\n```powershell\nadb connect 192.168.1.xx:xxxxx\n```\n\nVérifie :\n\n```powershell\nadb devices\n```\n\nTu dois voir un appareil en mode :\n\n```txt\ndevice\n```\n\n---\n\n# 8. Installer l’APK dans la box\n\nDepuis le dossier du projet :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nSi tout va bien :\n\n```txt\nSuccess\n```\n\nLa civilisation tient encore debout, brièvement.\n\n---\n\n# 9. Lancer l’application\n\nEssaie d’abord :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\nSi ça ne lance rien, liste les packages :\n\n```powershell\nadb shell pm list packages | findstr xtream\n```\n\nPuis lance avec le package trouvé.\n\n---\n\n# 10. Commandes complètes à copier-coller\n\nAdapte seulement l’adresse IP de ta box.\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n$env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\n$env:ANDROID_HOME = \"$env:LOCALAPPDATA\\Android\\Sdk\"\n$env:Path = \"$env:JAVA_HOME\\bin;$env:ANDROID_HOME\\platform-tools;$env:ANDROID_HOME\\cmdline-tools\\latest\\bin;$env:Path\"\n\njava -version\nadb version\n\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n\nadb connect 192.168.1.xx:xxxxx\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n# 11. Si tu as une erreur Gradle\n\nLance :\n\n```powershell\n.\\gradlew.bat --version\n```\n\nPuis :\n\n```powershell\n.\\gradlew.bat :app:assembleDebug --stacktrace\n```\n\nL’erreur importante sera en bas. Pas les 300 lignes où Gradle raconte sa vie comme s’il écrivait ses mémoires." + } + ], + "created_at": "2026-06-10 19:15:49", + "updated_at": 1781115564.733328 + }, + { + "id": "d0bdd5b8-902d-40dc-aec4-032fd49ca36e", + "ids": [ + "d0bdd5b8-902d-40dc-aec4-032fd49ca36e" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "PS D:\\07-Logiciels\\11-IPTV Andoid TV 2> cd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> dir\r\n\r\n\r\n Directory: D:\\07-Logiciels\\11-IPTV Andoid TV 2\r\n\r\n\r\nMode LastWriteTime Length Name\r\n---- ------------- ------ ----\r\nd----- 10/06/2026 18:32 app\r\nd----- 10/06/2026 18:32 gradle\r\nd----- 10/06/2026 19:10 xtream-google-tv-player\r\n-a---- 10/06/2026 18:32 67 .gitignore\r\n-a---- 10/06/2026 18:32 170 build.gradle.kts\r\n-a---- 10/06/2026 18:32 3539 README.md\r\n-a---- 10/06/2026 18:32 340 settings.gradle.kts\r\n\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> D:\\Program Files\\Android\\Android Studio\\jbr\\bin\\java.exe\r\nD:\\Program : The term 'D:\\Program' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the\r\npath is correct and try again.\r\nAt line:1 char:1\r\n+ D:\\Program Files\\Android\\Android Studio\\jbr\\bin\\java.exe\r\n+ ~~~~~~~~~~\r\n + CategoryInfo : ObjectNotFound: (D:\\Program:String) [], CommandNotFoundException\r\n + FullyQualifiedErrorId : CommandNotFoundException\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> 'D:\\Program Files\\Android\\Android Studio\\jbr\\bin\\java.exe'\r\nD:\\Program Files\\Android\\Android Studio\\jbr\\bin\\java.exe\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:Path = \"$env:JAVA_HOME\\bin;$env:Path\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> java -version\r\nopenjdk version \"21.0.10\" 2026-01-20\r\nOpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108)\r\nOpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode)\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:ANDROID_HOME = \"$env:LOCALAPPDATA\\Android\\Sdk\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:Path = \"$env:ANDROID_HOME\\platform-tools;$env:ANDROID_HOME\\cmdline-tools\\latest\\bin;$env:Path\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb version\r\nAndroid Debug Bridge version 1.0.41\r\nVersion 37.0.0-14910828\r\nInstalled as C:\\Users\\abmou\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe\r\nRunning on Windows 10.0.26200\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> dir gradlew.bat\r\ndir : Cannot find path 'D:\\07-Logiciels\\11-IPTV Andoid TV 2\\gradlew.bat' because it does not exist.\r\nAt line:1 char:1\r\n+ dir gradlew.bat\r\n+ ~~~~~~~~~~~~~~~\r\n + CategoryInfo : ObjectNotFound: (D:\\07-Logiciels...V 2\\gradlew.bat:String) [Get-ChildItem], ItemNotFoundException\r\n + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> winget install Gradle.Gradle\r\nThe `msstore` source requires that you view the following agreements before using.\r\nTerms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction\r\nThe source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. \"US\").\r\n\r\nDo you agree to all the source agreements terms?\r\n[Y] Yes [N] No: y\r\nNo package found matching input criteria.\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> winget install Gradle.Gradle\r\nNo package found matching input criteria.\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\n\nPowershell réouvert : \nWindows PowerShell\r\nCopyright (C) Microsoft Corporation. All rights reserved.\r\n\r\nInstall the latest PowerShell for new features and improvements! https://aka.ms/PSWindows\r\n\r\nPS C:\\WINDOWS\\system32> cd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:Path = \"$env:JAVA_HOME\\bin;$env:Path\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0\r\ngradle : The term 'gradle' is not recognized as the name of a cmdlet, function, script file, or operable program.\r\nCheck the spelling of the name, or if a path was included, verify that the path is correct and try again.\r\nAt line:1 char:1\r\n+ gradle wrapper --gradle-version 9.1.0\r\n+ ~~~~~~\r\n + CategoryInfo : ObjectNotFound: (gradle:String) [], CommandNotFoundException\r\n + FullyQualifiedErrorId : CommandNotFoundException\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>" + } + ], + "created_at": "2026-06-10 19:19:49", + "updated_at": 1781115692.658796 + }, + { + "id": "fd2b39b3-38c8-4752-a03b-5d620fc79da2", + "ids": [ + "004e9f04-6f9d-46a8-a97c-99f3473e487a", + "3d8b70f9-24d7-4134-b841-eb91ed147c5d", + "5d963722-59b9-4cf7-8e15-3753f1d2ce10", + "54e952a5-bc7f-4bc1-8ba9-0ec9fa258d57", + "02b76069-85df-4aa2-b166-f2e8b71fb54e", + "af0d9d7d-ab4d-4593-8d04-5f7108bb9234", + "d1de0380-76f8-4aef-b9eb-25a5541c7a98", + "fd2b39b3-38c8-4752-a03b-5d620fc79da2" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Tu es **presque prêt**. Le problème est simple : **Java fonctionne**, **ADB fonctionne**, mais **Gradle n’est pas installé** et le projet n’a pas encore `gradlew.bat`.\n\nDonc PowerShell te dit littéralement : *“gradle ? connais pas.”* Très utile, comme toujours.\n\n---\n\n# 1. Petite correction Java\n\nCette commande ne marche pas à cause des espaces dans `Program Files` :\n\n```powershell\nD:\\Program Files\\Android\\Android Studio\\jbr\\bin\\java.exe\n```\n\nPour exécuter un chemin avec espaces dans PowerShell, il faut utiliser `&` :\n\n```powershell\n& \"D:\\Program Files\\Android\\Android Studio\\jbr\\bin\\java.exe\" -version\n```\n\nMais tu as déjà bien configuré Java ensuite :\n\n```powershell\njava -version\n```\n\nEt ça répond :\n\n```txt\nopenjdk version \"21.0.10\"\n```\n\nDonc **Java est OK**.\n\n---\n\n# 2. Le vrai blocage\n\nCette erreur :\n\n```txt\ngradle : The term 'gradle' is not recognized\n```\n\nveut dire :\n\n```txt\nGradle n’est pas installé ou pas dans le PATH.\n```\n\nEt comme `winget install Gradle.Gradle` ne trouve rien, on va faire plus fiable : **installer Gradle manuellement avec PowerShell**.\n\n---\n\n# 3. Installer Gradle manuellement\n\nCopie-colle ce bloc complet dans PowerShell :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n$gradleVersion = \"9.1.0\"\n$gradleInstallDir = \"D:\\Tools\\Gradle\"\n$gradleZip = \"$env:TEMP\\gradle-$gradleVersion-bin.zip\"\n\nNew-Item -ItemType Directory -Force -Path $gradleInstallDir\n\nInvoke-WebRequest `\n -Uri \"https://services.gradle.org/distributions/gradle-$gradleVersion-bin.zip\" `\n -OutFile $gradleZip\n\nExpand-Archive -Path $gradleZip -DestinationPath $gradleInstallDir -Force\n\n$env:Path = \"$gradleInstallDir\\gradle-$gradleVersion\\bin;$env:Path\"\n\ngradle -v\n```\n\nSi tout est bon, tu dois voir une réponse avec :\n\n```txt\nGradle 9.1.0\n```\n\n---\n\n# 4. Configurer Java + Android SDK\n\nToujours dans PowerShell :\n\n```powershell\n$env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\n$env:ANDROID_HOME = \"$env:LOCALAPPDATA\\Android\\Sdk\"\n\n$env:Path = \"$env:JAVA_HOME\\bin;$env:ANDROID_HOME\\platform-tools;$env:ANDROID_HOME\\cmdline-tools\\latest\\bin;D:\\Tools\\Gradle\\gradle-9.1.0\\bin;$env:Path\"\n\njava -version\nadb version\ngradle -v\n```\n\nTu dois avoir les 3 commandes qui répondent.\n\n---\n\n# 5. Créer `gradlew.bat`\n\nMaintenant, dans ton dossier projet :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\ngradle wrapper --gradle-version 9.1.0 --distribution-type bin\n```\n\nEnsuite vérifie :\n\n```powershell\ndir gradlew.bat\n```\n\nTu dois voir :\n\n```txt\ngradlew.bat\n```\n\nSi ce fichier apparaît, la bête respire.\n\n---\n\n# 6. Compiler l’APK debug\n\nMaintenant utilise le wrapper du projet :\n\n```powershell\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n```\n\nL’APK sera ici :\n\n```powershell\n.\\app\\build\\outputs\\apk\\debug\\app-debug.apk\n```\n\nVérifie :\n\n```powershell\ndir \".\\app\\build\\outputs\\apk\\debug\\\"\n```\n\n---\n\n# 7. Commande complète à copier-coller\n\nTu peux utiliser ce bloc complet :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n$env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\n$env:ANDROID_HOME = \"$env:LOCALAPPDATA\\Android\\Sdk\"\n$env:Path = \"$env:JAVA_HOME\\bin;$env:ANDROID_HOME\\platform-tools;$env:ANDROID_HOME\\cmdline-tools\\latest\\bin;D:\\Tools\\Gradle\\gradle-9.1.0\\bin;$env:Path\"\n\njava -version\nadb version\ngradle -v\n\ngradle wrapper --gradle-version 9.1.0 --distribution-type bin\n\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n```\n\n---\n\n# 8. Si le téléchargement Gradle bloque\n\nSi `Invoke-WebRequest` échoue, essaie cette version :\n\n```powershell\n[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12\n\nInvoke-WebRequest `\n -Uri \"https://services.gradle.org/distributions/gradle-9.1.0-bin.zip\" `\n -OutFile \"$env:TEMP\\gradle-9.1.0-bin.zip\"\n```\n\nPuis :\n\n```powershell\nExpand-Archive -Path \"$env:TEMP\\gradle-9.1.0-bin.zip\" -DestinationPath \"D:\\Tools\\Gradle\" -Force\n$env:Path = \"D:\\Tools\\Gradle\\gradle-9.1.0\\bin;$env:Path\"\ngradle -v\n```\n\n---\n\n# 9. Installer l’APK sur la box après compilation\n\nQuand l’APK existe, connecte ta box :\n\n```powershell\nadb devices\n```\n\nSi elle est en Wi-Fi :\n\n```powershell\nadb connect 192.168.1.xx:xxxxx\n```\n\nPuis installe :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nLance l’application :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n# 10. Si tu as une erreur à la compilation\n\nLance cette commande :\n\n```powershell\n.\\gradlew.bat :app:assembleDebug --stacktrace\n```\n\nEt récupère surtout **les 20 dernières lignes**. Pas tout le roman Gradle, sinon on va finir par lire sa biographie non autorisée." + } + ], + "created_at": "2026-06-10 19:20:49", + "updated_at": 1781115799.819955 + }, + { + "id": "0a0ec554-6a16-4275-9175-ac6d48d1182f", + "ids": [ + "0a0ec554-6a16-4275-9175-ac6d48d1182f" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "Windows PowerShell\r\nCopyright (C) Microsoft Corporation. All rights reserved.\r\n\r\nInstall the latest PowerShell for new features and improvements! https://aka.ms/PSWindows\r\n\r\nPS C:\\WINDOWS\\system32> cd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:Path = \"$env:JAVA_HOME\\bin;$env:Path\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0\r\ngradle : The term 'gradle' is not recognized as the name of a cmdlet, function, script file, or operable program.\r\nCheck the spelling of the name, or if a path was included, verify that the path is correct and try again.\r\nAt line:1 char:1\r\n+ gradle wrapper --gradle-version 9.1.0\r\n+ ~~~~~~\r\n + CategoryInfo : ObjectNotFound: (gradle:String) [], CommandNotFoundException\r\n + FullyQualifiedErrorId : CommandNotFoundException\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> & \"D:\\Program Files\\Android\\Android Studio\\jbr\\bin\\java.exe\" -version\r\nopenjdk version \"21.0.10\" 2026-01-20\r\nOpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) PS D:\\07-Logiciels\\11-IPTV Andoid TV 2> java -version openjdk version \"21.0.10\" 2026-01-20 OpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) PS D:\\07-Logiciels\\11-IPTV Andoid TV 2> cd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" PS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $gradleVersion = \"9.1.0\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $gradleInstallDir = \"D:\\Tools\\Gradle\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $gradleZip = \"$env:TEMP\\gradle-$gradleVersion-bin.zip\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> New-Item -ItemType Directory -Force -Path $gradleInstallDir\r\n\r\n\r\n Directory: D:\\Tools\r\n\r\n\r\nMode LastWriteTime Length Name\r\n---- ------------- ------ ----\r\nd----- 10/06/2026 19:22 Gradle\r\n\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> Invoke-WebRequest `\r\n>> -Uri \"https://services.gradle.org/distributions/gradle-$gradleVersion-bin.zip\" `\r\n>> -OutFile $gradleZip\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> Expand-Archive -Path $gradleZip -DestinationPath $gradleInstallDir -Force\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:Path = \"$gradleInstallDir\\gradle-$gradleVersion\\bin;$env:Path\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> gradle -v\r\n\r\nWelcome to Gradle 9.1.0!\r\n\r\nHere are the highlights of this release:\r\n - Full Java 25 support\r\n - Native task graph visualization\r\n - Enhanced console output\r\n\r\nFor more details see https://docs.gradle.org/9.1.0/release-notes.html\r\n\r\n\r\n------------------------------------------------------------\r\nGradle 9.1.0\r\n------------------------------------------------------------\r\n\r\nBuild time: 2025-09-18 13:05:56 UTC\r\nRevision: e45a8dbf2470c2e2474ccc25be9f49331406a07e\r\n\r\nKotlin: 2.2.0\r\nGroovy: 4.0.28\r\nAnt: Apache Ant(TM) version 1.10.15 compiled on August 25 2024\r\nLauncher JVM: 21.0.10 (JetBrains s.r.o. 21.0.10+-14961533-b1163.108)\r\nDaemon JVM: D:\\Program Files\\Android\\Android Studio\\jbr (no JDK specified, using current Java home)\r\nOS: Windows 11 10.0 amd64\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:ANDROID_HOME = \"$env:LOCALAPPDATA\\Android\\Sdk\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $env:Path = \"$env:JAVA_HOME\\bin;$env:ANDROID_HOME\\platform-tools;$env:ANDROID_HOME\\cmdline-tools\\latest\\bin;D:\\Tools\\Gradle\\gradle-9.1.0\\bin;$env:Path\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> java -version\r\nopenjdk version \"21.0.10\" 2026-01-20\r\nOpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108)\r\nOpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode)\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb version\r\nAndroid Debug Bridge version 1.0.41\r\nVersion 37.0.0-14910828\r\nInstalled as C:\\Users\\abmou\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe\r\nRunning on Windows 10.0.26200\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> gradle -v\r\n\r\n------------------------------------------------------------\r\nGradle 9.1.0\r\n------------------------------------------------------------\r\n\r\nBuild time: 2025-09-18 13:05:56 UTC\r\nRevision: e45a8dbf2470c2e2474ccc25be9f49331406a07e\r\n\r\nKotlin: 2.2.0\r\nGroovy: 4.0.28\r\nAnt: Apache Ant(TM) version 1.10.15 compiled on August 25 2024\r\nLauncher JVM: 21.0.10 (JetBrains s.r.o. 21.0.10+-14961533-b1163.108)\r\nDaemon JVM: D:\\Program Files\\Android\\Android Studio\\jbr (no JDK specified, using current Java home)\r\nOS: Windows 11 10.0 amd64\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> cd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 --distribution-type bin\r\nStarting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details\r\n\r\nFAILURE: Build failed with an exception.\r\n\r\n* Where:\r\nBuild file 'D:\\07-Logiciels\\11-IPTV Andoid TV 2\\app\\build.gradle.kts' line: 1\r\n\r\n* What went wrong:\r\nAn exception occurred applying plugin request [id: 'org.jetbrains.kotlin.android', version: '2.4.0']\r\n> Failed to apply plugin 'org.jetbrains.kotlin.android'.\r\n > Failed to apply plugin 'org.jetbrains.kotlin.android'\r\n The 'org.jetbrains.kotlin.android' plugin is no longer required for Kotlin support since AGP 9.0.\r\n Solution: Remove the 'org.jetbrains.kotlin.android' plugin from this project's build file: app\\build.gradle.kts.\r\n See https://kotl.in/gradle/agp-built-in-kotlin for more details.\r\n > java.lang.Throwable (no error message)\r\n\r\n* Try:\r\n> Run with --stacktrace option to get the stack trace.\r\n> Run with --info or --debug option to get more log output.\r\n> Run with --scan to generate a Build Scan (Powered by Develocity).\r\n> Get more help at https://help.gradle.org.\r\n\r\nBUILD FAILED in 21s\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>" + } + ], + "created_at": "2026-06-10 19:23:58", + "updated_at": 1781115902.641766 + }, + { + "id": "9a045a19-596c-44d0-adf8-44a77e887c05", + "ids": [ + "65708262-a156-4382-833c-d9ae62cb0b96", + "77783cb7-8526-4371-9d35-52b43c930c54", + "ffbfbc5b-1a37-4cf3-83c9-f37b76d9d281", + "6509c197-3c96-4273-9995-f4f22417f7ad", + "7b29bdc9-18cb-4fae-940f-aeca1509c31c", + "74e3307c-ef14-4bae-9887-bc27d55aadb6", + "30ffe4e1-e607-4833-972e-458ff17e9044", + "4fb1fa18-d09d-43a0-8e64-4fa53edf2c58", + "5c2eac28-b1e4-44bd-8dd9-5f56b66cc32d", + "7aa0bfa9-c871-48ee-8e9c-a152186ad3b2", + "79b1d10d-8a60-4bd4-a89d-a8f68b4e0442", + "e912e8c1-7ada-4657-b8e0-8cde1d81183d", + "a97b4141-03d5-422a-956e-a4b1fa97da85", + "9a045a19-596c-44d0-adf8-44a77e887c05" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Tu as fait correctement la partie environnement :\n\n```txt\nJava : OK\nADB : OK\nGradle 9.1.0 : OK\nSDK Android : OK\n```\n\nLe blocage vient maintenant du **projet** que je t’ai fourni : dans `app/build.gradle.kts`, il y a encore le plugin :\n\n```kotlin\nalias(libs.plugins.kotlin.android)\n```\n\nAvec **Android Gradle Plugin 9.0+**, ce plugin ne doit plus être utilisé, car Kotlin est maintenant intégré directement dans AGP. Android recommande de supprimer ce plugin du fichier module, du fichier racine et du catalogue `libs.versions.toml`. Bref, le futur est arrivé, et il casse les anciens fichiers comme un stagiaire trop motivé. ([Android Developers](https://developer.android.com/build/migrate-to-built-in-kotlin))\n\n---\n\n# 1. Corriger les fichiers Gradle\n\nCopie-colle ce bloc complet dans PowerShell :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n# Supprimer le plugin Kotlin Android du build racine\n(Get-Content \".\\build.gradle.kts\") |\nWhere-Object { $_ -notmatch \"libs\\.plugins\\.kotlin\\.android\" } |\nSet-Content \".\\build.gradle.kts\"\n\n# Supprimer le plugin Kotlin Android du module app\n(Get-Content \".\\app\\build.gradle.kts\") |\nWhere-Object { $_ -notmatch \"libs\\.plugins\\.kotlin\\.android\" } |\nSet-Content \".\\app\\build.gradle.kts\"\n\n# Supprimer la déclaration du plugin Kotlin Android dans le catalogue de versions\n(Get-Content \".\\gradle\\libs.versions.toml\") |\nWhere-Object { $_ -notmatch \"^kotlin-android\\s*=\" } |\nSet-Content \".\\gradle\\libs.versions.toml\"\n```\n\n---\n\n# 2. Vérifier que les lignes ont bien disparu\n\n```powershell\nSelect-String -Path \".\\build.gradle.kts\" -Pattern \"kotlin.android\"\nSelect-String -Path \".\\app\\build.gradle.kts\" -Pattern \"kotlin.android\"\nSelect-String -Path \".\\gradle\\libs.versions.toml\" -Pattern \"kotlin-android\"\n```\n\nSi tout est bon, ces commandes ne doivent rien afficher.\n\n---\n\n# 3. Recréer le Gradle Wrapper\n\nMaintenant relance :\n\n```powershell\ngradle wrapper --gradle-version 9.1.0 --distribution-type bin\n```\n\nVérifie que `gradlew.bat` existe :\n\n```powershell\ndir gradlew.bat\n```\n\nTu dois voir :\n\n```txt\ngradlew.bat\n```\n\n---\n\n# 4. Compiler l’APK\n\nEnsuite :\n\n```powershell\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n```\n\nL’APK sera ici :\n\n```powershell\n.\\app\\build\\outputs\\apk\\debug\\app-debug.apk\n```\n\nVérifie :\n\n```powershell\ndir \".\\app\\build\\outputs\\apk\\debug\\\"\n```\n\n---\n\n# 5. Commandes complètes après correction\n\nQuand les fichiers sont corrigés, tu peux utiliser ce bloc :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n$env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\n$env:ANDROID_HOME = \"$env:LOCALAPPDATA\\Android\\Sdk\"\n$env:Path = \"$env:JAVA_HOME\\bin;$env:ANDROID_HOME\\platform-tools;$env:ANDROID_HOME\\cmdline-tools\\latest\\bin;D:\\Tools\\Gradle\\gradle-9.1.0\\bin;$env:Path\"\n\ngradle wrapper --gradle-version 9.1.0 --distribution-type bin\n\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n```\n\n---\n\n# 6. Installer dans la box Google TV\n\nAprès compilation :\n\n```powershell\nadb devices\n```\n\nSi ta box est déjà connectée, tu verras un appareil.\n\nSinon, avec l’IP de la box :\n\n```powershell\nadb connect 192.168.1.xx:xxxxx\n```\n\nPuis installe l’APK :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nLance l’application :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n# 7. Si une nouvelle erreur apparaît\n\nLance :\n\n```powershell\n.\\gradlew.bat :app:assembleDebug --stacktrace\n```\n\nEt récupère uniquement **les 30 dernières lignes**. Le reste, c’est Gradle qui récite son roman intérieur." + } + ], + "created_at": "2026-06-10 19:24:21", + "updated_at": 1781115977.481127 + }, + { + "id": "f55ea5bc-e5e7-4662-9fa6-707ff979e58f", + "ids": [ + "f55ea5bc-e5e7-4662-9fa6-707ff979e58f" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "PS D:\\07-Logiciels\\11-IPTV Andoid TV 2> cd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> # Supprimer le plugin Kotlin Android du build racine\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> (Get-Content \".\\build.gradle.kts\") |\r\n>> Where-Object { $_ -notmatch \"libs\\.plugins\\.kotlin\\.android\" } |\r\n>> Set-Content \".\\build.gradle.kts\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> # Supprimer le plugin Kotlin Android du module app\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> (Get-Content \".\\app\\build.gradle.kts\") |\r\n>> Where-Object { $_ -notmatch \"libs\\.plugins\\.kotlin\\.android\" } |\r\n>> Set-Content \".\\app\\build.gradle.kts\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> # Supprimer la déclaration du plugin Kotlin Android dans le catalogue de versions\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> (Get-Content \".\\gradle\\libs.versions.toml\") |\r\n>> Where-Object { $_ -notmatch \"^kotlin-android\\s*=\" } |\r\n>> Set-Content \".\\gradle\\libs.versions.toml\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> Select-String -Path \".\\build.gradle.kts\" -Pattern \"kotlin.android\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> Select-String -Path \".\\app\\build.gradle.kts\" -Pattern \"kotlin.android\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> Select-String -Path \".\\gradle\\libs.versions.toml\" -Pattern \"kotlin-android\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 --distribution-type bin\r\n\r\nBUILD SUCCESSFUL in 6s\r\n1 actionable task: 1 executed\r\nConsider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> dir gradlew.bat\r\n\r\n\r\n Directory: D:\\07-Logiciels\\11-IPTV Andoid TV 2\r\n\r\n\r\nMode LastWriteTime Length Name\r\n---- ------------- ------ ----\r\n-a---- 10/06/2026 19:25 2896 gradlew.bat\r\n\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat clean\r\nDownloading https://services.gradle.org/distributions/gradle-9.1.0-bin.zip\r\n............10%.............20%.............30%.............40%.............50%............60%.............70%.............80%.............90%.............100%\r\n\r\nBUILD SUCCESSFUL in 9s\r\n1 actionable task: 1 up-to-date\r\nConsider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat :app:assembleDebug\r\n\r\nFAILURE: Build failed with an exception.\r\n\r\n* What went wrong:\r\nCould not determine the dependencies of task ':app:packageDebug'.\r\n> Could not create task ':app:compileDebugJavaWithJavac'.\r\n > Failed to calculate the value of task ':app:compileDebugJavaWithJavac' property 'javaCompiler'.\r\n > Cannot find a Java installation on your machine (Windows 11 10.0 amd64) matching: {languageVersion=17, vendor=any vendor, implementation=vendor-specific, nativeImageCapable=false}. Toolchain download repositories have not been configured.\r\n\r\n* Try:\r\n> Learn more about toolchain auto-detection and auto-provisioning at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sec:auto_detection.\r\n> Learn more about toolchain repositories at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sub:download_repositories.\r\n> Run with --stacktrace option to get the stack trace.\r\n> Run with --info or --debug option to get more log output.\r\n> Run with --scan to generate a Build Scan (Powered by Develocity).\r\n> Get more help at https://help.gradle.org.\r\n\r\nBUILD FAILED in 987ms\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r" + } + ], + "created_at": "2026-06-10 19:26:41", + "updated_at": 1781116056.535074 + }, + { + "id": "741a3fb8-de61-4bb3-aa13-7141078773e3", + "ids": [ + "0b2cc5af-db08-4ef8-a4b9-414142d52cfa", + "3b483f81-614a-47a2-b5fd-85e25d749f82", + "c9a3669b-4b90-4042-a9b0-8734ba116afc", + "791f2ee4-673c-4c99-b400-dd2293575ef9", + "bfed86a2-dce8-44d1-b948-e0aa4af3c105", + "741a3fb8-de61-4bb3-aa13-7141078773e3" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Très bien, on avance. Là, **Gradle Wrapper est créé**, donc la partie pénible est passée. Le nouveau problème est clair :\n\n```txt\nCannot find a Java installation matching: languageVersion=17\n```\n\nTon projet demande explicitement un **JDK 17**, mais ta machine utilise :\n\n```txt\nJava 21\n```\n\nDonc Gradle cherche Java 17, ne le trouve pas, et s’effondre comme un meuble en kit monté sans notice.\n\nLe plus simple : **on supprime la demande forcée de JDK 17** dans `app/build.gradle.kts`, tout en gardant la compilation compatible Java 17.\n\n---\n\n## 1. Supprimer le bloc `kotlin { jvmToolchain(17) }`\n\nCopie-colle ceci dans PowerShell :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n$content = Get-Content \".\\app\\build.gradle.kts\" -Raw\n$content = $content -replace '(?s)\\s*kotlin\\s*\\{\\s*jvmToolchain$17$\\s*\\}', ''\nSet-Content \".\\app\\build.gradle.kts\" $content\n```\n\n---\n\n## 2. Vérifier que le bloc a disparu\n\n```powershell\nSelect-String -Path \".\\app\\build.gradle.kts\" -Pattern \"jvmToolchain\"\n```\n\nSi rien ne s’affiche, c’est bon.\n\n---\n\n## 3. Nettoyer et recompiler\n\n```powershell\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n```\n\n---\n\n## 4. Si tu veux faire tout d’un coup\n\nCopie-colle ce bloc complet :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n$env:JAVA_HOME = \"D:\\Program Files\\Android\\Android Studio\\jbr\"\n$env:ANDROID_HOME = \"$env:LOCALAPPDATA\\Android\\Sdk\"\n$env:Path = \"$env:JAVA_HOME\\bin;$env:ANDROID_HOME\\platform-tools;$env:ANDROID_HOME\\cmdline-tools\\latest\\bin;D:\\Tools\\Gradle\\gradle-9.1.0\\bin;$env:Path\"\n\n$content = Get-Content \".\\app\\build.gradle.kts\" -Raw\n$content = $content -replace '(?s)\\s*kotlin\\s*\\{\\s*jvmToolchain$17$\\s*\\}', ''\nSet-Content \".\\app\\build.gradle.kts\" $content\n\n.\\gradlew.bat clean\n.\\gradlew.bat :app:assembleDebug\n```\n\n---\n\n## 5. Résultat attendu\n\nSi la compilation réussit, tu dois voir :\n\n```txt\nBUILD SUCCESSFUL\n```\n\nL’APK sera ici :\n\n```powershell\nD:\\07-Logiciels\\11-IPTV Andoid TV 2\\app\\build\\outputs\\apk\\debug\\app-debug.apk\n```\n\nVérifie :\n\n```powershell\ndir \".\\app\\build\\outputs\\apk\\debug\\\"\n```\n\n---\n\n## 6. Ensuite installation sur la box\n\nQuand l’APK existe :\n\n```powershell\nadb devices\n```\n\nPuis, si ta box est en Wi-Fi :\n\n```powershell\nadb connect 192.168.1.xx:xxxxx\n```\n\nInstalle :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nLance l’app :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n## 7. Si une autre erreur apparaît\n\nLance :\n\n```powershell\n.\\gradlew.bat :app:assembleDebug --stacktrace\n```\n\nEt récupère **les 30 dernières lignes**. Le reste, c’est Gradle qui fait du théâtre administratif." + } + ], + "created_at": "2026-06-10 19:27:05", + "updated_at": 1781116090.442494 + }, + { + "id": "9535a0e6-decf-4fcb-9061-88482dbfe6fd", + "ids": [ + "9535a0e6-decf-4fcb-9061-88482dbfe6fd" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "PS D:\\07-Logiciels\\11-IPTV Andoid TV 2> dir gradlew.bat\r\n\r\n\r\n Directory: D:\\07-Logiciels\\11-IPTV Andoid TV 2\r\n\r\n\r\nMode LastWriteTime Length Name\r\n---- ------------- ------ ----\r\n-a---- 10/06/2026 19:25 2896 gradlew.bat\r\n\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat clean\r\nDownloading https://services.gradle.org/distributions/gradle-9.1.0-bin.zip\r\n............10%.............20%.............30%.............40%.............50%............60%.............70%.............80%.............90%.............100%\r\n\r\nBUILD SUCCESSFUL in 9s\r\n1 actionable task: 1 up-to-date\r\nConsider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat :app:assembleDebug\r\n\r\nFAILURE: Build failed with an exception.\r\n\r\n* What went wrong:\r\nCould not determine the dependencies of task ':app:packageDebug'.\r\n> Could not create task ':app:compileDebugJavaWithJavac'.\r\n > Failed to calculate the value of task ':app:compileDebugJavaWithJavac' property 'javaCompiler'.\r\n > Cannot find a Java installation on your machine (Windows 11 10.0 amd64) matching: {languageVersion=17, vendor=any vendor, implementation=vendor-specific, nativeImageCapable=false}. Toolchain download repositories have not been configured.\r\n\r\n* Try:\r\n> Learn more about toolchain auto-detection and auto-provisioning at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sec:auto_detection.\r\n> Learn more about toolchain repositories at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sub:download_repositories.\r\n> Run with --stacktrace option to get the stack trace.\r\n> Run with --info or --debug option to get more log output.\r\n> Run with --scan to generate a Build Scan (Powered by Develocity).\r\n> Get more help at https://help.gradle.org.\r\n\r\nBUILD FAILED in 987ms\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> cd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $content = Get-Content \".\\app\\build.gradle.kts\" -Raw\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> $content = $content -replace '(?s)\\s*kotlin\\s*\\{\\s*jvmToolchain$17$\\s*\\}', ''\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> Set-Content \".\\app\\build.gradle.kts\" $content\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> Select-String -Path \".\\app\\build.gradle.kts\" -Pattern \"jvmToolchain\"\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat clean\r\n\r\nBUILD SUCCESSFUL in 1s\r\n1 actionable task: 1 up-to-date\r\nConsider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat :app:assembleDebug\r\nThe Daemon will expire immediately since the JVM garbage collector is thrashing.\r\nThe project memory settings are likely not configured or are configured to an insufficient value.\r\nThe memory settings for this project must be adjusted to avoid this failure.\r\nThese settings can be adjusted by setting 'org.gradle.jvmargs' in 'gradle.properties'.\r\nThe currently configured max heap space is '512 MiB' and the configured max metaspace is '384 MiB'.\r\nFor more information on how to set these values, please refer to https://docs.gradle.org/9.1.0/userguide/build_environment.html#sec:configuring_jvm_memory in the Gradle documentation.\r\nTo disable this warning, set 'org.gradle.daemon.performance.disable-logging=true'.\r\nDaemon is stopping immediately since the JVM garbage collector is thrashing\r\n\r\nFAILURE: Build failed with an exception.\r\n\r\n* What went wrong:\r\nGradle build daemon has been stopped: since the JVM garbage collector is thrashing\r\n\r\n* Try:\r\n> Run with --stacktrace option to get the stack trace.\r\n> Run with --info or --debug option to get more log output.\r\n> Run with --scan to generate a Build Scan (Powered by Develocity).\r\n> Get more help at https://help.gradle.org.\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\n\r\n\r" + } + ], + "created_at": "2026-06-10 19:51:35", + "updated_at": 1781117522.648567 + }, + { + "id": "e0c6f5bc-ae31-4278-abb5-640e7dd578f0", + "ids": [ + "eae3fdc1-9550-468e-a078-707f4a62e9af", + "7728c8be-de4e-4375-99e3-20a51b873995", + "e3e96209-f739-4902-af14-a3d88dc52ca9", + "e0c6f5bc-ae31-4278-abb5-640e7dd578f0" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Bon, cette fois ce n’est plus Kotlin, ni Java, ni ADB. C’est **Gradle qui manque de mémoire** :\n\n```txt\ncurrently configured max heap space is '512 MiB'\nGradle build daemon has been stopped\n```\n\n512 Mo pour compiler Android en 2026, c’est à peu près comme vouloir faire tourner Photoshop sur une calculatrice. On va lui donner plus de RAM.\n\n---\n\n# 1. Fermer ce qui consomme beaucoup\n\nAvant de relancer :\n\n- ferme l’émulateur Android si ouvert ;\n- ferme Android Studio temporairement ;\n- ferme Chrome si tu as 47 onglets ouverts comme tout être humain mal encadré.\n\nEnsuite reste dans PowerShell.\n\n---\n\n# 2. Créer / corriger `gradle.properties`\n\nCopie-colle exactement ceci :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n.\\gradlew.bat --stop\n\n$gradleProperties = @\"\norg.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8 -XX:+UseG1GC\norg.gradle.parallel=false\norg.gradle.configuration-cache=false\nandroid.useAndroidX=true\n\"@\n\n[System.IO.File]::WriteAllText(\n \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\\gradle.properties\",\n $gradleProperties,\n [System.Text.UTF8Encoding]::new($false)\n)\n```\n\n---\n\n# 3. Vérifier le fichier\n\n```powershell\ntype \".\\gradle.properties\"\n```\n\nTu dois voir :\n\n```properties\norg.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8 -XX:+UseG1GC\norg.gradle.parallel=false\norg.gradle.configuration-cache=false\nandroid.useAndroidX=true\n```\n\n---\n\n# 4. Relancer la compilation sans daemon\n\nUtilise cette commande :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\n---\n\n# 5. Si ton PC manque de RAM\n\nSi ça bloque encore, baisse à **2 Go** au lieu de 4 Go :\n\n```powershell\n$gradleProperties = @\"\norg.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+UseG1GC\norg.gradle.parallel=false\norg.gradle.configuration-cache=false\nandroid.useAndroidX=true\n\"@\n\n[System.IO.File]::WriteAllText(\n \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\\gradle.properties\",\n $gradleProperties,\n [System.Text.UTF8Encoding]::new($false)\n)\n```\n\nPuis :\n\n```powershell\n.\\gradlew.bat --stop\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\n---\n\n# 6. Si la compilation réussit\n\nTu dois voir :\n\n```txt\nBUILD SUCCESSFUL\n```\n\nL’APK sera ici :\n\n```powershell\n.\\app\\build\\outputs\\apk\\debug\\app-debug.apk\n```\n\nVérifie :\n\n```powershell\ndir \".\\app\\build\\outputs\\apk\\debug\\\"\n```\n\n---\n\n# 7. Installer sur la box ensuite\n\nQuand l’APK existe :\n\n```powershell\nadb devices\n```\n\nPuis :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nLancer l’application :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\nLance d’abord la correction mémoire avec `4096m`. Si l’erreur suivante apparaît, envoie uniquement le bloc à partir de `FAILURE: Build failed`, pas toute la tragédie administrative de Gradle." + } + ], + "created_at": "2026-06-10 19:51:38", + "updated_at": 1781117684.91036 + }, + { + "id": "b8590858-7078-47c6-8229-b1f83a3f6209", + "ids": [ + "ed73c40e-5b3c-4f27-9caa-88e880680713", + "45f4b7e7-fe72-43a0-b116-08f62c8b71a5", + "7a432605-e3c5-46b9-a839-df19bc5eb74b", + "bf93c01c-e60b-4798-9042-d2a02cf8fc58", + "b29355f5-57ab-4398-986b-069e7e399423", + "711f8487-a3db-4ea3-8ac4-b395b984e8d9", + "a236ac4b-2633-4c69-9428-b9278f73626c", + "b8590858-7078-47c6-8229-b1f83a3f6209" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "attachment", + "attachment": { + "id": "file_0000000019fc724680e26d464e896900", + "size": 26118, + "name": "Texte collé(72).txt", + "mime_type": "text/plain", + "source": "local", + "library_file_id": "libfile_d7cd15dc4b708191849dd1e4431d5215", + "is_big_paste": true + } + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Ça y est : **la compilation a réussi**. Dans ton log, malgré les avertissements D8/R8 qui font leur petit spectacle dramatique, la ligne importante est bien :\n\n```txt\nBUILD SUCCESSFUL in 47s\n36 actionable tasks: 36 executed\n```\n\nDonc l’APK debug a normalement été créé. Les warnings Kotlin/D8 sont bruyants, mais **pas bloquants** ici. Gradle adore faire peur aux gens, probablement par vocation administrative. \n\n---\n\n# 1. Vérifier que l’APK existe\n\nDans PowerShell :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\ndir \".\\app\\build\\outputs\\apk\\debug\\\"\n```\n\nTu dois voir un fichier comme :\n\n```txt\napp-debug.apk\n```\n\nChemin complet :\n\n```powershell\nD:\\07-Logiciels\\11-IPTV Andoid TV 2\\app\\build\\outputs\\apk\\debug\\app-debug.apk\n```\n\n---\n\n# 2. Connecter la box Google TV\n\n## Si ta box est déjà connectée\n\nTape :\n\n```powershell\nadb devices\n```\n\nSi tu vois un appareil avec :\n\n```txt\ndevice\n```\n\nc’est bon.\n\n---\n\n## Si tu dois connecter en Wi-Fi\n\nSur la box Google TV :\n\n```txt\nParamètres\n> Système\n> Options pour les développeurs\n> Débogage sans fil\n```\n\nPuis depuis PowerShell :\n\n```powershell\nadb connect 192.168.1.xx:xxxxx\n```\n\nRemplace par l’IP et le port affichés sur la box.\n\nVérifie :\n\n```powershell\nadb devices\n```\n\n---\n\n# 3. Installer l’APK sur la box\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nSi tout va bien :\n\n```txt\nSuccess\n```\n\n---\n\n# 4. Lancer l’application\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n# 5. Commandes complètes à copier-coller\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nadb devices\n\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n# 6. Si l’installation échoue\n\n## Cas 1 : ancienne version déjà installée\n\n```powershell\nadb uninstall ma.tkgraph.xtreamtv\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\n## Cas 2 : version downgrade\n\n```powershell\nadb install -r -d \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\n## Cas 3 : appareil non autorisé\n\nSi `adb devices` affiche :\n\n```txt\nunauthorized\n```\n\nregarde l’écran de la box et accepte l’autorisation ADB. Oui, même la télé veut une confirmation maintenant. Admirable époque.\n\n---\n\n# 7. Les warnings D8/R8\n\nTu peux les ignorer pour l’instant, car l’APK a été généré. Plus tard, on pourra nettoyer ça en alignant mieux :\n\n- Android Gradle Plugin ;\n- Compose ;\n- Kotlin intégré AGP ;\n- Media3 ;\n- dépendances TV.\n\nMais maintenant, l’étape suivante est simple : **installer l’APK dans la box et tester l’ouverture de l’app**." + } + ], + "created_at": "2026-06-10 19:59:54", + "updated_at": 1781118649.995998 + }, + { + "id": "6f324362-c7fa-493a-a6b6-6e401aa64aec", + "ids": [ + "6f324362-c7fa-493a-a6b6-6e401aa64aec" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "PS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb connect 192.168.1.124\r\nfailed to authenticate to 192.168.1.124:5555\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb connect 192.168.1.124\r\nalready connected to 192.168.1.124:5555\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb devices\r\nList of devices attached\r\n192.168.1.124:5555 device\r\n\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\r\nPerforming Streamed Install\r\nSuccess\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>" + } + ], + "created_at": "2026-06-10 20:10:47", + "updated_at": 1781118663.249397 + }, + { + "id": "45cb511d-d940-4ec2-b614-9f91178c1873", + "ids": [ + "2e7f820c-e3bc-4e0d-bebc-51072bf77bbf", + "c5d5b388-71ae-4c6e-81ea-5d3cb164c62b", + "45cb511d-d940-4ec2-b614-9f91178c1873" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Parfait. **L’APK est installé avec succès sur ta box Google TV.**\n\nLa ligne importante :\n\n```txt\nSuccess\n```\n\nDonc là, l’application est bien dans la box. Petite victoire contre l’administration ADB, ce qui mérite presque une médaille en plastique.\n\n---\n\n# 1. Lancer l’application depuis PowerShell\n\nTape :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\nSi l’app s’ouvre sur la TV, c’est bon.\n\n---\n\n# 2. Si elle ne s’ouvre pas\n\nVérifie d’abord que le package existe bien :\n\n```powershell\nadb shell pm list packages | findstr xtream\n```\n\nTu devrais voir :\n\n```txt\npackage:ma.tkgraph.xtreamtv\n```\n\nPuis relance :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n# 3. Ouvrir depuis la box\n\nSur Google TV, va dans :\n\n```txt\nApplications\n> Voir toutes les applications\n> Xtream Google TV Player\n```\n\nSelon la box, l’application peut aussi apparaître dans :\n\n```txt\nParamètres\n> Applications\n> Voir toutes les applications\n```\n\nSi elle n’apparaît pas directement sur l’accueil, c’est normal : certaines apps installées par ADB ne sont pas immédiatement mises en avant, parce que Google TV adore cacher les choses comme un meuble IKEA cache ses vis.\n\n---\n\n# 4. Tester l’application\n\nDans l’app, entre :\n\n```txt\nURL serveur : http://ton-serveur:port\nUsername : ton_identifiant\nPassword : ton_mot_de_passe\n```\n\nExemple de format :\n\n```txt\nhttp://exemple.com:8080\n```\n\nÉvite de mettre `/` à la fin de l’URL.\n\nCorrect :\n\n```txt\nhttp://exemple.com:8080\n```\n\nÀ éviter :\n\n```txt\nhttp://exemple.com:8080/\n```\n\n---\n\n# 5. Voir les logs si l’app plante\n\nLance cette commande avant d’ouvrir l’app :\n\n```powershell\nadb logcat | findstr xtream\n```\n\nOu plus large :\n\n```powershell\nadb logcat | findstr ma.tkgraph\n```\n\nPuis ouvre l’application :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n# 6. Si tu veux désinstaller / réinstaller\n\n```powershell\nadb uninstall ma.tkgraph.xtreamtv\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\n---\n\n# 7. Commandes utiles maintenant\n\n```powershell\nadb devices\nadb shell monkey -p ma.tkgraph.xtreamtv 1\nadb shell pm list packages | findstr xtream\nadb logcat | findstr ma.tkgraph\n```\n\nTon étape actuelle : **lancer l’app et tester la connexion Xtream**. Si l’écran s’ouvre, on passe ensuite à l’amélioration du design TV, favoris, catégories, EPG et zapping." + } + ], + "created_at": "2026-06-10 20:10:48", + "updated_at": 1781118740.374449 + }, + { + "id": "05740872-90e1-40a1-b11b-f09d335dddcf", + "ids": [ + "05740872-90e1-40a1-b11b-f09d335dddcf" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "je trouve l'appli, mais ouvrir est désactivée" + } + ], + "created_at": "2026-06-10 20:12:46", + "updated_at": 1781118802.574148 + }, + { + "id": "75f19ec6-0bdd-48be-98cd-8fb2ddabe857", + "ids": [ + "ca1decdb-c87d-4309-bef0-de5648ffb5c1", + "9359e6b7-01a6-4662-af8b-210887cb4d22", + "75f19ec6-0bdd-48be-98cd-8fb2ddabe857" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Ça veut dire que **l’APK est bien installée**, mais que Google TV ne voit probablement **aucune activité lançable**. Autrement dit : l’application existe, mais elle n’a pas de “porte d’entrée” déclarée correctement. Très moderne : une maison sans porte, mais avec un joli reçu d’installation.\n\nOn va corriger le **AndroidManifest.xml**.\n\n---\n\n# 1. Tester le lancement par ADB\n\nLance d’abord cette commande :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\nSi tu vois une erreur du type :\n\n```txt\nNo activities found to run\n```\n\nalors c’est bien le manifest qui est incomplet.\n\nTeste aussi :\n\n```powershell\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\nSi cette commande ouvre l’app, alors l’activité existe, mais elle n’est pas bien déclarée pour le launcher TV.\n\n---\n\n# 2. Remplacer le manifest\n\nOuvre ce fichier :\n\n```txt\nD:\\07-Logiciels\\11-IPTV Andoid TV 2\\app\\src\\main\\AndroidManifest.xml\n```\n\nRemplace tout son contenu par ceci :\n\n```xml\n\n\n \n\n \n\n \n\n \n\n \n\n \n \n\n \n \n \n\n \n\n \n\n\n```\n\nLe point important est ici :\n\n```xml\n\n\n```\n\n`LEANBACK_LAUNCHER` sert à Google TV / Android TV. \n`LAUNCHER` aide certaines interfaces à activer le bouton **Ouvrir**. Parce qu’apparemment une seule catégorie n’était pas assez claire pour l’empire Android.\n\n---\n\n# 3. Correction rapide par PowerShell\n\nTu peux aussi remplacer le fichier directement avec PowerShell :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n$manifest = @\"\n\n\n \n\n \n\n \n\n \n\n \n\n \n \n\n \n \n \n\n \n\n \n\n\n\"@\n\n[System.IO.File]::WriteAllText(\n \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\\app\\src\\main\\AndroidManifest.xml\",\n $manifest,\n [System.Text.UTF8Encoding]::new($false)\n)\n```\n\n---\n\n# 4. Recompiler l’APK\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\n---\n\n# 5. Désinstaller l’ancienne version\n\nImportant : désinstalle l’ancienne app avant de réinstaller, sinon Google TV peut garder l’ancien état.\n\n```powershell\nadb uninstall ma.tkgraph.xtreamtv\n```\n\n---\n\n# 6. Réinstaller la nouvelle APK\n\n```powershell\nadb install \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\n---\n\n# 7. Lancer l’application\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\nOu directement :\n\n```powershell\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n---\n\n# 8. Vérifier l’activité lançable\n\nAprès installation, tape :\n\n```powershell\nadb shell cmd package resolve-activity --brief ma.tkgraph.xtreamtv\n```\n\nEt aussi :\n\n```powershell\nadb shell pm dump ma.tkgraph.xtreamtv | findstr MAIN\nadb shell pm dump ma.tkgraph.xtreamtv | findstr LEANBACK\nadb shell pm dump ma.tkgraph.xtreamtv | findstr LAUNCHER\n```\n\nTu dois voir que `MainActivity` est bien associée à :\n\n```txt\nandroid.intent.action.MAIN\nandroid.intent.category.LAUNCHER\nandroid.intent.category.LEANBACK_LAUNCHER\n```\n\n---\n\n# Résumé\n\nTon installation est bonne. Le problème vient presque sûrement du **manifest**. Corrige-le, recompile, désinstalle, réinstalle.\n\nCommande finale utile :\n\n```powershell\nadb uninstall ma.tkgraph.xtreamtv\nadb install \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```" + } + ], + "created_at": "2026-06-10 20:12:48", + "updated_at": 1781118995.662221 + }, + { + "id": "f569550f-f49c-4633-9153-657afca4f325", + "ids": [ + "f569550f-f49c-4633-9153-657afca4f325" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "PS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb shell monkey -p ma.tkgraph.xtreamtv 1\r\n bash arg: -p\r\n bash arg: ma.tkgraph.xtreamtv\r\n bash arg: 1\r\nargs: [-p, ma.tkgraph.xtreamtv, 1]\r\n arg: \"-p\"\r\n arg: \"ma.tkgraph.xtreamtv\"\r\n arg: \"1\"\r\ndata=\"ma.tkgraph.xtreamtv\"\r\n** No activities found to run, monkey aborted.\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\n\n\nelle a démarré avec : \nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\r\nStarting: Intent { cmp=ma.tkgraph.xtreamtv/.MainActivity }\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>" + } + ], + "created_at": "2026-06-10 20:18:47", + "updated_at": 1781119167.8002 + }, + { + "id": "acd40eb0-2da8-464b-903b-185eaecd979d", + "ids": [ + "4ef3df2f-4b7f-493a-b7c4-f2d437396a35", + "ecd28cab-4c58-46dc-a738-b6d2c669729e", + "8135b32e-2a40-4e50-bc15-3af8d3d89bbd", + "61494ae6-4886-47a8-8d23-bbf12effec94", + "18d30209-7ecc-4178-bc09-4485012be504", + "acd40eb0-2da8-464b-903b-185eaecd979d" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Très bien, le diagnostic est confirmé :\n\n```txt\nmonkey : No activities found to run\nam start -n ma.tkgraph.xtreamtv/.MainActivity : démarre\n```\n\nDonc **l’activité existe**, l’application fonctionne, mais elle n’est **pas déclarée comme application lançable** pour le launcher. C’est exactement le problème du `AndroidManifest.xml`.\n\nIl faut ajouter :\n\n```xml\n\n```\n\nen plus de :\n\n```xml\n\n```\n\nParce que manifestement Google TV a besoin qu’on lui explique deux fois où est la porte.\n\n---\n\n## 1. Corriger le Manifest automatiquement\n\nCopie-colle ceci dans PowerShell :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n$path = \".\\app\\src\\main\\AndroidManifest.xml\"\n$content = Get-Content $path -Raw\n\n$leanback = ' '\n$launcher = ' '\n\nif ($content -notmatch 'android.intent.category.LAUNCHER') {\n $content = $content.Replace($leanback, \"$leanback`r`n$launcher\")\n [System.IO.File]::WriteAllText(\n \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\\app\\src\\main\\AndroidManifest.xml\",\n $content,\n [System.Text.UTF8Encoding]::new($false)\n )\n}\n\ntype \".\\app\\src\\main\\AndroidManifest.xml\"\n```\n\nTu dois voir maintenant dans le fichier :\n\n```xml\n\n \n \n \n\n```\n\n---\n\n## 2. Recompiler l’APK\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nAttends :\n\n```txt\nBUILD SUCCESSFUL\n```\n\n---\n\n## 3. Désinstaller l’ancienne version\n\nC’est important, sinon Google TV peut garder l’ancien état du launcher.\n\n```powershell\nadb uninstall ma.tkgraph.xtreamtv\n```\n\n---\n\n## 4. Réinstaller la nouvelle version\n\n```powershell\nadb install \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\n---\n\n## 5. Tester le lancement normal\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\nCette fois, tu ne dois plus avoir :\n\n```txt\nNo activities found to run\n```\n\n---\n\n## 6. Vérifier les activités lançables\n\nTeste aussi :\n\n```powershell\nadb shell cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.LAUNCHER ma.tkgraph.xtreamtv\n```\n\nPuis :\n\n```powershell\nadb shell cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.LEANBACK_LAUNCHER ma.tkgraph.xtreamtv\n```\n\nTu dois voir `MainActivity`.\n\n---\n\n## 7. Si le bouton “Ouvrir” reste désactivé\n\nRedémarre simplement la box :\n\n```powershell\nadb reboot\n```\n\nAprès redémarrage, va dans les applications. Le bouton **Ouvrir** devrait être actif.\n\nLe fait que cette commande fonctionne :\n\n```powershell\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\nconfirme que le code de l’app n’est pas le problème. Il faut juste corriger la déclaration launcher, reconstruire, désinstaller, réinstaller. La plomberie Android dans toute sa splendeur." + } + ], + "created_at": "2026-06-10 20:19:09", + "updated_at": 1781119607.577434 + }, + { + "id": "e3f6eefa-c677-4cdc-bc3e-f9bef99c661e", + "ids": [ + "e3f6eefa-c677-4cdc-bc3e-f9bef99c661e" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "ça marche maintenant" + } + ], + "created_at": "2026-06-10 20:27:19", + "updated_at": 1781119650.932134 + }, + { + "id": "772a10cc-2908-4bc9-82a9-74dd8d3f09d4", + "ids": [ + "f8d738ed-6123-46a5-91e9-974bc7cce545", + "2f2ce8e6-eaa9-4e72-81a6-4d943eeecc68", + "772a10cc-2908-4bc9-82a9-74dd8d3f09d4" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Parfait. **L’application démarre maintenant sur la box Google TV.** Donc le cycle infernal est validé :\n\n```txt\nProjet compilé\nAPK générée\nAPK installée\nApplication lançable\n```\n\nLa cause était bien le `AndroidManifest.xml` : l’activité existait, mais elle n’était pas correctement exposée au launcher TV. Android, ce grand philosophe, avait donc installé l’application sans lui donner de bouton pour l’ouvrir.\n\n## Prochaine étape logique\n\nMaintenant tu peux tester :\n\n```txt\nURL serveur Xtream\nUsername\nPassword\n```\n\nPuis vérifier :\n\n- si la connexion API fonctionne ;\n- si les chaînes Live se chargent ;\n- si le lecteur démarre bien le flux ;\n- si le zapping / retour télécommande fonctionne correctement.\n\n## Commandes à garder\n\nPour recompiler après modification :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nPour réinstaller :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nPour lancer :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\nOu directement :\n\n```powershell\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## À faire maintenant\n\nAvant de modifier plus loin, garde une copie du dossier actuel, parce que là tu as une **version fonctionnelle de base** :\n\n```powershell\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - version OK lancement\" -Recurse\n```\n\nEnsuite, on pourra améliorer proprement :\n\n1. design TV plus professionnel ;\n2. mémorisation des identifiants Xtream ;\n3. catégories Live ;\n4. favoris ;\n5. EPG / guide TV ;\n6. zapping chaîne suivante/précédente ;\n7. écran de chargement et messages d’erreur propres.\n\nBref, maintenant on passe de “ça démarre” à “ça ressemble à un vrai produit”, cette étape rare où le logiciel cesse d’être seulement une preuve que l’univers tolère notre souffrance." + } + ], + "created_at": "2026-06-10 20:27:20", + "updated_at": 1781119848.819457 + }, + { + "id": "ee008ae4-3af3-41fb-8b1e-318af7e4e475", + "ids": [ + "ee008ae4-3af3-41fb-8b1e-318af7e4e475" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "ok" + } + ], + "created_at": "2026-06-10 20:31:13", + "updated_at": 1781119881.770036 + }, + { + "id": "12fe7cd7-72c9-4b4d-8007-1960a762bd6c", + "ids": [ + "cbb96b18-200b-44e6-9922-34cc770953a9", + "9e53003a-86b6-43b6-b5b9-dae356a7b563", + "12fe7cd7-72c9-4b4d-8007-1960a762bd6c" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Nickel. Garde cette version comme **base stable** avant de toucher au reste.\n\n### Prochaine priorité conseillée\n\nOn devrait améliorer dans cet ordre :\n\n1. **Sauvegarde des identifiants Xtream**\n - éviter de retaper URL, username, password à chaque ouverture.\n\n2. **Chargement des catégories Live**\n - Sports, Films, News, Général, etc.\n\n3. **Interface TV plus propre**\n - cartes plus grandes ;\n - focus visible ;\n - navigation télécommande fluide.\n\n4. **Favoris**\n - ajouter / retirer une chaîne favorite.\n\n5. **Lecteur vidéo amélioré**\n - bouton retour ;\n - chaîne suivante / précédente ;\n - message si le flux ne marche pas.\n\n6. **EPG / guide TV**\n - programme actuel et suivant.\n\n### Sauvegarde recommandée\n\nFais une copie de sécurité maintenant :\n\n```powershell\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - OK lancement\" -Recurse\n```\n\nVoilà. On a transformé un ZIP en APK installée sur Google TV. L’informatique a brièvement obéi, événement assez rare pour être noté." + } + ], + "created_at": "2026-06-10 20:31:14", + "updated_at": 0 + }, + { + "id": "4d5c5103-1cd3-49ac-86e3-d6a3c9a1d1c3", + "ids": [ + "4d5c5103-1cd3-49ac-86e3-d6a3c9a1d1c3" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "ok" + } + ], + "created_at": "2026-06-10 20:31:51", + "updated_at": 1781119919.388616 + }, + { + "id": "1558a03b-7f40-473e-90a8-2aa6a65095d5", + "ids": [ + "d6ff3253-3535-41c2-b4f5-e2560d0cab16", + "81cb0061-7eaa-4ca3-958f-b15d0aa163f7", + "1558a03b-7f40-473e-90a8-2aa6a65095d5" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Très bien.\n\nPour la suite, la meilleure prochaine étape est de **sauvegarder les identifiants Xtream** dans l’application, pour ne pas les retaper à chaque lancement.\n\nOn fera ensuite :\n\n```txt\n1. Sauvegarde URL / username / password\n2. Connexion automatique au démarrage\n3. Liste des catégories Live\n4. Favoris\n5. Design TV plus propre\n6. EPG\n```\n\nQuand tu veux continuer, on attaque directement les fichiers à modifier, avec le contenu complet de chaque fichier." + } + ], + "created_at": "2026-06-10 20:31:54", + "updated_at": 0 + }, + { + "id": "b6b9249c-5783-4591-a795-4524a48fac34", + "ids": [ + "b6b9249c-5783-4591-a795-4524a48fac34" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "ok" + } + ], + "created_at": "2026-06-10 20:33:02", + "updated_at": 1781120064.16404 + }, + { + "id": "f272bde0-ecff-452e-b709-2268b05290ec", + "ids": [ + "800afe36-d97a-44fc-af58-9f3182ff1027", + "86706fa7-ca02-4e03-aeb9-fc571793b148", + "ed220f08-7eaa-42a2-a172-4a3c72b8bace", + "0427b1dd-9631-4aeb-a5aa-e49847d3e227", + "d318fd29-146e-4be7-b218-7c9b30afb270", + "11823659-5794-4cd2-996c-e5f3b91ff28b", + "03c6511d-04d9-484f-94bd-8517a452f325", + "f272bde0-ecff-452e-b709-2268b05290ec" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "On continue donc avec la **sauvegarde automatique des identifiants Xtream**. L’application retiendra :\n\n```txt\nServeur\nUsername\nPassword\n```\n\nAu prochain lancement, elle essaiera de se reconnecter automatiquement. Oui, incroyable, une application qui se souvient de quelque chose, la technologie tient encore debout.\n\n> Pour cette première version, on utilise `SharedPreferences`. C’est suffisant pour tester. Plus tard, on passera en stockage chiffré propre.\n\n---\n\n# 1. Fais une sauvegarde avant modification\n\n```powershell\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - OK sauvegarde avant identifiants\" -Recurse\n```\n\n---\n\n# 2. Copie-colle ce bloc PowerShell complet\n\nIl va créer/modifier les fichiers nécessaires.\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nNew-Item -ItemType Directory -Force -Path \".\\app\\src\\main\\java\\ma\\tkgraph\\xtreamtv\\data\\storage\"\n\n$configStorage = @'\npackage ma.tkgraph.xtreamtv.data.storage\n\nimport android.content.Context\nimport ma.tkgraph.xtreamtv.data.model.XtreamConfig\n\nclass ConfigStorage(context: Context) {\n\n private val preferences = context.applicationContext.getSharedPreferences(\n PREFERENCES_NAME,\n Context.MODE_PRIVATE\n )\n\n fun save(config: XtreamConfig) {\n preferences.edit()\n .putString(KEY_SERVER_URL, config.serverUrl.trim())\n .putString(KEY_USERNAME, config.username.trim())\n .putString(KEY_PASSWORD, config.password.trim())\n .apply()\n }\n\n fun load(): XtreamConfig? {\n val serverUrl = preferences.getString(KEY_SERVER_URL, null)\n ?.trim()\n ?.takeIf { it.isNotBlank() }\n ?: return null\n\n val username = preferences.getString(KEY_USERNAME, null)\n ?.trim()\n ?.takeIf { it.isNotBlank() }\n ?: return null\n\n val password = preferences.getString(KEY_PASSWORD, null)\n ?.trim()\n ?.takeIf { it.isNotBlank() }\n ?: return null\n\n return XtreamConfig(\n serverUrl = serverUrl,\n username = username,\n password = password\n )\n }\n\n fun clear() {\n preferences.edit().clear().apply()\n }\n\n companion object {\n private const val PREFERENCES_NAME = \"xtream_config\"\n private const val KEY_SERVER_URL = \"server_url\"\n private const val KEY_USERNAME = \"username\"\n private const val KEY_PASSWORD = \"password\"\n }\n}\n'@\n\n[System.IO.File]::WriteAllText(\n \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\\app\\src\\main\\java\\ma\\tkgraph\\xtreamtv\\data\\storage\\ConfigStorage.kt\",\n $configStorage,\n [System.Text.UTF8Encoding]::new($false)\n)\n\n$loginScreen = @'\npackage ma.tkgraph.xtreamtv.ui.screens\n\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.Spacer\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.foundation.layout.height\nimport androidx.compose.foundation.layout.padding\nimport androidx.compose.foundation.layout.widthIn\nimport androidx.compose.material3.Button\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.OutlinedTextField\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.rememberCoroutineScope\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.input.PasswordVisualTransformation\nimport androidx.compose.ui.unit.dp\nimport kotlinx.coroutines.launch\nimport ma.tkgraph.xtreamtv.data.model.LiveStreamDto\nimport ma.tkgraph.xtreamtv.data.model.XtreamConfig\nimport ma.tkgraph.xtreamtv.data.network.XtreamApiFactory\nimport ma.tkgraph.xtreamtv.data.repository.XtreamRepository\n\n@Composable\nfun LoginScreen(\n initialConfig: XtreamConfig? = null,\n initialErrorMessage: String? = null,\n onLoginSuccess: (XtreamConfig, List) -> Unit\n) {\n var serverUrl by remember(initialConfig?.serverUrl) {\n mutableStateOf(initialConfig?.serverUrl.orEmpty())\n }\n\n var username by remember(initialConfig?.username) {\n mutableStateOf(initialConfig?.username.orEmpty())\n }\n\n var password by remember(initialConfig?.password) {\n mutableStateOf(initialConfig?.password.orEmpty())\n }\n\n var isLoading by remember { mutableStateOf(false) }\n\n var errorMessage by remember(initialErrorMessage) {\n mutableStateOf(initialErrorMessage)\n }\n\n val scope = rememberCoroutineScope()\n\n Box(\n modifier = Modifier\n .fillMaxSize()\n .background(MaterialTheme.colorScheme.background)\n .padding(48.dp),\n contentAlignment = Alignment.Center\n ) {\n Column(\n modifier = Modifier.widthIn(max = 720.dp),\n verticalArrangement = Arrangement.spacedBy(18.dp),\n horizontalAlignment = Alignment.Start\n ) {\n Text(\n text = \"Xtream TV Player\",\n style = MaterialTheme.typography.headlineLarge,\n color = MaterialTheme.colorScheme.onBackground\n )\n\n Text(\n text = \"Connecte ton accès Xtream compatible pour charger les chaînes Live.\",\n style = MaterialTheme.typography.bodyLarge,\n color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f)\n )\n\n Spacer(modifier = Modifier.height(8.dp))\n\n OutlinedTextField(\n modifier = Modifier.fillMaxWidth(),\n value = serverUrl,\n onValueChange = { serverUrl = it },\n label = { Text(\"Serveur : http://exemple.com:8080\") },\n singleLine = true\n )\n\n OutlinedTextField(\n modifier = Modifier.fillMaxWidth(),\n value = username,\n onValueChange = { username = it },\n label = { Text(\"Utilisateur\") },\n singleLine = true\n )\n\n OutlinedTextField(\n modifier = Modifier.fillMaxWidth(),\n value = password,\n onValueChange = { password = it },\n label = { Text(\"Mot de passe\") },\n singleLine = true,\n visualTransformation = PasswordVisualTransformation()\n )\n\n Button(\n enabled = !isLoading &&\n serverUrl.isNotBlank() &&\n username.isNotBlank() &&\n password.isNotBlank(),\n onClick = {\n scope.launch {\n isLoading = true\n errorMessage = null\n\n runCatching {\n val config = XtreamConfig(\n serverUrl = serverUrl.trim(),\n username = username.trim(),\n password = password.trim()\n )\n\n val repository = XtreamRepository(\n XtreamApiFactory.create(config.serverUrl)\n )\n\n val account = repository.checkAccount(\n username = config.username,\n password = config.password\n )\n\n val isAuthorized = account.userInfo?.auth == \"1\"\n val isActive = account.userInfo?.status.equals(\n other = \"Active\",\n ignoreCase = true\n )\n\n if (!isAuthorized || !isActive) {\n error(\"Compte non autorisé ou abonnement inactif.\")\n }\n\n val streams = repository.loadLiveStreams(\n username = config.username,\n password = config.password\n )\n\n onLoginSuccess(config, streams)\n }.onFailure { throwable ->\n errorMessage = throwable.message ?: \"Connexion impossible au serveur.\"\n }\n\n isLoading = false\n }\n }\n ) {\n if (isLoading) {\n CircularProgressIndicator(\n modifier = Modifier.height(22.dp),\n strokeWidth = 2.dp\n )\n } else {\n Text(\"Se connecter\")\n }\n }\n\n errorMessage?.let { message ->\n Text(\n text = message,\n color = MaterialTheme.colorScheme.error,\n style = MaterialTheme.typography.bodyMedium\n )\n }\n }\n }\n}\n'@\n\n[System.IO.File]::WriteAllText(\n \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\\app\\src\\main\\java\\ma\\tkgraph\\xtreamtv\\ui\\screens\\LoginScreen.kt\",\n $loginScreen,\n [System.Text.UTF8Encoding]::new($false)\n)\n\n$mainActivity = @'\npackage ma.tkgraph.xtreamtv\n\nimport android.os.Bundle\nimport androidx.activity.ComponentActivity\nimport androidx.activity.compose.setContent\nimport androidx.compose.foundation.background\nimport androidx.compose.foundation.layout.Arrangement\nimport androidx.compose.foundation.layout.Box\nimport androidx.compose.foundation.layout.Column\nimport androidx.compose.foundation.layout.fillMaxSize\nimport androidx.compose.material3.CircularProgressIndicator\nimport androidx.compose.material3.MaterialTheme\nimport androidx.compose.material3.Text\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.LaunchedEffect\nimport androidx.compose.runtime.getValue\nimport androidx.compose.runtime.mutableStateOf\nimport androidx.compose.runtime.remember\nimport androidx.compose.runtime.setValue\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.platform.LocalContext\nimport androidx.compose.ui.unit.dp\nimport ma.tkgraph.xtreamtv.data.model.LiveStreamDto\nimport ma.tkgraph.xtreamtv.data.model.XtreamConfig\nimport ma.tkgraph.xtreamtv.data.network.XtreamApiFactory\nimport ma.tkgraph.xtreamtv.data.repository.XtreamRepository\nimport ma.tkgraph.xtreamtv.data.storage.ConfigStorage\nimport ma.tkgraph.xtreamtv.ui.screens.HomeScreen\nimport ma.tkgraph.xtreamtv.ui.screens.LoginScreen\nimport ma.tkgraph.xtreamtv.ui.screens.PlayerScreen\nimport ma.tkgraph.xtreamtv.ui.theme.XtreamTvTheme\nimport ma.tkgraph.xtreamtv.util.XtreamUrlBuilder\n\nclass MainActivity : ComponentActivity() {\n override fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n setContent {\n XtreamTvTheme {\n XtreamTvApp()\n }\n }\n }\n}\n\nprivate sealed interface AppScreen {\n data object Loading : AppScreen\n data object Login : AppScreen\n data object Home : AppScreen\n data class Player(val title: String, val url: String) : AppScreen\n}\n\n@Composable\nprivate fun XtreamTvApp() {\n val context = LocalContext.current\n val configStorage = remember { ConfigStorage(context) }\n\n var screen by remember { mutableStateOf(AppScreen.Loading) }\n var config by remember { mutableStateOf(null) }\n var liveStreams by remember { mutableStateOf>(emptyList()) }\n var loginErrorMessage by remember { mutableStateOf(null) }\n\n LaunchedEffect(Unit) {\n val savedConfig = configStorage.load()\n\n if (savedConfig == null) {\n screen = AppScreen.Login\n return@LaunchedEffect\n }\n\n runCatching {\n val streams = loadLiveStreamsFromServer(savedConfig)\n config = savedConfig\n liveStreams = streams\n loginErrorMessage = null\n screen = AppScreen.Home\n }.onFailure {\n configStorage.clear()\n config = null\n liveStreams = emptyList()\n loginErrorMessage = \"Connexion automatique impossible. Vérifie tes identifiants.\"\n screen = AppScreen.Login\n }\n }\n\n when (val currentScreen = screen) {\n AppScreen.Loading -> LoadingScreen(\n message = \"Connexion automatique en cours...\"\n )\n\n AppScreen.Login -> LoginScreen(\n initialConfig = configStorage.load(),\n initialErrorMessage = loginErrorMessage,\n onLoginSuccess = { newConfig, streams ->\n configStorage.save(newConfig)\n config = newConfig\n liveStreams = streams\n loginErrorMessage = null\n screen = AppScreen.Home\n }\n )\n\n AppScreen.Home -> HomeScreen(\n streams = liveStreams,\n onStreamSelected = { stream ->\n val currentConfig = config ?: return@HomeScreen\n\n val url = XtreamUrlBuilder.liveUrl(\n config = currentConfig,\n streamId = stream.streamId,\n extension = \"m3u8\"\n )\n\n screen = AppScreen.Player(\n title = stream.name.orEmpty().ifBlank { \"Chaîne ${stream.streamId}\" },\n url = url\n )\n },\n onLogout = {\n configStorage.clear()\n config = null\n liveStreams = emptyList()\n loginErrorMessage = null\n screen = AppScreen.Login\n }\n )\n\n is AppScreen.Player -> PlayerScreen(\n title = currentScreen.title,\n streamUrl = currentScreen.url,\n onBack = { screen = AppScreen.Home }\n )\n }\n}\n\n@Composable\nprivate fun LoadingScreen(\n message: String\n) {\n Box(\n modifier = Modifier\n .fillMaxSize()\n .background(MaterialTheme.colorScheme.background),\n contentAlignment = Alignment.Center\n ) {\n Column(\n verticalArrangement = Arrangement.spacedBy(18.dp),\n horizontalAlignment = Alignment.CenterHorizontally\n ) {\n CircularProgressIndicator()\n Text(\n text = message,\n color = MaterialTheme.colorScheme.onBackground,\n style = MaterialTheme.typography.bodyLarge\n )\n }\n }\n}\n\nprivate suspend fun loadLiveStreamsFromServer(\n config: XtreamConfig\n): List {\n val repository = XtreamRepository(\n XtreamApiFactory.create(config.serverUrl)\n )\n\n val account = repository.checkAccount(\n username = config.username,\n password = config.password\n )\n\n val isAuthorized = account.userInfo?.auth == \"1\"\n val isActive = account.userInfo?.status.equals(\n other = \"Active\",\n ignoreCase = true\n )\n\n if (!isAuthorized || !isActive) {\n error(\"Compte non autorisé ou abonnement inactif.\")\n }\n\n return repository.loadLiveStreams(\n username = config.username,\n password = config.password\n )\n}\n'@\n\n[System.IO.File]::WriteAllText(\n \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\\app\\src\\main\\java\\ma\\tkgraph\\xtreamtv\\MainActivity.kt\",\n $mainActivity,\n [System.Text.UTF8Encoding]::new($false)\n)\n```\n\n---\n\n# 3. Compiler\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nRésultat attendu :\n\n```txt\nBUILD SUCCESSFUL\n```\n\n---\n\n# 4. Réinstaller sur la box\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nPuis lance :\n\n```powershell\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\nOu :\n\n```powershell\nadb shell monkey -p ma.tkgraph.xtreamtv 1\n```\n\n---\n\n# Résultat attendu\n\nAprès cette modification :\n\n- première ouverture : tu saisis les identifiants Xtream ;\n- connexion réussie : l’app sauvegarde les identifiants ;\n- prochaine ouverture : connexion automatique ;\n- bouton **Déconnexion** : supprime les identifiants sauvegardés.\n\nVoilà, l’app commence enfin à avoir une mémoire. Modeste, certes, mais déjà plus fiable que beaucoup de réunions humaines." + } + ], + "created_at": "2026-06-10 20:33:23", + "updated_at": 1781120166.251037 + }, + { + "id": "6f5e6459-c361-4762-b15e-c953373253e1", + "ids": [ + "6f5e6459-c361-4762-b15e-c953373253e1" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "ok, l'appli a bien sa mémoire" + } + ], + "created_at": "2026-06-10 20:37:36", + "updated_at": 1781120268.566305 + }, + { + "id": "ffa62893-1aad-4d8b-a3e1-cb2c1a7b287c", + "ids": [ + "a88475bd-c07f-48b3-b181-b495f1e9b81c", + "3cd61b60-e625-4552-b2a0-18a8e789ebee", + "ffa62893-1aad-4d8b-a3e1-cb2c1a7b287c" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Parfait. Donc maintenant l’app sait :\n\n```txt\n1. Sauvegarder les identifiants Xtream\n2. Se reconnecter automatiquement au démarrage\n3. Supprimer les identifiants avec Déconnexion\n```\n\nOn a donc une vraie base fonctionnelle. Une application avec de la mémoire, chose qui reste malheureusement supérieure à certains logiciels payants.\n\n## À faire avant la suite\n\nFais une sauvegarde de cette version stable :\n\n```powershell\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - OK mémoire Xtream\" -Recurse\n```\n\n## Prochaine amélioration recommandée\n\nLa suite logique : **ajouter les catégories Live**.\n\nActuellement, l’app charge probablement toutes les chaînes en une seule liste. Il faut maintenant organiser :\n\n```txt\nToutes les chaînes\nSports\nFilms\nNews\nDocumentaires\nEnfants\nMaroc\nFrance\nArabes\nFavoris\n```\n\nTechniquement, on va ajouter :\n\n```txt\n1. API get_live_categories\n2. Modèle LiveCategoryDto\n3. Affichage des catégories à gauche\n4. Filtrage des chaînes par category_id\n5. Bouton “Toutes”\n6. Préparation pour “Favoris”\n```\n\nCommande Xtream utilisée :\n\n```txt\n/player_api.php?username=USER&password=PASS&action=get_live_categories\n```\n\nEnsuite, chaque chaîne Live possède déjà généralement :\n\n```txt\ncategory_id\n```\n\nDonc on peut filtrer proprement sans bricoler la liste comme un humain pressé un vendredi à 18h.\n\n## État actuel du projet\n\nTu as maintenant :\n\n| Élément | Statut |\n|---|---|\n| Compilation APK | OK |\n| Installation Google TV | OK |\n| Lancement application | OK |\n| Connexion Xtream | OK |\n| Mémoire identifiants | OK |\n| Connexion automatique | OK |\n| Catégories Live | Prochaine étape |\n| Favoris | Après catégories |\n| EPG | Après favoris |\n| Design TV premium | Après structure fonctionnelle |\n\nLa prochaine intervention doit modifier principalement :\n\n```txt\nXtreamApi.kt\nLiveCategoryDto.kt\nXtreamRepository.kt\nMainActivity.kt\nHomeScreen.kt\n```\n\nOn peut passer à l’étape **catégories Live** avec les fichiers complets à remplacer." + } + ], + "created_at": "2026-06-10 20:37:37", + "updated_at": 1781120309.773477 + }, + { + "id": "ee1d6e88-4276-4f66-85ac-eedec22b09e7", + "ids": [ + "ee1d6e88-4276-4f66-85ac-eedec22b09e7" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "procède directement et donne moi le fichier zip avec tous les fichiers modifiés" + } + ], + "created_at": "2026-06-10 20:39:33", + "updated_at": 1781120612.986294 + }, + { + "id": "8b3066ec-3ae5-4c42-ae55-3bfd39b882a4", + "ids": [ + "d97c6788-c6dd-45c6-b003-77425d2f638b", + "698addbf-4aa7-416b-9a03-1787b5d0991f", + "7e12c133-e0cc-4fb3-9073-9c019831deec", + "c139b0d0-eaa8-446e-8f85-bc105ddb4316", + "9db4353a-90d1-46ee-b66b-bcb5632ec094", + "967e6ae8-54a2-42e1-9c10-28d22dfeeac3", + "d08d0329-e2fd-41a7-9207-c19d71198fd0", + "aeac6207-7153-40af-b025-40bc7b81293c", + "19f3d62f-e4f1-48ef-b43d-e18f793a46cc", + "3e915a12-4350-45ae-b154-f2408cabefc4", + "8b3066ec-3ae5-4c42-ae55-3bfd39b882a4" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "C’est prêt. J’ai préparé le ZIP avec les fichiers modifiés pour ajouter les **catégories Live Xtream** et garder les corrections déjà validées : mémoire des identifiants, launcher Google TV, Gradle corrigé, etc. Bref, pas juste trois fichiers balancés au hasard dans un sac plastique numérique.\n\n## Télécharger le ZIP\n\n[📦 Télécharger la mise à jour Catégories Live](sandbox:/mnt/data/xtream-google-tv-player-categories-update.zip)\n\n## Ce que le ZIP ajoute\n\n- Appel API Xtream :\n\n```txt\naction=get_live_categories\n```\n\n- Nouveau modèle :\n\n```txt\nLiveCategoryDto.kt\n```\n\n- Affichage des catégories à gauche.\n- Filtrage des chaînes par catégorie.\n- Compteur de chaînes par catégorie.\n- Catégorie “Toutes”.\n- Catégorie “Non classées” si nécessaire.\n- Conservation de la mémoire des identifiants.\n- Manifest corrigé avec :\n\n```xml\nLEANBACK_LAUNCHER\nLAUNCHER\n```\n\n## Fichiers inclus\n\n```txt\nbuild.gradle.kts\ngradle.properties\ngradle/libs.versions.toml\napp/build.gradle.kts\napp/src/main/AndroidManifest.xml\napp/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/LoginScreen.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt\napply-update.ps1\nREADME_UPDATE_CATEGORIES.md\n```\n\n## Installation rapide\n\nDécompresse le ZIP dans ton projet :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - Backup avant categories\" -Recurse\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player-categories-update.zip\" -DestinationPath \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" -Force\n```\n\nPuis compile :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nPuis installe sur la box :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Option avec script inclus\n\nAprès extraction, tu peux aussi lancer :\n\n```powershell\n.\\apply-update.ps1\n```\n\nCe script fait la sauvegarde, copie les fichiers et lance la compilation. Oui, un script qui travaille pendant que nous contemplons l’absurdité du cycle compiler-installer-tester." + } + ], + "created_at": "2026-06-10 20:43:18", + "updated_at": 1781120790.922926 + }, + { + "id": "58e16249-90d2-49ea-bb55-6dfb8b09c063", + "ids": [ + "58e16249-90d2-49ea-bb55-6dfb8b09c063" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "ça marche. on avance plus rapidement maintenant : \n- Design sophistiqué\n- Possibilité de mettre des chaines en favori\n- quand on fait retour arrière, on revient dans le menu à la même chaine et même catégorie\n- possibilité d'épingler une chaine pour démarrer directement avec cette chaine\n- afficher la résolution de la chaine\n- zone de recherche de catégorie\n- zone de recherche de chaine\n- naviguer avec les boutons droite/gauche pour zapper entre les chaines\n" + } + ], + "created_at": "2026-06-10 21:01:54", + "updated_at": 1781121950.213113 + }, + { + "id": "cefe792c-66f1-4004-9d4a-ea9525ae3b02", + "ids": [ + "02c07044-4b17-445c-ac9b-6d05a19aa66c", + "4990ce21-4d6c-4e21-bd6d-3349553111c5", + "7ead49cb-fe1c-469e-b01c-6903e94c0f42", + "b7627242-bff1-4f2f-9a0d-46ba20eff4f3", + "518b2825-328d-4e82-bc04-c442b95f9c2f", + "2f6deaa6-e558-4062-b9ca-57a3a9f00f68", + "c567c80f-6f2c-434a-9acb-9295c67c3b14", + "907f3741-fa2e-47d9-a815-ab73aa2a85ca", + "d3533969-68c1-469f-a6e8-d7fb597b7c66", + "6c37469f-f590-4db4-b122-7dc4cb1cb95a", + "cefe792c-66f1-4004-9d4a-ea9525ae3b02" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "C’est prêt. J’ai préparé un ZIP avec les fichiers modifiés pour passer à une version plus avancée de l’app. On commence enfin à quitter le territoire du “ça démarre” pour entrer dans celui du “ça ressemble à un vrai produit”, événement rare dans le monde Android.\n\n## Télécharger le ZIP\n\n[📦 Télécharger la mise à jour avancée Google TV](sandbox:/mnt/data/xtream-google-tv-player-advanced-update.zip)\n\n## Fonctions ajoutées\n\nCette mise à jour ajoute :\n\n- **design TV plus sophistiqué** ;\n- **favoris chaînes** ;\n- **catégorie Favoris** automatique ;\n- **retour depuis le lecteur vers la même catégorie et la même chaîne** ;\n- **chaîne épinglée au démarrage** ;\n- **affichage de la résolution détectée pendant la lecture** ;\n- **recherche de catégorie** ;\n- **recherche de chaîne** ;\n- **zapping gauche/droite dans le lecteur** ;\n- raccourcis clavier/test :\n - `← / →` : chaîne précédente / suivante ;\n - `F` : favori ;\n - `P` : épingler.\n\n## Fichiers modifiés dans le ZIP\n\n```txt\napp/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt\nREADME_UPDATE_ADVANCED_TV.md\napply-update.ps1\n```\n\n## Installation rapide\n\nDécompresse le ZIP dans ton projet :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - Backup avant update avancee\" -Recurse\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player-advanced-update.zip\" -DestinationPath \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" -Force\n```\n\nPuis compile :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nInstalle sur la box :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Option avec script\n\nAprès extraction :\n\n```powershell\n.\\apply-update.ps1\n```\n\nPuis :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Note importante\n\nJe n’ai pas compilé l’APK ici dans ton environnement Windows, donc si Gradle décide encore de réciter de la poésie d’erreur, envoie seulement le bloc à partir de :\n\n```txt\nFAILURE: Build failed\n```\n\nPas tout le roman judiciaire de la JVM." + } + ], + "created_at": "2026-06-10 21:05:39", + "updated_at": 1781122084.428176 + }, + { + "id": "5b440bb1-2c25-45f5-8cd6-c173cae8e3c5", + "ids": [ + "5b440bb1-2c25-45f5-8cd6-c173cae8e3c5" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "attachment", + "attachment": { + "id": "file_00000000419c71fd8312fcea500d8eea", + "size": 2646973, + "name": "IMG_20260610_211129.jpg", + "mime_type": "image/jpeg", + "width": 2048, + "height": 1536, + "source": "local", + "library_file_id": "libfile_08cdc6da84f88191bd3472bb2daf4aa8", + "is_big_paste": false, + "url": "https://chatgpt.com/backend-api/estuary/content?id=file_00000000419c71fd8312fcea500d8eea&ts=494757&p=fs&cid=1&sig=2d0b0a982d74fc29e472ab3494467a4311adcc582ef88d1a7c8eda8a2c1a67a9&v=0" + } + }, + { + "type": "text", + "content": "on avance, mais le menu ne ressemble pas à grand chose, les caractères sont trop gros. dans les zones de texte, la couleur est foncé dans un arrière plan foncé. pas de noms de chaines. impossible d'arriver aux moutons épingler ou favori. essaie de réduire la taille des zones et du texte. je te laisse voir." + } + ], + "created_at": "2026-06-10 21:17:08", + "updated_at": 1781122775.003743 + }, + { + "id": "744aa962-a85a-4aa7-a4d2-0952f4a9c4c7", + "ids": [ + "64f59f3a-c5be-4c25-aa07-3b00cd6b6bac", + "31e7365e-e73d-4e74-b856-5da70663b67c", + "9d63d8a5-f81c-44bc-a9a9-3c6dd7d92e07", + "5a3c5fa2-a123-492d-aafd-d6b8e53abe9a", + "d67c38b4-8ccb-43ef-9a66-64498099f24d", + "ba0baf4c-035f-46b1-a291-f1afc808393e", + "99a50390-4afc-4232-86ee-bf6e2dbcea27", + "1d4c78df-c3c8-494d-a4d3-b382662fb77d", + "1f4f66d1-857b-4f03-a879-a9756dd4d764", + "aa722295-b8eb-4cab-8503-99f7f21c1f5b", + "c4d5b7a0-4ce1-4f3a-ad68-3ae2c09a36d5", + "b68b87c1-bba0-44ab-a2c7-c17726d5c575", + "6d9a0766-294d-435c-8bc3-f53fbcbe2bfd", + "744aa962-a85a-4aa7-a4d2-0952f4a9c4c7" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Tu as raison : l’interface était trop massive, les boutons mangeaient tout l’espace, et les noms de chaînes se faisaient écraser comme une pauvre variable dans un vieux script PowerShell. J’ai préparé une mise à jour **UI compacte**.\n\n## Télécharger le ZIP\n\n[📦 Télécharger la mise à jour UI compacte](sandbox:/mnt/data/xtream-google-tv-player-ui-compact-update.zip)\n\n## Corrections incluses\n\n- Textes réduits.\n- Zones de recherche plus petites.\n- Texte des champs en **blanc** sur fond sombre.\n- Catégories plus compactes.\n- Liste des chaînes plus lisible.\n- **Noms des chaînes visibles**.\n- Suppression des gros boutons dans chaque ligne.\n- Ajout d’une **barre d’action séparée** pour :\n - regarder ;\n - ajouter / retirer favori ;\n - épingler / désépingler.\n- Les boutons ne devraient plus écraser le nom des chaînes.\n- Le focus TV est plus propre.\n\n## Installation\n\nDans PowerShell :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - Backup avant UI compacte\" -Recurse\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player-ui-compact-update.zip\" -DestinationPath \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" -Force\n```\n\nPuis compile :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nInstalle sur la box :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Ce qui a changé techniquement\n\nLe ZIP modifie surtout :\n\n```txt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt\n```\n\nJ’ai aussi inclus :\n\n```txt\nREADME_UPDATE_UI_COMPACT.md\napply-update.ps1\n```\n\nJe n’ai pas compilé dans ton environnement Windows, donc si Gradle refait son numéro de diva, envoie uniquement la partie à partir de :\n\n```txt\nFAILURE: Build failed\n```" + } + ], + "created_at": "2026-06-10 21:19:22", + "updated_at": 1781122870.166569 + }, + { + "id": "1980c605-ba06-4210-bfbe-1d5bcd4a0082", + "ids": [ + "1980c605-ba06-4210-bfbe-1d5bcd4a0082" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "attachment", + "attachment": { + "id": "file_00000000b9e471fd923f349e7816cc20", + "size": 3360491, + "name": "IMG_20260610_212335.jpg", + "mime_type": "image/jpeg", + "width": 2048, + "height": 1536, + "source": "local", + "library_file_id": "libfile_30a13f585e848191bf792dedfc45d29c", + "is_big_paste": false, + "url": "https://chatgpt.com/backend-api/estuary/content?id=file_00000000b9e471fd923f349e7816cc20&ts=494757&p=fs&cid=1&sig=a05d9e15fff9e8f3afdde7cfd2a882e10d55a4726169a0b1aa015bf8d5c604ea&v=0" + } + }, + { + "type": "text", + "content": "c mieux, mais toujours impossible d'accéder au boutons favorie et epingler." + } + ], + "created_at": "2026-06-10 21:26:36", + "updated_at": 1781123305.627397 + }, + { + "id": "092e31ef-933a-4f7b-9976-c45f7dda4f79", + "ids": [ + "efc56fd1-1c51-4e7f-be89-e619ea49d5b4", + "9c57431f-7b64-45fe-b8ce-98f2bc02a1a9", + "38594731-2c6e-4c12-91a8-58f7f1cf044d", + "932cc17f-1037-4439-8520-21c44e40ef9b", + "c67cfd6e-7a56-46c6-8c96-baa43cc8d82f", + "fa153b72-e2db-422a-8eb5-df490ec5bdc9", + "4a6296ae-46af-417a-bdda-217e45e67c73", + "9b6267da-8f68-4749-a7c4-6e2cd3b00385", + "8be78d89-961f-4d3d-b90f-f4b5ba17be43", + "df71051f-f68f-4ebe-ab24-7502710fe9bc", + "092e31ef-933a-4f7b-9976-c45f7dda4f79" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Oui, là le problème est clair : les boutons **Favori** et **Épingler** sont dans une barre d’action au-dessus de la liste, mais la navigation TV reste coincée dans la liste. Merci Android TV, ce labyrinthe ergonomique payé au focus perdu.\n\nJ’ai corrigé ça avec une version où les actions sont **directement dans chaque ligne de chaîne**.\n\n## Télécharger le ZIP corrigé\n\n[📦 Télécharger la mise à jour UI Focus Actions](sandbox:/mnt/data/xtream-google-tv-player-ui-focus-actions-update.zip)\n\n## Ce que cette version change\n\n- Les boutons ne sont plus seulement en haut.\n- Chaque chaîne affiche maintenant :\n - **Voir**\n - **☆ / ★ Favori**\n - **Pin / Ép.**\n- Depuis une ligne de chaîne, tu peux aller vers la droite avec la télécommande pour atteindre les actions.\n- Texte encore un peu réduit.\n- Badges et boutons plus compacts.\n- Le nom de la chaîne garde plus d’espace.\n- La barre du haut devient informative, elle ne bloque plus l’accès aux actions.\n\n## Installation\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - Backup avant UI focus actions\" -Recurse\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player-ui-focus-actions-update.zip\" -DestinationPath \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" -Force\n```\n\nCompile :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nInstalle sur la box :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Navigation attendue\n\nDans la liste des chaînes :\n\n```txt\nOK sur le nom de chaîne = regarder\nDroite = accéder à Voir / ★ / Pin\n★ = ajouter ou retirer des favoris\nPin = épingler la chaîne\nÉp. = chaîne déjà épinglée\n```\n\nLà, les boutons devraient enfin être atteignables sans devoir supplier la télécommande comme un oracle capricieux." + } + ], + "created_at": "2026-06-10 21:28:16", + "updated_at": 1781123674.417058 + }, + { + "id": "491095d7-0780-4491-869c-437720d7c044", + "ids": [ + "491095d7-0780-4491-869c-437720d7c044" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "l'affichage sur la chaine de la résolution et nom de la chaine, les indications doivent disparaitre après 3 secondes et quand l'utilisateur clique sur le bouton retour, les infos apparaissent, un deuxième clique sur retour permet de revenir au menu. sinon, supprime les infos : F:favori, P épingler ça ne sert à rien. aussi tu peux ajouter la confirmation de quitter l'application quand on clique sur retour dans le menu. quand on revient au menu à partir d'une chaine, le focus doit être sur le nom de la chaine pas dans les zones de texte." + } + ], + "created_at": "2026-06-10 21:40:14", + "updated_at": 1781124190.289679 + }, + { + "id": "199352a8-db93-4f6a-9fd4-5a55c8ee8395", + "ids": [ + "b119069c-c252-4aef-aa3c-abcfd14a33b5", + "03045524-22ad-4c23-a1c6-7eae67ef1321", + "81cb307e-cd47-46f3-892c-f5416348e78e", + "c9a4734a-95f1-4429-9363-17fed9d7276b", + "c9b6a8a1-2bf9-44c4-8f48-26561f6c54e3", + "45e0ce7e-cac3-455d-986b-0a7bbfef9415", + "cea7e953-15c0-4ab4-b8c7-79df72429115", + "9cf17d0f-8f1e-4a9c-b6f5-04c3376c3420", + "b7262b38-ca86-42e4-bbef-ed5778f817e0", + "199352a8-db93-4f6a-9fd4-5a55c8ee8395" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "J’ai préparé la mise à jour. Elle corrige exactement les points que tu viens de signaler, parce qu’à ce stade on fait de l’ergonomie, pas du mobilier décoratif pour télécommande hostile.\n\n## Télécharger le ZIP\n\n[📦 Télécharger la mise à jour Player / Retour / Focus](sandbox:/mnt/data/xtream-google-tv-player-player-back-focus-update.zip)\n\n## Corrections incluses\n\n- Dans le lecteur :\n - nom de la chaîne + résolution visibles au démarrage ;\n - disparition automatique après **3 secondes** ;\n - premier clic sur **Retour** : les infos réapparaissent ;\n - deuxième clic sur **Retour** : retour au menu.\n\n- Suppression des indications inutiles :\n - `F : favori`\n - `P : épingler`\n\n- Dans le menu :\n - bouton **Retour** affiche une confirmation avant de quitter l’application ;\n - au retour depuis une chaîne, le focus revient sur **la ligne de la chaîne sélectionnée**, pas dans les champs de recherche.\n\n## Installation\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - Backup avant player back focus\" -Recurse\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player-player-back-focus-update.zip\" -DestinationPath \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" -Force\n```\n\nPuis compile :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nInstalle :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Fichiers modifiés\n\n```txt\napp/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt\n```\n\nSi Gradle refait son opéra tragique, envoie uniquement le bloc à partir de `FAILURE: Build failed`." + } + ], + "created_at": "2026-06-10 21:43:02", + "updated_at": 1781124191.764642 + }, + { + "id": "4b5d1e20-c401-4817-b396-a9bdf246a0f4", + "ids": [ + "4b5d1e20-c401-4817-b396-a9bdf246a0f4" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "tu peux ajouter les logo des chainens" + } + ], + "created_at": "2026-06-10 21:46:04", + "updated_at": 0 + }, + { + "id": "aaae9ea2-1e24-4e4f-bee4-142fb776849c", + "ids": [ + "7e42c8c9-382c-427b-9909-a8df53eff17c", + "ce7a6519-4279-4f6a-997e-7b2da66383e0", + "894f3f96-caaf-4440-a2ad-58127c8cc348", + "89537831-ac66-46fd-aa7f-4eeac94ccf1a", + "aaae9ea2-1e24-4e4f-bee4-142fb776849c" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "ok. maintenant on peux ajouter les logos aux chaines dans l'application. ne part pas sur de la création d'image STP." + } + ], + "created_at": "2026-06-10 21:47:09", + "updated_at": 1781124598.359347 + }, + { + "id": "38f85f88-2fbe-4b88-9096-070eea5998ea", + "ids": [ + "979c2f85-2bc6-4552-8feb-ced39858f4e4", + "7bde3688-236d-4a0a-b766-b9620333065f", + "35462681-2b54-462a-a6f1-3ec4d556fbe7", + "45d328da-a07e-485b-8f45-1a18c68184f2", + "933c9aa5-1987-4a2b-a528-3c60c965a419", + "b8d7f928-4704-4106-9b5e-a17c4b072367", + "3dcc8093-aaeb-4281-b981-db6290b4ed47", + "43c86f4b-0d6b-4ff9-b616-5d17115ac04b", + "0a3d3aad-13e5-42df-a1d5-b2941113c147", + "68ab814a-41f0-4ab9-b1d1-444d173fdcab", + "3a718faf-2cc2-4f71-b49a-9a0e9b4c3db3", + "bf3be6f8-1918-4e56-8e4a-da595890d5a3", + "09cc5290-6b42-4c7f-8e67-8ce231d8b331", + "23dc7220-a623-4a2b-a9ae-5c32cc17f06e", + "53245bdc-c007-4cf4-82ca-ff9376331bc4", + "38f85f88-2fbe-4b88-9096-070eea5998ea" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Tu as raison, pas de génération d’image. Là on parle des **logos fournis par Xtream** via le champ `stream_icon`, pas d’inventer des logos façon usine à hallucinations graphiques.\n\n## Télécharger le ZIP\n\n[📦 Télécharger la mise à jour Logos chaînes](sandbox:/mnt/data/xtream-google-tv-player-logos-update.zip)\n\n## Ce que ça ajoute\n\n- Affichage du **logo de chaque chaîne** dans la liste.\n- Affichage du **logo dans l’overlay du lecteur** avec le nom de la chaîne et la résolution.\n- Fallback automatique avec initiales si le logo est absent ou impossible à charger.\n- Ajout de **Coil 3** pour charger les images distantes dans Compose. La doc officielle Coil indique bien l’usage de `coil-compose` avec `AsyncImage`, et recommande aussi une dépendance réseau comme `coil-network-okhttp` pour les images distantes. ([coil-kt.github.io](https://coil-kt.github.io/coil/compose/?utm_source=chatgpt.com))\n\n## Fichiers inclus\n\n```txt\napp/build.gradle.kts\napp/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/components/ChannelLogo.kt\nREADME_UPDATE_LOGOS.md\napply-update.ps1\n```\n\n## Installation\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - Backup avant logos chaines\" -Recurse\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player-logos-update.zip\" -DestinationPath \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" -Force\n```\n\nPuis compile :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nInstalle :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\nLes logos dépendront évidemment de ce que ton fournisseur Xtream renvoie dans `stream_icon`. Si leur serveur envoie des liens cassés, vides ou moisis, l’app affichera les initiales. L’humanité ne manque jamais une occasion de casser une URL." + } + ], + "created_at": "2026-06-10 21:49:49", + "updated_at": 1781124600.648268 + }, + { + "id": "d8d2de01-6082-4a80-8b91-8c9bc84094d8", + "ids": [ + "d8d2de01-6082-4a80-8b91-8c9bc84094d8" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "on peut programmer maintenant l'epg et le replay" + } + ], + "created_at": "2026-06-10 21:54:38", + "updated_at": 1781125186.47541 + }, + { + "id": "4f695536-2707-49f8-ae3e-aad65840738d", + "ids": [ + "fd56fff2-65db-46aa-b9b9-63dd56567586", + "9a4b44c1-2f4b-4043-a3f6-7afbaf04233c", + "e80f8b84-06f6-4166-aede-2828abcf98cf", + "550e0452-49af-4daa-a27d-44cbf53da2a0", + "b75905c4-cac4-456a-a883-2762f0ca0790", + "14e8e3e6-7c30-47f8-ac52-51ba8a71e0ca", + "4f695536-2707-49f8-ae3e-aad65840738d" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Oui. J’ai préparé une mise à jour avec **EPG + Replay / Catch-up** pour les flux Xtream compatibles.\n\n## Télécharger le ZIP\n\n[📦 Télécharger la mise à jour EPG + Replay](sandbox:/mnt/data/xtream-google-tv-player-epg-replay-update.zip)\n\n## Ce que cette version ajoute\n\n- Chargement EPG via :\n\n```txt\nplayer_api.php?action=get_short_epg\n```\n\n- Affichage dans le menu :\n - programme en cours ;\n - programme suivant ;\n - indication `Replay` si disponible.\n\n- Bouton **Replay** dans la ligne de la chaîne.\n- Lecture replay via URL Xtream :\n\n```txt\n/timeshift/username/password/durée/date/stream_id.ts\n```\n\n- Affichage dans le lecteur :\n - logo ;\n - nom de chaîne ;\n - résolution ;\n - programme en cours ;\n - badge `Replay` quand on lit un replay.\n\n- Conservation :\n - favoris ;\n - épinglage ;\n - recherche ;\n - zapping gauche/droite ;\n - retour vers la même chaîne dans le menu.\n\n## Fichiers modifiés / ajoutés\n\n```txt\napp/build.gradle.kts\napp/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgShortResponse.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveStreamDto.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt\napp/src/main/java/ma/tkgraph/xtreamtv/util/XtreamUrlBuilder.kt\nREADME_UPDATE_EPG_REPLAY.md\napply-update.ps1\n```\n\n## Installation\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - Backup avant EPG replay\" -Recurse\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player-epg-replay-update.zip\" -DestinationPath \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" -Force\n```\n\nPuis compile :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nInstalle sur la box :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Important\n\nLe **replay dépend totalement du serveur Xtream**. Il faut que ton fournisseur renvoie correctement :\n\n```txt\ntv_archive\nhas_archive\nstart\nend\nepg_listings\n```\n\nSi le serveur ne fournit pas ces données, l’EPG affichera `EPG indisponible` ou le bouton **Replay** restera désactivé. Charmant, mais au moins ce sera honnête." + } + ], + "created_at": "2026-06-10 21:59:34", + "updated_at": 1781125422.032117 + }, + { + "id": "369712cc-bb89-4d20-ba66-8d0bab67124c", + "ids": [ + "369712cc-bb89-4d20-ba66-8d0bab67124c" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "PS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat clean --no-daemon\r\nTo honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.\r\nDaemon will be stopped at the end of the build\r\n\r\nBUILD SUCCESSFUL in 7s\r\n1 actionable task: 1 executed\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat :app:assembleDebug --no-daemon\r\nTo honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.\r\nDaemon will be stopped at the end of the build\r\n\r\n> Task :app:compileDebugKotlin FAILED\r\ne: file:///D:/07-Logiciels/11-IPTV%20Andoid%20TV%202/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt:107:25 Unsupported escape sequence.\r\ne: file:///D:/07-Logiciels/11-IPTV%20Andoid%20TV%202/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt:107:31 Unsupported escape sequence.\r\n\r\n[Incubating] Problems report is available at: file:///D:/07-Logiciels/11-IPTV%20Andoid%20TV%202/build/reports/problems/problems-report.html\r\n\r\nFAILURE: Build failed with an exception.\r\n\r\n* What went wrong:\r\nExecution failed for task ':app:compileDebugKotlin'.\r\n> A failure occurred while executing org.jetbrains.kotlin.compilerRunner.btapi.BuildToolsApiCompilationWork\r\n > Compilation error. See log for more details\r\n\r\n* Try:\r\n> Run with --stacktrace option to get the stack trace.\r\n> Run with --info or --debug option to get more log output.\r\n> Run with --scan to generate a Build Scan (Powered by Develocity).\r\n> Get more help at https://help.gradle.org.\r\n\r\nBUILD FAILED in 17s\r\n29 actionable tasks: 29 executed\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>" + } + ], + "created_at": "2026-06-10 22:04:27", + "updated_at": 1781125496.656299 + }, + { + "id": "5b194b6a-1eb6-4c1f-a6c5-0d3ee3ad89a2", + "ids": [ + "8468d4b7-30ce-4f7f-a943-7aaf6656cbf8", + "fb2d87c3-e2a6-4aec-9feb-6a7b2cb8b112", + "57dc82e1-5c39-4ce2-93fc-24175c48e97a", + "4be4e013-88e4-4789-90d0-20487b31f121", + "de24081d-90ab-4999-8636-35947fce7715", + "b1aae497-02ed-42d9-a7bc-35343c12f522", + "5b194b6a-1eb6-4c1f-a6c5-0d3ee3ad89a2" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Erreur simple : dans Kotlin, `\\d` dans une chaîne classique n’est pas accepté. Il fallait écrire la regex en chaîne brute. Encore une victoire du langage contre la santé mentale.\n\nLa ligne fautive était :\n\n```kotlin\nRegex(\"(\\d{2}:\\d{2})\")\n```\n\nElle est corrigée en :\n\n```kotlin\nRegex(\"\"\"(\\d{2}:\\d{2})\"\"\")\n```\n\n## ZIP corrigé\n\n[📦 Télécharger la mise à jour EPG + Replay corrigée](sandbox:/mnt/data/xtream-google-tv-player-epg-replay-fix1.zip)\n\n## Installation\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player-epg-replay-fix1.zip\" -DestinationPath \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" -Force\n```\n\nPuis :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nEnsuite :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Correction rapide sans ZIP\n\nTu peux aussi corriger directement avec PowerShell :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n$content = Get-Content \".\\app\\src\\main\\java\\ma\\tkgraph\\xtreamtv\\data\\model\\EpgProgramDto.kt\" -Raw\n$content = $content -replace 'Regex$\"\\(\\\\d\\{2\\}:\\\\d\\{2\\}$\"\\)', 'Regex(\"\"\"(\\d{2}:\\d{2})\"\"\")'\nSet-Content \".\\app\\src\\main\\java\\ma\\tkgraph\\xtreamtv\\data\\model\\EpgProgramDto.kt\" $content\n```\n\nLe ZIP corrigé est plus propre. Le patch direct existe au cas où Windows décide encore de transformer une tâche simple en rite initiatique." + } + ], + "created_at": "2026-06-10 22:04:49", + "updated_at": 1781125566.061792 + }, + { + "id": "11a3eff9-0692-4f0a-9c66-cd0be0317b8d", + "ids": [ + "11a3eff9-0692-4f0a-9c66-cd0be0317b8d" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "le replay marche. mais il ne te donne pas le choix de l'emission pour la quelle tu veux voir le replay, il faut pour chaque chaine sélectionnée avoir la liste du programme complet sur les jours qu'on a, l'utilisateur choisi l'émission à revoir. " + } + ], + "created_at": "2026-06-10 22:12:09", + "updated_at": 1781126184.509561 + }, + { + "id": "34d330b8-79c2-4b7a-933c-2d6727591132", + "ids": [ + "374d6381-b161-42c9-8def-c504378ad678", + "9f6a9adc-9314-4042-b5cf-a8fc6d1402ec", + "a6c30f6d-8587-447e-aaa5-6feb8fce5009", + "9fcc80f5-cddd-426e-85bc-aeb499edeb6e", + "71f86834-17d6-4e22-9be6-6267877c3a3f", + "8de2a9ac-d19c-41d7-970e-3c0f01b0a63c", + "34d330b8-79c2-4b7a-933c-2d6727591132" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "Tu as raison : le replay qui lance seulement “l’émission courante”, c’est trop limité. C’est un replay avec amnésie sélective, magnifique concept, mais mauvais produit.\n\nJ’ai préparé une mise à jour avec un **vrai écran Guide Replay par chaîne**.\n\n## Télécharger le ZIP\n\n[📦 Télécharger la mise à jour Replay Guide complet](sandbox:/mnt/data/xtream-google-tv-player-replay-guide-update.zip)\n\n## Ce que ça ajoute\n\n- Le bouton **Replay** devient **Guide**.\n- Quand tu sélectionnes une chaîne, tu peux ouvrir le **programme complet disponible**.\n- Les émissions sont groupées par jour.\n- L’utilisateur choisit directement l’émission à revoir.\n- Ajout d’une recherche dans les émissions.\n- Bouton **Revoir** sur chaque programme disponible.\n- Retour vers le menu en gardant la chaîne sélectionnée.\n- Lecture toujours via l’URL Xtream `timeshift`.\n\n## Fichiers modifiés / ajoutés\n\n```txt\napp/build.gradle.kts\napp/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgFullResponse.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt\napp/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt\napp/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ReplayGuideScreen.kt\n```\n\n## Installation\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\nCopy-Item \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" \"D:\\07-Logiciels\\11-IPTV Andoid TV 2 - Backup avant replay guide complet\" -Recurse\n\nExpand-Archive -Path \"$env:USERPROFILE\\Downloads\\xtream-google-tv-player-replay-guide-update.zip\" -DestinationPath \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\" -Force\n```\n\nPuis compile :\n\n```powershell\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nInstalle sur la box :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Utilisation attendue\n\nDans la liste des chaînes :\n\n```txt\nGuide → ouvre le programme complet de la chaîne\nRevoir → lance l’émission sélectionnée en replay\nRetour → revient au menu\n```\n\nLe guide complet dépend toujours de ce que le serveur Xtream renvoie avec `get_simple_data_table`. Si le fournisseur ne donne que 1 jour, tu verras 1 jour. S’il donne 7 jours, tu verras 7 jours. L’application affiche la vérité du serveur, même quand cette vérité ressemble à un placard vide." + } + ], + "created_at": "2026-06-10 22:16:13", + "updated_at": 1781126219.059098 + }, + { + "id": "a32aee20-dd85-4a55-8322-6be1434ec2b3", + "ids": [ + "a32aee20-dd85-4a55-8322-6be1434ec2b3" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "user", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "PS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\r\nPerforming Streamed Install\r\nSuccess\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\r\nStarting: Intent { cmp=ma.tkgraph.xtreamtv/.MainActivity }\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat clean --no-daemon\r\nTo honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.\r\nDaemon will be stopped at the end of the build\r\n\r\nBUILD SUCCESSFUL in 11s\r\n1 actionable task: 1 executed\r\n<=============> 100% EXECUTING [8s]\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2> .\\gradlew.bat :app:assembleDebug --no-daemon.\\gradlew.bat :app:assembleDebug --no-daemon\r\nTo honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.\r\nDaemon will be stopped at the end of the build\r\n\r\nFAILURE: Build failed with an exception.\r\n\r\n* What went wrong:\r\nProblem configuring task :app:assembleDebug from command line.\r\n> Unknown command-line option '--no-daemon.\\gradlew.bat'.\r\n\r\n* Try:\r\n> Run gradlew help --task :app:assembleDebug to get task usage details.\r\n> Run with --stacktrace option to get the stack trace.\r\n> Run with --info or --debug option to get more log output.\r\n> Run with --scan to generate a Build Scan (Powered by Develocity).\r\n> Get more help at https://help.gradle.org.\r\n\r\nBUILD FAILED in 6s\r\nPS D:\\07-Logiciels\\11-IPTV Andoid TV 2>" + } + ], + "created_at": "2026-06-10 22:17:39", + "updated_at": 1781126270.374347 + }, + { + "id": "26ca7034-0b05-4a5d-92dd-591593e5938b", + "ids": [ + "faf2b59a-2014-4893-acc4-944cb7263881", + "38c8b663-456f-4e3d-baf6-46add04181b2", + "26ca7034-0b05-4a5d-92dd-591593e5938b" + ], + "chatGroupId": "6a299d9e-ca0c-83ea-babc-6cf02e126458", + "role": "assistant", + "model": "chatgpt", + "displayModel": "ChatGPT", + "modelId": "gpt-5-5-thinking", + "contents": [ + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "" + }, + { + "type": "text", + "content": "L’erreur vient uniquement d’une **commande collée deux fois sur la même ligne** :\n\n```powershell\n.\\gradlew.bat :app:assembleDebug --no-daemon.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nGradle a donc compris :\n\n```txt\n--no-daemon.\\gradlew.bat\n```\n\ncomme une option bizarre. Évidemment, il n’a pas apprécié cette poésie PowerShell.\n\n## Commande correcte\n\nRelance simplement ceci, **une ligne à la fois** :\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n.\\gradlew.bat clean --no-daemon\n\n.\\gradlew.bat :app:assembleDebug --no-daemon\n```\n\nAttends :\n\n```txt\nBUILD SUCCESSFUL\n```\n\nEnsuite installe la nouvelle APK :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nPuis lance :\n\n```powershell\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Bloc complet propre à copier-coller\n\n```powershell\ncd \"D:\\07-Logiciels\\11-IPTV Andoid TV 2\"\n\n.\\gradlew.bat clean --no-daemon\n.\\gradlew.bat :app:assembleDebug --no-daemon\n\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\nadb shell am start -n ma.tkgraph.xtreamtv/.MainActivity\n```\n\n## Important\n\nTu as installé une APK **avant** de recompiler :\n\n```powershell\nadb install -r \".\\app\\build\\outputs\\apk\\debug\\app-debug.apk\"\n```\n\nDonc ta box a probablement encore l’ancienne version, pas forcément la version **Replay Guide complet**. Il faut bien :\n\n```txt\n1. compiler avec succès\n2. installer après compilation\n3. lancer l’app\n```\n\nPowerShell n’a pas cassé le projet. Il a juste avalé deux commandes comme un grille-pain qui mange une fourchette." + } + ], + "created_at": "2026-06-10 22:17:41", + "updated_at": 1781126350.284283 + } +] \ No newline at end of file diff --git a/IA/Développer-lecteur-vidéo-Google-TV.txt b/IA/Développer-lecteur-vidéo-Google-TV.txt new file mode 100644 index 0000000..c05d1a0 --- /dev/null +++ b/IA/Développer-lecteur-vidéo-Google-TV.txt @@ -0,0 +1,3903 @@ +From: https://chatgpt.com/c/6a299d9e-ca0c-83ea-babc-6cf02e126458 + + + +you asked + +message time: 2026-06-10 18:24:21 + +je veux développer un lecteur de video sur google tv qui peut lire le flux extream + + +chatgpt response + +Je vais cadrer ça proprement : Google TV = Android TV, donc le lecteur doit être natif Android, avec Media3/ExoPlayer pour éviter de réinventer la roue carrée, invention humaine déjà très complète. Je vérifie les docs actuelles avant de te donner une base technique exploitable. + +Je pars du principe que par “flux extream” tu veux dire Xtream Codes / IPTV compatible Xtream. Donc oui, c’est faisable sur Google TV, qui repose sur Android TV. La voie propre : application Android TV native en Kotlin + Jetpack Compose for TV + Media3 ExoPlayer. Faire ça autrement serait une invitation à souffrir, donc évidemment l’humanité l’a déjà essayé. + +1. Architecture recommandée + +Stack technique + +Élément Choix recommandé +Plateforme Android TV / Google TV +Langage Kotlin +Interface Jetpack Compose for TV +Lecteur vidéo AndroidX Media3 ExoPlayer +Flux supportés HLS .m3u8, MPEG-TS .ts, MP4, DASH selon le serveur +API Xtream player_api.php, get.php, xmltv.php +Stockage DataStore ou Room +Réseau Retrofit ou Ktor +Publication APK / AAB Google Play TV + +Google recommande Compose for TV pour construire des interfaces adaptées à la télécommande, au focus et aux grands écrans. Media3 ExoPlayer est le composant moderne pour lire des fichiers ou flux vidéo/audio locaux ou distants. (Android Developers) + +2. Fonctionnement d’un flux Xtream + +Un accès Xtream contient généralement : + +Serveur : http://exemple.com:8080 +Username : user +Password : pass + +Les services compatibles Xtream utilisent souvent des endpoints comme : + +/player_api.php?username=USER&password=PASS +/player_api.php?username=USER&password=PASS&action=get_live_streams +/player_api.php?username=USER&password=PASS&action=get_vod_streams +/get.php?username=USER&password=PASS&type=m3u_plus&output=m3u8 +/xmltv.php?username=USER&password=PASS + +Ces formats sont largement utilisés par les fournisseurs Xtream compatibles, même si l’écosystème est assez “documentation éparpillée dans un tiroir en feu”. Les exemples publics montrent notamment get.php pour récupérer une playlist M3U et player_api.php pour récupérer les chaînes, VOD, séries et EPG. (GitHub) + +3. Ce que ton application doit faire + +MVP conseillé + +La première version devrait contenir : + +Écran de connexion Xtream + +URL serveur +Nom d’utilisateur +Mot de passe + + +Validation du compte + +Appel à player_api.php +Vérification que l’abonnement est actif + + +Catalogue + +Chaînes Live +Films VOD +Séries +Catégories + + +Lecteur vidéo + +Lecture HLS .m3u8 +Lecture MPEG-TS .ts +Pause / lecture +Retour +Changement de chaîne +Gestion erreurs réseau + + +Interface TV + +Navigation avec télécommande +Focus clair +Grandes cartes +Texte lisible +Aucun élément minuscule, ce n’est pas une appli pour fourmis. + +4. Dépendances Android nécessaires + +Dans build.gradle.kts : + +dependencies { + val media3Version = "1.10.1" + + implementation("androidx.media3:media3-exoplayer:$media3Version") + implementation("androidx.media3:media3-exoplayer-hls:$media3Version") + implementation("androidx.media3:media3-exoplayer-dash:$media3Version") + implementation("androidx.media3:media3-ui:$media3Version") + implementation("androidx.media3:media3-session:$media3Version") + + implementation("androidx.tv:tv-foundation:1.0.0") + implementation("androidx.tv:tv-material:1.0.0") + + implementation("com.squareup.retrofit2:retrofit:2.11.0") + implementation("com.squareup.retrofit2:converter-gson:2.11.0") +} + +La version stable Media3 indiquée par Android Developers au 12 mai 2026 est 1.10.1, avec des modules pour ExoPlayer, HLS, DASH, UI, Leanback et MediaSession. (Android Developers) + +5. Manifest Android TV + +Dans AndroidManifest.xml : + + + + + + + + + + + + + + + + + + + + + + + +Pour être reconnu comme une app TV, Android demande une activité compatible TV avec le launcher Leanback, et Google Play impose aussi des critères de qualité spécifiques aux apps Android TV. (Android Developers) + +6. Modèle de configuration Xtream + +data class XtreamConfig( + val serverUrl: String, + val username: String, + val password: String +) + +Normalisation simple : + +fun cleanServerUrl(url: String): String { + return url.trim().removeSuffix("/") +} + +7. Générer une URL de lecture + +Pour une chaîne live : + +fun buildLiveUrl( + config: XtreamConfig, + streamId: Int, + extension: String = "m3u8" +): String { + val baseUrl = cleanServerUrl(config.serverUrl) + return "$baseUrl/live/${config.username}/${config.password}/$streamId.$extension" +} + +Pour VOD : + +fun buildVodUrl( + config: XtreamConfig, + streamId: Int, + extension: String = "mp4" +): String { + val baseUrl = cleanServerUrl(config.serverUrl) + return "$baseUrl/movie/${config.username}/${config.password}/$streamId.$extension" +} + +Pour séries : + +fun buildSeriesUrl( + config: XtreamConfig, + episodeId: Int, + extension: String = "mp4" +): String { + val baseUrl = cleanServerUrl(config.serverUrl) + return "$baseUrl/series/${config.username}/${config.password}/$episodeId.$extension" +} + +Certains fournisseurs utilisent .ts, d’autres .m3u8. Pour Google TV, privilégie HLS .m3u8 quand disponible : ExoPlayer supporte officiellement HLS, DASH et d’autres formats courants, mais les codecs internes doivent aussi être compatibles avec l’appareil. (Android Developers) + +8. Lecteur vidéo avec Media3 ExoPlayer + +Exemple simple en Kotlin Compose : + +@Composable +fun VideoPlayerScreen( + streamUrl: String +) { + val context = LocalContext.current + + val player = remember { + ExoPlayer.Builder(context).build().apply { + val mediaItem = MediaItem.fromUri(streamUrl) + setMediaItem(mediaItem) + prepare() + playWhenReady = true + } + } + + DisposableEffect(Unit) { + onDispose { + player.release() + } + } + + AndroidView( + modifier = Modifier.fillMaxSize(), + factory = { ctx -> + PlayerView(ctx).apply { + this.player = player + useController = true + keepScreenOn = true + } + } + ) +} + +Ce code lit directement une URL .m3u8, .ts, .mp4 ou autre format compatible. Media3 fournit l’interface Player pour lire, mettre en pause, chercher dans le flux et exposer les informations de lecture. (Android Developers) + +9. API Retrofit pour Xtream + +interface XtreamApi { + + @GET("player_api.php") + suspend fun getAccountInfo( + @Query("username") username: String, + @Query("password") password: String + ): XtreamAccountResponse + + @GET("player_api.php") + suspend fun getLiveStreams( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_live_streams" + ): List + + @GET("player_api.php") + suspend fun getVodStreams( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_vod_streams" + ): List + + @GET("player_api.php") + suspend fun getSeries( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_series" + ): List +} + +Exemple DTO live : + +data class LiveStreamDto( + val name: String, + val stream_id: Int, + val stream_icon: String?, + val category_id: String?, + val epg_channel_id: String? +) + +10. Interface TV recommandée + +Accueil + +[Continuer à regarder] + +[Live TV] + Sport | News | Films | Enfants | Généraliste + +[VOD] + Films récents | Action | Comédie | Drame + +[Séries] + Derniers épisodes | Populaires + +Navigation télécommande + +L’interface doit être pensée pour : + +boutons larges ; +focus visible ; +navigation horizontale/verticale fluide ; +retour rapide au lecteur ; +changement de chaîne avec haut/bas ; +recherche simple ; +favoris. + +Sur TV, le focus est plus important que le design décoratif. Une belle interface impossible à naviguer avec une télécommande reste une punition, pas un produit. + +11. Fonctions importantes à prévoir + +Fonction Priorité +Lecture Live Très haute +Lecture VOD Haute +Séries Haute +Favoris Haute +Reprise de lecture Moyenne +EPG / guide TV Haute +Recherche Haute +Contrôle parental Moyenne +Multi-profils Moyenne +Catch-up TV Selon fournisseur +Sous-titres Haute pour VOD +Choix qualité Selon flux + +12. Points sensibles + +Légalité + +Ton lecteur doit uniquement lire des flux pour lesquels l’utilisateur ou le fournisseur possède les droits. Ne construis pas une app orientée contournement, piratage, partage d’identifiants ou accès non autorisé. En plus d’être illégal, c’est le genre de décision qui transforme un projet commercial en dossier pénible. + +Sécurité + +Ne stocke pas les identifiants en clair. + +Utilise : + +EncryptedSharedPreferences ou DataStore chiffré ; +HTTPS si le fournisseur le permet ; +masquage du mot de passe ; +suppression rapide du compte ; +aucun log contenant username/password. + +Compatibilité + +Tous les flux IPTV ne sont pas propres. Certains serveurs envoient des .ts instables, des codecs douteux ou des playlists mal formées. ExoPlayer est solide, mais il ne fera pas de miracle avec un flux bricolé au chalumeau. + +13. Plan de développement conseillé + +Phase 1 — MVP + +Créer projet Android TV Kotlin. +Ajouter Media3. +Ajouter écran login Xtream. +Tester player_api.php. +Afficher les chaînes live. +Lire une chaîne avec ExoPlayer. + +Phase 2 — Catalogue + +Catégories live. +VOD. +Séries. +Images. +Recherche. +Favoris. + +Phase 3 — Expérience TV + +Focus télécommande. +Design Google TV. +Écran lecteur avancé. +Zapping rapide. +Guide EPG. + +Phase 4 — Produit commercial + +Abonnements ou licence app. +Analytics anonymes. +Crash reporting. +Publication Google Play TV. +Politique de confidentialité. +Conditions d’utilisation. + +Conclusion + +Le meilleur choix technique est : + +Android TV natif ++ Kotlin ++ Jetpack Compose for TV ++ Media3 ExoPlayer ++ API Xtream + +C’est stable, compatible Google TV, publiable sur Play Store et suffisamment flexible pour lire du live, VOD, séries et EPG. Le vrai travail ne sera pas seulement le lecteur vidéo, mais la qualité de l’expérience TV : navigation fluide, zapping rapide, gestion des erreurs et interface propre. Le lecteur, lui, c’est la partie presque civilisée de cette aventure. + + +you asked + +message time: 2026-06-10 18:26:49 + +ok, donne moi les fichiers à créer en zip + + +chatgpt response + +Je vais te préparer un ZIP de base complet pour un lecteur Google TV compatible Xtream : projet Android Kotlin, écran de connexion, liste de chaînes et lecteur vidéo. Bref, le squelette avant que les bugs ne viennent réclamer leur héritage. + +Je crée un projet minimal mais structuré, pas juste trois fichiers jetés dans un dossier comme une armoire de bureau municipal. Il contiendra déjà l’API Xtream, l’interface TV, et le lecteur Media3/ExoPlayer. + +C’est prêt. J’ai créé un ZIP avec un projet Android TV / Google TV Kotlin pour lire un accès Xtream compatible, avec écran de connexion, récupération des chaînes Live et lecteur vidéo Media3/ExoPlayer. Voilà, un squelette propre, pas une pile de fichiers abandonnés dans un coin numérique. + +Télécharger le ZIP + +📦 Télécharger le projet Xtream Google TV Player + +Ce que le ZIP contient + +Projet Android Kotlin complet. +MainActivity.kt +Écran de connexion Xtream. +Liste des chaînes Live. +Lecteur vidéo avec Media3 ExoPlayer. +API Retrofit vers player_api.php. +Génération d’URL Live Xtream. +Manifest compatible Android TV / Google TV. +README avec les instructions de lancement. + +Versions utilisées + +Le projet utilise notamment Media3 1.10.1, version listée officiellement dans les releases AndroidX Media3, ainsi que les dépendances Compose TV tv-material:1.1.0 et tv-foundation:1.0.0. J’ai aussi configuré Compose avec le BOM 2026.04.01, recommandé dans les notes Compose d’avril 2026. (Android Developers) + +Important + +Je n’ai pas compilé le projet dans Android Studio ici, parce que l’environnement de génération Android complet n’est pas disponible dans cette session. Le ZIP est structuré pour être ouvert directement dans Android Studio. Il faudra ensuite faire une synchronisation Gradle, puis lancer sur un appareil ou émulateur Android TV / Google TV. Le projet utilise Android Gradle Plugin 9.0.1, dont la compatibilité officielle mentionne notamment JDK 17 et SDK Android 36. (Android Developers) + + +you asked + +message time: 2026-06-10 18:32:52 + +ok. donne moi les commandes pour compiler et créer une apk et le transférer dans la box + + +chatgpt response + +Voici les commandes Windows PowerShell pour compiler le projet, créer l’APK et l’envoyer dans ta box Google TV. Parce qu’évidemment, brancher une télé à un ordinateur n’était pas assez absurde, il fallait aussi lui parler en ADB. + +Les commandes Android officielles passent par le Gradle Wrapper (gradlew.bat sous Windows) et l’installation peut se faire avec ADB. Android indique aussi que le projet AGP 9.0 utilise JDK 17 et Gradle 9.1.0 minimum. (Android Developers) + + +1. Décompresser le ZIP + +Adapte le chemin selon l’endroit où tu as téléchargé le fichier. + +cd D:\07-Logiciels\03-FIN65 + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player.zip" -DestinationPath . +cd .\xtream-google-tv-player + + +2. Vérifier Java et ADB + +java -version +adb version + +Il faut avoir : + +Java 17 +ADB installé avec Android SDK Platform Tools + +Si adb n’est pas reconnu, ajoute temporairement Platform Tools au PATH : + +$env:Path += ";$env:LOCALAPPDATA\Android\Sdk\platform-tools" +adb version + + +3. Créer le Gradle Wrapper si absent + +Dans le ZIP que je t’ai donné, il n’y a pas encore gradlew.bat. Donc il faut le générer une seule fois. Oui, évidemment, encore une petite cérémonie rituelle avant de compiler. + +Installe Gradle si besoin : + +winget install Gradle.Gradle + +Puis dans le dossier du projet : + +gradle wrapper --gradle-version 9.1.0 + +Vérifie : + +.\gradlew.bat --version + + +4. Compiler l’APK debug + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +L’APK sera créé ici : + +app\build\outputs\apk\debug\app-debug.apk + + +5. Activer ADB sur la box Google TV + +Sur ta box Google TV : + +Paramètres +> Système +> À propos +> Cliquer 7 fois sur "Build" / "Version" + +Ensuite : + +Paramètres +> Système +> Options pour les développeurs +> Activer le débogage USB / débogage réseau / débogage sans fil + +Selon la version Android de la box, tu auras soit une connexion simple en 5555, soit un système avec code d’appairage. Android permet le débogage via USB ou Wi-Fi avec ADB. (Android Developers) + + +Méthode A — Connexion ADB classique + +Utilise cette méthode si la box affiche seulement son IP. + +Exemple : + +adb connect 192.168.1.50:5555 +adb devices + +Si la box apparaît dans la liste : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lancer l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +Méthode B — Connexion avec code d’appairage + +Sur certaines Google TV récentes, tu verras : + +Adresse IP + port d’appairage +Code d’appairage + +Commande : + +adb pair 192.168.1.50:37123 + +Entre le code affiché sur la TV. + +Ensuite connecte-toi au port ADB normal affiché par la box : + +adb connect 192.168.1.50:42195 +adb devices + +Puis installe l’APK : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lancer l’app : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +6. Commande complète rapide + +Quand tout est déjà configuré : + +cd D:\07-Logiciels\03-FIN65\xtream-google-tv-player + +.\gradlew.bat clean :app:assembleDebug + +adb connect 192.168.1.50:5555 + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Remplace : + +192.168.1.50 + +par l’adresse IP réelle de ta box. + + +7. Désinstaller l’application si besoin + +adb uninstall ma.tkgraph.xtreamtv + +Puis réinstaller : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + + +8. Voir les logs en cas de bug + +adb logcat | findstr Xtream + +Ou logs Android complets : + +adb logcat + + +9. Créer une APK release + +Pour une APK release non signée : + +.\gradlew.bat :app:assembleRelease + +Chemin probable : + +app\build\outputs\apk\release\app-release-unsigned.apk + +Pour une installation directe sur ta box, utilise plutôt l’APK debug : + +app-debug.apk + +Elle est déjà signée automatiquement pour les tests. La release propre servira plus tard pour une distribution sérieuse, donc quand on arrêtera de vivre comme des développeurs qui installent tout à la main par Wi-Fi. + + +you asked + +message time: 2026-06-10 19:15:48 + +voila ce que j'ai + + +chatgpt response + +Parfait. D’après tes captures, tu as déjà l’essentiel : + +Android SDK Platform 36.1 installé +Android SDK Build-Tools installé +Android SDK Platform-Tools installé +Command-line Tools installé +Android Emulator installé +Java disponible via Android Studio / PyCharm +Le projet est ici : + +D:\07-Logiciels\11-IPTV Andoid TV 2 + +Le dossier correct est celui qui contient : + +app +gradle +build.gradle.kts +settings.gradle.kts +README + +Donc ne rentre pas dans le dossier xtream-google-tv-player à l’intérieur, sauf si c’est une deuxième copie. Oui, le zip s’est visiblement installé comme une poupée russe inutile, la poésie de Windows. + + +1. Ouvre PowerShell dans le bon dossier + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Vérifie que tu es au bon endroit : + +dir + +Tu dois voir : + +app +gradle +build.gradle.kts +settings.gradle.kts + + +2. Configurer Java avec Android Studio + +Tu as Java ici : + +D:\Program Files\Android\Android Studio\jbr\bin\java.exe + +Donc dans PowerShell : + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:Path = "$env:JAVA_HOME\bin;$env:Path" + +Teste : + +java -version + +Tu dois obtenir une version Java/JDK, idéalement 17 ou plus. + + +3. Configurer ADB + +Ton SDK est sûrement ici : + +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;$env:Path" + +Teste : + +adb version + +Si ça répond avec une version ADB, c’est bon. + + +4. Vérifier si gradlew.bat existe + +Dans ton dossier projet, tape : + +dir gradlew.bat + +Si gradlew.bat existe + +Passe directement à la compilation : + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +Si gradlew.bat n’existe pas + +Installe Gradle : + +winget install Gradle.Gradle + +Ferme PowerShell, rouvre-le, puis retourne dans le dossier : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Remets Java : + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:Path = "$env:JAVA_HOME\bin;$env:Path" + +Puis crée le wrapper Gradle : + +gradle wrapper --gradle-version 9.1.0 + +Ensuite compile : + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +5. Emplacement de l’APK générée + +Après compilation, ton APK sera ici : + +.\app\build\outputs\apk\debug\app-debug.apk + +Vérifie avec : + +dir ".\app\build\outputs\apk\debug\" + + +6. Activer ADB sur la box Google TV + +Sur ta box : + +Paramètres +> Système +> À propos +> Version / Build +> Clique 7 fois + +Puis : + +Paramètres +> Système +> Options pour les développeurs +> Débogage USB ou Débogage sans fil + +Sur Google TV récente, il y a souvent Débogage sans fil avec code d’appairage. + + +7. Connecter la box en Wi-Fi avec ADB + +Méthode avec appairage + +Sur la TV, ouvre : + +Débogage sans fil +> Associer avec un code + +Tu verras : + +Adresse IP : 192.168.1.xx +Port d’appairage : 37xxx +Code : 123456 + +Sur ton PC : + +adb pair 192.168.1.xx:37xxx + +Entre le code affiché sur la TV. + +Ensuite connecte-toi au port ADB normal affiché dans l’écran du débogage sans fil : + +adb connect 192.168.1.xx:xxxxx + +Vérifie : + +adb devices + +Tu dois voir un appareil en mode : + +device + + +8. Installer l’APK dans la box + +Depuis le dossier du projet : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Si tout va bien : + +Success + +La civilisation tient encore debout, brièvement. + + +9. Lancer l’application + +Essaie d’abord : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Si ça ne lance rien, liste les packages : + +adb shell pm list packages | findstr xtream + +Puis lance avec le package trouvé. + + +10. Commandes complètes à copier-coller + +Adapte seulement l’adresse IP de ta box. + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;$env:Path" + +java -version +adb version + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +adb connect 192.168.1.xx:xxxxx +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +11. Si tu as une erreur Gradle + +Lance : + +.\gradlew.bat --version + +Puis : + +.\gradlew.bat :app:assembleDebug --stacktrace + +L’erreur importante sera en bas. Pas les 300 lignes où Gradle raconte sa vie comme s’il écrivait ses mémoires. + + +you asked + +message time: 2026-06-10 19:19:49 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> dir + +Directory: D:\07-Logiciels\11-IPTV Andoid TV 2 + +Mode LastWriteTime Length Name + + +d----- 10/06/2026 18:32 app +d----- 10/06/2026 18:32 gradle +d----- 10/06/2026 19:10 xtream-google-tv-player +-a---- 10/06/2026 18:32 67 .gitignore +-a---- 10/06/2026 18:32 170 build.gradle.kts +-a---- 10/06/2026 18:32 3539 README.md +-a---- 10/06/2026 18:32 340 settings.gradle.kts + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> D:\Program Files\Android\Android Studio\jbr\bin\java.exe +D:\Program : The term 'D:\Program' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the +path is correct and try again. +At line:1 char:1 + +D:\Program Files\Android\Android Studio\jbr\bin\java.exe + + CategoryInfo : ObjectNotFound: (D:\Program:String) [], CommandNotFoundException + + FullyQualifiedErrorId : CommandNotFoundException + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> 'D:\Program Files\Android\Android Studio\jbr\bin\java.exe' +D:\Program Files\Android\Android Studio\jbr\bin\java.exe +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:JAVA_HOME\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> java -version +openjdk version "21.0.10" 2026-01-20 +OpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) +OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb version +Android Debug Bridge version 1.0.41 +Version 37.0.0-14910828 +Installed as C:\Users\abmou\AppData\Local\Android\Sdk\platform-tools\adb.exe +Running on Windows 10.0.26200 +PS D:\07-Logiciels\11-IPTV Andoid TV 2> dir gradlew.bat +dir : Cannot find path 'D:\07-Logiciels\11-IPTV Andoid TV 2\gradlew.bat' because it does not exist. +At line:1 char:1 + +dir gradlew.bat + + CategoryInfo : ObjectNotFound: (D:\07-Logiciels...V 2\gradlew.bat:String) [Get-ChildItem], ItemNotFoundException + + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> winget install Gradle.Gradle +The msstore source requires that you view the following agreements before using. +Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction +The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US"). + +Do you agree to all the source agreements terms? +[Y] Yes [N] No: y +No package found matching input criteria. +PS D:\07-Logiciels\11-IPTV Andoid TV 2> winget install Gradle.Gradle +No package found matching input criteria. +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + +Powershell réouvert : +Windows PowerShell +Copyright (C) Microsoft Corporation. All rights reserved. + +Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows + +PS C:\WINDOWS\system32> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:JAVA_HOME\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 +gradle : The term 'gradle' is not recognized as the name of a cmdlet, function, script file, or operable program. +Check the spelling of the name, or if a path was included, verify that the path is correct and try again. +At line:1 char:1 + +gradle wrapper --gradle-version 9.1.0 + + CategoryInfo : ObjectNotFound: (gradle:String) [], CommandNotFoundException + + FullyQualifiedErrorId : CommandNotFoundException + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Tu es presque prêt. Le problème est simple : Java fonctionne, ADB fonctionne, mais Gradle n’est pas installé et le projet n’a pas encore gradlew.bat. + +Donc PowerShell te dit littéralement : “gradle ? connais pas.” Très utile, comme toujours. + + +1. Petite correction Java + +Cette commande ne marche pas à cause des espaces dans Program Files : + +D:\Program Files\Android\Android Studio\jbr\bin\java.exe + +Pour exécuter un chemin avec espaces dans PowerShell, il faut utiliser & : + +& "D:\Program Files\Android\Android Studio\jbr\bin\java.exe" -version + +Mais tu as déjà bien configuré Java ensuite : + +java -version + +Et ça répond : + +openjdk version "21.0.10" + +Donc Java est OK. + + +2. Le vrai blocage + +Cette erreur : + +gradle : The term 'gradle' is not recognized + +veut dire : + +Gradle n’est pas installé ou pas dans le PATH. + +Et comme winget install Gradle.Gradle ne trouve rien, on va faire plus fiable : installer Gradle manuellement avec PowerShell. + + +3. Installer Gradle manuellement + +Copie-colle ce bloc complet dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$gradleVersion = "9.1.0" +$gradleInstallDir = "D:\Tools\Gradle" +$gradleZip = "$env:TEMP\gradle-$gradleVersion-bin.zip" + +New-Item -ItemType Directory -Force -Path $gradleInstallDir + +Invoke-WebRequest ` + -Uri "https://services.gradle.org/distributions/gradle-$gradleVersion-bin.zip" ` + -OutFile $gradleZip + +Expand-Archive -Path $gradleZip -DestinationPath $gradleInstallDir -Force + +$env:Path = "$gradleInstallDir\gradle-$gradleVersion\bin;$env:Path" + +gradle -v + +Si tout est bon, tu dois voir une réponse avec : + +Gradle 9.1.0 + + +4. Configurer Java + Android SDK + +Toujours dans PowerShell : + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" + +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" + +java -version +adb version +gradle -v + +Tu dois avoir les 3 commandes qui répondent. + + +5. Créer gradlew.bat + +Maintenant, dans ton dossier projet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +gradle wrapper --gradle-version 9.1.0 --distribution-type bin + +Ensuite vérifie : + +dir gradlew.bat + +Tu dois voir : + +gradlew.bat + +Si ce fichier apparaît, la bête respire. + + +6. Compiler l’APK debug + +Maintenant utilise le wrapper du projet : + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +L’APK sera ici : + +.\app\build\outputs\apk\debug\app-debug.apk + +Vérifie : + +dir ".\app\build\outputs\apk\debug\" + + +7. Commande complète à copier-coller + +Tu peux utiliser ce bloc complet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" + +java -version +adb version +gradle -v + +gradle wrapper --gradle-version 9.1.0 --distribution-type bin + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +8. Si le téléchargement Gradle bloque + +Si Invoke-WebRequest échoue, essaie cette version : + +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + +Invoke-WebRequest ` + -Uri "https://services.gradle.org/distributions/gradle-9.1.0-bin.zip" ` + -OutFile "$env:TEMP\gradle-9.1.0-bin.zip" + +Puis : + +Expand-Archive -Path "$env:TEMP\gradle-9.1.0-bin.zip" -DestinationPath "D:\Tools\Gradle" -Force +$env:Path = "D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" +gradle -v + + +9. Installer l’APK sur la box après compilation + +Quand l’APK existe, connecte ta box : + +adb devices + +Si elle est en Wi-Fi : + +adb connect 192.168.1.xx:xxxxx + +Puis installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lance l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +10. Si tu as une erreur à la compilation + +Lance cette commande : + +.\gradlew.bat :app:assembleDebug --stacktrace + +Et récupère surtout les 20 dernières lignes. Pas tout le roman Gradle, sinon on va finir par lire sa biographie non autorisée. + + +you asked + +message time: 2026-06-10 19:23:58 + +Windows PowerShell +Copyright (C) Microsoft Corporation. All rights reserved. + +Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows + +PS C:\WINDOWS\system32> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:JAVA_HOME\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 +gradle : The term 'gradle' is not recognized as the name of a cmdlet, function, script file, or operable program. +Check the spelling of the name, or if a path was included, verify that the path is correct and try again. +At line:1 char:1 + +gradle wrapper --gradle-version 9.1.0 + + CategoryInfo : ObjectNotFound: (gradle:String) [], CommandNotFoundException + + FullyQualifiedErrorId : CommandNotFoundException + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> & "D:\Program Files\Android\Android Studio\jbr\bin\java.exe" -version +openjdk version "21.0.10" 2026-01-20 +OpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) PS D:\07-Logiciels\11-IPTV Andoid TV 2> java -version openjdk version "21.0.10" 2026-01-20 OpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $gradleVersion = "9.1.0" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $gradleInstallDir = "D:\Tools\Gradle" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $gradleZip = "$env:TEMP\gradle-$gradleVersion-bin.zip" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> New-Item -ItemType Directory -Force -Path $gradleInstallDir + +Directory: D:\Tools + +Mode LastWriteTime Length Name + + +d----- 10/06/2026 19:22 Gradle + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Invoke-WebRequest ` + + -Uri "https://services.gradle.org/distributions/gradle-$gradleVersion-bin.zip" ` + -OutFile $gradleZip +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Expand-Archive -Path $gradleZip -DestinationPath $gradleInstallDir -Force +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$gradleInstallDir\gradle-$gradleVersion\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle -v + + + + + +Welcome to Gradle 9.1.0! + +Here are the highlights of this release: + +Full Java 25 support +Native task graph visualization +Enhanced console output + +For more details see https://docs.gradle.org/9.1.0/release-notes.html + + +Gradle 9.1.0 + +Build time: 2025-09-18 13:05:56 UTC +Revision: e45a8dbf2470c2e2474ccc25be9f49331406a07e + +Kotlin: 2.2.0 +Groovy: 4.0.28 +Ant: Apache Ant(TM) version 1.10.15 compiled on August 25 2024 +Launcher JVM: 21.0.10 (JetBrains s.r.o. 21.0.10+-14961533-b1163.108) +Daemon JVM: D:\Program Files\Android\Android Studio\jbr (no JDK specified, using current Java home) +OS: Windows 11 10.0 amd64 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> java -version +openjdk version "21.0.10" 2026-01-20 +OpenJDK Runtime Environment (build 21.0.10+-14961533-b1163.108) +OpenJDK 64-Bit Server VM (build 21.0.10+-14961533-b1163.108, mixed mode) +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb version +Android Debug Bridge version 1.0.41 +Version 37.0.0-14910828 +Installed as C:\Users\abmou\AppData\Local\Android\Sdk\platform-tools\adb.exe +Running on Windows 10.0.26200 +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle -v + + +Gradle 9.1.0 + +Build time: 2025-09-18 13:05:56 UTC +Revision: e45a8dbf2470c2e2474ccc25be9f49331406a07e + +Kotlin: 2.2.0 +Groovy: 4.0.28 +Ant: Apache Ant(TM) version 1.10.15 compiled on August 25 2024 +Launcher JVM: 21.0.10 (JetBrains s.r.o. 21.0.10+-14961533-b1163.108) +Daemon JVM: D:\Program Files\Android\Android Studio\jbr (no JDK specified, using current Java home) +OS: Windows 11 10.0 amd64 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 --distribution-type bin +Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details + +FAILURE: Build failed with an exception. + +Where: +Build file 'D:\07-Logiciels\11-IPTV Andoid TV 2\app\build.gradle.kts' line: 1 + + +What went wrong: +An exception occurred applying plugin request [id: 'org.jetbrains.kotlin.android', version: '2.4.0'] + +Failed to apply plugin 'org.jetbrains.kotlin.android'. +Failed to apply plugin 'org.jetbrains.kotlin.android' + The 'org.jetbrains.kotlin.android' plugin is no longer required for Kotlin support since AGP 9.0. + Solution: Remove the 'org.jetbrains.kotlin.android' plugin from this project's build file: app\build.gradle.kts. + See https://kotl.in/gradle/agp-built-in-kotlin for more details. +java.lang.Throwable (no error message) + + + + +Try: + +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 21s +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Tu as fait correctement la partie environnement : + +Java : OK +ADB : OK +Gradle 9.1.0 : OK +SDK Android : OK + +Le blocage vient maintenant du projet que je t’ai fourni : dans app/build.gradle.kts, il y a encore le plugin : + +alias(libs.plugins.kotlin.android) + +Avec Android Gradle Plugin 9.0+, ce plugin ne doit plus être utilisé, car Kotlin est maintenant intégré directement dans AGP. Android recommande de supprimer ce plugin du fichier module, du fichier racine et du catalogue libs.versions.toml. Bref, le futur est arrivé, et il casse les anciens fichiers comme un stagiaire trop motivé. (Android Developers) + + +1. Corriger les fichiers Gradle + +Copie-colle ce bloc complet dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +# Supprimer le plugin Kotlin Android du build racine +(Get-Content ".\build.gradle.kts") | +Where-Object { $_ -notmatch "libs\.plugins\.kotlin\.android" } | +Set-Content ".\build.gradle.kts" + +# Supprimer le plugin Kotlin Android du module app +(Get-Content ".\app\build.gradle.kts") | +Where-Object { $_ -notmatch "libs\.plugins\.kotlin\.android" } | +Set-Content ".\app\build.gradle.kts" + +# Supprimer la déclaration du plugin Kotlin Android dans le catalogue de versions +(Get-Content ".\gradle\libs.versions.toml") | +Where-Object { $_ -notmatch "^kotlin-android\s*=" } | +Set-Content ".\gradle\libs.versions.toml" + + +2. Vérifier que les lignes ont bien disparu + +Select-String -Path ".\build.gradle.kts" -Pattern "kotlin.android" +Select-String -Path ".\app\build.gradle.kts" -Pattern "kotlin.android" +Select-String -Path ".\gradle\libs.versions.toml" -Pattern "kotlin-android" + +Si tout est bon, ces commandes ne doivent rien afficher. + + +3. Recréer le Gradle Wrapper + +Maintenant relance : + +gradle wrapper --gradle-version 9.1.0 --distribution-type bin + +Vérifie que gradlew.bat existe : + +dir gradlew.bat + +Tu dois voir : + +gradlew.bat + + +4. Compiler l’APK + +Ensuite : + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + +L’APK sera ici : + +.\app\build\outputs\apk\debug\app-debug.apk + +Vérifie : + +dir ".\app\build\outputs\apk\debug\" + + +5. Commandes complètes après correction + +Quand les fichiers sont corrigés, tu peux utiliser ce bloc : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" + +gradle wrapper --gradle-version 9.1.0 --distribution-type bin + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +6. Installer dans la box Google TV + +Après compilation : + +adb devices + +Si ta box est déjà connectée, tu verras un appareil. + +Sinon, avec l’IP de la box : + +adb connect 192.168.1.xx:xxxxx + +Puis installe l’APK : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lance l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +7. Si une nouvelle erreur apparaît + +Lance : + +.\gradlew.bat :app:assembleDebug --stacktrace + +Et récupère uniquement les 30 dernières lignes. Le reste, c’est Gradle qui récite son roman intérieur. + + +you asked + +message time: 2026-06-10 19:26:41 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> # Supprimer le plugin Kotlin Android du build racine +PS D:\07-Logiciels\11-IPTV Andoid TV 2> (Get-Content ".\build.gradle.kts") | + +Where-Object { $_ -notmatch "libs.plugins.kotlin.android" } | +Set-Content ".\build.gradle.kts" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> # Supprimer le plugin Kotlin Android du module app +PS D:\07-Logiciels\11-IPTV Andoid TV 2> (Get-Content ".\app\build.gradle.kts") | +Where-Object { $_ -notmatch "libs.plugins.kotlin.android" } | +Set-Content ".\app\build.gradle.kts" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> # Supprimer la déclaration du plugin Kotlin Android dans le catalogue de versions +PS D:\07-Logiciels\11-IPTV Andoid TV 2> (Get-Content ".\gradle\libs.versions.toml") | +Where-Object { $_ -notmatch "^kotlin-android\s*=" } | +Set-Content ".\gradle\libs.versions.toml" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Select-String -Path ".\build.gradle.kts" -Pattern "kotlin.android" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Select-String -Path ".\app\build.gradle.kts" -Pattern "kotlin.android" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Select-String -Path ".\gradle\libs.versions.toml" -Pattern "kotlin-android" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> gradle wrapper --gradle-version 9.1.0 --distribution-type bin + + + + + +BUILD SUCCESSFUL in 6s +1 actionable task: 1 executed +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html +PS D:\07-Logiciels\11-IPTV Andoid TV 2> dir gradlew.bat + +Directory: D:\07-Logiciels\11-IPTV Andoid TV 2 + +Mode LastWriteTime Length Name + + +-a---- 10/06/2026 19:25 2896 gradlew.bat + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean +Downloading https://services.gradle.org/distributions/gradle-9.1.0-bin.zip +............10%.............20%.............30%.............40%.............50%............60%.............70%.............80%.............90%.............100% + +BUILD SUCCESSFUL in 9s +1 actionable task: 1 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug + +FAILURE: Build failed with an exception. + +What went wrong: +Could not determine the dependencies of task ':app:packageDebug'. + +Could not create task ':app:compileDebugJavaWithJavac'. +Failed to calculate the value of task ':app:compileDebugJavaWithJavac' property 'javaCompiler'. +Cannot find a Java installation on your machine (Windows 11 10.0 amd64) matching: {languageVersion=17, vendor=any vendor, implementation=vendor-specific, nativeImageCapable=false}. Toolchain download repositories have not been configured. + + + + +Try: + +Learn more about toolchain auto-detection and auto-provisioning at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sec:auto_detection. +Learn more about toolchain repositories at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sub:download_repositories. +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 987ms +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Très bien, on avance. Là, Gradle Wrapper est créé, donc la partie pénible est passée. Le nouveau problème est clair : + +Cannot find a Java installation matching: languageVersion=17 + +Ton projet demande explicitement un JDK 17, mais ta machine utilise : + +Java 21 + +Donc Gradle cherche Java 17, ne le trouve pas, et s’effondre comme un meuble en kit monté sans notice. + +Le plus simple : on supprime la demande forcée de JDK 17 dans app/build.gradle.kts, tout en gardant la compilation compatible Java 17. + + +1. Supprimer le bloc kotlin { jvmToolchain(17) } + +Copie-colle ceci dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$content = Get-Content ".\app\build.gradle.kts" -Raw +$content = $content -replace '(?s)\s*kotlin\s*\{\s*jvmToolchain$17$\s*\}', '' +Set-Content ".\app\build.gradle.kts" $content + + +2. Vérifier que le bloc a disparu + +Select-String -Path ".\app\build.gradle.kts" -Pattern "jvmToolchain" + +Si rien ne s’affiche, c’est bon. + + +3. Nettoyer et recompiler + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +4. Si tu veux faire tout d’un coup + +Copie-colle ce bloc complet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" + +$content = Get-Content ".\app\build.gradle.kts" -Raw +$content = $content -replace '(?s)\s*kotlin\s*\{\s*jvmToolchain$17$\s*\}', '' +Set-Content ".\app\build.gradle.kts" $content + +.\gradlew.bat clean +.\gradlew.bat :app:assembleDebug + + +5. Résultat attendu + +Si la compilation réussit, tu dois voir : + +BUILD SUCCESSFUL + +L’APK sera ici : + +D:\07-Logiciels\11-IPTV Andoid TV 2\app\build\outputs\apk\debug\app-debug.apk + +Vérifie : + +dir ".\app\build\outputs\apk\debug\" + + +6. Ensuite installation sur la box + +Quand l’APK existe : + +adb devices + +Puis, si ta box est en Wi-Fi : + +adb connect 192.168.1.xx:xxxxx + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lance l’app : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +7. Si une autre erreur apparaît + +Lance : + +.\gradlew.bat :app:assembleDebug --stacktrace + +Et récupère les 30 dernières lignes. Le reste, c’est Gradle qui fait du théâtre administratif. + + +you asked + +message time: 2026-06-10 19:51:35 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> dir gradlew.bat + +Directory: D:\07-Logiciels\11-IPTV Andoid TV 2 + +Mode LastWriteTime Length Name + + +-a---- 10/06/2026 19:25 2896 gradlew.bat + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean +Downloading https://services.gradle.org/distributions/gradle-9.1.0-bin.zip +............10%.............20%.............30%.............40%.............50%............60%.............70%.............80%.............90%.............100% + +BUILD SUCCESSFUL in 9s +1 actionable task: 1 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug + +FAILURE: Build failed with an exception. + +What went wrong: +Could not determine the dependencies of task ':app:packageDebug'. + +Could not create task ':app:compileDebugJavaWithJavac'. +Failed to calculate the value of task ':app:compileDebugJavaWithJavac' property 'javaCompiler'. +Cannot find a Java installation on your machine (Windows 11 10.0 amd64) matching: {languageVersion=17, vendor=any vendor, implementation=vendor-specific, nativeImageCapable=false}. Toolchain download repositories have not been configured. + + + + +Try: + +Learn more about toolchain auto-detection and auto-provisioning at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sec:auto_detection. +Learn more about toolchain repositories at https://docs.gradle.org/9.1.0/userguide/toolchains.html#sub:download_repositories. +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 987ms +PS D:\07-Logiciels\11-IPTV Andoid TV 2> cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $content = Get-Content ".\app\build.gradle.kts" -Raw +PS D:\07-Logiciels\11-IPTV Andoid TV 2> $content = $content -replace '(?s)\skotlin\s{\sjvmToolchain$17$\s}', '' +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Set-Content ".\app\build.gradle.kts" $content +PS D:\07-Logiciels\11-IPTV Andoid TV 2> Select-String -Path ".\app\build.gradle.kts" -Pattern "jvmToolchain" +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean + +BUILD SUCCESSFUL in 1s +1 actionable task: 1 up-to-date +Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.1.0/userguide/configuration_cache_enabling.html +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug +The Daemon will expire immediately since the JVM garbage collector is thrashing. +The project memory settings are likely not configured or are configured to an insufficient value. +The memory settings for this project must be adjusted to avoid this failure. +These settings can be adjusted by setting 'org.gradle.jvmargs' in 'gradle.properties'. +The currently configured max heap space is '512 MiB' and the configured max metaspace is '384 MiB'. +For more information on how to set these values, please refer to https://docs.gradle.org/9.1.0/userguide/build_environment.html#sec:configuring_jvm_memory in the Gradle documentation. +To disable this warning, set 'org.gradle.daemon.performance.disable-logging=true'. +Daemon is stopping immediately since the JVM garbage collector is thrashing + +FAILURE: Build failed with an exception. + +What went wrong: +Gradle build daemon has been stopped: since the JVM garbage collector is thrashing + + +Try: + +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Bon, cette fois ce n’est plus Kotlin, ni Java, ni ADB. C’est Gradle qui manque de mémoire : + +currently configured max heap space is '512 MiB' +Gradle build daemon has been stopped + +512 Mo pour compiler Android en 2026, c’est à peu près comme vouloir faire tourner Photoshop sur une calculatrice. On va lui donner plus de RAM. + + +1. Fermer ce qui consomme beaucoup + +Avant de relancer : + +ferme l’émulateur Android si ouvert ; +ferme Android Studio temporairement ; +ferme Chrome si tu as 47 onglets ouverts comme tout être humain mal encadré. + +Ensuite reste dans PowerShell. + + +2. Créer / corriger gradle.properties + +Copie-colle exactement ceci : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat --stop + +$gradleProperties = @" +org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8 -XX:+UseG1GC +org.gradle.parallel=false +org.gradle.configuration-cache=false +android.useAndroidX=true +"@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\gradle.properties", + $gradleProperties, + [System.Text.UTF8Encoding]::new($false) +) + + +3. Vérifier le fichier + +type ".\gradle.properties" + +Tu dois voir : + +org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8 -XX:+UseG1GC +org.gradle.parallel=false +org.gradle.configuration-cache=false +android.useAndroidX=true + + +4. Relancer la compilation sans daemon + +Utilise cette commande : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + + +5. Si ton PC manque de RAM + +Si ça bloque encore, baisse à 2 Go au lieu de 4 Go : + +$gradleProperties = @" +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8 -XX:+UseG1GC +org.gradle.parallel=false +org.gradle.configuration-cache=false +android.useAndroidX=true +"@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\gradle.properties", + $gradleProperties, + [System.Text.UTF8Encoding]::new($false) +) + +Puis : + +.\gradlew.bat --stop +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + + +6. Si la compilation réussit + +Tu dois voir : + +BUILD SUCCESSFUL + +L’APK sera ici : + +.\app\build\outputs\apk\debug\app-debug.apk + +Vérifie : + +dir ".\app\build\outputs\apk\debug\" + + +7. Installer sur la box ensuite + +Quand l’APK existe : + +adb devices + +Puis : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Lancer l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +Lance d’abord la correction mémoire avec 4096m. Si l’erreur suivante apparaît, envoie uniquement le bloc à partir de FAILURE: Build failed, pas toute la tragédie administrative de Gradle. + + +chatgpt response + +Ça y est : la compilation a réussi. Dans ton log, malgré les avertissements D8/R8 qui font leur petit spectacle dramatique, la ligne importante est bien : + +BUILD SUCCESSFUL in 47s +36 actionable tasks: 36 executed + +Donc l’APK debug a normalement été créé. Les warnings Kotlin/D8 sont bruyants, mais pas bloquants ici. Gradle adore faire peur aux gens, probablement par vocation administrative. + + +1. Vérifier que l’APK existe + +Dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +dir ".\app\build\outputs\apk\debug\" + +Tu dois voir un fichier comme : + +app-debug.apk + +Chemin complet : + +D:\07-Logiciels\11-IPTV Andoid TV 2\app\build\outputs\apk\debug\app-debug.apk + + +2. Connecter la box Google TV + +Si ta box est déjà connectée + +Tape : + +adb devices + +Si tu vois un appareil avec : + +device + +c’est bon. + + +Si tu dois connecter en Wi-Fi + +Sur la box Google TV : + +Paramètres +> Système +> Options pour les développeurs +> Débogage sans fil + +Puis depuis PowerShell : + +adb connect 192.168.1.xx:xxxxx + +Remplace par l’IP et le port affichés sur la box. + +Vérifie : + +adb devices + + +3. Installer l’APK sur la box + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Si tout va bien : + +Success + + +4. Lancer l’application + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +5. Commandes complètes à copier-coller + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +adb devices + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +6. Si l’installation échoue + +Cas 1 : ancienne version déjà installée + +adb uninstall ma.tkgraph.xtreamtv +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Cas 2 : version downgrade + +adb install -r -d ".\app\build\outputs\apk\debug\app-debug.apk" + +Cas 3 : appareil non autorisé + +Si adb devices affiche : + +unauthorized + +regarde l’écran de la box et accepte l’autorisation ADB. Oui, même la télé veut une confirmation maintenant. Admirable époque. + + +7. Les warnings D8/R8 + +Tu peux les ignorer pour l’instant, car l’APK a été généré. Plus tard, on pourra nettoyer ça en alignant mieux : + +Android Gradle Plugin ; +Compose ; +Kotlin intégré AGP ; +Media3 ; +dépendances TV. + +Mais maintenant, l’étape suivante est simple : installer l’APK dans la box et tester l’ouverture de l’app. + + +you asked + +message time: 2026-06-10 20:10:47 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb connect 192.168.1.124 +failed to authenticate to 192.168.1.124:5555 +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb connect 192.168.1.124 +already connected to 192.168.1.124:5555 +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb devices +List of devices attached +192.168.1.124:5555 device + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +Performing Streamed Install +Success +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Parfait. L’APK est installé avec succès sur ta box Google TV. + +La ligne importante : + +Success + +Donc là, l’application est bien dans la box. Petite victoire contre l’administration ADB, ce qui mérite presque une médaille en plastique. + + +1. Lancer l’application depuis PowerShell + +Tape : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Si l’app s’ouvre sur la TV, c’est bon. + + +2. Si elle ne s’ouvre pas + +Vérifie d’abord que le package existe bien : + +adb shell pm list packages | findstr xtream + +Tu devrais voir : + +package:ma.tkgraph.xtreamtv + +Puis relance : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +3. Ouvrir depuis la box + +Sur Google TV, va dans : + +Applications +> Voir toutes les applications +> Xtream Google TV Player + +Selon la box, l’application peut aussi apparaître dans : + +Paramètres +> Applications +> Voir toutes les applications + +Si elle n’apparaît pas directement sur l’accueil, c’est normal : certaines apps installées par ADB ne sont pas immédiatement mises en avant, parce que Google TV adore cacher les choses comme un meuble IKEA cache ses vis. + + +4. Tester l’application + +Dans l’app, entre : + +URL serveur : http://ton-serveur:port +Username : ton_identifiant +Password : ton_mot_de_passe + +Exemple de format : + +http://exemple.com:8080 + +Évite de mettre / à la fin de l’URL. + +Correct : + +http://exemple.com:8080 + +À éviter : + +http://exemple.com:8080/ + + +5. Voir les logs si l’app plante + +Lance cette commande avant d’ouvrir l’app : + +adb logcat | findstr xtream + +Ou plus large : + +adb logcat | findstr ma.tkgraph + +Puis ouvre l’application : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +6. Si tu veux désinstaller / réinstaller + +adb uninstall ma.tkgraph.xtreamtv +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + + +7. Commandes utiles maintenant + +adb devices +adb shell monkey -p ma.tkgraph.xtreamtv 1 +adb shell pm list packages | findstr xtream +adb logcat | findstr ma.tkgraph + +Ton étape actuelle : lancer l’app et tester la connexion Xtream. Si l’écran s’ouvre, on passe ensuite à l’amélioration du design TV, favoris, catégories, EPG et zapping. + + +you asked + +message time: 2026-06-10 20:12:46 + +je trouve l'appli, mais ouvrir est désactivée + + +chatgpt response + +Ça veut dire que l’APK est bien installée, mais que Google TV ne voit probablement aucune activité lançable. Autrement dit : l’application existe, mais elle n’a pas de “porte d’entrée” déclarée correctement. Très moderne : une maison sans porte, mais avec un joli reçu d’installation. + +On va corriger le AndroidManifest.xml. + + +1. Tester le lancement par ADB + +Lance d’abord cette commande : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Si tu vois une erreur du type : + +No activities found to run + +alors c’est bien le manifest qui est incomplet. + +Teste aussi : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Si cette commande ouvre l’app, alors l’activité existe, mais elle n’est pas bien déclarée pour le launcher TV. + + +2. Remplacer le manifest + +Ouvre ce fichier : + +D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\AndroidManifest.xml + +Remplace tout son contenu par ceci : + + + + + + + + + + + + + + + + + + + + + + + + + + +Le point important est ici : + + + + +LEANBACK_LAUNCHER sert à Google TV / Android TV. +LAUNCHER aide certaines interfaces à activer le bouton Ouvrir. Parce qu’apparemment une seule catégorie n’était pas assez claire pour l’empire Android. + + +3. Correction rapide par PowerShell + +Tu peux aussi remplacer le fichier directement avec PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$manifest = @" + + + + + + + + + + + + + + + + + + + + + + + + +"@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\AndroidManifest.xml", + $manifest, + [System.Text.UTF8Encoding]::new($false) +) + + +4. Recompiler l’APK + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + + +5. Désinstaller l’ancienne version + +Important : désinstalle l’ancienne app avant de réinstaller, sinon Google TV peut garder l’ancien état. + +adb uninstall ma.tkgraph.xtreamtv + + +6. Réinstaller la nouvelle APK + +adb install ".\app\build\outputs\apk\debug\app-debug.apk" + + +7. Lancer l’application + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Ou directement : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + + +8. Vérifier l’activité lançable + +Après installation, tape : + +adb shell cmd package resolve-activity --brief ma.tkgraph.xtreamtv + +Et aussi : + +adb shell pm dump ma.tkgraph.xtreamtv | findstr MAIN +adb shell pm dump ma.tkgraph.xtreamtv | findstr LEANBACK +adb shell pm dump ma.tkgraph.xtreamtv | findstr LAUNCHER + +Tu dois voir que MainActivity est bien associée à : + +android.intent.action.MAIN +android.intent.category.LAUNCHER +android.intent.category.LEANBACK_LAUNCHER + + +Résumé + +Ton installation est bonne. Le problème vient presque sûrement du manifest. Corrige-le, recompile, désinstalle, réinstalle. + +Commande finale utile : + +adb uninstall ma.tkgraph.xtreamtv +adb install ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +you asked + +message time: 2026-06-10 20:18:47 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb shell monkey -p ma.tkgraph.xtreamtv 1 + bash arg: -p + bash arg: ma.tkgraph.xtreamtv + bash arg: 1 +args: [-p, ma.tkgraph.xtreamtv, 1] + arg: "-p" + arg: "ma.tkgraph.xtreamtv" + arg: "1" +data="ma.tkgraph.xtreamtv" +** No activities found to run, monkey aborted. +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + +elle a démarré avec : +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +Starting: Intent { cmp=ma.tkgraph.xtreamtv/.MainActivity } +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Très bien, le diagnostic est confirmé : + +monkey : No activities found to run +am start -n ma.tkgraph.xtreamtv/.MainActivity : démarre + +Donc l’activité existe, l’application fonctionne, mais elle n’est pas déclarée comme application lançable pour le launcher. C’est exactement le problème du AndroidManifest.xml. + +Il faut ajouter : + + + +en plus de : + + + +Parce que manifestement Google TV a besoin qu’on lui explique deux fois où est la porte. + + +1. Corriger le Manifest automatiquement + +Copie-colle ceci dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$path = ".\app\src\main\AndroidManifest.xml" +$content = Get-Content $path -Raw + +$leanback = ' ' +$launcher = ' ' + +if ($content -notmatch 'android.intent.category.LAUNCHER') { + $content = $content.Replace($leanback, "$leanback`r`n$launcher") + [System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\AndroidManifest.xml", + $content, + [System.Text.UTF8Encoding]::new($false) + ) +} + +type ".\app\src\main\AndroidManifest.xml" + +Tu dois voir maintenant dans le fichier : + + + + + + + + +2. Recompiler l’APK + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Attends : + +BUILD SUCCESSFUL + + +3. Désinstaller l’ancienne version + +C’est important, sinon Google TV peut garder l’ancien état du launcher. + +adb uninstall ma.tkgraph.xtreamtv + + +4. Réinstaller la nouvelle version + +adb install ".\app\build\outputs\apk\debug\app-debug.apk" + + +5. Tester le lancement normal + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Cette fois, tu ne dois plus avoir : + +No activities found to run + + +6. Vérifier les activités lançables + +Teste aussi : + +adb shell cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.LAUNCHER ma.tkgraph.xtreamtv + +Puis : + +adb shell cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.LEANBACK_LAUNCHER ma.tkgraph.xtreamtv + +Tu dois voir MainActivity. + + +7. Si le bouton “Ouvrir” reste désactivé + +Redémarre simplement la box : + +adb reboot + +Après redémarrage, va dans les applications. Le bouton Ouvrir devrait être actif. + +Le fait que cette commande fonctionne : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +confirme que le code de l’app n’est pas le problème. Il faut juste corriger la déclaration launcher, reconstruire, désinstaller, réinstaller. La plomberie Android dans toute sa splendeur. + + +you asked + +message time: 2026-06-10 20:27:19 + +ça marche maintenant + + +chatgpt response + +Parfait. L’application démarre maintenant sur la box Google TV. Donc le cycle infernal est validé : + +Projet compilé +APK générée +APK installée +Application lançable + +La cause était bien le AndroidManifest.xml : l’activité existait, mais elle n’était pas correctement exposée au launcher TV. Android, ce grand philosophe, avait donc installé l’application sans lui donner de bouton pour l’ouvrir. + +Prochaine étape logique + +Maintenant tu peux tester : + +URL serveur Xtream +Username +Password + +Puis vérifier : + +si la connexion API fonctionne ; +si les chaînes Live se chargent ; +si le lecteur démarre bien le flux ; +si le zapping / retour télécommande fonctionne correctement. + +Commandes à garder + +Pour recompiler après modification : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Pour réinstaller : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Pour lancer : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + +Ou directement : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +À faire maintenant + +Avant de modifier plus loin, garde une copie du dossier actuel, parce que là tu as une version fonctionnelle de base : + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - version OK lancement" -Recurse + +Ensuite, on pourra améliorer proprement : + +design TV plus professionnel ; +mémorisation des identifiants Xtream ; +catégories Live ; +favoris ; +EPG / guide TV ; +zapping chaîne suivante/précédente ; +écran de chargement et messages d’erreur propres. + +Bref, maintenant on passe de “ça démarre” à “ça ressemble à un vrai produit”, cette étape rare où le logiciel cesse d’être seulement une preuve que l’univers tolère notre souffrance. + + +you asked + +message time: 2026-06-10 20:31:13 + +ok + + +chatgpt response + +Nickel. Garde cette version comme base stable avant de toucher au reste. + +Prochaine priorité conseillée + +On devrait améliorer dans cet ordre : + +Sauvegarde des identifiants Xtream + +éviter de retaper URL, username, password à chaque ouverture. + + +Chargement des catégories Live + +Sports, Films, News, Général, etc. + + +Interface TV plus propre + +cartes plus grandes ; +focus visible ; +navigation télécommande fluide. + + +Favoris + +ajouter / retirer une chaîne favorite. + + +Lecteur vidéo amélioré + +bouton retour ; +chaîne suivante / précédente ; +message si le flux ne marche pas. + + +EPG / guide TV + +programme actuel et suivant. + +Sauvegarde recommandée + +Fais une copie de sécurité maintenant : + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - OK lancement" -Recurse + +Voilà. On a transformé un ZIP en APK installée sur Google TV. L’informatique a brièvement obéi, événement assez rare pour être noté. + + +you asked + +message time: 2026-06-10 20:31:51 + +ok + + +chatgpt response + +Très bien. + +Pour la suite, la meilleure prochaine étape est de sauvegarder les identifiants Xtream dans l’application, pour ne pas les retaper à chaque lancement. + +On fera ensuite : + +1. Sauvegarde URL / username / password +2. Connexion automatique au démarrage +3. Liste des catégories Live +4. Favoris +5. Design TV plus propre +6. EPG + +Quand tu veux continuer, on attaque directement les fichiers à modifier, avec le contenu complet de chaque fichier. + + +you asked + +message time: 2026-06-10 20:33:02 + +ok + + +chatgpt response + +On continue donc avec la sauvegarde automatique des identifiants Xtream. L’application retiendra : + +Serveur +Username +Password + +Au prochain lancement, elle essaiera de se reconnecter automatiquement. Oui, incroyable, une application qui se souvient de quelque chose, la technologie tient encore debout. + +Pour cette première version, on utilise SharedPreferences. C’est suffisant pour tester. Plus tard, on passera en stockage chiffré propre. + + + + +1. Fais une sauvegarde avant modification + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - OK sauvegarde avant identifiants" -Recurse + + +2. Copie-colle ce bloc PowerShell complet + +Il va créer/modifier les fichiers nécessaires. + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +New-Item -ItemType Directory -Force -Path ".\app\src\main\java\ma\tkgraph\xtreamtv\data\storage" + +$configStorage = @' +package ma.tkgraph.xtreamtv.data.storage + +import android.content.Context +import ma.tkgraph.xtreamtv.data.model.XtreamConfig + +class ConfigStorage(context: Context) { + + private val preferences = context.applicationContext.getSharedPreferences( + PREFERENCES_NAME, + Context.MODE_PRIVATE + ) + + fun save(config: XtreamConfig) { + preferences.edit() + .putString(KEY_SERVER_URL, config.serverUrl.trim()) + .putString(KEY_USERNAME, config.username.trim()) + .putString(KEY_PASSWORD, config.password.trim()) + .apply() + } + + fun load(): XtreamConfig? { + val serverUrl = preferences.getString(KEY_SERVER_URL, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + ?: return null + + val username = preferences.getString(KEY_USERNAME, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + ?: return null + + val password = preferences.getString(KEY_PASSWORD, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + ?: return null + + return XtreamConfig( + serverUrl = serverUrl, + username = username, + password = password + ) + } + + fun clear() { + preferences.edit().clear().apply() + } + + companion object { + private const val PREFERENCES_NAME = "xtream_config" + private const val KEY_SERVER_URL = "server_url" + private const val KEY_USERNAME = "username" + private const val KEY_PASSWORD = "password" + } +} +'@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\java\ma\tkgraph\xtreamtv\data\storage\ConfigStorage.kt", + $configStorage, + [System.Text.UTF8Encoding]::new($false) +) + +$loginScreen = @' +package ma.tkgraph.xtreamtv.ui.screens + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.widthIn +import androidx.compose.material3.Button +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.launch +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.data.model.XtreamConfig +import ma.tkgraph.xtreamtv.data.network.XtreamApiFactory +import ma.tkgraph.xtreamtv.data.repository.XtreamRepository + +@Composable +fun LoginScreen( + initialConfig: XtreamConfig? = null, + initialErrorMessage: String? = null, + onLoginSuccess: (XtreamConfig, List) -> Unit +) { + var serverUrl by remember(initialConfig?.serverUrl) { + mutableStateOf(initialConfig?.serverUrl.orEmpty()) + } + + var username by remember(initialConfig?.username) { + mutableStateOf(initialConfig?.username.orEmpty()) + } + + var password by remember(initialConfig?.password) { + mutableStateOf(initialConfig?.password.orEmpty()) + } + + var isLoading by remember { mutableStateOf(false) } + + var errorMessage by remember(initialErrorMessage) { + mutableStateOf(initialErrorMessage) + } + + val scope = rememberCoroutineScope() + + Box( + modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.background) + .padding(48.dp), + contentAlignment = Alignment.Center + ) { + Column( + modifier = Modifier.widthIn(max = 720.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + horizontalAlignment = Alignment.Start + ) { + Text( + text = "Xtream TV Player", + style = MaterialTheme.typography.headlineLarge, + color = MaterialTheme.colorScheme.onBackground + ) + + Text( + text = "Connecte ton accès Xtream compatible pour charger les chaînes Live.", + style = MaterialTheme.typography.bodyLarge, + color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f) + ) + + Spacer(modifier = Modifier.height(8.dp)) + + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = serverUrl, + onValueChange = { serverUrl = it }, + label = { Text("Serveur : http://exemple.com:8080") }, + singleLine = true + ) + + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = username, + onValueChange = { username = it }, + label = { Text("Utilisateur") }, + singleLine = true + ) + + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = password, + onValueChange = { password = it }, + label = { Text("Mot de passe") }, + singleLine = true, + visualTransformation = PasswordVisualTransformation() + ) + + Button( + enabled = !isLoading && + serverUrl.isNotBlank() && + username.isNotBlank() && + password.isNotBlank(), + onClick = { + scope.launch { + isLoading = true + errorMessage = null + + runCatching { + val config = XtreamConfig( + serverUrl = serverUrl.trim(), + username = username.trim(), + password = password.trim() + ) + + val repository = XtreamRepository( + XtreamApiFactory.create(config.serverUrl) + ) + + val account = repository.checkAccount( + username = config.username, + password = config.password + ) + + val isAuthorized = account.userInfo?.auth == "1" + val isActive = account.userInfo?.status.equals( + other = "Active", + ignoreCase = true + ) + + if (!isAuthorized || !isActive) { + error("Compte non autorisé ou abonnement inactif.") + } + + val streams = repository.loadLiveStreams( + username = config.username, + password = config.password + ) + + onLoginSuccess(config, streams) + }.onFailure { throwable -> + errorMessage = throwable.message ?: "Connexion impossible au serveur." + } + + isLoading = false + } + } + ) { + if (isLoading) { + CircularProgressIndicator( + modifier = Modifier.height(22.dp), + strokeWidth = 2.dp + ) + } else { + Text("Se connecter") + } + } + + errorMessage?.let { message -> + Text( + text = message, + color = MaterialTheme.colorScheme.error, + style = MaterialTheme.typography.bodyMedium + ) + } + } + } +} +'@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\java\ma\tkgraph\xtreamtv\ui\screens\LoginScreen.kt", + $loginScreen, + [System.Text.UTF8Encoding]::new($false) +) + +$mainActivity = @' +package ma.tkgraph.xtreamtv + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.unit.dp +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.data.model.XtreamConfig +import ma.tkgraph.xtreamtv.data.network.XtreamApiFactory +import ma.tkgraph.xtreamtv.data.repository.XtreamRepository +import ma.tkgraph.xtreamtv.data.storage.ConfigStorage +import ma.tkgraph.xtreamtv.ui.screens.HomeScreen +import ma.tkgraph.xtreamtv.ui.screens.LoginScreen +import ma.tkgraph.xtreamtv.ui.screens.PlayerScreen +import ma.tkgraph.xtreamtv.ui.theme.XtreamTvTheme +import ma.tkgraph.xtreamtv.util.XtreamUrlBuilder + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + XtreamTvTheme { + XtreamTvApp() + } + } + } +} + +private sealed interface AppScreen { + data object Loading : AppScreen + data object Login : AppScreen + data object Home : AppScreen + data class Player(val title: String, val url: String) : AppScreen +} + +@Composable +private fun XtreamTvApp() { + val context = LocalContext.current + val configStorage = remember { ConfigStorage(context) } + + var screen by remember { mutableStateOf(AppScreen.Loading) } + var config by remember { mutableStateOf(null) } + var liveStreams by remember { mutableStateOf>(emptyList()) } + var loginErrorMessage by remember { mutableStateOf(null) } + + LaunchedEffect(Unit) { + val savedConfig = configStorage.load() + + if (savedConfig == null) { + screen = AppScreen.Login + return@LaunchedEffect + } + + runCatching { + val streams = loadLiveStreamsFromServer(savedConfig) + config = savedConfig + liveStreams = streams + loginErrorMessage = null + screen = AppScreen.Home + }.onFailure { + configStorage.clear() + config = null + liveStreams = emptyList() + loginErrorMessage = "Connexion automatique impossible. Vérifie tes identifiants." + screen = AppScreen.Login + } + } + + when (val currentScreen = screen) { + AppScreen.Loading -> LoadingScreen( + message = "Connexion automatique en cours..." + ) + + AppScreen.Login -> LoginScreen( + initialConfig = configStorage.load(), + initialErrorMessage = loginErrorMessage, + onLoginSuccess = { newConfig, streams -> + configStorage.save(newConfig) + config = newConfig + liveStreams = streams + loginErrorMessage = null + screen = AppScreen.Home + } + ) + + AppScreen.Home -> HomeScreen( + streams = liveStreams, + onStreamSelected = { stream -> + val currentConfig = config ?: return@HomeScreen + + val url = XtreamUrlBuilder.liveUrl( + config = currentConfig, + streamId = stream.streamId, + extension = "m3u8" + ) + + screen = AppScreen.Player( + title = stream.name.orEmpty().ifBlank { "Chaîne ${stream.streamId}" }, + url = url + ) + }, + onLogout = { + configStorage.clear() + config = null + liveStreams = emptyList() + loginErrorMessage = null + screen = AppScreen.Login + } + ) + + is AppScreen.Player -> PlayerScreen( + title = currentScreen.title, + streamUrl = currentScreen.url, + onBack = { screen = AppScreen.Home } + ) + } +} + +@Composable +private fun LoadingScreen( + message: String +) { + Box( + modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.background), + contentAlignment = Alignment.Center + ) { + Column( + verticalArrangement = Arrangement.spacedBy(18.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + CircularProgressIndicator() + Text( + text = message, + color = MaterialTheme.colorScheme.onBackground, + style = MaterialTheme.typography.bodyLarge + ) + } + } +} + +private suspend fun loadLiveStreamsFromServer( + config: XtreamConfig +): List { + val repository = XtreamRepository( + XtreamApiFactory.create(config.serverUrl) + ) + + val account = repository.checkAccount( + username = config.username, + password = config.password + ) + + val isAuthorized = account.userInfo?.auth == "1" + val isActive = account.userInfo?.status.equals( + other = "Active", + ignoreCase = true + ) + + if (!isAuthorized || !isActive) { + error("Compte non autorisé ou abonnement inactif.") + } + + return repository.loadLiveStreams( + username = config.username, + password = config.password + ) +} +'@ + +[System.IO.File]::WriteAllText( + "D:\07-Logiciels\11-IPTV Andoid TV 2\app\src\main\java\ma\tkgraph\xtreamtv\MainActivity.kt", + $mainActivity, + [System.Text.UTF8Encoding]::new($false) +) + + +3. Compiler + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Résultat attendu : + +BUILD SUCCESSFUL + + +4. Réinstaller sur la box + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Puis lance : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Ou : + +adb shell monkey -p ma.tkgraph.xtreamtv 1 + + +Résultat attendu + +Après cette modification : + +première ouverture : tu saisis les identifiants Xtream ; +connexion réussie : l’app sauvegarde les identifiants ; +prochaine ouverture : connexion automatique ; +bouton Déconnexion : supprime les identifiants sauvegardés. + +Voilà, l’app commence enfin à avoir une mémoire. Modeste, certes, mais déjà plus fiable que beaucoup de réunions humaines. + + +you asked + +message time: 2026-06-10 20:37:36 + +ok, l'appli a bien sa mémoire + + +chatgpt response + +Parfait. Donc maintenant l’app sait : + +1. Sauvegarder les identifiants Xtream +2. Se reconnecter automatiquement au démarrage +3. Supprimer les identifiants avec Déconnexion + +On a donc une vraie base fonctionnelle. Une application avec de la mémoire, chose qui reste malheureusement supérieure à certains logiciels payants. + +À faire avant la suite + +Fais une sauvegarde de cette version stable : + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - OK mémoire Xtream" -Recurse + +Prochaine amélioration recommandée + +La suite logique : ajouter les catégories Live. + +Actuellement, l’app charge probablement toutes les chaînes en une seule liste. Il faut maintenant organiser : + +Toutes les chaînes +Sports +Films +News +Documentaires +Enfants +Maroc +France +Arabes +Favoris + +Techniquement, on va ajouter : + +1. API get_live_categories +2. Modèle LiveCategoryDto +3. Affichage des catégories à gauche +4. Filtrage des chaînes par category_id +5. Bouton “Toutes” +6. Préparation pour “Favoris” + +Commande Xtream utilisée : + +/player_api.php?username=USER&password=PASS&action=get_live_categories + +Ensuite, chaque chaîne Live possède déjà généralement : + +category_id + +Donc on peut filtrer proprement sans bricoler la liste comme un humain pressé un vendredi à 18h. + +État actuel du projet + +Tu as maintenant : + +Élément Statut +Compilation APK OK +Installation Google TV OK +Lancement application OK +Connexion Xtream OK +Mémoire identifiants OK +Connexion automatique OK +Catégories Live Prochaine étape +Favoris Après catégories +EPG Après favoris +Design TV premium Après structure fonctionnelle + +La prochaine intervention doit modifier principalement : + +XtreamApi.kt +LiveCategoryDto.kt +XtreamRepository.kt +MainActivity.kt +HomeScreen.kt + +On peut passer à l’étape catégories Live avec les fichiers complets à remplacer. + + +you asked + +message time: 2026-06-10 20:39:33 + +procède directement et donne moi le fichier zip avec tous les fichiers modifiés + + +chatgpt response + +C’est prêt. J’ai préparé le ZIP avec les fichiers modifiés pour ajouter les catégories Live Xtream et garder les corrections déjà validées : mémoire des identifiants, launcher Google TV, Gradle corrigé, etc. Bref, pas juste trois fichiers balancés au hasard dans un sac plastique numérique. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Catégories Live + +Ce que le ZIP ajoute + +Appel API Xtream : + +action=get_live_categories + +Nouveau modèle : + +LiveCategoryDto.kt + +Affichage des catégories à gauche. +Filtrage des chaînes par catégorie. +Compteur de chaînes par catégorie. +Catégorie “Toutes”. +Catégorie “Non classées” si nécessaire. +Conservation de la mémoire des identifiants. +Manifest corrigé avec : + +LEANBACK_LAUNCHER +LAUNCHER + +Fichiers inclus + +build.gradle.kts +gradle.properties +gradle/libs.versions.toml +app/build.gradle.kts +app/src/main/AndroidManifest.xml +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/LoginScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +apply-update.ps1 +README_UPDATE_CATEGORIES.md + +Installation rapide + +Décompresse le ZIP dans ton projet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant categories" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-categories-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Puis installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Option avec script inclus + +Après extraction, tu peux aussi lancer : + +.\apply-update.ps1 + +Ce script fait la sauvegarde, copie les fichiers et lance la compilation. Oui, un script qui travaille pendant que nous contemplons l’absurdité du cycle compiler-installer-tester. + + +you asked + +message time: 2026-06-10 21:01:54 + +ça marche. on avance plus rapidement maintenant : + +Design sophistiqué +Possibilité de mettre des chaines en favori +quand on fait retour arrière, on revient dans le menu à la même chaine et même catégorie +possibilité d'épingler une chaine pour démarrer directement avec cette chaine +afficher la résolution de la chaine +zone de recherche de catégorie +zone de recherche de chaine +naviguer avec les boutons droite/gauche pour zapper entre les chaines + + +chatgpt response + +C’est prêt. J’ai préparé un ZIP avec les fichiers modifiés pour passer à une version plus avancée de l’app. On commence enfin à quitter le territoire du “ça démarre” pour entrer dans celui du “ça ressemble à un vrai produit”, événement rare dans le monde Android. + +Télécharger le ZIP + +📦 Télécharger la mise à jour avancée Google TV + +Fonctions ajoutées + +Cette mise à jour ajoute : + +design TV plus sophistiqué ; +favoris chaînes ; +catégorie Favoris automatique ; +retour depuis le lecteur vers la même catégorie et la même chaîne ; +chaîne épinglée au démarrage ; +affichage de la résolution détectée pendant la lecture ; +recherche de catégorie ; +recherche de chaîne ; +zapping gauche/droite dans le lecteur ; +raccourcis clavier/test :← / → : chaîne précédente / suivante ; +F : favori ; +P : épingler. + +Fichiers modifiés dans le ZIP + +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt +README_UPDATE_ADVANCED_TV.md +apply-update.ps1 + +Installation rapide + +Décompresse le ZIP dans ton projet : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant update avancee" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-advanced-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Option avec script + +Après extraction : + +.\apply-update.ps1 + +Puis : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Note importante + +Je n’ai pas compilé l’APK ici dans ton environnement Windows, donc si Gradle décide encore de réciter de la poésie d’erreur, envoie seulement le bloc à partir de : + +FAILURE: Build failed + +Pas tout le roman judiciaire de la JVM. + + +you asked + +message time: 2026-06-10 21:17:08 + +on avance, mais le menu ne ressemble pas à grand chose, les caractères sont trop gros. dans les zones de texte, la couleur est foncé dans un arrière plan foncé. pas de noms de chaines. impossible d'arriver aux moutons épingler ou favori. essaie de réduire la taille des zones et du texte. je te laisse voir. + + +chatgpt response + +Tu as raison : l’interface était trop massive, les boutons mangeaient tout l’espace, et les noms de chaînes se faisaient écraser comme une pauvre variable dans un vieux script PowerShell. J’ai préparé une mise à jour UI compacte. + +Télécharger le ZIP + +📦 Télécharger la mise à jour UI compacte + +Corrections incluses + +Textes réduits. +Zones de recherche plus petites. +Texte des champs en blanc sur fond sombre. +Catégories plus compactes. +Liste des chaînes plus lisible. +Noms des chaînes visibles. +Suppression des gros boutons dans chaque ligne. +Ajout d’une barre d’action séparée pour :regarder ; +ajouter / retirer favori ; +épingler / désépingler. + + +Les boutons ne devraient plus écraser le nom des chaînes. +Le focus TV est plus propre. + +Installation + +Dans PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant UI compacte" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-ui-compact-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Ce qui a changé techniquement + +Le ZIP modifie surtout : + +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt + +J’ai aussi inclus : + +README_UPDATE_UI_COMPACT.md +apply-update.ps1 + +Je n’ai pas compilé dans ton environnement Windows, donc si Gradle refait son numéro de diva, envoie uniquement la partie à partir de : + +FAILURE: Build failed + + +you asked + +message time: 2026-06-10 21:26:36 + +c mieux, mais toujours impossible d'accéder au boutons favorie et epingler. + + +chatgpt response + +Oui, là le problème est clair : les boutons Favori et Épingler sont dans une barre d’action au-dessus de la liste, mais la navigation TV reste coincée dans la liste. Merci Android TV, ce labyrinthe ergonomique payé au focus perdu. + +J’ai corrigé ça avec une version où les actions sont directement dans chaque ligne de chaîne. + +Télécharger le ZIP corrigé + +📦 Télécharger la mise à jour UI Focus Actions + +Ce que cette version change + +Les boutons ne sont plus seulement en haut. +Chaque chaîne affiche maintenant :Voir +☆ / ★ Favori +Pin / Ép. + + +Depuis une ligne de chaîne, tu peux aller vers la droite avec la télécommande pour atteindre les actions. +Texte encore un peu réduit. +Badges et boutons plus compacts. +Le nom de la chaîne garde plus d’espace. +La barre du haut devient informative, elle ne bloque plus l’accès aux actions. + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant UI focus actions" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-ui-focus-actions-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Navigation attendue + +Dans la liste des chaînes : + +OK sur le nom de chaîne = regarder +Droite = accéder à Voir / ★ / Pin +★ = ajouter ou retirer des favoris +Pin = épingler la chaîne +Ép. = chaîne déjà épinglée + +Là, les boutons devraient enfin être atteignables sans devoir supplier la télécommande comme un oracle capricieux. + + +you asked + +message time: 2026-06-10 21:40:14 + +l'affichage sur la chaine de la résolution et nom de la chaine, les indications doivent disparaitre après 3 secondes et quand l'utilisateur clique sur le bouton retour, les infos apparaissent, un deuxième clique sur retour permet de revenir au menu. sinon, supprime les infos : F:favori, P épingler ça ne sert à rien. aussi tu peux ajouter la confirmation de quitter l'application quand on clique sur retour dans le menu. quand on revient au menu à partir d'une chaine, le focus doit être sur le nom de la chaine pas dans les zones de texte. + + +chatgpt response + +J’ai préparé la mise à jour. Elle corrige exactement les points que tu viens de signaler, parce qu’à ce stade on fait de l’ergonomie, pas du mobilier décoratif pour télécommande hostile. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Player / Retour / Focus + +Corrections incluses + +Dans le lecteur : + +nom de la chaîne + résolution visibles au démarrage ; +disparition automatique après 3 secondes ; +premier clic sur Retour : les infos réapparaissent ; +deuxième clic sur Retour : retour au menu. + + +Suppression des indications inutiles : + +F : favori +P : épingler + + +Dans le menu : + +bouton Retour affiche une confirmation avant de quitter l’application ; +au retour depuis une chaîne, le focus revient sur la ligne de la chaîne sélectionnée, pas dans les champs de recherche. + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant player back focus" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-player-back-focus-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Fichiers modifiés + +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt + +Si Gradle refait son opéra tragique, envoie uniquement le bloc à partir de FAILURE: Build failed. + + +you asked + +message time: 2026-06-10 21:46:04 + +tu peux ajouter les logo des chainens + + +you asked + +message time: 2026-06-10 21:47:09 + +ok. maintenant on peux ajouter les logos aux chaines dans l'application. ne part pas sur de la création d'image STP. + + +chatgpt response + +Tu as raison, pas de génération d’image. Là on parle des logos fournis par Xtream via le champ stream_icon, pas d’inventer des logos façon usine à hallucinations graphiques. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Logos chaînes + +Ce que ça ajoute + +Affichage du logo de chaque chaîne dans la liste. +Affichage du logo dans l’overlay du lecteur avec le nom de la chaîne et la résolution. +Fallback automatique avec initiales si le logo est absent ou impossible à charger. +Ajout de Coil 3 pour charger les images distantes dans Compose. La doc officielle Coil indique bien l’usage de coil-compose avec AsyncImage, et recommande aussi une dépendance réseau comme coil-network-okhttp pour les images distantes. (coil-kt.github.io) + +Fichiers inclus + +app/build.gradle.kts +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/components/ChannelLogo.kt +README_UPDATE_LOGOS.md +apply-update.ps1 + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant logos chaines" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-logos-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Les logos dépendront évidemment de ce que ton fournisseur Xtream renvoie dans stream_icon. Si leur serveur envoie des liens cassés, vides ou moisis, l’app affichera les initiales. L’humanité ne manque jamais une occasion de casser une URL. + + +you asked + +message time: 2026-06-10 21:54:38 + +on peut programmer maintenant l'epg et le replay + + +chatgpt response + +Oui. J’ai préparé une mise à jour avec EPG + Replay / Catch-up pour les flux Xtream compatibles. + +Télécharger le ZIP + +📦 Télécharger la mise à jour EPG + Replay + +Ce que cette version ajoute + +Chargement EPG via : + +player_api.php?action=get_short_epg + +Affichage dans le menu : + +programme en cours ; +programme suivant ; +indication Replay si disponible. + + +Bouton Replay dans la ligne de la chaîne. + + +Lecture replay via URL Xtream : + +/timeshift/username/password/durée/date/stream_id.ts + +Affichage dans le lecteur : + +logo ; +nom de chaîne ; +résolution ; +programme en cours ; +badge Replay quand on lit un replay. + + +Conservation : + +favoris ; +épinglage ; +recherche ; +zapping gauche/droite ; +retour vers la même chaîne dans le menu. + +Fichiers modifiés / ajoutés + +app/build.gradle.kts +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgShortResponse.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveStreamDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt +app/src/main/java/ma/tkgraph/xtreamtv/util/XtreamUrlBuilder.kt +README_UPDATE_EPG_REPLAY.md +apply-update.ps1 + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant EPG replay" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-epg-replay-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Important + +Le replay dépend totalement du serveur Xtream. Il faut que ton fournisseur renvoie correctement : + +tv_archive +has_archive +start +end +epg_listings + +Si le serveur ne fournit pas ces données, l’EPG affichera EPG indisponible ou le bouton Replay restera désactivé. Charmant, mais au moins ce sera honnête. + + +you asked + +message time: 2026-06-10 22:04:27 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean --no-daemon +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build + +BUILD SUCCESSFUL in 7s +1 actionable task: 1 executed +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug --no-daemon +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build + +Task :app:compileDebugKotlin FAILED +e: file:///D:/07-Logiciels/11-IPTV%20Andoid%20TV%202/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt:107:25 Unsupported escape sequence. +e: file:///D:/07-Logiciels/11-IPTV%20Andoid%20TV%202/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt:107:31 Unsupported escape sequence. + + + +[Incubating] Problems report is available at: file:///D:/07-Logiciels/11-IPTV%20Andoid%20TV%202/build/reports/problems/problems-report.html + +FAILURE: Build failed with an exception. + +What went wrong: +Execution failed for task ':app:compileDebugKotlin'. + +A failure occurred while executing org.jetbrains.kotlin.compilerRunner.btapi.BuildToolsApiCompilationWork +Compilation error. See log for more details + + + + +Try: + +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 17s +29 actionable tasks: 29 executed +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +Erreur simple : dans Kotlin, \d dans une chaîne classique n’est pas accepté. Il fallait écrire la regex en chaîne brute. Encore une victoire du langage contre la santé mentale. + +La ligne fautive était : + +Regex("(\d{2}:\d{2})") + +Elle est corrigée en : + +Regex("""(\d{2}:\d{2})""") + +ZIP corrigé + +📦 Télécharger la mise à jour EPG + Replay corrigée + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-epg-replay-fix1.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Ensuite : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Correction rapide sans ZIP + +Tu peux aussi corriger directement avec PowerShell : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$content = Get-Content ".\app\src\main\java\ma\tkgraph\xtreamtv\data\model\EpgProgramDto.kt" -Raw +$content = $content -replace 'Regex$"\(\\d\{2\}:\\d\{2\}$"\)', 'Regex("""(\d{2}:\d{2})""")' +Set-Content ".\app\src\main\java\ma\tkgraph\xtreamtv\data\model\EpgProgramDto.kt" $content + +Le ZIP corrigé est plus propre. Le patch direct existe au cas où Windows décide encore de transformer une tâche simple en rite initiatique. + + +you asked + +message time: 2026-06-10 22:12:09 + +le replay marche. mais il ne te donne pas le choix de l'emission pour la quelle tu veux voir le replay, il faut pour chaque chaine sélectionnée avoir la liste du programme complet sur les jours qu'on a, l'utilisateur choisi l'émission à revoir. + + +chatgpt response + +Tu as raison : le replay qui lance seulement “l’émission courante”, c’est trop limité. C’est un replay avec amnésie sélective, magnifique concept, mais mauvais produit. + +J’ai préparé une mise à jour avec un vrai écran Guide Replay par chaîne. + +Télécharger le ZIP + +📦 Télécharger la mise à jour Replay Guide complet + +Ce que ça ajoute + +Le bouton Replay devient Guide. +Quand tu sélectionnes une chaîne, tu peux ouvrir le programme complet disponible. +Les émissions sont groupées par jour. +L’utilisateur choisit directement l’émission à revoir. +Ajout d’une recherche dans les émissions. +Bouton Revoir sur chaque programme disponible. +Retour vers le menu en gardant la chaîne sélectionnée. +Lecture toujours via l’URL Xtream timeshift. + +Fichiers modifiés / ajoutés + +app/build.gradle.kts +app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgFullResponse.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt +app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ReplayGuideScreen.kt + +Installation + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant replay guide complet" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-replay-guide-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +Puis compile : + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +Installe sur la box : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Utilisation attendue + +Dans la liste des chaînes : + +Guide → ouvre le programme complet de la chaîne +Revoir → lance l’émission sélectionnée en replay +Retour → revient au menu + +Le guide complet dépend toujours de ce que le serveur Xtream renvoie avec get_simple_data_table. Si le fournisseur ne donne que 1 jour, tu verras 1 jour. S’il donne 7 jours, tu verras 7 jours. L’application affiche la vérité du serveur, même quand cette vérité ressemble à un placard vide. + + +you asked + +message time: 2026-06-10 22:17:39 + +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +Performing Streamed Install +Success +PS D:\07-Logiciels\11-IPTV Andoid TV 2> adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +Starting: Intent { cmp=ma.tkgraph.xtreamtv/.MainActivity } +PS D:\07-Logiciels\11-IPTV Andoid TV 2> +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat clean --no-daemon +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build + +BUILD SUCCESSFUL in 11s +1 actionable task: 1 executed +<=============> 100% EXECUTING [8s] +PS D:\07-Logiciels\11-IPTV Andoid TV 2> .\gradlew.bat :app:assembleDebug --no-daemon.\gradlew.bat :app:assembleDebug --no-daemon +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. +Daemon will be stopped at the end of the build + +FAILURE: Build failed with an exception. + +What went wrong: +Problem configuring task :app:assembleDebug from command line. + +Unknown command-line option '--no-daemon.\gradlew.bat'. + + + + +Try: + +Run gradlew help --task :app:assembleDebug to get task usage details. +Run with --stacktrace option to get the stack trace. +Run with --info or --debug option to get more log output. +Run with --scan to generate a Build Scan (Powered by Develocity). +Get more help at https://help.gradle.org. + +BUILD FAILED in 6s +PS D:\07-Logiciels\11-IPTV Andoid TV 2> + + +chatgpt response + +L’erreur vient uniquement d’une commande collée deux fois sur la même ligne : + +.\gradlew.bat :app:assembleDebug --no-daemon.\gradlew.bat :app:assembleDebug --no-daemon + +Gradle a donc compris : + +--no-daemon.\gradlew.bat + +comme une option bizarre. Évidemment, il n’a pas apprécié cette poésie PowerShell. + +Commande correcte + +Relance simplement ceci, une ligne à la fois : + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon + +.\gradlew.bat :app:assembleDebug --no-daemon + +Attends : + +BUILD SUCCESSFUL + +Ensuite installe la nouvelle APK : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Puis lance : + +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Bloc complet propre à copier-coller + +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity + +Important + +Tu as installé une APK avant de recompiler : + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" + +Donc ta box a probablement encore l’ancienne version, pas forcément la version Replay Guide complet. Il faut bien : + +1. compiler avec succès +2. installer après compilation +3. lancer l’app + +PowerShell n’a pas cassé le projet. Il a juste avalé deux commandes comme un grille-pain qui mange une fourchette. \ No newline at end of file diff --git a/IA/SPECIFICATIONS_IMEDIA_TV_PLUS.md b/IA/SPECIFICATIONS_IMEDIA_TV_PLUS.md new file mode 100644 index 0000000..494f786 --- /dev/null +++ b/IA/SPECIFICATIONS_IMEDIA_TV_PLUS.md @@ -0,0 +1,1578 @@ +# iMedia TV+ / Xtream Google TV Player +## Spécifications, architecture et historique des modifications + +**Projet :** Lecteur IPTV Xtream pour Google TV / Android TV +**Package Android :** `ma.tkgraph.xtreamtv` +**Plateforme cible :** Google TV / Android TV +**Langage :** Kotlin +**Interface :** Jetpack Compose / Compose TV +**Lecteur vidéo :** AndroidX Media3 ExoPlayer +**API IPTV :** Xtream Codes compatible +**Date du document :** 10/06/2026 + +--- + +## 1. Objectif du projet + +Le projet consiste à développer une application Google TV permettant de lire des contenus IPTV fournis par un serveur compatible Xtream. + +L’application doit permettre : + +- la connexion à un serveur Xtream ; +- la mémorisation des identifiants ; +- la lecture des chaînes Live ; +- la gestion des catégories ; +- l’affichage des logos de chaînes ; +- l’affichage de l’EPG ; +- le replay / catch-up TV ; +- la navigation dans un guide TV complet ; +- la lecture des VOD ; +- la lecture des séries ; +- la gestion des favoris ; +- l’épinglage d’une chaîne de démarrage ; +- une navigation fluide avec télécommande Google TV. + +L’objectif final est de disposer d’un lecteur TV complet, ergonomique, utilisable au quotidien sur une box Google TV. + +--- + +## 2. Environnement de développement + +### 2.1. Système + +- OS de développement : Windows 11 +- IDE conseillé : Android Studio +- Terminal utilisé : PowerShell +- Appareil cible : box Google TV / Android TV +- Connexion appareil : ADB Wi-Fi + +### 2.2. Chemin du projet + +```powershell +D:\07-Logiciels\11-IPTV Andoid TV 2 +``` + +### 2.3. Java / JDK + +JDK utilisé via Android Studio : + +```powershell +D:\Program Files\Android\Android Studio\jbr +``` + +Version constatée : + +```txt +OpenJDK 21.0.10 +``` + +### 2.4. Android SDK + +SDK utilisé : + +```powershell +C:\Users\abmou\AppData\Local\Android\Sdk +``` + +Composants installés : + +- Android SDK Platform 36.1 +- Android SDK Build-Tools +- Android SDK Platform-Tools +- Android SDK Command-line Tools +- Android Emulator +- Android Emulator Hypervisor Driver + +### 2.5. Gradle + +Gradle installé manuellement : + +```powershell +D:\Tools\Gradle\gradle-9.1.0 +``` + +Wrapper Gradle généré dans le projet : + +```powershell +gradlew.bat +``` + +Commande utilisée : + +```powershell +gradle wrapper --gradle-version 9.1.0 --distribution-type bin +``` + +--- + +## 3. Configuration PowerShell recommandée + +Avant compilation : + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +$env:JAVA_HOME = "D:\Program Files\Android\Android Studio\jbr" +$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk" +$env:Path = "$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:ANDROID_HOME\cmdline-tools\latest\bin;D:\Tools\Gradle\gradle-9.1.0\bin;$env:Path" +``` + +Vérifications : + +```powershell +java -version +adb version +gradle -v +``` + +--- + +## 4. Compilation APK + +### 4.1. Nettoyage + +```powershell +.\gradlew.bat clean --no-daemon +``` + +### 4.2. Compilation debug + +```powershell +.\gradlew.bat :app:assembleDebug --no-daemon +``` + +### 4.3. APK générée + +```powershell +.\app\build\outputs\apk\debug\app-debug.apk +``` + +--- + +## 5. Installation sur Google TV + +### 5.1. Connexion ADB + +```powershell +adb connect 192.168.1.124 +adb devices +``` + +Résultat attendu : + +```txt +192.168.1.124:5555 device +``` + +### 5.2. Installation APK + +```powershell +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +``` + +Résultat attendu : + +```txt +Success +``` + +### 5.3. Lancement + +```powershell +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` + +ou : + +```powershell +adb shell monkey -p ma.tkgraph.xtreamtv 1 +``` + +--- + +## 6. Architecture générale + +### 6.1. Structure logique + +```txt +app/ + └── src/ + └── main/ + ├── AndroidManifest.xml + ├── java/ma/tkgraph/xtreamtv/ + │ ├── MainActivity.kt + │ ├── data/ + │ │ ├── model/ + │ │ ├── network/ + │ │ ├── repository/ + │ │ └── storage/ + │ ├── ui/ + │ │ ├── components/ + │ │ ├── screens/ + │ │ └── theme/ + │ └── util/ + └── res/ + ├── drawable/ + ├── drawable-nodpi/ + ├── mipmap/ + └── values/ +``` + +### 6.2. Rôle des couches + +| Couche | Rôle | +|---|---| +| `MainActivity.kt` | Point d’entrée, navigation principale, état global | +| `data/model` | Modèles DTO Xtream | +| `data/network` | Définition Retrofit de l’API Xtream | +| `data/repository` | Abstraction des appels réseau | +| `data/storage` | Sauvegarde locale des identifiants, favoris, épinglage | +| `ui/screens` | Écrans Compose | +| `ui/components` | Composants réutilisables : logo, cartes, éléments UI | +| `util` | Génération d’URL, tri, helpers | +| `res/drawable-nodpi` | Image de démarrage iMedia TV+ | + +--- + +## 7. Dépendances principales + +### 7.1. Lecture vidéo + +- `androidx.media3:media3-exoplayer` +- `androidx.media3:media3-exoplayer-hls` +- `androidx.media3:media3-exoplayer-dash` +- `androidx.media3:media3-ui` +- `androidx.media3:media3-session` + +### 7.2. Interface + +- Jetpack Compose +- Compose TV +- Material 3 + +### 7.3. Réseau + +- Retrofit +- Gson Converter + +### 7.4. Images + +- Coil Compose +- Coil Network OkHttp + +Utilisé pour afficher : + +- logos chaînes ; +- affiches VOD ; +- affiches séries ; +- logo dans le lecteur. + +--- + +## 8. Manifest Android TV + +Le manifest a été corrigé pour rendre l’application lançable depuis Google TV. + +Catégories nécessaires : + +```xml + + +``` + +Sans `LAUNCHER`, l’application était installée, mais le bouton **Ouvrir** restait désactivé dans Google TV. Magnifique démonstration d’une application installée dans un couloir sans porte. + +--- + +## 9. Fichiers de configuration Gradle + +### 9.1. Corrections effectuées + +Le projet initial a nécessité plusieurs corrections : + +- suppression du plugin `org.jetbrains.kotlin.android` devenu inutile avec AGP 9 ; +- suppression du bloc `kotlin { jvmToolchain(17) }` ; +- ajout du Gradle Wrapper ; +- ajout / correction de `gradle.properties` ; +- augmentation de la mémoire Gradle. + +### 9.2. Exemple `gradle.properties` + +```properties +org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8 -XX:+UseG1GC +org.gradle.parallel=false +org.gradle.configuration-cache=false +android.useAndroidX=true +``` + +--- + +## 10. Connexion Xtream + +### 10.1. Données utilisateur + +L’écran de connexion demande : + +- URL serveur ; +- username ; +- password. + +Exemple : + +```txt +http://serveur.example.com:8080 +username +password +``` + +### 10.2. Validation du compte + +Endpoint utilisé : + +```txt +/player_api.php?username=USER&password=PASS +``` + +Vérifications : + +- `auth == "1"` +- `status == "Active"` + +--- + +## 11. Sauvegarde des identifiants + +### 11.1. Fichier + +```txt +data/storage/ConfigStorage.kt +``` + +### 11.2. Stockage + +Utilisation de `SharedPreferences`. + +Données sauvegardées : + +- serveur ; +- username ; +- password ; +- favoris chaînes ; +- favoris VOD ; +- favoris séries ; +- chaîne épinglée ; +- état de sélection ; +- préférences nécessaires au fonctionnement. + +### 11.3. Fonctionnalités + +- connexion automatique au démarrage ; +- suppression des données à la déconnexion ; +- conservation des favoris ; +- conservation de la chaîne épinglée. + +--- + +## 12. Écran de démarrage iMedia TV+ + +### 12.1. Problème initial + +Au démarrage, l’application affichait un écran blanc avant le chargement Compose. + +### 12.2. Correction + +Ajout de l’image fournie par l’utilisateur : + +```txt +app/src/main/res/drawable-nodpi/imedia_tv_background.png +``` + +Ajout du fond de lancement : + +```txt +app/src/main/res/drawable/launch_background.xml +``` + +Modification du thème : + +```txt +app/src/main/res/values/themes.xml +``` + +### 12.3. Résultat attendu + +Au lancement : + +- affichage du visuel iMedia TV+ ; +- disparition de l’écran blanc ; +- message de chargement superposé pendant la connexion automatique. + +--- + +## 13. Live TV + +### 13.1. Endpoints utilisés + +Catégories Live : + +```txt +/player_api.php?action=get_live_categories +``` + +Chaînes Live : + +```txt +/player_api.php?action=get_live_streams +``` + +### 13.2. Fonctionnalités + +- affichage des catégories ; +- recherche de catégories ; +- recherche de chaînes ; +- filtrage par catégorie ; +- logo chaîne ; +- compteur chaînes ; +- favoris ; +- chaîne épinglée ; +- zapping gauche/droite ; +- retour vers la même chaîne ; +- focus restauré sur la chaîne après retour du lecteur ; +- boutons accessibles avec la télécommande. + +### 13.3. URL de lecture Live + +```txt +/live/username/password/stream_id.m3u8 +``` + +Fallback possible selon fournisseur : + +```txt +/live/username/password/stream_id.ts +``` + +--- + +## 14. Tri des catégories + +### 14.1. Objectif + +Trier les catégories dans cet ordre : + +1. catégories françaises ; +2. catégories arabes ; +3. autres catégories. + +### 14.2. Catégories prioritaires + +Les catégories internes restent toujours en haut : + +- Toutes les chaînes ; +- Toutes les VOD ; +- Toutes les séries ; +- Favoris. + +### 14.3. Fichier utilitaire + +```txt +util/CategorySortUtils.kt +``` + +### 14.4. Écrans concernés + +- Live TV ; +- Guide TV global ; +- VOD ; +- Séries. + +--- + +## 15. Favoris Live + +### 15.1. Fonctionnalités + +- ajout / retrait d’une chaîne favorite ; +- catégorie automatique `★ Favoris` ; +- sauvegarde persistante ; +- badge favori ; +- focus compatible télécommande. + +### 15.2. Comportement + +Dans une ligne chaîne : + +- OK sur le nom : regarder ; +- bouton `★` : ajouter / retirer favori ; +- bouton `Pin` : épingler. + +--- + +## 16. Chaîne épinglée + +### 16.1. Objectif + +Permettre à l’utilisateur de choisir une chaîne à ouvrir rapidement au démarrage. + +### 16.2. Comportement + +- une seule chaîne épinglée à la fois ; +- sauvegarde persistante ; +- bouton d’épinglage dans la ligne chaîne ; +- possibilité de désépingler. + +### 16.3. Remarque + +La chaîne épinglée est prévue comme point de démarrage rapide. Selon l’état de l’application, elle peut être utilisée pour ouvrir directement la chaîne ou faciliter son accès. + +--- + +## 17. Lecteur vidéo + +### 17.1. Fichier principal + +```txt +ui/screens/PlayerScreen.kt +``` + +### 17.2. Fonctionnalités + +- lecture Live ; +- lecture Replay ; +- lecture VOD ; +- lecture épisodes séries ; +- affichage du nom ; +- affichage du logo ; +- affichage de la résolution ; +- overlay temporaire ; +- gestion retour ; +- zapping gauche/droite. + +### 17.3. Overlay + +L’overlay affiche : + +- logo ; +- nom de la chaîne / VOD / épisode ; +- résolution détectée ; +- programme en cours si disponible ; +- badge Replay si replay ; +- badge Favori si applicable. + +### 17.4. Disparition automatique + +Les informations disparaissent après environ **3 secondes**. + +### 17.5. Bouton retour + +Comportement demandé : + +- premier appui sur retour : réaffiche les informations ; +- deuxième appui sur retour : retour au menu. + +### 17.6. Zapping + +Pendant le Live : + +- bouton gauche : chaîne précédente ; +- bouton droite : chaîne suivante. + +--- + +## 18. Résolution affichée + +### 18.1. Objectif + +Afficher la résolution du flux vidéo dans le lecteur. + +### 18.2. Source + +La résolution est récupérée depuis le format vidéo exposé par ExoPlayer. + +Exemples d’affichage : + +```txt +1920x1080 +1280x720 +SD +HD +FHD +``` + +Selon les données disponibles, l’app affiche la résolution exacte ou un fallback. + +--- + +## 19. Logos chaînes + +### 19.1. Source + +Champ Xtream : + +```txt +stream_icon +``` + +### 19.2. Composant + +```txt +ui/components/ChannelLogo.kt +``` + +### 19.3. Comportement + +- chargement du logo distant ; +- fallback avec initiales si absent ; +- fallback si URL cassée ; +- affichage dans liste Live ; +- affichage dans lecteur. + +--- + +## 20. EPG court + +### 20.1. Endpoint + +```txt +/player_api.php?action=get_short_epg +``` + +### 20.2. Utilisation + +Affichage dans la liste Live : + +- programme en cours ; +- programme suivant ; +- disponibilité replay. + +### 20.3. Modèles + +```txt +EpgProgramDto.kt +EpgShortResponse.kt +``` + +### 20.4. Correction effectuée + +Une erreur Kotlin a été corrigée dans une Regex : + +Ancienne forme invalide : + +```kotlin +Regex("(\d{2}:\d{2})") +``` + +Correction : + +```kotlin +Regex("""(\d{2}:\d{2})""") +``` + +--- + +## 21. Replay / Catch-up TV + +### 21.1. Objectif initial + +Le replay fonctionnait, mais lançait directement un replay sans donner le choix de l’émission. + +### 21.2. Correction demandée + +Pour chaque chaîne, l’utilisateur doit pouvoir : + +- ouvrir la liste des programmes disponibles ; +- voir les jours disponibles ; +- choisir l’émission ; +- lancer le replay de cette émission. + +### 21.3. Endpoint guide complet + +```txt +/player_api.php?action=get_simple_data_table&stream_id=STREAM_ID +``` + +### 21.4. URL Replay + +```txt +/timeshift/username/password/durée/date/stream_id.ts +``` + +### 21.5. Écran dédié + +```txt +ui/screens/ReplayGuideScreen.kt +``` + +### 21.6. Fonctionnalités + +- liste des émissions disponibles ; +- regroupement par jour ; +- recherche d’émission ; +- bouton Revoir ; +- retour vers la chaîne sélectionnée ; +- lecture replay avec badge spécifique. + +--- + +## 22. Guide TV global + +### 22.1. Objectif + +Ajouter un écran de guide TV complet avec toutes les chaînes et tous les programmes disponibles. + +### 22.2. Écran ajouté + +```txt +ui/screens/ProgramGuideScreen.kt +``` + +### 22.3. Fonctionnalités + +- liste des catégories ; +- liste des chaînes ; +- recherche catégorie ; +- recherche chaîne ; +- recherche émission ; +- chargement du programme complet de la chaîne sélectionnée ; +- bouton Direct ; +- bouton Revoir si replay disponible. + +### 22.4. Correction du focus + +Problème rencontré : + +- la zone de recherche perdait le focus après saisie d’une lettre. + +Correction : + +- le focus automatique sur la chaîne ne se déclenche plus pendant la saisie ; +- le focus revient sur la chaîne uniquement après retour depuis lecteur ou guide. + +--- + +## 23. VOD + +### 23.1. Endpoints + +Catégories VOD : + +```txt +/player_api.php?action=get_vod_categories +``` + +Films VOD : + +```txt +/player_api.php?action=get_vod_streams +``` + +### 23.2. Écran + +```txt +ui/screens/VodScreen.kt +``` + +### 23.3. Fonctionnalités + +- catégories VOD ; +- recherche catégorie ; +- recherche film ; +- affiches ; +- favoris ; +- catégorie `★ Favoris` ; +- lecture film. + +### 23.4. URL de lecture VOD + +```txt +/movie/username/password/stream_id.extension +``` + +L’extension vient de : + +```txt +container_extension +``` + +Fallback : + +```txt +mp4 +``` + +--- + +## 24. Séries + +### 24.1. Endpoints + +Catégories séries : + +```txt +/player_api.php?action=get_series_categories +``` + +Liste séries : + +```txt +/player_api.php?action=get_series +``` + +Détail série : + +```txt +/player_api.php?action=get_series_info&series_id=SERIES_ID +``` + +### 24.2. Écran + +```txt +ui/screens/SeriesScreen.kt +``` + +### 24.3. Fonctionnalités + +- catégories séries ; +- recherche catégorie ; +- recherche série ; +- affiches ; +- saisons ; +- épisodes ; +- recherche épisode ; +- favoris séries ; +- catégorie `★ Favoris` ; +- lecture épisode. + +### 24.4. URL lecture épisode + +```txt +/series/username/password/episode_id.extension +``` + +Fallback : + +```txt +mp4 +``` + +### 24.5. Correction noms épisodes + +Problème : + +- les noms des épisodes apparaissaient sous forme de points ou étaient vides. + +Correction : + +- utilisation de plusieurs champs possibles : + - `title` + - `name` + - `episode_name` + +Fallback lisible : + +```txt +Épisode 1 • Nom de la série +Épisode 2 • Nom de la série +``` + +--- + +## 25. Favoris VOD et Séries + +### 25.1. VOD + +Fonctionnalités ajoutées : + +- bouton `☆ / ★` sur chaque film ; +- catégorie automatique `★ Favoris` ; +- badge favori ; +- sauvegarde persistante. + +### 25.2. Séries + +Fonctionnalités ajoutées : + +- bouton `☆ / ★` sur chaque série ; +- catégorie automatique `★ Favoris` ; +- badge favori ; +- sauvegarde persistante. + +### 25.3. Stockage + +Stockage dans `ConfigStorage.kt`. + +--- + +## 26. Navigation télécommande + +### 26.1. Navigation générale + +L’application est pensée pour la télécommande Google TV : + +- haut / bas : navigation dans les listes ; +- gauche / droite : passage entre zones ou zapping dans lecteur ; +- OK : sélection ; +- retour : retour contextuel ou confirmation. + +### 26.2. Menu Live + +- focus sur catégories ; +- focus sur chaîne ; +- actions accessibles dans la ligne chaîne ; +- retour depuis lecteur vers la même chaîne. + +### 26.3. Lecteur + +- gauche : chaîne précédente ; +- droite : chaîne suivante ; +- retour : afficher overlay, puis revenir au menu. + +### 26.4. Menu principal + +Quand l’utilisateur clique sur retour dans le menu : + +- une confirmation de sortie est affichée. + +--- + +## 27. Design UI + +### 27.1. Évolution + +L’interface a été progressivement corrigée : + +1. première version trop massive ; +2. réduction des textes ; +3. réduction des zones ; +4. correction du contraste dans les zones de texte ; +5. affichage lisible des noms de chaînes ; +6. correction des boutons Favori / Épingler inaccessibles ; +7. actions déplacées dans les lignes ; +8. focus restauré sur la chaîne. + +### 27.2. Problèmes corrigés + +- texte trop gros ; +- boutons trop grands ; +- champs sombres avec texte sombre ; +- noms de chaînes masqués ; +- impossibilité d’atteindre Favori / Épingler ; +- focus dans les champs de recherche après retour ; +- affichage des épisodes incomplet. + +--- + +## 28. Écrans principaux + +### 28.1. LoginScreen + +```txt +ui/screens/LoginScreen.kt +``` + +Rôle : + +- saisie serveur ; +- saisie username ; +- saisie password ; +- vérification compte ; +- sauvegarde si connexion réussie. + +### 28.2. HomeScreen + +```txt +ui/screens/HomeScreen.kt +``` + +Rôle : + +- Live TV ; +- catégories ; +- chaînes ; +- favoris ; +- épinglage ; +- recherche ; +- accès Guide TV ; +- accès VOD ; +- accès Séries. + +### 28.3. PlayerScreen + +```txt +ui/screens/PlayerScreen.kt +``` + +Rôle : + +- lecture vidéo ; +- overlay ; +- résolution ; +- retour ; +- zapping. + +### 28.4. ReplayGuideScreen + +```txt +ui/screens/ReplayGuideScreen.kt +``` + +Rôle : + +- replay par chaîne ; +- choix de l’émission ; +- recherche émission ; +- lecture catch-up. + +### 28.5. ProgramGuideScreen + +```txt +ui/screens/ProgramGuideScreen.kt +``` + +Rôle : + +- guide TV global ; +- chaînes + programmes ; +- direct ; +- replay. + +### 28.6. VodScreen + +```txt +ui/screens/VodScreen.kt +``` + +Rôle : + +- catalogue films ; +- catégories ; +- recherche ; +- favoris ; +- lecture. + +### 28.7. SeriesScreen + +```txt +ui/screens/SeriesScreen.kt +``` + +Rôle : + +- catalogue séries ; +- catégories ; +- saisons ; +- épisodes ; +- favoris ; +- lecture. + +--- + +## 29. Modèles principaux + +### 29.1. XtreamConfig + +```txt +serverUrl +username +password +``` + +### 29.2. LiveStreamDto + +Champs typiques : + +```txt +name +stream_id +stream_icon +category_id +epg_channel_id +tv_archive +has_archive +container_extension +``` + +### 29.3. LiveCategoryDto + +```txt +category_id +category_name +parent_id +``` + +### 29.4. EpgProgramDto + +Champs possibles selon serveur : + +```txt +title +description +start +end +start_timestamp +stop_timestamp +``` + +### 29.5. VOD + +Champs typiques : + +```txt +name +stream_id +stream_icon +category_id +container_extension +rating +added +``` + +### 29.6. Séries + +Champs typiques : + +```txt +series_id +name +cover +category_id +genre +plot +cast +rating +``` + +### 29.7. Épisodes + +Champs typiques : + +```txt +id +episode_num +title +name +episode_name +container_extension +info +``` + +--- + +## 30. Génération d’URL + +### 30.1. Fichier + +```txt +util/XtreamUrlBuilder.kt +``` + +### 30.2. Live + +```txt +/live/username/password/stream_id.m3u8 +``` + +### 30.3. VOD + +```txt +/movie/username/password/stream_id.extension +``` + +### 30.4. Série + +```txt +/series/username/password/episode_id.extension +``` + +### 30.5. Replay + +```txt +/timeshift/username/password/durée/date/stream_id.ts +``` + +--- + +## 31. Historique des mises à jour + +### 31.1. Version initiale + +Ajout : + +- projet Android TV ; +- connexion Xtream ; +- lecture Live ; +- Media3 ExoPlayer ; +- Retrofit ; +- écran Login ; +- écran Home ; +- lecteur vidéo. + +### 31.2. Correction environnement + +Ajout / correction : + +- Gradle Wrapper ; +- configuration Java ; +- configuration Android SDK ; +- suppression plugin Kotlin obsolète ; +- correction mémoire Gradle. + +### 31.3. Correction lancement Google TV + +Ajout : + +```xml +LAUNCHER +LEANBACK_LAUNCHER +``` + +Résultat : + +- bouton Ouvrir actif ; +- lancement via Google TV ; +- lancement via ADB. + +### 31.4. Mémoire Xtream + +Ajout : + +- `ConfigStorage.kt` ; +- sauvegarde identifiants ; +- connexion automatique ; +- déconnexion. + +### 31.5. Catégories Live + +Ajout : + +- `get_live_categories` ; +- affichage catégories ; +- filtrage chaînes ; +- catégorie Toutes. + +### 31.6. UI avancée + +Ajout : + +- design sophistiqué ; +- favoris Live ; +- état de retour ; +- chaîne épinglée ; +- résolution ; +- recherche catégorie ; +- recherche chaîne ; +- zapping gauche/droite. + +### 31.7. UI compacte + +Correction : + +- textes réduits ; +- champs plus petits ; +- meilleurs contrastes ; +- noms chaînes visibles. + +### 31.8. Focus actions + +Correction : + +- boutons Favori / Épingler accessibles ; +- actions dans chaque ligne. + +### 31.9. Player back/focus + +Ajout : + +- overlay 3 secondes ; +- retour en deux étapes ; +- confirmation sortie ; +- focus sur chaîne après retour. + +### 31.10. Logos + +Ajout : + +- logos chaînes ; +- logos dans lecteur ; +- fallback initiales. + +### 31.11. EPG + Replay + +Ajout : + +- EPG court ; +- programme en cours ; +- programme suivant ; +- replay de base. + +### 31.12. Correction EPG Regex + +Correction : + +- chaîne brute Kotlin pour Regex horaire. + +### 31.13. Replay Guide complet + +Ajout : + +- guide replay par chaîne ; +- liste des émissions ; +- choix émission ; +- replay spécifique. + +### 31.14. Guide TV global + +Ajout : + +- écran guide TV toutes chaînes ; +- programmes complets ; +- recherche émission ; +- direct / replay. + +### 31.15. VOD + Séries + +Ajout : + +- catalogue films ; +- catalogue séries ; +- catégories VOD ; +- catégories séries ; +- saisons ; +- épisodes ; +- lecture VOD ; +- lecture séries. + +### 31.16. Favoris VOD + Séries + +Ajout : + +- favoris films ; +- favoris séries ; +- catégories Favoris ; +- badges. + +### 31.17. Correction noms épisodes + +Correction : + +- affichage titres épisodes ; +- fallback épisode lisible. + +### 31.18. Tri catégories + +Ajout : + +- catégories françaises en premier ; +- catégories arabes ensuite ; +- autres catégories après. + +### 31.19. Splash iMedia TV+ + +Ajout : + +- image de démarrage ; +- suppression écran blanc ; +- thème launch background. + +--- + +## 32. Points connus / limites + +### 32.1. Dépendance fournisseur + +Certaines fonctions dépendent entièrement du serveur Xtream : + +- logos ; +- EPG ; +- replay ; +- noms épisodes ; +- durée ; +- extension ; +- catégories propres. + +Si le serveur renvoie des données vides ou incohérentes, l’application applique des fallbacks. + +### 32.2. Replay + +Le replay ne fonctionne que si le serveur fournit : + +- `tv_archive` ; +- `has_archive` ; +- données EPG complètes ; +- dates exploitables ; +- durée correcte. + +### 32.3. VOD / Séries + +Les affiches, catégories, noms et épisodes dépendent aussi de la qualité des métadonnées Xtream. + +### 32.4. Sécurité + +Les identifiants sont stockés en `SharedPreferences`. + +Amélioration recommandée : + +- passer à `EncryptedSharedPreferences` ou solution équivalente ; +- éviter tout log contenant username/password. + +--- + +## 33. Roadmap recommandée + +### 33.1. Priorité haute + +- sécuriser le stockage des identifiants ; +- optimiser le chargement EPG global ; +- ajouter cache local EPG ; +- ajouter historique de lecture ; +- reprendre la lecture VOD / séries ; +- améliorer la page détail VOD ; +- améliorer la page détail série ; +- ajouter choix audio / sous-titres ; +- ajouter option qualité / fallback TS-HLS. + +### 33.2. Priorité moyenne + +- profils utilisateurs ; +- contrôle parental ; +- thème clair/sombre ; +- tri personnalisé des catégories ; +- masquer catégories inutiles ; +- recherche globale Live + VOD + Séries ; +- écran paramètres ; +- export/import configuration. + +### 33.3. Priorité produit + +- icône finale ; +- bannière Android TV ; +- politique de confidentialité ; +- conditions d’utilisation ; +- version release signée ; +- préparation publication Play Store TV. + +--- + +## 34. Commandes utiles + +### 34.1. Compiler + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon +``` + +### 34.2. Installer + +```powershell +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +``` + +### 34.3. Lancer + +```powershell +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` + +### 34.4. Voir appareils + +```powershell +adb devices +``` + +### 34.5. Logs + +```powershell +adb logcat | findstr ma.tkgraph +``` + +### 34.6. Désinstaller + +```powershell +adb uninstall ma.tkgraph.xtreamtv +``` + +--- + +## 35. Sauvegardes recommandées + +Avant chaque grande mise à jour : + +```powershell +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup NOM_VERSION" -Recurse +``` + +Exemples de sauvegardes utilisées : + +```txt +OK lancement +OK mémoire Xtream +Backup avant categories +Backup avant UI compacte +Backup avant EPG replay +Backup avant VOD series +Backup avant splash iMedia +``` + +--- + +## 36. Résumé fonctionnel actuel + +| Fonction | Statut | +|---|---| +| Connexion Xtream | OK | +| Mémoire identifiants | OK | +| Google TV launcher | OK | +| Live TV | OK | +| Catégories Live | OK | +| Recherche catégories | OK | +| Recherche chaînes | OK | +| Logos chaînes | OK | +| Favoris chaînes | OK | +| Chaîne épinglée | OK | +| Zapping gauche/droite | OK | +| Résolution lecteur | OK | +| Overlay lecteur auto-hide | OK | +| Retour en deux étapes | OK | +| Confirmation quitter | OK | +| EPG court | OK | +| Replay de base | OK | +| Guide replay par chaîne | OK | +| Guide TV global | OK | +| VOD | OK | +| Séries | OK | +| Favoris VOD | OK | +| Favoris séries | OK | +| Tri catégories FR / AR / autres | OK | +| Splash iMedia TV+ | OK | + +--- + +## 37. Conclusion + +Le projet est passé d’un simple lecteur Xtream expérimental à une application Google TV structurée avec : + +- Live TV ; +- EPG ; +- Replay ; +- Guide TV ; +- VOD ; +- Séries ; +- favoris ; +- logos ; +- écran de démarrage personnalisé ; +- navigation télécommande ; +- sauvegarde locale. + +La prochaine étape sérieuse consiste à stabiliser, sécuriser et optimiser : + +1. stockage chiffré ; +2. cache local ; +3. performances EPG ; +4. design final ; +5. signature release ; +6. publication éventuelle. + +Fin du document. Le logiciel fonctionne, ce qui reste un événement statistiquement respectable. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e225851 --- /dev/null +++ b/README.md @@ -0,0 +1,133 @@ +# Xtream Google TV Player + +Projet Android TV / Google TV en Kotlin pour lire un accès Xtream compatible. + +Ce ZIP contient un MVP propre : écran de connexion, appel `player_api.php`, chargement des chaînes Live et lecture vidéo avec Media3 ExoPlayer. + +## Contenu + +```text +XtreamGoogleTvPlayer/ +├── settings.gradle.kts +├── build.gradle.kts +├── gradle/libs.versions.toml +└── app/ + ├── build.gradle.kts + ├── proguard-rules.pro + └── src/main/ + ├── AndroidManifest.xml + ├── java/ma/tkgraph/xtreamtv/ + │ ├── MainActivity.kt + │ ├── data/ + │ │ ├── model/ + │ │ ├── network/ + │ │ └── repository/ + │ ├── ui/ + │ │ ├── screens/ + │ │ └── theme/ + │ └── util/ + └── res/ +``` + +## Fonctionnalités incluses + +- Application Android TV reconnue par le launcher Google TV. +- Connexion via serveur, username et password Xtream. +- Vérification du compte via `player_api.php`. +- Récupération des chaînes Live via `get_live_streams`. +- Lecture des flux Live en `.m3u8` avec Media3 ExoPlayer. +- Navigation simple compatible télécommande. +- Dépendances prêtes dans Gradle Version Catalog. + +## Prérequis + +- Android Studio récent. +- JDK 17. +- SDK Android 36 installé. +- Un appareil Google TV / Android TV ou un émulateur Android TV. + +## Lancement + +1. Dézipper le projet. +2. Ouvrir le dossier dans Android Studio. +3. Laisser Gradle synchroniser. +4. Lancer sur un appareil Android TV / Google TV. + +Commande possible : + +```bash +./gradlew :app:assembleDebug +``` + +Sur Windows : + +```powershell +gradlew.bat :app:assembleDebug +``` + +> Le wrapper Gradle complet n'est pas inclus dans ce ZIP. Android Studio peut utiliser son Gradle intégré. Pour générer un wrapper : `gradle wrapper`. + +## Configuration Xtream attendue + +Exemple : + +```text +Serveur : http://exemple.com:8080 +Username : mon_user +Password : mon_pass +``` + +L'application appelle : + +```text +/player_api.php?username=USER&password=PASS +/player_api.php?username=USER&password=PASS&action=get_live_streams +``` + +Puis génère une URL de lecture : + +```text +/live/USER/PASS/STREAM_ID.m3u8 +``` + +Si ton fournisseur utilise `.ts` au lieu de `.m3u8`, modifie cette ligne dans `MainActivity.kt` : + +```kotlin +extension = "m3u8" +``` + +par : + +```kotlin +extension = "ts" +``` + +## Fichiers principaux + +| Fichier | Rôle | +|---|---| +| `MainActivity.kt` | Navigation simple entre login, accueil et lecteur | +| `LoginScreen.kt` | Écran de connexion Xtream | +| `HomeScreen.kt` | Liste des chaînes Live | +| `PlayerScreen.kt` | Lecteur vidéo Media3/ExoPlayer | +| `XtreamApi.kt` | Endpoints API Xtream | +| `XtreamApiFactory.kt` | Création Retrofit dynamique selon le serveur | +| `XtreamRepository.kt` | Couche d'accès aux données | +| `XtreamUrlBuilder.kt` | Génération des URLs Live, VOD et séries | + +## À améliorer ensuite + +- Stockage sécurisé des identifiants. +- Favoris. +- Catégories Live. +- VOD. +- Séries. +- EPG XMLTV. +- Reprise de lecture. +- Recherche. +- Choix automatique `.m3u8` / `.ts`. +- Design TV plus avancé avec composants TV spécialisés. + +## Note légale + +Cette base technique sert à lire des flux pour lesquels l'utilisateur ou le fournisseur possède les droits nécessaires. Ne l'utilise pas pour contourner des accès, redistribuer du contenu protégé ou faire n'importe quoi que les avocats adorent transformer en facture. diff --git a/README_UPDATE_ADVANCED_TV.md b/README_UPDATE_ADVANCED_TV.md new file mode 100644 index 0000000..4991702 --- /dev/null +++ b/README_UPDATE_ADVANCED_TV.md @@ -0,0 +1,39 @@ +# Mise à jour avancée Google TV + +Cette mise à jour ajoute : + +- design TV plus sophistiqué ; +- favoris chaînes ; +- retour depuis le lecteur vers la même catégorie et la même chaîne ; +- chaîne épinglée pour démarrage automatique ; +- affichage de la résolution détectée pendant la lecture ; +- recherche de catégorie ; +- recherche de chaîne ; +- zapping gauche/droite dans le lecteur. + +## Installation + +Depuis PowerShell : + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant update avancee" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-advanced-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` + +## Utilisation + +- Dans le menu, utilise la recherche à gauche pour filtrer les catégories. +- Utilise la recherche à droite pour filtrer les chaînes. +- Bouton Favori : ajoute ou retire la chaîne des favoris. +- Bouton Épingler : l’application ouvrira cette chaîne directement au prochain démarrage. +- Dans le lecteur, les touches gauche/droite changent de chaîne dans la liste filtrée actuelle. +- Retour revient au menu en gardant la même catégorie et la même chaîne sélectionnée. diff --git a/README_UPDATE_CATEGORIES.md b/README_UPDATE_CATEGORIES.md new file mode 100644 index 0000000..338a429 --- /dev/null +++ b/README_UPDATE_CATEGORIES.md @@ -0,0 +1,43 @@ +# Mise à jour Xtream Google TV Player - Catégories Live + +Cette archive contient uniquement les fichiers modifiés ou ajoutés pour : + +- conserver la mémoire des identifiants Xtream ; +- ajouter l'appel API `get_live_categories` ; +- afficher les catégories Live à gauche ; +- filtrer les chaînes par catégorie ; +- garder l'activité lançable dans Google TV ; +- corriger la configuration Gradle déjà validée pendant les tests. + +## Installation rapide + +Depuis PowerShell : + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant categories" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-categories-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` + +## Fichiers modifiés ou ajoutés + +- `build.gradle.kts` +- `gradle/libs.versions.toml` +- `gradle.properties` +- `app/build.gradle.kts` +- `app/src/main/AndroidManifest.xml` +- `app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/LoginScreen.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt` diff --git a/README_UPDATE_CATEGORY_SORT.md b/README_UPDATE_CATEGORY_SORT.md new file mode 100644 index 0000000..ca5b27b --- /dev/null +++ b/README_UPDATE_CATEGORY_SORT.md @@ -0,0 +1,34 @@ +# Mise à jour tri des catégories + +Cette mise à jour trie les catégories dans l'ordre suivant : + +1. Catégories françaises +2. Catégories arabes +3. Autres catégories + +Les catégories internes de l'application restent en haut : + +- Toutes les chaînes / Toutes les VOD / Toutes les séries +- Favoris + +Puis les catégories réelles du serveur Xtream sont triées selon leur nom. + +## Fichiers modifiés / ajoutés + +- app/src/main/java/ma/tkgraph/xtreamtv/util/CategorySortUtils.kt +- app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt +- app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ProgramGuideScreen.kt +- app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/VodScreen.kt +- app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/SeriesScreen.kt + +## Installation + +Depuis le dossier du projet : + +```powershell +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-category-sort-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` diff --git a/README_UPDATE_EPG_REPLAY.md b/README_UPDATE_EPG_REPLAY.md new file mode 100644 index 0000000..e890404 --- /dev/null +++ b/README_UPDATE_EPG_REPLAY.md @@ -0,0 +1,40 @@ +# Mise à jour EPG + Replay + +Cette mise à jour ajoute une première version fonctionnelle de l'EPG et du replay/catch-up pour les serveurs Xtream compatibles. + +## Ajouts + +- Récupération EPG courte via `player_api.php?action=get_short_epg`. +- Affichage du programme en cours dans la liste des chaînes. +- Affichage du programme suivant quand le serveur le fournit. +- Bouton `Replay` dans la ligne de chaîne quand le replay est disponible. +- Lecture replay via l'URL Xtream `timeshift`. +- Affichage du programme dans l'overlay du lecteur. +- Conservation du zapping gauche/droite. + +## Limites connues + +Le replay dépend totalement de ce que le fournisseur Xtream renvoie : + +- `tv_archive` dans la liste des chaînes ; +- `has_archive` dans l'EPG ; +- dates `start` / `end` valides ; +- endpoint `/timeshift/...` actif côté serveur. + +Si le serveur ne fournit pas l'EPG ou bloque le timeshift, l'application affichera `EPG indisponible` ou le bouton Replay restera désactivé. + +## Installation + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant EPG replay" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-epg-replay-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` diff --git a/README_UPDATE_LOGOS.md b/README_UPDATE_LOGOS.md new file mode 100644 index 0000000..e848c09 --- /dev/null +++ b/README_UPDATE_LOGOS.md @@ -0,0 +1,29 @@ +# Mise à jour logos chaînes + +Cette mise à jour ajoute l’affichage des logos de chaînes fournis par Xtream via le champ `stream_icon`. + +## Changements + +- Affichage du logo dans chaque ligne de chaîne. +- Fallback automatique avec initiales si le logo est absent ou impossible à charger. +- Affichage du logo dans l’overlay du lecteur avec le nom de la chaîne et la résolution. +- Ajout de Coil 3 pour charger les images distantes. + +## Fichiers modifiés + +- `app/build.gradle.kts` +- `app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/ui/components/ChannelLogo.kt` + +## Installation + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-logos-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` diff --git a/README_UPDATE_PLAYER_BACK_FOCUS.md b/README_UPDATE_PLAYER_BACK_FOCUS.md new file mode 100644 index 0000000..bb8e644 --- /dev/null +++ b/README_UPDATE_PLAYER_BACK_FOCUS.md @@ -0,0 +1,24 @@ +# Mise à jour lecteur + retour + focus + +Correctifs inclus : + +- Overlay du lecteur masqué automatiquement après 3 secondes. +- Premier bouton Retour dans le lecteur : affiche les infos. +- Deuxième bouton Retour : revient au menu. +- Suppression des indications F / P. +- Confirmation de fermeture quand Retour est utilisé dans le menu principal. +- Au retour depuis une chaîne, le focus revient sur la ligne de la chaîne sélectionnée, pas dans les champs de recherche. + +Compilation : + +```powershell +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon +``` + +Installation : + +```powershell +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` diff --git a/README_UPDATE_PROGRAM_GUIDE.md b/README_UPDATE_PROGRAM_GUIDE.md new file mode 100644 index 0000000..3b5a687 --- /dev/null +++ b/README_UPDATE_PROGRAM_GUIDE.md @@ -0,0 +1,32 @@ +# Mise à jour Guide TV global + correction focus recherche + +Cette mise à jour ajoute un écran **Guide des programmes** et corrige la perte de focus dans les zones de recherche. + +## Ajouts + +- Bouton **Guide TV** dans l’accueil. +- Écran avec : + - recherche de catégorie ; + - recherche de chaîne ; + - recherche d’émission ; + - liste des chaînes ; + - liste complète des programmes disponibles pour la chaîne sélectionnée ; + - bouton **Direct** ; + - bouton **Revoir** pour lancer un replay quand disponible. +- Correction du bug où le focus quittait la zone de recherche après une lettre. +- Retour vers l’accueil en gardant la chaîne sélectionnée. + +## Installation + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-program-guide-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` + +## Note + +Le guide complet dépend de ce que le serveur Xtream renvoie avec `get_simple_data_table`. diff --git a/README_UPDATE_REPLAY_GUIDE.md b/README_UPDATE_REPLAY_GUIDE.md new file mode 100644 index 0000000..a17df3d --- /dev/null +++ b/README_UPDATE_REPLAY_GUIDE.md @@ -0,0 +1,43 @@ +# Mise à jour Replay Guide complet + +Cette mise à jour transforme le bouton Replay en vrai guide replay par chaîne. + +## Ajouts + +- Chargement du programme complet de la chaîne avec `get_simple_data_table`. +- Nouvel écran Replay par chaîne. +- Liste des émissions groupées par jour. +- Recherche d’émission dans le guide replay. +- Bouton `Revoir` sur chaque émission disponible. +- Retour vers le menu avec conservation de la chaîne sélectionnée. +- Le replay actuel via `timeshift` reste utilisé pour lancer l’émission choisie. + +## Fichiers modifiés / ajoutés + +- `app/build.gradle.kts` +- `app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgFullResponse.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt` +- `app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ReplayGuideScreen.kt` + +## Compilation + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon +``` + +## Installation + +```powershell +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` + +## Note + +Le guide complet dépend du fournisseur Xtream. Si `get_simple_data_table` renvoie peu de jours ou rien du tout, l’application affichera ce que le serveur fournit, pas ce que l’univers aurait dû fournir. diff --git a/README_UPDATE_SERIES_EPISODE_NAMES.md b/README_UPDATE_SERIES_EPISODE_NAMES.md new file mode 100644 index 0000000..134eb77 --- /dev/null +++ b/README_UPDATE_SERIES_EPISODE_NAMES.md @@ -0,0 +1,27 @@ +# Mise à jour affichage épisodes séries + +Cette mise à jour corrige l'affichage des épisodes dans l'écran Séries. + +## Corrections + +- Les noms d'épisodes sont affichés sur 2 lignes si nécessaire. +- Les épisodes qui arrivent du serveur avec un titre vide, '.', '-' ou '...' reçoivent un libellé lisible. +- Support de plusieurs champs Xtream possibles pour le titre : `title`, `name`, `episode_name`. +- Le bouton Lire est réduit pour laisser plus de place au titre. +- Les métadonnées affichent saison, extension, durée, date et ID si disponibles. + +## Installation + +Décompresser le ZIP à la racine du projet puis compiler : + +```powershell +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon +``` + +Puis installer : + +```powershell +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` diff --git a/README_UPDATE_SPLASH_BACKGROUND.md b/README_UPDATE_SPLASH_BACKGROUND.md new file mode 100644 index 0000000..cdcfe7a --- /dev/null +++ b/README_UPDATE_SPLASH_BACKGROUND.md @@ -0,0 +1,26 @@ +# Mise à jour écran de démarrage iMedia TV+ + +Cette mise à jour remplace l'écran blanc de chargement par l'image fournie `iMedia TV+`. + +## Fichiers modifiés / ajoutés + +- `app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt` +- `app/src/main/res/drawable-nodpi/imedia_tv_background.png` +- `app/src/main/res/drawable/launch_background.xml` +- `app/src/main/res/values/themes.xml` + +## Installation + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant splash iMedia" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-splash-background-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` diff --git a/README_UPDATE_UI_COMPACT.md b/README_UPDATE_UI_COMPACT.md new file mode 100644 index 0000000..95ae087 --- /dev/null +++ b/README_UPDATE_UI_COMPACT.md @@ -0,0 +1,32 @@ +# Mise à jour UI compacte Google TV + +Cette mise à jour corrige l'écran principal après test sur TV : + +- textes réduits ; +- zones de recherche plus compactes ; +- texte des champs en blanc sur fond sombre ; +- liste des chaînes plus lisible ; +- noms des chaînes visibles ; +- suppression des gros boutons dans chaque ligne de chaîne ; +- barre d'action séparée pour regarder, mettre en favori ou épingler ; +- meilleur comportement avec télécommande ; +- catégories plus compactes ; +- interface moins chargée. + +## Installation + +Depuis le dossier du projet : + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" + +Copy-Item "D:\07-Logiciels\11-IPTV Andoid TV 2" "D:\07-Logiciels\11-IPTV Andoid TV 2 - Backup avant UI compacte" -Recurse + +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-ui-compact-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force + +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon + +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` diff --git a/README_UPDATE_UI_FOCUS_ACTIONS.md b/README_UPDATE_UI_FOCUS_ACTIONS.md new file mode 100644 index 0000000..ad5b572 --- /dev/null +++ b/README_UPDATE_UI_FOCUS_ACTIONS.md @@ -0,0 +1,25 @@ +# Mise à jour UI Focus Actions + +Cette mise à jour corrige l'accès aux actions Favori et Épingler sur Google TV. + +## Changements + +- Les boutons ne sont plus uniquement dans la barre supérieure. +- Chaque ligne de chaîne contient maintenant trois actions accessibles avec la télécommande : + - Voir + - ☆ / ★ Favori + - Pin / Ép. +- Navigation plus naturelle : depuis une chaîne, appuyer à droite permet d'atteindre les actions de la même ligne. +- Boutons et texte encore plus compacts. +- La barre d'information reste utile mais ne bloque plus l'accès aux actions. + +## Installation + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-ui-focus-actions-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` diff --git a/README_UPDATE_VOD_SERIES.md b/README_UPDATE_VOD_SERIES.md new file mode 100644 index 0000000..5411ec0 --- /dev/null +++ b/README_UPDATE_VOD_SERIES.md @@ -0,0 +1,45 @@ +# Mise à jour VOD + Séries + +Cette mise à jour ajoute deux catalogues à l'application Google TV : + +- VOD / films +- Séries avec saisons et épisodes + +## Nouveaux endpoints Xtream utilisés + +- `get_vod_categories` +- `get_vod_streams` +- `get_series_categories` +- `get_series` +- `get_series_info` + +## Navigation + +Depuis l'écran Live : + +- bouton `VOD` pour ouvrir les films +- bouton `Séries` pour ouvrir le catalogue séries +- bouton `Live` dans les catalogues pour revenir aux chaînes + +## Lecture + +- VOD : `/movie/username/password/stream_id.extension` +- Épisode série : `/series/username/password/episode_id.extension` + +Le format utilisé vient du champ `container_extension` quand il existe, sinon l'application utilise `mp4`. + +## Fichiers principaux modifiés + +- `MainActivity.kt` +- `HomeScreen.kt` +- `PlayerScreen.kt` +- `XtreamApi.kt` +- `XtreamRepository.kt` + +## Fichiers ajoutés + +- `VodStreamDto.kt` +- `SeriesDto.kt` +- `SeriesInfoResponse.kt` +- `VodScreen.kt` +- `SeriesScreen.kt` diff --git a/README_UPDATE_VOD_SERIES_FAVORITES.md b/README_UPDATE_VOD_SERIES_FAVORITES.md new file mode 100644 index 0000000..520f849 --- /dev/null +++ b/README_UPDATE_VOD_SERIES_FAVORITES.md @@ -0,0 +1,30 @@ +# Mise à jour Favoris VOD + Séries + +Cette mise à jour ajoute la gestion des favoris pour les catalogues VOD et Séries. + +## Ajouts + +- Bouton `☆ / ★` sur chaque film VOD. +- Bouton `☆ / ★` sur chaque série. +- Catégorie automatique `★ Favoris` dans le catalogue VOD. +- Catégorie automatique `★ Favoris` dans le catalogue Séries. +- Sauvegarde persistante des favoris dans `SharedPreferences`. +- Badge `Favori` dans les lignes VOD / Séries et dans l'overlay du lecteur quand le contenu est marqué favori. + +## Fichiers modifiés + +- `ConfigStorage.kt` +- `MainActivity.kt` +- `VodScreen.kt` +- `SeriesScreen.kt` + +## Installation + +```powershell +cd "D:\07-Logiciels\11-IPTV Andoid TV 2" +Expand-Archive -Path "$env:USERPROFILE\Downloads\xtream-google-tv-player-vod-series-favorites-update.zip" -DestinationPath "D:\07-Logiciels\11-IPTV Andoid TV 2" -Force +.\gradlew.bat clean --no-daemon +.\gradlew.bat :app:assembleDebug --no-daemon +adb install -r ".\app\build\outputs\apk\debug\app-debug.apk" +adb shell am start -n ma.tkgraph.xtreamtv/.MainActivity +``` diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..328cdc5 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,62 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.compose) +} + +android { + namespace = "ma.tkgraph.xtreamtv" + compileSdk = 36 + + defaultConfig { + applicationId = "ma.tkgraph.xtreamtv" + minSdk = 23 + targetSdk = 36 + versionCode = 8 + versionName = "1.7.0" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + buildFeatures { + compose = true + } +} + +dependencies { + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.activity.compose) + + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.compose.ui) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.compose.material3) + + implementation(libs.androidx.tv.material) + implementation(libs.androidx.tv.foundation) + + implementation(libs.androidx.media3.exoplayer) + implementation(libs.androidx.media3.exoplayer.hls) + implementation(libs.androidx.media3.exoplayer.dash) + implementation(libs.androidx.media3.ui) + + implementation(libs.retrofit) + implementation(libs.retrofit.gson) + + implementation("io.coil-kt.coil3:coil-compose:3.5.0") + implementation("io.coil-kt.coil3:coil-network-okhttp:3.5.0") + + debugImplementation(libs.androidx.compose.ui.tooling) +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..0df53ce --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,2 @@ +# MVP : pas de règles particulières. +# Ajouter des règles si vous activez minifyEnabled=true et si votre API utilise de la réflexion JSON avancée. diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..9621268 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt b/app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt new file mode 100644 index 0000000..d16115b --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/MainActivity.kt @@ -0,0 +1,929 @@ +package ma.tkgraph.xtreamtv + +import android.app.Activity +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.BackHandler +import androidx.activity.compose.setContent +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.launch +import ma.tkgraph.xtreamtv.data.model.EpgProgramDto +import ma.tkgraph.xtreamtv.data.model.LiveCategoryDto +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.data.model.SeriesDto +import ma.tkgraph.xtreamtv.data.model.SeriesEpisodeItem +import ma.tkgraph.xtreamtv.data.model.SeriesInfoResponse +import ma.tkgraph.xtreamtv.data.model.VodStreamDto +import ma.tkgraph.xtreamtv.data.model.XtreamConfig +import ma.tkgraph.xtreamtv.data.network.XtreamApiFactory +import ma.tkgraph.xtreamtv.data.repository.XtreamRepository +import ma.tkgraph.xtreamtv.data.storage.ConfigStorage +import ma.tkgraph.xtreamtv.ui.screens.HomeScreen +import ma.tkgraph.xtreamtv.ui.screens.LoginScreen +import ma.tkgraph.xtreamtv.ui.screens.PlayerScreen +import ma.tkgraph.xtreamtv.ui.screens.ProgramGuideScreen +import ma.tkgraph.xtreamtv.ui.screens.ReplayGuideScreen +import ma.tkgraph.xtreamtv.ui.screens.SeriesScreen +import ma.tkgraph.xtreamtv.ui.screens.VodScreen +import ma.tkgraph.xtreamtv.ui.theme.XtreamTvTheme +import ma.tkgraph.xtreamtv.util.XtreamUrlBuilder + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + XtreamTvTheme { + XtreamTvApp() + } + } + } +} + +private const val FAVORITES_CATEGORY_ID = "__favorites__" +private const val UNCATEGORIZED_CATEGORY_ID = "__uncategorized__" + +private enum class MediaReturnTarget { + HOME, + VOD, + SERIES +} + +private sealed interface AppScreen { + data object Loading : AppScreen + data object Login : AppScreen + data object Home : AppScreen + data object Vod : AppScreen + data object Series : AppScreen + data object ProgramGuide : AppScreen + data class ReplayGuide(val stream: LiveStreamDto) : AppScreen + data class Player( + val stream: LiveStreamDto, + val title: String, + val url: String, + val isReplay: Boolean = false, + val programTitle: String? = null, + val programTime: String? = null + ) : AppScreen + data class MediaPlayer( + val title: String, + val logoUrl: String?, + val url: String, + val returnTarget: MediaReturnTarget, + val subtitle: String? = null, + val favoriteId: String? = null + ) : AppScreen +} + +private data class XtreamContent( + val streams: List, + val categories: List +) + +@Composable +private fun XtreamTvApp() { + val context = LocalContext.current + val scope = rememberCoroutineScope() + val configStorage = remember { ConfigStorage(context) } + + var screen by remember { mutableStateOf(AppScreen.Loading) } + var config by remember { mutableStateOf(null) } + var liveStreams by remember { mutableStateOf>(emptyList()) } + var liveCategories by remember { mutableStateOf>(emptyList()) } + var loginErrorMessage by remember { mutableStateOf(null) } + + var selectedCategoryId by remember { mutableStateOf(null) } + var selectedStreamId by remember { mutableStateOf(null) } + var categorySearchQuery by remember { mutableStateOf("") } + var streamSearchQuery by remember { mutableStateOf("") } + var favoriteStreamIds by remember { mutableStateOf(configStorage.loadFavoriteStreamIds()) } + var pinnedStreamId by remember { mutableStateOf(configStorage.loadPinnedStreamId()) } + var showExitDialog by remember { mutableStateOf(false) } + var focusSelectedStreamRequest by remember { mutableStateOf(0) } + + var epgByStreamId by remember { mutableStateOf>>(emptyMap()) } + var loadingEpgStreamIds by remember { mutableStateOf>(emptySet()) } + + var fullEpgByStreamId by remember { mutableStateOf>>(emptyMap()) } + var loadingFullEpgStreamIds by remember { mutableStateOf>(emptySet()) } + var fullEpgErrors by remember { mutableStateOf>(emptyMap()) } + + var vodMovies by remember { mutableStateOf>(emptyList()) } + var vodCategories by remember { mutableStateOf>(emptyList()) } + var isVodLoading by remember { mutableStateOf(false) } + var vodErrorMessage by remember { mutableStateOf(null) } + var selectedVodCategoryId by remember { mutableStateOf(null) } + var selectedVodMovieId by remember { mutableStateOf(null) } + var vodCategorySearchQuery by remember { mutableStateOf("") } + var vodMovieSearchQuery by remember { mutableStateOf("") } + var favoriteVodIds by remember { mutableStateOf(configStorage.loadFavoriteVodIds()) } + + var seriesItems by remember { mutableStateOf>(emptyList()) } + var seriesCategories by remember { mutableStateOf>(emptyList()) } + var isSeriesLoading by remember { mutableStateOf(false) } + var seriesErrorMessage by remember { mutableStateOf(null) } + var selectedSeriesCategoryId by remember { mutableStateOf(null) } + var selectedSeriesId by remember { mutableStateOf(null) } + var seriesCategorySearchQuery by remember { mutableStateOf("") } + var seriesSearchQuery by remember { mutableStateOf("") } + var episodeSearchQuery by remember { mutableStateOf("") } + var favoriteSeriesIds by remember { mutableStateOf(configStorage.loadFavoriteSeriesIds()) } + var seriesInfoById by remember { mutableStateOf>(emptyMap()) } + var loadingSeriesInfoIds by remember { mutableStateOf>(emptySet()) } + var seriesInfoErrors by remember { mutableStateOf>(emptyMap()) } + + fun repository(): XtreamRepository? { + val currentConfig = config ?: return null + return XtreamRepository(XtreamApiFactory.create(currentConfig.serverUrl)) + } + + fun requestEpg(stream: LiveStreamDto) { + val currentConfig = config ?: return + val streamId = stream.streamId + if (epgByStreamId.containsKey(streamId) || loadingEpgStreamIds.contains(streamId)) return + + loadingEpgStreamIds = loadingEpgStreamIds + streamId + scope.launch { + val programs = runCatching { + XtreamRepository(XtreamApiFactory.create(currentConfig.serverUrl)).loadShortEpg( + username = currentConfig.username, + password = currentConfig.password, + streamId = streamId, + limit = 8 + ) + }.getOrDefault(emptyList()) + + epgByStreamId = epgByStreamId + (streamId to programs) + loadingEpgStreamIds = loadingEpgStreamIds - streamId + } + } + + fun requestFullEpg(stream: LiveStreamDto, forceRefresh: Boolean = false) { + val currentConfig = config ?: return + val streamId = stream.streamId + if (!forceRefresh && fullEpgByStreamId.containsKey(streamId)) return + if (loadingFullEpgStreamIds.contains(streamId)) return + + loadingFullEpgStreamIds = loadingFullEpgStreamIds + streamId + fullEpgErrors = fullEpgErrors - streamId + + scope.launch { + runCatching { + XtreamRepository(XtreamApiFactory.create(currentConfig.serverUrl)).loadFullEpg( + username = currentConfig.username, + password = currentConfig.password, + streamId = streamId + ) + }.onSuccess { programs -> + fullEpgByStreamId = fullEpgByStreamId + (streamId to programs) + epgByStreamId = epgByStreamId + (streamId to programs.take(8)) + fullEpgErrors = fullEpgErrors - streamId + }.onFailure { throwable -> + fullEpgErrors = fullEpgErrors + (streamId to (throwable.message ?: "Impossible de charger le guide replay complet.")) + } + + loadingFullEpgStreamIds = loadingFullEpgStreamIds - streamId + } + } + + fun requestVodContent(forceRefresh: Boolean = false) { + val currentConfig = config ?: return + if (!forceRefresh && vodMovies.isNotEmpty()) return + if (isVodLoading) return + + isVodLoading = true + vodErrorMessage = null + + scope.launch { + runCatching { + val repo = XtreamRepository(XtreamApiFactory.create(currentConfig.serverUrl)) + val categories = runCatching { + repo.loadVodCategories( + username = currentConfig.username, + password = currentConfig.password + ) + }.getOrDefault(emptyList()) + + val movies = repo.loadVodStreams( + username = currentConfig.username, + password = currentConfig.password + ) + + categories to movies + }.onSuccess { (categories, movies) -> + vodCategories = categories + vodMovies = movies + vodErrorMessage = null + }.onFailure { throwable -> + vodErrorMessage = throwable.message ?: "Impossible de charger les VOD." + } + + isVodLoading = false + } + } + + fun requestSeriesContent(forceRefresh: Boolean = false) { + val currentConfig = config ?: return + if (!forceRefresh && seriesItems.isNotEmpty()) return + if (isSeriesLoading) return + + isSeriesLoading = true + seriesErrorMessage = null + + scope.launch { + runCatching { + val repo = XtreamRepository(XtreamApiFactory.create(currentConfig.serverUrl)) + val categories = runCatching { + repo.loadSeriesCategories( + username = currentConfig.username, + password = currentConfig.password + ) + }.getOrDefault(emptyList()) + + val items = repo.loadSeries( + username = currentConfig.username, + password = currentConfig.password + ) + + categories to items + }.onSuccess { (categories, items) -> + seriesCategories = categories + seriesItems = items + seriesErrorMessage = null + }.onFailure { throwable -> + seriesErrorMessage = throwable.message ?: "Impossible de charger les séries." + } + + isSeriesLoading = false + } + } + + fun requestSeriesInfo(series: SeriesDto, forceRefresh: Boolean = false) { + val currentConfig = config ?: return + val seriesId = series.seriesId + if (!forceRefresh && seriesInfoById.containsKey(seriesId)) return + if (loadingSeriesInfoIds.contains(seriesId)) return + + loadingSeriesInfoIds = loadingSeriesInfoIds + seriesId + seriesInfoErrors = seriesInfoErrors - seriesId + + scope.launch { + runCatching { + XtreamRepository(XtreamApiFactory.create(currentConfig.serverUrl)).loadSeriesInfo( + username = currentConfig.username, + password = currentConfig.password, + seriesId = seriesId + ) + }.onSuccess { info -> + seriesInfoById = seriesInfoById + (seriesId to info) + seriesInfoErrors = seriesInfoErrors - seriesId + }.onFailure { throwable -> + seriesInfoErrors = seriesInfoErrors + (seriesId to (throwable.message ?: "Impossible de charger les épisodes.")) + } + + loadingSeriesInfoIds = loadingSeriesInfoIds - seriesId + } + } + + fun openPlayer(stream: LiveStreamDto) { + val currentConfig = config ?: return + selectedStreamId = stream.streamId + requestEpg(stream) + screen = AppScreen.Player( + stream = stream, + title = stream.name.orEmpty().ifBlank { "Chaîne ${stream.streamId}" }, + url = XtreamUrlBuilder.liveUrl( + config = currentConfig, + streamId = stream.streamId, + extension = "m3u8" + ) + ) + } + + fun openVodPlayer(movie: VodStreamDto) { + val currentConfig = config ?: return + selectedVodMovieId = movie.streamId + screen = AppScreen.MediaPlayer( + title = movie.titleText(), + logoUrl = movie.streamIcon, + url = movie.directSource?.takeIf { it.isNotBlank() } + ?: XtreamUrlBuilder.vodUrl( + config = currentConfig, + streamId = movie.streamId, + extension = movie.extensionText() + ), + subtitle = "VOD • ${movie.extensionText().uppercase()}", + returnTarget = MediaReturnTarget.VOD, + favoriteId = movie.streamId + ) + } + + fun openSeriesEpisodePlayer(series: SeriesDto, item: SeriesEpisodeItem) { + val currentConfig = config ?: return + val episode = item.episode + val episodeId = episode.id?.takeIf { it.isNotBlank() } ?: return + selectedSeriesId = series.seriesId + screen = AppScreen.MediaPlayer( + title = "${series.titleText()} • ${item.seasonText()} • ${episode.titleText()}", + logoUrl = episode.info?.movieImage ?: series.cover, + url = XtreamUrlBuilder.seriesUrl( + config = currentConfig, + episodeId = episodeId, + extension = episode.extensionText() + ), + subtitle = "${item.seasonText()} • Épisode ${episode.episodeNum ?: ""}".trim(), + returnTarget = MediaReturnTarget.SERIES, + favoriteId = series.seriesId + ) + } + + fun openReplayGuide(stream: LiveStreamDto) { + selectedStreamId = stream.streamId + requestFullEpg(stream) + screen = AppScreen.ReplayGuide(stream = stream) + } + + fun openReplay(stream: LiveStreamDto, program: EpgProgramDto) { + val currentConfig = config ?: return + selectedStreamId = stream.streamId + val title = stream.name.orEmpty().ifBlank { "Chaîne ${stream.streamId}" } + screen = AppScreen.Player( + stream = stream, + title = title, + url = XtreamUrlBuilder.timeshiftUrl( + config = currentConfig, + streamId = stream.streamId, + start = program.start.orEmpty(), + durationMinutes = program.durationMinutes(), + extension = "ts" + ), + isReplay = true, + programTitle = program.titleText(), + programTime = program.fullDateTimeText() + ) + } + + fun streamsForCurrentNavigation(): List { + return filterStreamsForNavigation( + streams = liveStreams, + selectedCategoryId = selectedCategoryId, + streamSearchQuery = streamSearchQuery, + favoriteStreamIds = favoriteStreamIds + ) + } + + fun zap(offset: Int) { + val currentConfig = config ?: return + val candidates = streamsForCurrentNavigation().ifEmpty { liveStreams } + if (candidates.isEmpty()) return + + val currentId = selectedStreamId + val currentIndex = candidates.indexOfFirst { it.streamId == currentId } + val nextIndex = if (currentIndex < 0) { + 0 + } else { + (currentIndex + offset + candidates.size) % candidates.size + } + + val nextStream = candidates[nextIndex] + selectedStreamId = nextStream.streamId + requestEpg(nextStream) + screen = AppScreen.Player( + stream = nextStream, + title = nextStream.name.orEmpty().ifBlank { "Chaîne ${nextStream.streamId}" }, + url = XtreamUrlBuilder.liveUrl( + config = currentConfig, + streamId = nextStream.streamId, + extension = "m3u8" + ) + ) + } + + fun clearCatalogStates() { + vodMovies = emptyList() + vodCategories = emptyList() + vodErrorMessage = null + isVodLoading = false + selectedVodCategoryId = null + selectedVodMovieId = null + vodCategorySearchQuery = "" + vodMovieSearchQuery = "" + seriesItems = emptyList() + seriesCategories = emptyList() + seriesErrorMessage = null + isSeriesLoading = false + selectedSeriesCategoryId = null + selectedSeriesId = null + seriesCategorySearchQuery = "" + seriesSearchQuery = "" + episodeSearchQuery = "" + seriesInfoById = emptyMap() + loadingSeriesInfoIds = emptySet() + seriesInfoErrors = emptyMap() + } + + LaunchedEffect(Unit) { + val savedConfig = configStorage.load() + + if (savedConfig == null) { + screen = AppScreen.Login + return@LaunchedEffect + } + + runCatching { + val content = loadXtreamContentFromServer(savedConfig) + config = savedConfig + liveStreams = content.streams + liveCategories = content.categories + favoriteStreamIds = configStorage.loadFavoriteStreamIds() + favoriteVodIds = configStorage.loadFavoriteVodIds() + favoriteSeriesIds = configStorage.loadFavoriteSeriesIds() + pinnedStreamId = configStorage.loadPinnedStreamId() + loginErrorMessage = null + + val pinnedStream = pinnedStreamId?.let { id -> + content.streams.firstOrNull { it.streamId == id } + } + + if (pinnedStream != null) { + selectedCategoryId = pinnedStream.categoryId?.takeIf { it.isNotBlank() } + selectedStreamId = pinnedStream.streamId + requestEpg(pinnedStream) + screen = AppScreen.Player( + stream = pinnedStream, + title = pinnedStream.name.orEmpty().ifBlank { "Chaîne ${pinnedStream.streamId}" }, + url = XtreamUrlBuilder.liveUrl( + config = savedConfig, + streamId = pinnedStream.streamId, + extension = "m3u8" + ) + ) + } else { + screen = AppScreen.Home + } + }.onFailure { + configStorage.clear() + config = null + liveStreams = emptyList() + liveCategories = emptyList() + epgByStreamId = emptyMap() + loadingEpgStreamIds = emptySet() + fullEpgByStreamId = emptyMap() + loadingFullEpgStreamIds = emptySet() + fullEpgErrors = emptyMap() + clearCatalogStates() + loginErrorMessage = "Connexion automatique impossible. Vérifie tes identifiants." + screen = AppScreen.Login + } + } + + when (val currentScreen = screen) { + AppScreen.Loading -> LoadingScreen( + message = "Connexion automatique en cours..." + ) + + AppScreen.Login -> LoginScreen( + initialConfig = configStorage.load(), + initialErrorMessage = loginErrorMessage, + onLoginSuccess = { newConfig, streams, categories -> + configStorage.save(newConfig) + config = newConfig + liveStreams = streams + liveCategories = categories + favoriteStreamIds = configStorage.loadFavoriteStreamIds() + favoriteVodIds = configStorage.loadFavoriteVodIds() + favoriteSeriesIds = configStorage.loadFavoriteSeriesIds() + pinnedStreamId = configStorage.loadPinnedStreamId() + epgByStreamId = emptyMap() + loadingEpgStreamIds = emptySet() + fullEpgByStreamId = emptyMap() + loadingFullEpgStreamIds = emptySet() + fullEpgErrors = emptyMap() + clearCatalogStates() + loginErrorMessage = null + selectedCategoryId = null + selectedStreamId = null + screen = AppScreen.Home + } + ) + + AppScreen.Home -> { + BackHandler { showExitDialog = true } + + HomeScreen( + streams = liveStreams, + categories = liveCategories, + epgByStreamId = epgByStreamId, + loadingEpgStreamIds = loadingEpgStreamIds, + selectedCategoryId = selectedCategoryId, + selectedStreamId = selectedStreamId, + favoriteStreamIds = favoriteStreamIds, + pinnedStreamId = pinnedStreamId, + categorySearchQuery = categorySearchQuery, + streamSearchQuery = streamSearchQuery, + focusSelectedStreamRequest = focusSelectedStreamRequest, + onCategorySearchChanged = { categorySearchQuery = it }, + onStreamSearchChanged = { streamSearchQuery = it }, + onCategorySelected = { categoryId -> selectedCategoryId = categoryId }, + onStreamSelected = { stream -> openPlayer(stream) }, + onRequestEpg = { stream -> requestEpg(stream) }, + onOpenReplayGuide = { stream -> openReplayGuide(stream) }, + onOpenProgramGuide = { screen = AppScreen.ProgramGuide }, + onOpenVod = { + screen = AppScreen.Vod + requestVodContent() + }, + onOpenSeries = { + screen = AppScreen.Series + requestSeriesContent() + }, + onToggleFavorite = { stream -> + favoriteStreamIds = configStorage.toggleFavorite(stream.streamId) + }, + onPinStream = { stream -> + if (pinnedStreamId == stream.streamId) { + configStorage.clearPinnedStreamId() + pinnedStreamId = null + } else { + configStorage.savePinnedStreamId(stream.streamId) + pinnedStreamId = stream.streamId + } + }, + onClearPinned = { + configStorage.clearPinnedStreamId() + pinnedStreamId = null + }, + onLogout = { + configStorage.clear() + config = null + liveStreams = emptyList() + liveCategories = emptyList() + epgByStreamId = emptyMap() + loadingEpgStreamIds = emptySet() + fullEpgByStreamId = emptyMap() + loadingFullEpgStreamIds = emptySet() + fullEpgErrors = emptyMap() + selectedCategoryId = null + selectedStreamId = null + categorySearchQuery = "" + streamSearchQuery = "" + clearCatalogStates() + loginErrorMessage = null + screen = AppScreen.Login + } + ) + + if (showExitDialog) { + ExitConfirmationDialog( + onDismiss = { showExitDialog = false }, + onConfirm = { + showExitDialog = false + (context as? Activity)?.finish() + } + ) + } + } + + AppScreen.Vod -> { + VodScreen( + movies = vodMovies, + categories = vodCategories, + isLoading = isVodLoading, + errorMessage = vodErrorMessage, + selectedCategoryId = selectedVodCategoryId, + selectedMovieId = selectedVodMovieId, + favoriteMovieIds = favoriteVodIds, + categorySearchQuery = vodCategorySearchQuery, + movieSearchQuery = vodMovieSearchQuery, + onCategorySelected = { selectedVodCategoryId = it }, + onCategorySearchChanged = { vodCategorySearchQuery = it }, + onMovieSearchChanged = { vodMovieSearchQuery = it }, + onMovieFocused = { movie -> selectedVodMovieId = movie.streamId }, + onMovieSelected = { movie -> openVodPlayer(movie) }, + onToggleFavorite = { movie -> + favoriteVodIds = configStorage.toggleFavoriteVod(movie.streamId) + }, + onReload = { requestVodContent(forceRefresh = true) }, + onBack = { + focusSelectedStreamRequest += 1 + screen = AppScreen.Home + } + ) + } + + AppScreen.Series -> { + SeriesScreen( + series = seriesItems, + categories = seriesCategories, + isLoading = isSeriesLoading, + errorMessage = seriesErrorMessage, + selectedCategoryId = selectedSeriesCategoryId, + selectedSeriesId = selectedSeriesId, + favoriteSeriesIds = favoriteSeriesIds, + categorySearchQuery = seriesCategorySearchQuery, + seriesSearchQuery = seriesSearchQuery, + episodeSearchQuery = episodeSearchQuery, + seriesInfoById = seriesInfoById, + loadingSeriesInfoIds = loadingSeriesInfoIds, + seriesInfoErrors = seriesInfoErrors, + onCategorySelected = { selectedSeriesCategoryId = it }, + onCategorySearchChanged = { seriesCategorySearchQuery = it }, + onSeriesSearchChanged = { seriesSearchQuery = it }, + onEpisodeSearchChanged = { episodeSearchQuery = it }, + onSeriesFocused = { item -> + selectedSeriesId = item.seriesId + requestSeriesInfo(item) + }, + onSeriesSelected = { item -> + selectedSeriesId = item.seriesId + requestSeriesInfo(item) + }, + onToggleFavorite = { item -> + favoriteSeriesIds = configStorage.toggleFavoriteSeries(item.seriesId) + }, + onPlayEpisode = { item, episode -> openSeriesEpisodePlayer(item, episode) }, + onReload = { requestSeriesContent(forceRefresh = true) }, + onRetryInfo = { item -> requestSeriesInfo(item, forceRefresh = true) }, + onBack = { + focusSelectedStreamRequest += 1 + screen = AppScreen.Home + } + ) + } + + AppScreen.ProgramGuide -> { + ProgramGuideScreen( + streams = liveStreams, + categories = liveCategories, + favoriteStreamIds = favoriteStreamIds, + selectedStreamId = selectedStreamId, + epgByStreamId = epgByStreamId, + loadingEpgStreamIds = loadingEpgStreamIds, + fullEpgByStreamId = fullEpgByStreamId, + loadingFullEpgStreamIds = loadingFullEpgStreamIds, + fullEpgErrors = fullEpgErrors, + onBack = { + focusSelectedStreamRequest += 1 + screen = AppScreen.Home + }, + onStreamFocused = { stream -> + selectedStreamId = stream.streamId + requestEpg(stream) + requestFullEpg(stream) + }, + onOpenLive = { stream -> openPlayer(stream) }, + onRetryFullGuide = { stream -> requestFullEpg(stream, forceRefresh = true) }, + onProgramSelected = { stream, program -> openReplay(stream, program) } + ) + } + + is AppScreen.ReplayGuide -> { + LaunchedEffect(currentScreen.stream.streamId) { + requestFullEpg(currentScreen.stream) + } + + ReplayGuideScreen( + stream = currentScreen.stream, + programs = fullEpgByStreamId[currentScreen.stream.streamId].orEmpty(), + isLoading = loadingFullEpgStreamIds.contains(currentScreen.stream.streamId), + errorMessage = fullEpgErrors[currentScreen.stream.streamId], + onBack = { + focusSelectedStreamRequest += 1 + screen = AppScreen.Home + }, + onRetry = { requestFullEpg(currentScreen.stream, forceRefresh = true) }, + onProgramSelected = { program -> openReplay(currentScreen.stream, program) } + ) + } + + is AppScreen.Player -> { + LaunchedEffect(currentScreen.stream.streamId) { + requestEpg(currentScreen.stream) + } + + val currentLiveProgram = epgByStreamId[currentScreen.stream.streamId] + .orEmpty() + .firstOrNull { it.isNowPlaying() } + ?: epgByStreamId[currentScreen.stream.streamId].orEmpty().firstOrNull() + + PlayerScreen( + title = currentScreen.title, + logoUrl = currentScreen.stream.streamIcon, + streamUrl = currentScreen.url, + isFavorite = favoriteStreamIds.contains(currentScreen.stream.streamId), + isPinned = pinnedStreamId == currentScreen.stream.streamId, + isReplay = currentScreen.isReplay, + programTitle = currentScreen.programTitle ?: currentLiveProgram?.titleText(), + programTime = currentScreen.programTime ?: currentLiveProgram?.timeRangeText(), + enableZapping = true, + onBack = { + focusSelectedStreamRequest += 1 + screen = AppScreen.Home + }, + onPrevious = { zap(offset = -1) }, + onNext = { zap(offset = 1) }, + onToggleFavorite = { + favoriteStreamIds = configStorage.toggleFavorite(currentScreen.stream.streamId) + }, + onTogglePinned = { + if (pinnedStreamId == currentScreen.stream.streamId) { + configStorage.clearPinnedStreamId() + pinnedStreamId = null + } else { + configStorage.savePinnedStreamId(currentScreen.stream.streamId) + pinnedStreamId = currentScreen.stream.streamId + } + } + ) + } + + is AppScreen.MediaPlayer -> { + val isMediaFavorite = when (currentScreen.returnTarget) { + MediaReturnTarget.VOD -> currentScreen.favoriteId?.let { favoriteVodIds.contains(it) } == true + MediaReturnTarget.SERIES -> currentScreen.favoriteId?.let { favoriteSeriesIds.contains(it) } == true + MediaReturnTarget.HOME -> false + } + + PlayerScreen( + title = currentScreen.title, + logoUrl = currentScreen.logoUrl, + streamUrl = currentScreen.url, + isFavorite = isMediaFavorite, + isPinned = false, + isReplay = false, + programTitle = currentScreen.subtitle, + programTime = null, + enableZapping = false, + onBack = { + screen = when (currentScreen.returnTarget) { + MediaReturnTarget.HOME -> AppScreen.Home + MediaReturnTarget.VOD -> AppScreen.Vod + MediaReturnTarget.SERIES -> AppScreen.Series + } + }, + onPrevious = {}, + onNext = {}, + onToggleFavorite = { + val favoriteId = currentScreen.favoriteId ?: return@PlayerScreen + when (currentScreen.returnTarget) { + MediaReturnTarget.VOD -> favoriteVodIds = configStorage.toggleFavoriteVod(favoriteId) + MediaReturnTarget.SERIES -> favoriteSeriesIds = configStorage.toggleFavoriteSeries(favoriteId) + MediaReturnTarget.HOME -> Unit + } + }, + onTogglePinned = {} + ) + } + } +} + +@Composable +private fun ExitConfirmationDialog( + onDismiss: () -> Unit, + onConfirm: () -> Unit +) { + AlertDialog( + onDismissRequest = onDismiss, + title = { Text(text = "Quitter l’application ?") }, + text = { Text(text = "Confirme si tu veux fermer Xtream TV Player.") }, + confirmButton = { + TextButton(onClick = onConfirm) { Text(text = "Quitter") } + }, + dismissButton = { + TextButton(onClick = onDismiss) { Text(text = "Annuler") } + } + ) +} + +@Composable +private fun LoadingScreen( + message: String +) { + Box( + modifier = Modifier + .fillMaxSize() + .background(Color(0xFF020B22)) + ) { + Image( + painter = painterResource(id = R.drawable.imedia_tv_background), + contentDescription = null, + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + + Box( + modifier = Modifier + .fillMaxSize() + .background(Color(0x66000B1F)) + ) + + Column( + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(bottom = 58.dp), + verticalArrangement = Arrangement.spacedBy(14.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + CircularProgressIndicator( + color = Color.White, + trackColor = Color.White.copy(alpha = 0.18f) + ) + Text( + text = message, + color = Color.White.copy(alpha = 0.92f), + style = MaterialTheme.typography.bodyLarge + ) + } + } +} + +private suspend fun loadXtreamContentFromServer( + config: XtreamConfig +): XtreamContent { + val repository = XtreamRepository( + XtreamApiFactory.create(config.serverUrl) + ) + + val account = repository.checkAccount( + username = config.username, + password = config.password + ) + + val isAuthorized = account.userInfo?.auth == "1" + val isActive = account.userInfo?.status.equals( + other = "Active", + ignoreCase = true + ) + + if (!isAuthorized || !isActive) { + error("Compte non autorisé ou abonnement inactif.") + } + + val categories = runCatching { + repository.loadLiveCategories( + username = config.username, + password = config.password + ) + }.getOrDefault(emptyList()) + + val streams = repository.loadLiveStreams( + username = config.username, + password = config.password + ) + + return XtreamContent( + streams = streams, + categories = categories + ) +} + +private fun filterStreamsForNavigation( + streams: List, + selectedCategoryId: String?, + streamSearchQuery: String, + favoriteStreamIds: Set +): List { + val query = streamSearchQuery.trim() + + return streams + .asSequence() + .filter { stream -> + when (selectedCategoryId) { + null -> true + FAVORITES_CATEGORY_ID -> favoriteStreamIds.contains(stream.streamId) + UNCATEGORIZED_CATEGORY_ID -> stream.categoryId.isNullOrBlank() + else -> stream.categoryId == selectedCategoryId + } + } + .filter { stream -> + query.isBlank() || + stream.name.orEmpty().contains(query, ignoreCase = true) || + stream.streamId.contains(query, ignoreCase = true) || + stream.categoryId.orEmpty().contains(query, ignoreCase = true) + } + .toList() +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgFullResponse.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgFullResponse.kt new file mode 100644 index 0000000..bd4039a --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgFullResponse.kt @@ -0,0 +1,8 @@ +package ma.tkgraph.xtreamtv.data.model + +import com.google.gson.annotations.SerializedName + +data class EpgFullResponse( + @SerializedName("epg_listings") + val listings: List? = emptyList() +) diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt new file mode 100644 index 0000000..176d476 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgProgramDto.kt @@ -0,0 +1,186 @@ +package ma.tkgraph.xtreamtv.data.model + +import android.util.Base64 +import com.google.gson.annotations.SerializedName +import java.nio.charset.StandardCharsets +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale +import kotlin.math.max +import kotlin.math.min + +private const val MAX_REPLAY_DURATION_MINUTES = 720 + +data class EpgProgramDto( + @SerializedName("id") + val id: String? = null, + + @SerializedName("epg_id") + val epgId: String? = null, + + @SerializedName("title") + val rawTitle: String? = null, + + @SerializedName("description") + val rawDescription: String? = null, + + @SerializedName("lang") + val lang: String? = null, + + @SerializedName("start") + val start: String? = null, + + @SerializedName("end") + val end: String? = null, + + @SerializedName("channel_id") + val channelId: String? = null, + + @SerializedName("start_timestamp") + val startTimestamp: String? = null, + + @SerializedName("stop_timestamp") + val stopTimestamp: String? = null, + + @SerializedName("now_playing") + val nowPlaying: Int? = null, + + @SerializedName("has_archive") + val hasArchive: Int? = null +) { + fun titleText(): String { + return decodeMaybeBase64(rawTitle).ifBlank { "Programme sans titre" } + } + + fun descriptionText(): String { + return decodeMaybeBase64(rawDescription) + } + + fun timeRangeText(): String { + val startLabel = start.orEmpty().takeLastTime() + val endLabel = end.orEmpty().takeLastTime() + return when { + startLabel.isNotBlank() && endLabel.isNotBlank() -> "$startLabel - $endLabel" + startLabel.isNotBlank() -> startLabel + else -> "Horaire inconnu" + } + } + + fun fullDateTimeText(): String { + val dateLabel = startMillis()?.let { millis -> + SimpleDateFormat("EEE dd/MM", Locale.getDefault()).format(Date(millis)) + }.orEmpty() + + return listOf(dateLabel, timeRangeText()) + .filter { it.isNotBlank() } + .joinToString(" • ") + .ifBlank { "Horaire inconnu" } + } + + fun dayHeaderText(): String { + return startMillis()?.let { millis -> + SimpleDateFormat("EEEE dd/MM", Locale.getDefault()).format(Date(millis)) + } ?: "Jour inconnu" + } + + fun isNowPlaying(): Boolean { + return nowPlaying == 1 + } + + fun isReplayAvailable(): Boolean { + return hasArchive == 1 && !start.isNullOrBlank() + } + + fun canPlayAsReplay( + streamArchiveEnabled: Boolean, + nowMillis: Long = System.currentTimeMillis() + ): Boolean { + val startMillis = startMillis() ?: return false + val archiveAvailable = streamArchiveEnabled || hasArchive == 1 + return archiveAvailable && startMillis <= nowMillis && !start.isNullOrBlank() + } + + fun startMillis(): Long? { + startTimestamp?.toLongOrNull()?.let { seconds -> + return seconds * 1000L + } + + val startText = start ?: return null + return parseDateTime(startText)?.time + } + + fun stopMillis(): Long? { + stopTimestamp?.toLongOrNull()?.let { seconds -> + return seconds * 1000L + } + + val stopText = end ?: return null + return parseDateTime(stopText)?.time + } + + fun durationMinutes(): Int { + val timestampDuration = durationFromTimestamps() + if (timestampDuration > 0) return timestampDuration + + val parsedDuration = durationFromDates() + if (parsedDuration > 0) return parsedDuration + + return 60 + } + + private fun durationFromTimestamps(): Int { + val startSeconds = startTimestamp?.toLongOrNull() ?: return 0 + val stopSeconds = stopTimestamp?.toLongOrNull() ?: return 0 + val minutes = ((stopSeconds - startSeconds) / 60).toInt() + return minutes.clampDuration() + } + + private fun durationFromDates(): Int { + val startMillis = startMillis() ?: return 0 + val stopMillis = stopMillis() ?: return 0 + val minutes = ((stopMillis - startMillis) / 60_000).toInt() + return minutes.clampDuration() + } +} + +private fun String.takeLastTime(): String { + val match = Regex("""(\d{2}:\d{2})""").find(this) + return match?.value.orEmpty() +} + +private fun parseDateTime(value: String): Date? { + val cleaned = value.trim().replace('T', ' ').take(19) + val patterns = listOf( + "yyyy-MM-dd HH:mm:ss", + "yyyy-MM-dd HH:mm", + "yyyy/MM/dd HH:mm:ss", + "yyyy/MM/dd HH:mm" + ) + + return patterns.firstNotNullOfOrNull { pattern -> + runCatching { + SimpleDateFormat(pattern, Locale.US).parse(cleaned) + }.getOrNull() + } +} + +private fun Int.clampDuration(): Int { + if (this <= 0) return 0 + return max(1, min(this, MAX_REPLAY_DURATION_MINUTES)) +} + +private fun decodeMaybeBase64(value: String?): String { + val text = value.orEmpty().trim() + if (text.isBlank()) return "" + + return runCatching { + val decoded = Base64.decode(text, Base64.DEFAULT) + String(decoded, StandardCharsets.UTF_8).trim() + }.getOrNull() + ?.takeIf { decoded -> + decoded.isNotBlank() && + decoded.any { it.isLetterOrDigit() } && + decoded.count { !it.isISOControl() }.toFloat() / decoded.length.toFloat() > 0.85f + } + ?: text +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgShortResponse.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgShortResponse.kt new file mode 100644 index 0000000..2931b05 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/EpgShortResponse.kt @@ -0,0 +1,8 @@ +package ma.tkgraph.xtreamtv.data.model + +import com.google.gson.annotations.SerializedName + +data class EpgShortResponse( + @SerializedName("epg_listings") + val listings: List? = emptyList() +) diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt new file mode 100644 index 0000000..81599ce --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveCategoryDto.kt @@ -0,0 +1,14 @@ +package ma.tkgraph.xtreamtv.data.model + +import com.google.gson.annotations.SerializedName + +data class LiveCategoryDto( + @SerializedName("category_id") + val categoryId: String, + + @SerializedName("category_name") + val categoryName: String? = null, + + @SerializedName("parent_id") + val parentId: String? = null +) diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveStreamDto.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveStreamDto.kt new file mode 100644 index 0000000..006741d --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/LiveStreamDto.kt @@ -0,0 +1,38 @@ +package ma.tkgraph.xtreamtv.data.model + +import com.google.gson.annotations.SerializedName + +data class LiveStreamDto( + @SerializedName("num") + val number: Int? = null, + + @SerializedName("name") + val name: String? = null, + + @SerializedName("stream_type") + val streamType: String? = null, + + @SerializedName("stream_id") + val streamId: String, + + @SerializedName("stream_icon") + val streamIcon: String? = null, + + @SerializedName("epg_channel_id") + val epgChannelId: String? = null, + + @SerializedName("added") + val added: String? = null, + + @SerializedName("category_id") + val categoryId: String? = null, + + @SerializedName("custom_sid") + val customSid: String? = null, + + @SerializedName("tv_archive") + val tvArchive: Int? = null, + + @SerializedName("direct_source") + val directSource: String? = null +) diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/SeriesDto.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/SeriesDto.kt new file mode 100644 index 0000000..3a102b4 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/SeriesDto.kt @@ -0,0 +1,46 @@ +package ma.tkgraph.xtreamtv.data.model + +import com.google.gson.annotations.SerializedName + +data class SeriesDto( + @SerializedName("num") + val number: Int? = null, + + @SerializedName("name") + val name: String? = null, + + @SerializedName("series_id") + val seriesId: String, + + @SerializedName("cover") + val cover: String? = null, + + @SerializedName("plot") + val plot: String? = null, + + @SerializedName("cast") + val cast: String? = null, + + @SerializedName("director") + val director: String? = null, + + @SerializedName("genre") + val genre: String? = null, + + @SerializedName("releaseDate") + val releaseDate: String? = null, + + @SerializedName("last_modified") + val lastModified: String? = null, + + @SerializedName("rating") + val rating: String? = null, + + @SerializedName("rating_5based") + val ratingFiveBased: Float? = null, + + @SerializedName("category_id") + val categoryId: String? = null +) { + fun titleText(): String = name.orEmpty().ifBlank { "Série $seriesId" } +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/SeriesInfoResponse.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/SeriesInfoResponse.kt new file mode 100644 index 0000000..03779db --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/SeriesInfoResponse.kt @@ -0,0 +1,121 @@ +package ma.tkgraph.xtreamtv.data.model + +import com.google.gson.annotations.SerializedName + +data class SeriesInfoResponse( + @SerializedName("seasons") + val seasons: List? = null, + + @SerializedName("info") + val info: SeriesDto? = null, + + @SerializedName("episodes") + val episodes: Map>? = null +) { + fun allEpisodes(): List { + return episodes.orEmpty() + .flatMap { (seasonKey, episodeList) -> + episodeList.map { episode -> + SeriesEpisodeItem( + seasonKey = seasonKey, + episode = episode + ) + } + } + .sortedWith( + compareBy { it.seasonNumber() ?: Int.MAX_VALUE } + .thenBy { it.episode.episodeNum ?: Int.MAX_VALUE } + .thenBy { it.episode.title.orEmpty() } + ) + } +} + +data class SeriesSeasonDto( + @SerializedName("air_date") + val airDate: String? = null, + + @SerializedName("episode_count") + val episodeCount: Int? = null, + + @SerializedName("id") + val id: Int? = null, + + @SerializedName("name") + val name: String? = null, + + @SerializedName("overview") + val overview: String? = null, + + @SerializedName("season_number") + val seasonNumber: Int? = null +) + +data class SeriesEpisodeDto( + @SerializedName("id") + val id: String? = null, + + @SerializedName("episode_num") + val episodeNum: Int? = null, + + @SerializedName(value = "title", alternate = ["name", "episode_name"]) + val title: String? = null, + + @SerializedName(value = "container_extension", alternate = ["containerExtension", "extension"]) + val containerExtension: String? = null, + + @SerializedName("info") + val info: SeriesEpisodeInfoDto? = null, + + @SerializedName("custom_sid") + val customSid: String? = null, + + @SerializedName("added") + val added: String? = null +) { + fun titleText(): String { + val cleanTitle = title + .orEmpty() + .trim() + .takeIf { it.isNotBlank() && it != "." && it != "-" && it != "..." } + + return cleanTitle ?: episodeNum?.let { "Épisode $it" } ?: "Épisode" + } + + fun extensionText(): String { + return containerExtension + .orEmpty() + .trim() + .trim('.') + .takeIf { it.isNotBlank() && it != "-" } + ?: "mp4" + } +} + +data class SeriesEpisodeInfoDto( + @SerializedName("movie_image") + val movieImage: String? = null, + + @SerializedName("plot") + val plot: String? = null, + + @SerializedName("duration_secs") + val durationSeconds: Int? = null, + + @SerializedName("duration") + val duration: String? = null, + + @SerializedName("releasedate") + val releaseDate: String? = null, + + @SerializedName("rating") + val rating: String? = null +) + +data class SeriesEpisodeItem( + val seasonKey: String, + val episode: SeriesEpisodeDto +) { + fun seasonNumber(): Int? = seasonKey.toIntOrNull() + + fun seasonText(): String = seasonNumber()?.let { "Saison $it" } ?: "Saison $seasonKey" +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/VodStreamDto.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/VodStreamDto.kt new file mode 100644 index 0000000..73312dc --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/VodStreamDto.kt @@ -0,0 +1,45 @@ +package ma.tkgraph.xtreamtv.data.model + +import com.google.gson.annotations.SerializedName + +data class VodStreamDto( + @SerializedName("num") + val number: Int? = null, + + @SerializedName("name") + val name: String? = null, + + @SerializedName("stream_type") + val streamType: String? = null, + + @SerializedName("stream_id") + val streamId: String, + + @SerializedName("stream_icon") + val streamIcon: String? = null, + + @SerializedName("rating") + val rating: String? = null, + + @SerializedName("rating_5based") + val ratingFiveBased: Float? = null, + + @SerializedName("added") + val added: String? = null, + + @SerializedName("category_id") + val categoryId: String? = null, + + @SerializedName("container_extension") + val containerExtension: String? = null, + + @SerializedName("custom_sid") + val customSid: String? = null, + + @SerializedName("direct_source") + val directSource: String? = null +) { + fun titleText(): String = name.orEmpty().ifBlank { "VOD $streamId" } + + fun extensionText(): String = containerExtension.orEmpty().ifBlank { "mp4" } +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamAccountResponse.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamAccountResponse.kt new file mode 100644 index 0000000..50643a0 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamAccountResponse.kt @@ -0,0 +1,60 @@ +package ma.tkgraph.xtreamtv.data.model + +import com.google.gson.annotations.SerializedName + +data class XtreamAccountResponse( + @SerializedName("user_info") + val userInfo: XtreamUserInfo? = null, + + @SerializedName("server_info") + val serverInfo: XtreamServerInfo? = null +) + +data class XtreamUserInfo( + @SerializedName("username") + val username: String? = null, + + @SerializedName("password") + val password: String? = null, + + @SerializedName("message") + val message: String? = null, + + @SerializedName("auth") + val auth: String? = null, + + @SerializedName("status") + val status: String? = null, + + @SerializedName("exp_date") + val expirationDate: String? = null, + + @SerializedName("active_cons") + val activeConnections: String? = null, + + @SerializedName("max_connections") + val maxConnections: String? = null +) + +data class XtreamServerInfo( + @SerializedName("url") + val url: String? = null, + + @SerializedName("port") + val port: String? = null, + + @SerializedName("https_port") + val httpsPort: String? = null, + + @SerializedName("server_protocol") + val serverProtocol: String? = null, + + @SerializedName("timezone") + val timezone: String? = null, + + @SerializedName("timestamp_now") + val timestampNow: Long? = null, + + @SerializedName("time_now") + val timeNow: String? = null +) diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamConfig.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamConfig.kt new file mode 100644 index 0000000..ee31f7c --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/model/XtreamConfig.kt @@ -0,0 +1,7 @@ +package ma.tkgraph.xtreamtv.data.model + +data class XtreamConfig( + val serverUrl: String, + val username: String, + val password: String +) diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt new file mode 100644 index 0000000..e78b330 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApi.kt @@ -0,0 +1,87 @@ +package ma.tkgraph.xtreamtv.data.network + +import ma.tkgraph.xtreamtv.data.model.EpgFullResponse +import ma.tkgraph.xtreamtv.data.model.EpgShortResponse +import ma.tkgraph.xtreamtv.data.model.LiveCategoryDto +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.data.model.SeriesDto +import ma.tkgraph.xtreamtv.data.model.SeriesInfoResponse +import ma.tkgraph.xtreamtv.data.model.VodStreamDto +import ma.tkgraph.xtreamtv.data.model.XtreamAccountResponse +import retrofit2.http.GET +import retrofit2.http.Query + +interface XtreamApi { + @GET("player_api.php") + suspend fun getAccountInfo( + @Query("username") username: String, + @Query("password") password: String + ): XtreamAccountResponse + + @GET("player_api.php") + suspend fun getLiveStreams( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_live_streams" + ): List + + @GET("player_api.php") + suspend fun getLiveCategories( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_live_categories" + ): List + + @GET("player_api.php") + suspend fun getVodStreams( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_vod_streams" + ): List + + @GET("player_api.php") + suspend fun getVodCategories( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_vod_categories" + ): List + + @GET("player_api.php") + suspend fun getSeries( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_series" + ): List + + @GET("player_api.php") + suspend fun getSeriesCategories( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_series_categories" + ): List + + @GET("player_api.php") + suspend fun getSeriesInfo( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_series_info", + @Query("series_id") seriesId: String + ): SeriesInfoResponse + + @GET("player_api.php") + suspend fun getShortEpg( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_short_epg", + @Query("stream_id") streamId: String, + @Query("limit") limit: Int = 8 + ): EpgShortResponse + + @GET("player_api.php") + suspend fun getFullEpg( + @Query("username") username: String, + @Query("password") password: String, + @Query("action") action: String = "get_simple_data_table", + @Query("stream_id") streamId: String + ): EpgFullResponse +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApiFactory.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApiFactory.kt new file mode 100644 index 0000000..0485093 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/network/XtreamApiFactory.kt @@ -0,0 +1,24 @@ +package ma.tkgraph.xtreamtv.data.network + +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory + +object XtreamApiFactory { + fun create(serverUrl: String): XtreamApi { + return Retrofit.Builder() + .baseUrl(normalizeBaseUrl(serverUrl)) + .addConverterFactory(GsonConverterFactory.create()) + .build() + .create(XtreamApi::class.java) + } + + private fun normalizeBaseUrl(rawUrl: String): String { + val trimmed = rawUrl.trim() + val withProtocol = when { + trimmed.startsWith("http://", ignoreCase = true) -> trimmed + trimmed.startsWith("https://", ignoreCase = true) -> trimmed + else -> "http://$trimmed" + } + return withProtocol.trimEnd('/') + "/" + } +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt new file mode 100644 index 0000000..d518129 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/repository/XtreamRepository.kt @@ -0,0 +1,82 @@ +package ma.tkgraph.xtreamtv.data.repository + +import ma.tkgraph.xtreamtv.data.model.EpgProgramDto +import ma.tkgraph.xtreamtv.data.model.LiveCategoryDto +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.data.model.SeriesDto +import ma.tkgraph.xtreamtv.data.model.SeriesInfoResponse +import ma.tkgraph.xtreamtv.data.model.VodStreamDto +import ma.tkgraph.xtreamtv.data.model.XtreamAccountResponse +import ma.tkgraph.xtreamtv.data.network.XtreamApi + +class XtreamRepository( + private val api: XtreamApi +) { + suspend fun checkAccount(username: String, password: String): XtreamAccountResponse { + return api.getAccountInfo(username = username, password = password) + } + + suspend fun loadLiveStreams(username: String, password: String): List { + return api.getLiveStreams(username = username, password = password) + } + + suspend fun loadLiveCategories(username: String, password: String): List { + return api.getLiveCategories(username = username, password = password) + } + + suspend fun loadVodStreams(username: String, password: String): List { + return api.getVodStreams(username = username, password = password) + } + + suspend fun loadVodCategories(username: String, password: String): List { + return api.getVodCategories(username = username, password = password) + } + + suspend fun loadSeries(username: String, password: String): List { + return api.getSeries(username = username, password = password) + } + + suspend fun loadSeriesCategories(username: String, password: String): List { + return api.getSeriesCategories(username = username, password = password) + } + + suspend fun loadSeriesInfo( + username: String, + password: String, + seriesId: String + ): SeriesInfoResponse { + return api.getSeriesInfo( + username = username, + password = password, + seriesId = seriesId + ) + } + + suspend fun loadShortEpg( + username: String, + password: String, + streamId: String, + limit: Int = 8 + ): List { + return api.getShortEpg( + username = username, + password = password, + streamId = streamId, + limit = limit + ).listings.orEmpty() + .sortedWith(compareBy { it.startMillis() ?: Long.MAX_VALUE }) + } + + suspend fun loadFullEpg( + username: String, + password: String, + streamId: String + ): List { + return api.getFullEpg( + username = username, + password = password, + streamId = streamId + ).listings.orEmpty() + .sortedWith(compareBy { it.startMillis() ?: Long.MAX_VALUE }) + } +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt b/app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt new file mode 100644 index 0000000..d4e184c --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/data/storage/ConfigStorage.kt @@ -0,0 +1,139 @@ +package ma.tkgraph.xtreamtv.data.storage + +import android.content.Context +import ma.tkgraph.xtreamtv.data.model.XtreamConfig + +class ConfigStorage(context: Context) { + + private val preferences = context.applicationContext.getSharedPreferences( + PREFERENCES_NAME, + Context.MODE_PRIVATE + ) + + fun save(config: XtreamConfig) { + preferences.edit() + .putString(KEY_SERVER_URL, config.serverUrl.trim()) + .putString(KEY_USERNAME, config.username.trim()) + .putString(KEY_PASSWORD, config.password.trim()) + .apply() + } + + fun load(): XtreamConfig? { + val serverUrl = preferences.getString(KEY_SERVER_URL, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + ?: return null + + val username = preferences.getString(KEY_USERNAME, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + ?: return null + + val password = preferences.getString(KEY_PASSWORD, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + ?: return null + + return XtreamConfig( + serverUrl = serverUrl, + username = username, + password = password + ) + } + + fun clear() { + preferences.edit() + .remove(KEY_SERVER_URL) + .remove(KEY_USERNAME) + .remove(KEY_PASSWORD) + .apply() + } + + fun loadFavoriteStreamIds(): Set = loadStringSet(KEY_FAVORITE_STREAM_IDS) + + fun toggleFavorite(streamId: String): Set { + return toggleStringSetValue( + key = KEY_FAVORITE_STREAM_IDS, + value = streamId + ) + } + + fun loadFavoriteVodIds(): Set = loadStringSet(KEY_FAVORITE_VOD_IDS) + + fun toggleFavoriteVod(vodId: String): Set { + return toggleStringSetValue( + key = KEY_FAVORITE_VOD_IDS, + value = vodId + ) + } + + fun loadFavoriteSeriesIds(): Set = loadStringSet(KEY_FAVORITE_SERIES_IDS) + + fun toggleFavoriteSeries(seriesId: String): Set { + return toggleStringSetValue( + key = KEY_FAVORITE_SERIES_IDS, + value = seriesId + ) + } + + fun savePinnedStreamId(streamId: String) { + val cleanedStreamId = streamId.trim() + if (cleanedStreamId.isBlank()) return + + preferences.edit() + .putString(KEY_PINNED_STREAM_ID, cleanedStreamId) + .apply() + } + + fun loadPinnedStreamId(): String? { + return preferences.getString(KEY_PINNED_STREAM_ID, null) + ?.trim() + ?.takeIf { it.isNotBlank() } + } + + fun clearPinnedStreamId() { + preferences.edit() + .remove(KEY_PINNED_STREAM_ID) + .apply() + } + + private fun loadStringSet(key: String): Set { + return preferences.getStringSet(key, emptySet()) + ?.map { it.trim() } + ?.filter { it.isNotBlank() } + ?.toSet() + .orEmpty() + } + + private fun toggleStringSetValue( + key: String, + value: String + ): Set { + val cleanedValue = value.trim() + if (cleanedValue.isBlank()) return loadStringSet(key) + + val items = loadStringSet(key).toMutableSet() + if (items.contains(cleanedValue)) { + items.remove(cleanedValue) + } else { + items.add(cleanedValue) + } + + preferences.edit() + .putStringSet(key, items) + .apply() + + return items.toSet() + } + + companion object { + private const val PREFERENCES_NAME = "xtream_config" + private const val KEY_SERVER_URL = "server_url" + private const val KEY_USERNAME = "username" + private const val KEY_PASSWORD = "password" + private const val KEY_FAVORITE_STREAM_IDS = "favorite_stream_ids" + private const val KEY_FAVORITE_VOD_IDS = "favorite_vod_ids" + private const val KEY_FAVORITE_SERIES_IDS = "favorite_series_ids" + private const val KEY_PINNED_STREAM_ID = "pinned_stream_id" + } +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/ui/components/ChannelLogo.kt b/app/src/main/java/ma/tkgraph/xtreamtv/ui/components/ChannelLogo.kt new file mode 100644 index 0000000..99e0e2d --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/ui/components/ChannelLogo.kt @@ -0,0 +1,106 @@ +package ma.tkgraph.xtreamtv.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import coil3.compose.AsyncImage +import coil3.request.ImageRequest +import coil3.request.crossfade + +@Composable +fun ChannelLogo( + logoUrl: String?, + channelName: String?, + modifier: Modifier = Modifier +) { + val cleanedLogoUrl = logoUrl + ?.trim() + ?.takeIf { it.isNotBlank() } + + var imageFailed by remember(cleanedLogoUrl) { mutableStateOf(false) } + val context = LocalContext.current + + Box( + modifier = modifier + .clip(RoundedCornerShape(12.dp)) + .background( + Brush.verticalGradient( + colors = listOf( + Color.White.copy(alpha = 0.16f), + Color.Black.copy(alpha = 0.26f) + ) + ) + ) + .border( + width = 1.dp, + color = Color.White.copy(alpha = 0.12f), + shape = RoundedCornerShape(12.dp) + ) + .padding(3.dp), + contentAlignment = Alignment.Center + ) { + if (cleanedLogoUrl != null && !imageFailed) { + AsyncImage( + model = ImageRequest.Builder(context) + .data(cleanedLogoUrl) + .crossfade(false) + .build(), + contentDescription = channelName, + contentScale = ContentScale.Fit, + modifier = Modifier.fillMaxSize(), + onError = { imageFailed = true } + ) + } else { + Text( + text = channelInitials(channelName), + color = Color.White.copy(alpha = 0.88f), + fontSize = 11.sp, + lineHeight = 12.sp, + fontWeight = FontWeight.Black, + textAlign = TextAlign.Center, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + } +} + +private fun channelInitials(channelName: String?): String { + val cleanName = channelName + .orEmpty() + .replace(Regex("[^A-Za-z0-9À-ÿ ]"), " ") + .trim() + + if (cleanName.isBlank()) return "TV" + + val words = cleanName + .split(Regex("\\s+")) + .filter { it.isNotBlank() } + + return when { + words.size >= 2 -> "${words[0].first()}${words[1].first()}".uppercase() + cleanName.length >= 2 -> cleanName.take(2).uppercase() + else -> cleanName.uppercase() + } +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt new file mode 100644 index 0000000..8d15d2b --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/HomeScreen.kt @@ -0,0 +1,1070 @@ +package ma.tkgraph.xtreamtv.ui.screens + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.focusable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.LazyListState +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.focus.onFocusChanged +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import kotlinx.coroutines.delay +import ma.tkgraph.xtreamtv.data.model.EpgProgramDto +import ma.tkgraph.xtreamtv.data.model.LiveCategoryDto +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.ui.components.ChannelLogo +import ma.tkgraph.xtreamtv.util.categorySortNormalizedName +import ma.tkgraph.xtreamtv.util.categorySortWeight + +private const val FAVORITES_CATEGORY_ID = "__favorites__" +private const val UNCATEGORIZED_CATEGORY_ID = "__uncategorized__" + +@Composable +fun HomeScreen( + streams: List, + categories: List, + epgByStreamId: Map>, + loadingEpgStreamIds: Set, + selectedCategoryId: String?, + selectedStreamId: String?, + favoriteStreamIds: Set, + pinnedStreamId: String?, + categorySearchQuery: String, + streamSearchQuery: String, + focusSelectedStreamRequest: Int, + onCategorySearchChanged: (String) -> Unit, + onStreamSearchChanged: (String) -> Unit, + onCategorySelected: (String?) -> Unit, + onStreamSelected: (LiveStreamDto) -> Unit, + onRequestEpg: (LiveStreamDto) -> Unit, + onOpenReplayGuide: (LiveStreamDto) -> Unit, + onOpenProgramGuide: () -> Unit, + onOpenVod: () -> Unit, + onOpenSeries: () -> Unit, + onToggleFavorite: (LiveStreamDto) -> Unit, + onPinStream: (LiveStreamDto) -> Unit, + onClearPinned: () -> Unit, + onLogout: () -> Unit +) { + val categoryFilters = remember(streams, categories, favoriteStreamIds) { + buildCategoryFilters( + streams = streams, + categories = categories, + favoriteStreamIds = favoriteStreamIds + ) + } + + val visibleCategoryFilters = remember(categoryFilters, categorySearchQuery) { + val query = categorySearchQuery.trim() + if (query.isBlank()) { + categoryFilters + } else { + categoryFilters.filter { category -> + category.name.contains(query, ignoreCase = true) || + category.id.orEmpty().contains(query, ignoreCase = true) + } + } + } + + val filteredStreams = remember(streams, selectedCategoryId, streamSearchQuery, favoriteStreamIds) { + filterStreams( + streams = streams, + selectedCategoryId = selectedCategoryId, + streamSearchQuery = streamSearchQuery, + favoriteStreamIds = favoriteStreamIds + ) + } + + val selectedCategoryName = categoryFilters + .firstOrNull { it.id == selectedCategoryId } + ?.name + ?: "Toutes" + + val pinnedStream = remember(streams, pinnedStreamId) { + pinnedStreamId?.let { id -> streams.firstOrNull { it.streamId == id } } + } + + val streamListState = rememberLazyListState() + val selectedStreamFocusRequester = remember { FocusRequester() } + var focusedStreamId by remember { mutableStateOf(selectedStreamId) } + + LaunchedEffect(filteredStreams, selectedStreamId) { + scrollToSelectedStream( + listState = streamListState, + streams = filteredStreams, + selectedStreamId = selectedStreamId + ) + } + + LaunchedEffect(focusSelectedStreamRequest, selectedStreamId) { + if (focusSelectedStreamRequest > 0 && !selectedStreamId.isNullOrBlank() && filteredStreams.any { it.streamId == selectedStreamId }) { + delay(160) + runCatching { selectedStreamFocusRequester.requestFocus() } + } + } + + LaunchedEffect(filteredStreams, selectedCategoryId, streamSearchQuery) { + if (focusedStreamId != null && filteredStreams.none { it.streamId == focusedStreamId }) { + focusedStreamId = selectedStreamId?.takeIf { id -> filteredStreams.any { it.streamId == id } } + ?: filteredStreams.firstOrNull()?.streamId + } + } + + val actionStream = remember(filteredStreams, focusedStreamId, selectedStreamId) { + focusedStreamId?.let { id -> filteredStreams.firstOrNull { it.streamId == id } } + ?: selectedStreamId?.let { id -> filteredStreams.firstOrNull { it.streamId == id } } + ?: filteredStreams.firstOrNull() + } + + LaunchedEffect(actionStream?.streamId) { + actionStream?.let(onRequestEpg) + } + + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.verticalGradient( + colors = listOf( + Color(0xFF020617), + Color(0xFF071B35), + Color(0xFF07111F) + ) + ) + ) + ) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = 28.dp, vertical = 18.dp), + verticalArrangement = Arrangement.spacedBy(14.dp) + ) { + HeaderSection( + totalStreams = streams.size, + visibleStreams = filteredStreams.size, + selectedCategoryName = selectedCategoryName, + pinnedStreamName = pinnedStream?.name, + onOpenProgramGuide = onOpenProgramGuide, + onOpenVod = onOpenVod, + onOpenSeries = onOpenSeries, + onClearPinned = onClearPinned, + onLogout = onLogout + ) + + Row( + modifier = Modifier.fillMaxSize(), + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + CategoryPanel( + modifier = Modifier + .width(310.dp) + .fillMaxHeight(), + categorySearchQuery = categorySearchQuery, + onCategorySearchChanged = onCategorySearchChanged, + categories = visibleCategoryFilters, + selectedCategoryId = selectedCategoryId, + onCategorySelected = onCategorySelected + ) + + StreamPanel( + modifier = Modifier + .weight(1f) + .fillMaxHeight(), + selectedCategoryName = selectedCategoryName, + streamSearchQuery = streamSearchQuery, + onStreamSearchChanged = onStreamSearchChanged, + streams = filteredStreams, + actionStream = actionStream, + epgByStreamId = epgByStreamId, + loadingEpgStreamIds = loadingEpgStreamIds, + listState = streamListState, + selectedStreamId = selectedStreamId, + favoriteStreamIds = favoriteStreamIds, + pinnedStreamId = pinnedStreamId, + selectedStreamFocusRequester = selectedStreamFocusRequester, + onStreamFocused = { stream -> + focusedStreamId = stream.streamId + onRequestEpg(stream) + }, + onStreamSelected = onStreamSelected, + onRequestEpg = onRequestEpg, + onOpenReplayGuide = onOpenReplayGuide, + onToggleFavorite = onToggleFavorite, + onPinStream = onPinStream + ) + } + } + } +} + +@Composable +private fun HeaderSection( + totalStreams: Int, + visibleStreams: Int, + selectedCategoryName: String, + pinnedStreamName: String?, + onOpenProgramGuide: () -> Unit, + onOpenVod: () -> Unit, + onOpenSeries: () -> Unit, + onClearPinned: () -> Unit, + onLogout: () -> Unit +) { + Surface( + modifier = Modifier.fillMaxWidth(), + color = Color.White.copy(alpha = 0.055f), + shape = RoundedCornerShape(22.dp), + tonalElevation = 0.dp + ) { + Row( + modifier = Modifier.padding(horizontal = 22.dp, vertical = 14.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = "Xtream TV Player", + fontSize = 26.sp, + lineHeight = 30.sp, + fontWeight = FontWeight.Black, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Spacer(modifier = Modifier.height(3.dp)) + + Text( + text = "$visibleStreams / $totalStreams chaînes • $selectedCategoryName", + fontSize = 14.sp, + lineHeight = 18.sp, + color = Color.White.copy(alpha = 0.70f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + pinnedStreamName?.let { name -> + Text( + text = "Épinglée : $name", + fontSize = 13.sp, + lineHeight = 17.sp, + color = Color(0xFF93C5FD), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + } + + CompactPrimaryButton( + text = "VOD", + width = 78.dp, + onClick = onOpenVod + ) + + CompactPrimaryButton( + text = "Séries", + width = 88.dp, + onClick = onOpenSeries + ) + + CompactPrimaryButton( + text = "Guide TV", + width = 104.dp, + onClick = onOpenProgramGuide + ) + + pinnedStreamName?.let { + CompactOutlinedButton( + text = "Retirer épingle", + width = 142.dp, + onClick = onClearPinned + ) + } + + CompactOutlinedButton( + text = "Déconnexion", + width = 124.dp, + onClick = onLogout + ) + } + } +} + +@Composable +private fun CategoryPanel( + modifier: Modifier, + categorySearchQuery: String, + onCategorySearchChanged: (String) -> Unit, + categories: List, + selectedCategoryId: String?, + onCategorySelected: (String?) -> Unit +) { + Surface( + modifier = modifier, + color = Color.White.copy(alpha = 0.065f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Text( + text = "Catégories", + fontSize = 20.sp, + lineHeight = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + + DarkSearchField( + value = categorySearchQuery, + onValueChange = onCategorySearchChanged, + label = "Rechercher catégorie", + modifier = Modifier.fillMaxWidth() + ) + + LazyColumn( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(7.dp), + contentPadding = PaddingValues(bottom = 14.dp) + ) { + items( + items = categories, + key = { it.id ?: "all" } + ) { category -> + CategoryRow( + category = category, + selected = category.id == selectedCategoryId, + onClick = { onCategorySelected(category.id) } + ) + } + } + } + } +} + +@Composable +private fun StreamPanel( + modifier: Modifier, + selectedCategoryName: String, + streamSearchQuery: String, + onStreamSearchChanged: (String) -> Unit, + streams: List, + actionStream: LiveStreamDto?, + epgByStreamId: Map>, + loadingEpgStreamIds: Set, + listState: LazyListState, + selectedStreamId: String?, + favoriteStreamIds: Set, + pinnedStreamId: String?, + selectedStreamFocusRequester: FocusRequester, + onStreamFocused: (LiveStreamDto) -> Unit, + onStreamSelected: (LiveStreamDto) -> Unit, + onRequestEpg: (LiveStreamDto) -> Unit, + onOpenReplayGuide: (LiveStreamDto) -> Unit, + onToggleFavorite: (LiveStreamDto) -> Unit, + onPinStream: (LiveStreamDto) -> Unit +) { + Surface( + modifier = modifier, + color = Color.White.copy(alpha = 0.045f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = selectedCategoryName, + fontSize = 22.sp, + lineHeight = 26.sp, + fontWeight = FontWeight.ExtraBold, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + } + + DarkSearchField( + value = streamSearchQuery, + onValueChange = onStreamSearchChanged, + label = "Rechercher chaîne", + modifier = Modifier.widthIn(min = 300.dp, max = 420.dp) + ) + } + + SelectedEpgStrip( + stream = actionStream, + programs = actionStream?.let { epgByStreamId[it.streamId] }.orEmpty(), + isLoading = actionStream?.streamId?.let { loadingEpgStreamIds.contains(it) } == true, + onOpenReplayGuide = { + actionStream?.let { onOpenReplayGuide(it) } + } + ) + + if (streams.isEmpty()) { + EmptyMessage( + text = "Aucune chaîne trouvée. Change la catégorie ou allège la recherche. Même les serveurs IPTV ont une limite, apparemment." + ) + } else { + LazyColumn( + modifier = Modifier.fillMaxSize(), + state = listState, + verticalArrangement = Arrangement.spacedBy(8.dp), + contentPadding = PaddingValues(bottom = 18.dp) + ) { + items( + items = streams, + key = { it.streamId } + ) { stream -> + StreamRow( + stream = stream, + selected = stream.streamId == selectedStreamId, + isFavorite = favoriteStreamIds.contains(stream.streamId), + isPinned = pinnedStreamId == stream.streamId, + epgPrograms = epgByStreamId[stream.streamId].orEmpty(), + isEpgLoading = loadingEpgStreamIds.contains(stream.streamId), + focusRequester = if (stream.streamId == selectedStreamId) selectedStreamFocusRequester else null, + onFocused = { + onStreamFocused(stream) + onRequestEpg(stream) + }, + onPlay = { onStreamSelected(stream) }, + onReplayGuide = { onOpenReplayGuide(stream) }, + onToggleFavorite = { onToggleFavorite(stream) }, + onPin = { onPinStream(stream) } + ) + } + } + } + } + } +} + +@Composable +private fun DarkSearchField( + value: String, + onValueChange: (String) -> Unit, + label: String, + modifier: Modifier = Modifier +) { + OutlinedTextField( + modifier = modifier.height(52.dp), + value = value, + onValueChange = onValueChange, + label = { + Text( + text = label, + color = Color.White.copy(alpha = 0.68f), + fontSize = 12.sp + ) + }, + singleLine = true, + textStyle = TextStyle( + color = Color.White, + fontSize = 15.sp, + lineHeight = 18.sp + ) + ) +} + +@Composable +private fun SelectedStreamInfo( + stream: LiveStreamDto?, + isFavorite: Boolean, + isPinned: Boolean +) { + val title = stream?.name.orEmpty().ifBlank { + stream?.let { "Chaîne ${it.streamId}" } ?: "Sélectionne une chaîne" + } + + val status = buildString { + append(stream?.let { "ID ${it.streamId} • Catégorie ${it.categoryId ?: "non classée"}" } + ?: "OK sur la ligne pour regarder. Droite pour atteindre ★ et Ép.") + if (isFavorite) append(" • Favori") + if (isPinned) append(" • Épinglée") + } + + Surface( + modifier = Modifier.fillMaxWidth(), + color = Color.Black.copy(alpha = 0.16f), + shape = RoundedCornerShape(16.dp) + ) { + Row( + modifier = Modifier.padding(horizontal = 13.dp, vertical = 8.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(10.dp) + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = title, + fontSize = 15.sp, + lineHeight = 18.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Text( + text = status, + fontSize = 11.sp, + lineHeight = 14.sp, + color = Color.White.copy(alpha = 0.58f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + Text( + text = "Actions ligne : Voir • ★ • Ép.", + fontSize = 11.sp, + lineHeight = 14.sp, + color = Color(0xFFBAE6FD).copy(alpha = 0.84f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + } +} + +@Composable +private fun SelectedEpgStrip( + stream: LiveStreamDto?, + programs: List, + isLoading: Boolean, + onOpenReplayGuide: () -> Unit +) { + val currentProgram = programs.firstOrNull { it.isNowPlaying() } ?: programs.firstOrNull() + val nextProgram = programs.dropWhile { it != currentProgram }.drop(1).firstOrNull() + val canReplay = stream?.tvArchive == 1 || currentProgram?.isReplayAvailable() == true + + Surface( + modifier = Modifier.fillMaxWidth(), + color = Color.Black.copy(alpha = 0.16f), + shape = RoundedCornerShape(16.dp) + ) { + Row( + modifier = Modifier.padding(horizontal = 13.dp, vertical = 8.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(10.dp) + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = when { + stream == null -> "Sélectionne une chaîne" + isLoading -> "Chargement EPG..." + currentProgram != null -> "Maintenant : ${currentProgram.timeRangeText()} • ${currentProgram.titleText()}" + else -> "EPG non disponible pour cette chaîne" + }, + fontSize = 13.sp, + lineHeight = 16.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Text( + text = nextProgram?.let { "Ensuite : ${it.timeRangeText()} • ${it.titleText()}" } + ?: "Replay : ouvre le guide complet puis choisis l’émission à revoir.", + fontSize = 11.sp, + lineHeight = 14.sp, + color = Color.White.copy(alpha = 0.58f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + CompactOutlinedButton( + text = "Guide", + width = 82.dp, + enabled = canReplay, + highlight = canReplay, + onClick = onOpenReplayGuide + ) + } + } +} + +@Composable +private fun CategoryRow( + category: CategoryFilter, + selected: Boolean, + onClick: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val shape = RoundedCornerShape(14.dp) + + Surface( + modifier = Modifier + .fillMaxWidth() + .onFocusChanged { focused = it.isFocused } + .border( + width = if (focused || selected) 2.dp else 1.dp, + color = when { + focused -> Color(0xFF22D3EE) + selected -> Color(0xFF38BDF8) + else -> Color.White.copy(alpha = 0.08f) + }, + shape = shape + ) + .clip(shape) + .clickable(onClick = onClick) + .focusable(), + color = when { + selected -> Color(0xFF0EA5E9).copy(alpha = 0.32f) + focused -> Color.White.copy(alpha = 0.12f) + else -> Color.White.copy(alpha = 0.045f) + }, + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 13.dp, vertical = 10.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + Text( + modifier = Modifier.weight(1f), + text = category.name, + fontSize = 14.sp, + lineHeight = 18.sp, + color = Color.White, + fontWeight = if (selected) FontWeight.Bold else FontWeight.SemiBold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Text( + text = category.count.toString(), + fontSize = 12.sp, + lineHeight = 14.sp, + color = Color.White.copy(alpha = 0.70f) + ) + } + } +} + +@Composable +private fun StreamRow( + stream: LiveStreamDto, + selected: Boolean, + isFavorite: Boolean, + isPinned: Boolean, + epgPrograms: List, + isEpgLoading: Boolean, + focusRequester: FocusRequester? = null, + onFocused: () -> Unit, + onPlay: () -> Unit, + onReplayGuide: () -> Unit, + onToggleFavorite: () -> Unit, + onPin: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val shape = RoundedCornerShape(14.dp) + val title = stream.name.orEmpty().ifBlank { "Chaîne ${stream.streamId}" } + val currentProgram = epgPrograms.firstOrNull { it.isNowPlaying() } ?: epgPrograms.firstOrNull() + val nextProgram = epgPrograms.dropWhile { it != currentProgram }.drop(1).firstOrNull() + val canReplay = stream.tvArchive == 1 || currentProgram?.isReplayAvailable() == true + + Surface( + modifier = Modifier + .fillMaxWidth() + .border( + width = if (focused || selected) 2.dp else 1.dp, + color = when { + focused -> Color(0xFF22D3EE) + selected -> Color(0xFF38BDF8) + else -> Color.White.copy(alpha = 0.075f) + }, + shape = shape + ), + color = when { + selected -> Color(0xFF1D4ED8).copy(alpha = 0.26f) + focused -> Color.White.copy(alpha = 0.115f) + else -> Color.White.copy(alpha = 0.047f) + }, + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 10.dp, vertical = 7.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(9.dp) + ) { + ChannelLogo( + logoUrl = stream.streamIcon, + channelName = title, + modifier = Modifier + .width(42.dp) + .height(42.dp) + ) + + Row( + modifier = Modifier + .weight(1f) + .clip(RoundedCornerShape(12.dp)) + .then(if (focusRequester != null) Modifier.focusRequester(focusRequester) else Modifier) + .onFocusChanged { state -> + focused = state.isFocused + if (state.isFocused) onFocused() + } + .clickable(onClick = onPlay) + .focusable() + .padding(horizontal = 8.dp, vertical = 4.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + Column( + modifier = Modifier.weight(1f), + verticalArrangement = Arrangement.spacedBy(2.dp) + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(7.dp) + ) { + Text( + modifier = Modifier.weight(1f), + text = title, + fontSize = 15.sp, + lineHeight = 18.sp, + color = Color.White, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + if (isFavorite) Tag(text = "★") + if (isPinned) Tag(text = "Ép.") + } + + Text( + text = buildString { + stream.number?.let { append("N° $it • ") } + append("ID ${stream.streamId}") + if (stream.tvArchive == 1) append(" • Replay") + }, + fontSize = 11.sp, + lineHeight = 14.sp, + color = Color.White.copy(alpha = 0.58f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Text( + text = when { + isEpgLoading -> "EPG : chargement..." + currentProgram != null -> "Maintenant : ${currentProgram.timeRangeText()} • ${currentProgram.titleText()}" + else -> "EPG indisponible" + }, + fontSize = 11.sp, + lineHeight = 14.sp, + color = Color(0xFFBAE6FD).copy(alpha = 0.78f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + if (nextProgram != null) { + Text( + text = "Ensuite : ${nextProgram.timeRangeText()} • ${nextProgram.titleText()}", + fontSize = 10.sp, + lineHeight = 13.sp, + color = Color.White.copy(alpha = 0.48f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + } + } + + CompactPrimaryButton( + text = "Voir", + width = 62.dp, + onClick = onPlay + ) + + CompactOutlinedButton( + text = "Guide", + width = 74.dp, + enabled = canReplay, + highlight = canReplay, + onClick = onReplayGuide + ) + + CompactOutlinedButton( + text = if (isFavorite) "★" else "☆", + width = 44.dp, + highlight = isFavorite, + onClick = onToggleFavorite + ) + + CompactOutlinedButton( + text = if (isPinned) "Ép." else "Pin", + width = 58.dp, + highlight = isPinned, + onClick = onPin + ) + } + } +} + +@Composable +private fun ChannelNumberBadge(number: Int?) { + Box( + modifier = Modifier + .width(44.dp) + .height(32.dp) + .clip(RoundedCornerShape(12.dp)) + .background(Color.Black.copy(alpha = 0.25f)), + contentAlignment = Alignment.Center + ) { + Text( + text = number?.toString() ?: "TV", + color = Color.White.copy(alpha = 0.84f), + fontSize = 12.sp, + lineHeight = 14.sp, + fontWeight = FontWeight.Bold, + maxLines = 1 + ) + } +} + +@Composable +private fun Tag(text: String) { + Surface( + color = Color(0xFF38BDF8).copy(alpha = 0.20f), + shape = RoundedCornerShape(999.dp) + ) { + Text( + modifier = Modifier.padding(horizontal = 8.dp, vertical = 3.dp), + text = text, + color = Color(0xFFBAE6FD), + fontSize = 11.sp, + lineHeight = 13.sp, + fontWeight = FontWeight.Bold, + maxLines = 1 + ) + } +} + +@Composable +private fun CompactPrimaryButton( + text: String, + width: androidx.compose.ui.unit.Dp, + enabled: Boolean = true, + onClick: () -> Unit +) { + Button( + modifier = Modifier + .width(width) + .height(36.dp), + enabled = enabled, + contentPadding = PaddingValues(horizontal = 10.dp, vertical = 0.dp), + onClick = onClick + ) { + Text( + text = text, + fontSize = 12.sp, + lineHeight = 15.sp, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } +} + +@Composable +private fun CompactOutlinedButton( + text: String, + width: androidx.compose.ui.unit.Dp, + enabled: Boolean = true, + highlight: Boolean = false, + onClick: () -> Unit +) { + OutlinedButton( + modifier = Modifier + .width(width) + .height(36.dp), + enabled = enabled, + contentPadding = PaddingValues(horizontal = 10.dp, vertical = 0.dp), + colors = ButtonDefaults.outlinedButtonColors( + contentColor = if (highlight) Color(0xFFFBBF24) else Color.White + ), + onClick = onClick + ) { + Text( + text = text, + fontSize = 12.sp, + lineHeight = 15.sp, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } +} + +@Composable +private fun EmptyMessage(text: String) { + Text( + modifier = Modifier.widthIn(max = 720.dp), + text = text, + color = Color.White.copy(alpha = 0.78f), + fontSize = 15.sp, + lineHeight = 20.sp + ) +} + +private suspend fun scrollToSelectedStream( + listState: LazyListState, + streams: List, + selectedStreamId: String? +) { + if (selectedStreamId.isNullOrBlank()) return + val index = streams.indexOfFirst { it.streamId == selectedStreamId } + if (index >= 0) { + listState.scrollToItem(index.coerceAtLeast(0)) + } +} + +private fun filterStreams( + streams: List, + selectedCategoryId: String?, + streamSearchQuery: String, + favoriteStreamIds: Set +): List { + val query = streamSearchQuery.trim() + + return streams + .asSequence() + .filter { stream -> + when (selectedCategoryId) { + null -> true + FAVORITES_CATEGORY_ID -> favoriteStreamIds.contains(stream.streamId) + UNCATEGORIZED_CATEGORY_ID -> stream.categoryId.isNullOrBlank() + else -> stream.categoryId == selectedCategoryId + } + } + .filter { stream -> + query.isBlank() || + stream.name.orEmpty().contains(query, ignoreCase = true) || + stream.streamId.contains(query, ignoreCase = true) || + stream.categoryId.orEmpty().contains(query, ignoreCase = true) + } + .toList() +} + +private fun buildCategoryFilters( + streams: List, + categories: List, + favoriteStreamIds: Set +): List { + val categoryNamesById = categories + .filter { it.categoryId.isNotBlank() } + .associate { category -> + category.categoryId to category.categoryName.orEmpty().ifBlank { + "Catégorie ${category.categoryId}" + } + } + + val categoryCounts = streams.groupingBy { stream -> + stream.categoryId?.takeIf { it.isNotBlank() } ?: UNCATEGORIZED_CATEGORY_ID + }.eachCount() + + val usedCategoryIds = categoryCounts.keys + .filter { it != UNCATEGORIZED_CATEGORY_ID } + .sortedWith( + compareBy( + { id -> categorySortWeight(categoryNamesById[id] ?: "Catégorie $id") }, + { id -> categorySortNormalizedName(categoryNamesById[id] ?: "Catégorie $id") } + ) + ) + + val filters = mutableListOf( + CategoryFilter( + id = null, + name = "Toutes les chaînes", + count = streams.size + ), + CategoryFilter( + id = FAVORITES_CATEGORY_ID, + name = "Favoris", + count = streams.count { favoriteStreamIds.contains(it.streamId) } + ) + ) + + usedCategoryIds.forEach { id -> + filters.add( + CategoryFilter( + id = id, + name = categoryNamesById[id] ?: "Catégorie $id", + count = categoryCounts[id] ?: 0 + ) + ) + } + + val uncategorizedCount = categoryCounts[UNCATEGORIZED_CATEGORY_ID] ?: 0 + if (uncategorizedCount > 0) { + filters.add( + CategoryFilter( + id = UNCATEGORIZED_CATEGORY_ID, + name = "Non classées", + count = uncategorizedCount + ) + ) + } + + return filters +} + +private data class CategoryFilter( + val id: String?, + val name: String, + val count: Int +) diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/LoginScreen.kt b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/LoginScreen.kt new file mode 100644 index 0000000..43ce359 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/LoginScreen.kt @@ -0,0 +1,188 @@ +package ma.tkgraph.xtreamtv.ui.screens + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.widthIn +import androidx.compose.material3.Button +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.launch +import ma.tkgraph.xtreamtv.data.model.LiveCategoryDto +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.data.model.XtreamConfig +import ma.tkgraph.xtreamtv.data.network.XtreamApiFactory +import ma.tkgraph.xtreamtv.data.repository.XtreamRepository + +@Composable +fun LoginScreen( + initialConfig: XtreamConfig? = null, + initialErrorMessage: String? = null, + onLoginSuccess: (XtreamConfig, List, List) -> Unit +) { + var serverUrl by remember(initialConfig?.serverUrl) { + mutableStateOf(initialConfig?.serverUrl.orEmpty()) + } + + var username by remember(initialConfig?.username) { + mutableStateOf(initialConfig?.username.orEmpty()) + } + + var password by remember(initialConfig?.password) { + mutableStateOf(initialConfig?.password.orEmpty()) + } + + var isLoading by remember { mutableStateOf(false) } + + var errorMessage by remember(initialErrorMessage) { + mutableStateOf(initialErrorMessage) + } + + val scope = rememberCoroutineScope() + + Box( + modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.background) + .padding(48.dp), + contentAlignment = Alignment.Center + ) { + Column( + modifier = Modifier.widthIn(max = 720.dp), + verticalArrangement = Arrangement.spacedBy(18.dp), + horizontalAlignment = Alignment.Start + ) { + Text( + text = "Xtream TV Player", + style = MaterialTheme.typography.headlineLarge, + color = MaterialTheme.colorScheme.onBackground + ) + + Text( + text = "Connecte ton accès Xtream compatible pour charger les chaînes Live et les catégories.", + style = MaterialTheme.typography.bodyLarge, + color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f) + ) + + Spacer(modifier = Modifier.height(8.dp)) + + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = serverUrl, + onValueChange = { serverUrl = it }, + label = { Text("Serveur : http://exemple.com:8080") }, + singleLine = true + ) + + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = username, + onValueChange = { username = it }, + label = { Text("Utilisateur") }, + singleLine = true + ) + + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = password, + onValueChange = { password = it }, + label = { Text("Mot de passe") }, + singleLine = true, + visualTransformation = PasswordVisualTransformation() + ) + + Button( + enabled = !isLoading && + serverUrl.isNotBlank() && + username.isNotBlank() && + password.isNotBlank(), + onClick = { + scope.launch { + isLoading = true + errorMessage = null + + runCatching { + val config = XtreamConfig( + serverUrl = serverUrl.trim(), + username = username.trim(), + password = password.trim() + ) + + val repository = XtreamRepository( + XtreamApiFactory.create(config.serverUrl) + ) + + val account = repository.checkAccount( + username = config.username, + password = config.password + ) + + val isAuthorized = account.userInfo?.auth == "1" + val isActive = account.userInfo?.status.equals( + other = "Active", + ignoreCase = true + ) + + if (!isAuthorized || !isActive) { + error("Compte non autorisé ou abonnement inactif.") + } + + val categories = runCatching { + repository.loadLiveCategories( + username = config.username, + password = config.password + ) + }.getOrDefault(emptyList()) + + val streams = repository.loadLiveStreams( + username = config.username, + password = config.password + ) + + onLoginSuccess(config, streams, categories) + }.onFailure { throwable -> + errorMessage = throwable.message ?: "Connexion impossible au serveur." + } + + isLoading = false + } + } + ) { + if (isLoading) { + CircularProgressIndicator( + modifier = Modifier.height(22.dp), + strokeWidth = 2.dp + ) + } else { + Text("Se connecter") + } + } + + errorMessage?.let { message -> + Text( + text = message, + color = MaterialTheme.colorScheme.error, + style = MaterialTheme.typography.bodyMedium + ) + } + } + } +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt new file mode 100644 index 0000000..1ebbdf8 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/PlayerScreen.kt @@ -0,0 +1,368 @@ +package ma.tkgraph.xtreamtv.ui.screens + +import android.view.KeyEvent as AndroidKeyEvent +import androidx.activity.compose.BackHandler +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.focusable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.input.key.Key +import androidx.compose.ui.input.key.KeyEventType +import androidx.compose.ui.input.key.key +import androidx.compose.ui.input.key.onPreviewKeyEvent +import androidx.compose.ui.input.key.type +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.viewinterop.AndroidView +import androidx.media3.common.MediaItem +import androidx.media3.common.PlaybackException +import androidx.media3.common.Player +import androidx.media3.common.VideoSize +import androidx.media3.exoplayer.ExoPlayer +import androidx.media3.ui.AspectRatioFrameLayout +import androidx.media3.ui.PlayerView +import kotlinx.coroutines.delay +import ma.tkgraph.xtreamtv.ui.components.ChannelLogo + +@Composable +fun PlayerScreen( + title: String, + logoUrl: String?, + streamUrl: String, + isFavorite: Boolean, + isPinned: Boolean, + isReplay: Boolean, + programTitle: String?, + programTime: String?, + enableZapping: Boolean = true, + onBack: () -> Unit, + onPrevious: () -> Unit, + onNext: () -> Unit, + onToggleFavorite: () -> Unit, + onTogglePinned: () -> Unit +) { + val context = LocalContext.current + val focusRequester = remember { FocusRequester() } + + var errorMessage by remember(streamUrl) { mutableStateOf(null) } + var resolutionLabel by remember(streamUrl) { mutableStateOf("Résolution : détection...") } + var overlayVisible by remember(streamUrl) { mutableStateOf(true) } + var backIsArmed by remember(streamUrl) { mutableStateOf(false) } + + fun showOverlayForBack() { + overlayVisible = true + backIsArmed = true + } + + BackHandler { + if (backIsArmed) { + onBack() + } else { + showOverlayForBack() + } + } + + LaunchedEffect(streamUrl, overlayVisible, backIsArmed) { + if (overlayVisible && errorMessage == null) { + delay(3_000) + overlayVisible = false + backIsArmed = false + } + } + + val player = remember(streamUrl) { + ExoPlayer.Builder(context).build().apply { + setMediaItem(MediaItem.fromUri(streamUrl)) + prepare() + playWhenReady = true + } + } + + DisposableEffect(player) { + val listener = object : Player.Listener { + override fun onPlayerError(error: PlaybackException) { + errorMessage = "Erreur de lecture : ${error.errorCodeName}" + overlayVisible = true + backIsArmed = true + } + + override fun onVideoSizeChanged(videoSize: VideoSize) { + resolutionLabel = if (videoSize.width > 0 && videoSize.height > 0) { + "${videoSize.width} × ${videoSize.height}" + } else { + "Résolution inconnue" + } + } + } + player.addListener(listener) + + onDispose { + player.removeListener(listener) + player.release() + } + } + + LaunchedEffect(Unit) { + focusRequester.requestFocus() + } + + Box( + modifier = Modifier + .fillMaxSize() + .background(Color.Black) + .focusRequester(focusRequester) + .focusable() + .onPreviewKeyEvent { event -> + if (event.type != KeyEventType.KeyUp) return@onPreviewKeyEvent false + + when (event.key) { + Key.DirectionLeft -> { + if (!enableZapping) return@onPreviewKeyEvent false + overlayVisible = true + backIsArmed = false + onPrevious() + true + } + Key.DirectionRight -> { + if (!enableZapping) return@onPreviewKeyEvent false + overlayVisible = true + backIsArmed = false + onNext() + true + } + else -> false + } + } + ) { + AndroidView( + modifier = Modifier.fillMaxSize(), + factory = { viewContext -> + PlayerView(viewContext).apply { + this.player = player + useController = true + resizeMode = AspectRatioFrameLayout.RESIZE_MODE_FIT + keepScreenOn = true + isFocusable = true + isFocusableInTouchMode = true + requestFocus() + } + }, + update = { playerView -> + playerView.player = player + playerView.setOnKeyListener { _, keyCode, event -> + if (event.action != AndroidKeyEvent.ACTION_UP) return@setOnKeyListener false + + when (keyCode) { + AndroidKeyEvent.KEYCODE_DPAD_LEFT, + AndroidKeyEvent.KEYCODE_MEDIA_PREVIOUS -> { + if (!enableZapping) return@setOnKeyListener false + overlayVisible = true + backIsArmed = false + onPrevious() + true + } + AndroidKeyEvent.KEYCODE_DPAD_RIGHT, + AndroidKeyEvent.KEYCODE_MEDIA_NEXT -> { + if (!enableZapping) return@setOnKeyListener false + overlayVisible = true + backIsArmed = false + onNext() + true + } + else -> false + } + } + } + ) + + if (overlayVisible) { + PlayerInfoOverlay( + title = title, + logoUrl = logoUrl, + resolutionLabel = resolutionLabel, + isFavorite = isFavorite, + isPinned = isPinned, + isReplay = isReplay, + programTitle = programTitle, + programTime = programTime, + errorMessage = errorMessage, + modifier = Modifier.align(Alignment.TopStart) + ) + + ControlHintOverlay( + enableZapping = enableZapping, + modifier = Modifier.align(Alignment.BottomStart) + ) + } + } +} + +@Composable +private fun PlayerInfoOverlay( + title: String, + logoUrl: String?, + resolutionLabel: String, + isFavorite: Boolean, + isPinned: Boolean, + isReplay: Boolean, + programTitle: String?, + programTime: String?, + errorMessage: String?, + modifier: Modifier = Modifier +) { + Surface( + modifier = modifier + .padding(28.dp) + .border( + width = 1.dp, + color = Color.White.copy(alpha = 0.1f), + shape = RoundedCornerShape(24.dp) + ), + color = Color.Black.copy(alpha = 0.54f), + shape = RoundedCornerShape(24.dp) + ) { + Row( + modifier = Modifier.padding(horizontal = 22.dp, vertical = 16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + ChannelLogo( + logoUrl = logoUrl, + channelName = title, + modifier = Modifier + .width(58.dp) + .height(58.dp) + ) + + Column( + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + Text( + text = title, + color = Color.White, + style = MaterialTheme.typography.titleLarge, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Row( + horizontalArrangement = Arrangement.spacedBy(10.dp), + verticalAlignment = Alignment.CenterVertically + ) { + InfoPill(text = resolutionLabel) + if (isReplay) InfoPill(text = "Replay") + if (isFavorite) InfoPill(text = "Favori") + if (isPinned) InfoPill(text = "Démarrage") + } + + if (!programTitle.isNullOrBlank()) { + Text( + text = buildString { + append(programTitle) + if (!programTime.isNullOrBlank()) append(" • $programTime") + }, + color = Color.White.copy(alpha = 0.82f), + style = MaterialTheme.typography.bodyMedium, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + errorMessage?.let { message -> + Text( + text = message, + color = MaterialTheme.colorScheme.error, + style = MaterialTheme.typography.bodyMedium + ) + } + } + } + } +} + +@Composable +private fun ControlHintOverlay( + enableZapping: Boolean, + modifier: Modifier = Modifier +) { + Surface( + modifier = modifier.padding(28.dp), + color = Color.Black.copy(alpha = 0.42f), + shape = RoundedCornerShape(20.dp) + ) { + Row( + modifier = Modifier.padding(horizontal = 20.dp, vertical = 12.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + if (enableZapping) { + Text( + text = "← / →", + color = Color.White, + style = MaterialTheme.typography.titleMedium, + fontWeight = FontWeight.Bold + ) + Text( + text = "zapper • Retour : afficher les infos, puis revenir au menu", + color = Color.White.copy(alpha = 0.72f), + style = MaterialTheme.typography.bodyMedium + ) + } else { + Text( + text = "Retour", + color = Color.White, + style = MaterialTheme.typography.titleMedium, + fontWeight = FontWeight.Bold + ) + Text( + text = "afficher les infos, puis revenir au catalogue", + color = Color.White.copy(alpha = 0.72f), + style = MaterialTheme.typography.bodyMedium + ) + } + } + } +} + +@Composable +private fun InfoPill(text: String) { + Surface( + color = Color.White.copy(alpha = 0.14f), + shape = RoundedCornerShape(999.dp) + ) { + Text( + modifier = Modifier.padding(horizontal = 12.dp, vertical = 5.dp), + text = text, + color = Color.White.copy(alpha = 0.9f), + style = MaterialTheme.typography.bodySmall, + fontWeight = FontWeight.Bold, + maxLines = 1 + ) + } +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ProgramGuideScreen.kt b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ProgramGuideScreen.kt new file mode 100644 index 0000000..094476f --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ProgramGuideScreen.kt @@ -0,0 +1,1081 @@ +package ma.tkgraph.xtreamtv.ui.screens + +import androidx.activity.compose.BackHandler +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.focusable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.focus.onFocusChanged +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import kotlinx.coroutines.delay +import ma.tkgraph.xtreamtv.data.model.EpgProgramDto +import ma.tkgraph.xtreamtv.data.model.LiveCategoryDto +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.ui.components.ChannelLogo +import ma.tkgraph.xtreamtv.util.categorySortNormalizedName +import ma.tkgraph.xtreamtv.util.categorySortWeight + +private const val FAVORITES_CATEGORY_ID = "__favorites__" +private const val UNCATEGORIZED_CATEGORY_ID = "__uncategorized__" + +@Composable +fun ProgramGuideScreen( + streams: List, + categories: List, + favoriteStreamIds: Set, + selectedStreamId: String?, + epgByStreamId: Map>, + loadingEpgStreamIds: Set, + fullEpgByStreamId: Map>, + loadingFullEpgStreamIds: Set, + fullEpgErrors: Map, + onBack: () -> Unit, + onStreamFocused: (LiveStreamDto) -> Unit, + onOpenLive: (LiveStreamDto) -> Unit, + onRetryFullGuide: (LiveStreamDto) -> Unit, + onProgramSelected: (LiveStreamDto, EpgProgramDto) -> Unit +) { + BackHandler(onBack = onBack) + + var selectedCategoryId by remember { mutableStateOf(null) } + var categorySearchQuery by remember { mutableStateOf("") } + var channelSearchQuery by remember { mutableStateOf("") } + var programSearchQuery by remember { mutableStateOf("") } + var focusedStreamId by remember(selectedStreamId) { mutableStateOf(selectedStreamId) } + + val categoryFilters = remember(streams, categories, favoriteStreamIds) { + buildProgramGuideCategoryFilters( + streams = streams, + categories = categories, + favoriteStreamIds = favoriteStreamIds + ) + } + + val visibleCategories = remember(categoryFilters, categorySearchQuery) { + val query = categorySearchQuery.trim() + if (query.isBlank()) categoryFilters else categoryFilters.filter { category -> + category.name.contains(query, ignoreCase = true) || category.id.orEmpty().contains(query, ignoreCase = true) + } + } + + val visibleStreams = remember(streams, selectedCategoryId, channelSearchQuery, favoriteStreamIds) { + filterProgramGuideStreams( + streams = streams, + selectedCategoryId = selectedCategoryId, + channelSearchQuery = channelSearchQuery, + favoriteStreamIds = favoriteStreamIds + ) + } + + LaunchedEffect(visibleStreams, focusedStreamId) { + if (visibleStreams.isNotEmpty() && visibleStreams.none { it.streamId == focusedStreamId }) { + focusedStreamId = visibleStreams.first().streamId + } + } + + val focusedStream = remember(visibleStreams, focusedStreamId) { + focusedStreamId?.let { id -> visibleStreams.firstOrNull { it.streamId == id } } ?: visibleStreams.firstOrNull() + } + + LaunchedEffect(focusedStream?.streamId) { + focusedStream?.let(onStreamFocused) + } + + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.verticalGradient( + colors = listOf( + Color(0xFF020617), + Color(0xFF071B35), + Color(0xFF07111F) + ) + ) + ) + .padding(horizontal = 24.dp, vertical = 16.dp) + ) { + Column( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + ProgramGuideHeader( + visibleStreams = visibleStreams.size, + totalStreams = streams.size, + selectedCategoryName = categoryFilters.firstOrNull { it.id == selectedCategoryId }?.name ?: "Toutes les chaînes", + onBack = onBack + ) + + Row( + modifier = Modifier.fillMaxSize(), + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + GuideCategoriesPanel( + modifier = Modifier + .width(260.dp) + .fillMaxHeight(), + categorySearchQuery = categorySearchQuery, + onCategorySearchChanged = { categorySearchQuery = it }, + categories = visibleCategories, + selectedCategoryId = selectedCategoryId, + onCategorySelected = { categoryId -> selectedCategoryId = categoryId } + ) + + GuideChannelsPanel( + modifier = Modifier + .width(380.dp) + .fillMaxHeight(), + channelSearchQuery = channelSearchQuery, + onChannelSearchChanged = { channelSearchQuery = it }, + streams = visibleStreams, + selectedStreamId = focusedStream?.streamId, + epgByStreamId = epgByStreamId, + loadingEpgStreamIds = loadingEpgStreamIds, + onStreamFocused = { stream -> + focusedStreamId = stream.streamId + onStreamFocused(stream) + }, + onOpenLive = onOpenLive + ) + + GuideProgramsPanel( + modifier = Modifier + .weight(1f) + .fillMaxHeight(), + stream = focusedStream, + programSearchQuery = programSearchQuery, + onProgramSearchChanged = { programSearchQuery = it }, + programs = focusedStream?.let { fullEpgByStreamId[it.streamId] }.orEmpty(), + shortPrograms = focusedStream?.let { epgByStreamId[it.streamId] }.orEmpty(), + isLoading = focusedStream?.let { loadingFullEpgStreamIds.contains(it.streamId) } == true, + errorMessage = focusedStream?.let { fullEpgErrors[it.streamId] }, + onRetry = { focusedStream?.let(onRetryFullGuide) }, + onOpenLive = { focusedStream?.let(onOpenLive) }, + onProgramSelected = { program -> + focusedStream?.let { stream -> onProgramSelected(stream, program) } + } + ) + } + } + } +} + +@Composable +private fun ProgramGuideHeader( + visibleStreams: Int, + totalStreams: Int, + selectedCategoryName: String, + onBack: () -> Unit +) { + Surface( + modifier = Modifier.fillMaxWidth(), + color = Color.White.copy(alpha = 0.055f), + shape = RoundedCornerShape(22.dp) + ) { + Row( + modifier = Modifier.padding(horizontal = 18.dp, vertical = 12.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = "Guide des programmes", + fontSize = 25.sp, + lineHeight = 29.sp, + fontWeight = FontWeight.Black, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Text( + text = "$visibleStreams / $totalStreams chaînes • $selectedCategoryName", + fontSize = 13.sp, + lineHeight = 16.sp, + color = Color.White.copy(alpha = 0.66f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + CompactGuideOutlinedButton( + text = "Retour", + width = 96.dp, + onClick = onBack + ) + } + } +} + +@Composable +private fun GuideCategoriesPanel( + modifier: Modifier, + categorySearchQuery: String, + onCategorySearchChanged: (String) -> Unit, + categories: List, + selectedCategoryId: String?, + onCategorySelected: (String?) -> Unit +) { + Surface( + modifier = modifier, + color = Color.White.copy(alpha = 0.065f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(14.dp), + verticalArrangement = Arrangement.spacedBy(9.dp) + ) { + Text( + text = "Catégories", + fontSize = 18.sp, + lineHeight = 22.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + + GuideSearchField( + value = categorySearchQuery, + onValueChange = onCategorySearchChanged, + label = "Rechercher", + modifier = Modifier.fillMaxWidth() + ) + + LazyColumn( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(7.dp), + contentPadding = PaddingValues(bottom = 14.dp) + ) { + items( + items = categories, + key = { it.id ?: "all" } + ) { category -> + GuideCategoryRow( + category = category, + selected = category.id == selectedCategoryId, + onClick = { onCategorySelected(category.id) } + ) + } + } + } + } +} + +@Composable +private fun GuideChannelsPanel( + modifier: Modifier, + channelSearchQuery: String, + onChannelSearchChanged: (String) -> Unit, + streams: List, + selectedStreamId: String?, + epgByStreamId: Map>, + loadingEpgStreamIds: Set, + onStreamFocused: (LiveStreamDto) -> Unit, + onOpenLive: (LiveStreamDto) -> Unit +) { + val channelListState = rememberLazyListState() + val selectedFocusRequester = remember { FocusRequester() } + + LaunchedEffect(selectedStreamId, streams) { + val index = streams.indexOfFirst { it.streamId == selectedStreamId } + if (index >= 0) { + channelListState.scrollToItem(index) + } + } + + Surface( + modifier = modifier, + color = Color.White.copy(alpha = 0.050f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(14.dp), + verticalArrangement = Arrangement.spacedBy(9.dp) + ) { + Text( + text = "Chaînes", + fontSize = 18.sp, + lineHeight = 22.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + + GuideSearchField( + value = channelSearchQuery, + onValueChange = onChannelSearchChanged, + label = "Rechercher chaîne", + modifier = Modifier.fillMaxWidth() + ) + + if (streams.isEmpty()) { + GuideEmptyText("Aucune chaîne trouvée.") + } else { + LazyColumn( + modifier = Modifier.fillMaxSize(), + state = channelListState, + verticalArrangement = Arrangement.spacedBy(7.dp), + contentPadding = PaddingValues(bottom = 14.dp) + ) { + items( + items = streams, + key = { it.streamId } + ) { stream -> + GuideChannelRow( + stream = stream, + selected = stream.streamId == selectedStreamId, + programs = epgByStreamId[stream.streamId].orEmpty(), + isLoading = loadingEpgStreamIds.contains(stream.streamId), + focusRequester = if (stream.streamId == selectedStreamId) selectedFocusRequester else null, + onFocused = { onStreamFocused(stream) }, + onOpenLive = { onOpenLive(stream) } + ) + } + } + } + } + } +} + +@Composable +private fun GuideProgramsPanel( + modifier: Modifier, + stream: LiveStreamDto?, + programSearchQuery: String, + onProgramSearchChanged: (String) -> Unit, + programs: List, + shortPrograms: List, + isLoading: Boolean, + errorMessage: String?, + onRetry: () -> Unit, + onOpenLive: () -> Unit, + onProgramSelected: (EpgProgramDto) -> Unit +) { + val nowMillis = remember { System.currentTimeMillis() } + val streamArchiveEnabled = stream?.tvArchive == 1 + val displayPrograms = remember(programs, shortPrograms, programSearchQuery) { + val source = if (programs.isNotEmpty()) programs else shortPrograms + val query = programSearchQuery.trim() + source + .asSequence() + .filter { program -> + query.isBlank() || + program.titleText().contains(query, ignoreCase = true) || + program.descriptionText().contains(query, ignoreCase = true) || + program.timeRangeText().contains(query, ignoreCase = true) || + program.dayHeaderText().contains(query, ignoreCase = true) + } + .sortedWith(compareBy { it.startMillis() ?: Long.MAX_VALUE }) + .toList() + } + + val guideItems = remember(displayPrograms) { + buildProgramGuideItems(displayPrograms) + } + + Surface( + modifier = modifier, + color = Color.White.copy(alpha = 0.045f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(14.dp), + verticalArrangement = Arrangement.spacedBy(9.dp) + ) { + ProgramHeader( + stream = stream, + programCount = displayPrograms.size, + onOpenLive = onOpenLive + ) + + GuideSearchField( + value = programSearchQuery, + onValueChange = onProgramSearchChanged, + label = "Rechercher émission", + modifier = Modifier.fillMaxWidth() + ) + + Box(modifier = Modifier.fillMaxSize()) { + when { + stream == null -> GuideEmptyText( + text = "Sélectionne une chaîne pour afficher ses programmes.", + modifier = Modifier.align(Alignment.Center) + ) + + isLoading && programs.isEmpty() -> GuideLoading(modifier = Modifier.align(Alignment.Center)) + + !errorMessage.isNullOrBlank() && programs.isEmpty() -> GuideError( + message = errorMessage, + onRetry = onRetry, + modifier = Modifier.align(Alignment.Center) + ) + + displayPrograms.isEmpty() -> GuideEmptyText( + text = "Aucun programme disponible pour cette chaîne.", + modifier = Modifier.align(Alignment.Center) + ) + + else -> LazyColumn( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(8.dp), + contentPadding = PaddingValues(bottom = 18.dp) + ) { + items( + items = guideItems, + key = { it.stableKey } + ) { item -> + when (item) { + is ProgramGuideItem.DayHeader -> GuideDayHeaderRow(item.title) + is ProgramGuideItem.ProgramItem -> GuideProgramRow( + program = item.program, + streamArchiveEnabled = streamArchiveEnabled, + nowMillis = nowMillis, + onClick = { onProgramSelected(item.program) } + ) + } + } + } + } + } + } + } +} + +@Composable +private fun ProgramHeader( + stream: LiveStreamDto?, + programCount: Int, + onOpenLive: () -> Unit +) { + val title = stream?.name.orEmpty().ifBlank { "Aucune chaîne" } + Surface( + modifier = Modifier.fillMaxWidth(), + color = Color.Black.copy(alpha = 0.16f), + shape = RoundedCornerShape(16.dp) + ) { + Row( + modifier = Modifier.padding(horizontal = 12.dp, vertical = 9.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(10.dp) + ) { + ChannelLogo( + logoUrl = stream?.streamIcon, + channelName = title, + modifier = Modifier + .width(44.dp) + .height(44.dp) + ) + + Column(modifier = Modifier.weight(1f)) { + Text( + text = title, + fontSize = 17.sp, + lineHeight = 21.sp, + color = Color.White, + fontWeight = FontWeight.ExtraBold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Text( + text = "$programCount programmes disponibles", + fontSize = 11.sp, + lineHeight = 14.sp, + color = Color.White.copy(alpha = 0.62f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + CompactGuidePrimaryButton( + text = "Direct", + width = 82.dp, + enabled = stream != null, + onClick = onOpenLive + ) + } + } +} + +@Composable +private fun GuideSearchField( + value: String, + onValueChange: (String) -> Unit, + label: String, + modifier: Modifier = Modifier +) { + OutlinedTextField( + modifier = modifier.height(48.dp), + value = value, + onValueChange = onValueChange, + singleLine = true, + textStyle = TextStyle( + color = Color.White, + fontSize = 13.sp, + lineHeight = 16.sp + ), + label = { + Text( + text = label, + color = Color.White.copy(alpha = 0.68f), + fontSize = 11.sp + ) + } + ) +} + +@Composable +private fun GuideCategoryRow( + category: GuideCategoryFilter, + selected: Boolean, + onClick: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val shape = RoundedCornerShape(14.dp) + + Surface( + modifier = Modifier + .fillMaxWidth() + .onFocusChanged { focused = it.isFocused } + .border( + width = if (focused || selected) 2.dp else 1.dp, + color = when { + focused -> Color(0xFF22D3EE) + selected -> Color(0xFF38BDF8) + else -> Color.White.copy(alpha = 0.08f) + }, + shape = shape + ) + .clip(shape) + .clickable(onClick = onClick) + .focusable(), + color = when { + selected -> Color(0xFF0EA5E9).copy(alpha = 0.30f) + focused -> Color.White.copy(alpha = 0.12f) + else -> Color.White.copy(alpha = 0.045f) + }, + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 12.dp, vertical = 9.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + Text( + modifier = Modifier.weight(1f), + text = category.name, + fontSize = 13.sp, + lineHeight = 16.sp, + color = Color.White, + fontWeight = if (selected) FontWeight.Bold else FontWeight.SemiBold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Text( + text = category.count.toString(), + fontSize = 11.sp, + lineHeight = 13.sp, + color = Color.White.copy(alpha = 0.70f) + ) + } + } +} + +@Composable +private fun GuideChannelRow( + stream: LiveStreamDto, + selected: Boolean, + programs: List, + isLoading: Boolean, + focusRequester: FocusRequester?, + onFocused: () -> Unit, + onOpenLive: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val title = stream.name.orEmpty().ifBlank { "Chaîne ${stream.streamId}" } + val currentProgram = programs.firstOrNull { it.isNowPlaying() } ?: programs.firstOrNull() + val shape = RoundedCornerShape(14.dp) + + Surface( + modifier = Modifier + .fillMaxWidth() + .then(if (focusRequester != null) Modifier.focusRequester(focusRequester) else Modifier) + .onFocusChanged { state -> + focused = state.isFocused + if (state.isFocused) onFocused() + } + .border( + width = if (focused || selected) 2.dp else 1.dp, + color = when { + focused -> Color(0xFF22D3EE) + selected -> Color(0xFF38BDF8) + else -> Color.White.copy(alpha = 0.075f) + }, + shape = shape + ) + .clip(shape) + .clickable(onClick = onOpenLive) + .focusable(), + color = when { + selected -> Color(0xFF1D4ED8).copy(alpha = 0.25f) + focused -> Color.White.copy(alpha = 0.12f) + else -> Color.White.copy(alpha = 0.047f) + }, + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 9.dp, vertical = 8.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(9.dp) + ) { + ChannelLogo( + logoUrl = stream.streamIcon, + channelName = title, + modifier = Modifier + .width(38.dp) + .height(38.dp) + ) + + Column(modifier = Modifier.weight(1f)) { + Text( + text = title, + fontSize = 13.sp, + lineHeight = 16.sp, + color = Color.White, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Text( + text = when { + isLoading -> "EPG : chargement..." + currentProgram != null -> currentProgram.titleText() + else -> "EPG indisponible" + }, + fontSize = 10.sp, + lineHeight = 13.sp, + color = Color.White.copy(alpha = 0.58f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + } + } +} + +@Composable +private fun GuideProgramRow( + program: EpgProgramDto, + streamArchiveEnabled: Boolean, + nowMillis: Long, + onClick: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val canPlay = program.canPlayAsReplay( + streamArchiveEnabled = streamArchiveEnabled, + nowMillis = nowMillis + ) + val isNow = program.isNowPlaying() + val shape = RoundedCornerShape(16.dp) + + Surface( + modifier = Modifier + .fillMaxWidth() + .border( + width = if (focused) 2.dp else 1.dp, + color = if (focused) Color(0xFF22D3EE) else Color.White.copy(alpha = 0.08f), + shape = shape + ), + color = if (focused) Color.White.copy(alpha = 0.12f) else Color.White.copy(alpha = 0.052f), + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 12.dp, vertical = 9.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(11.dp) + ) { + TimeBox(program.timeRangeText()) + + Column( + modifier = Modifier + .weight(1f) + .clip(RoundedCornerShape(12.dp)) + .onFocusChanged { focused = it.isFocused } + .clickable(enabled = canPlay, onClick = onClick) + .focusable(enabled = canPlay) + .padding(horizontal = 8.dp, vertical = 4.dp), + verticalArrangement = Arrangement.spacedBy(3.dp) + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(7.dp) + ) { + Text( + modifier = Modifier.weight(1f), + text = program.titleText(), + fontSize = 14.sp, + lineHeight = 17.sp, + color = Color.White, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + if (isNow) SmallGuideTag("En cours") + } + + val description = program.descriptionText() + Text( + text = if (description.isNotBlank()) description else program.fullDateTimeText(), + fontSize = 11.sp, + lineHeight = 14.sp, + color = Color.White.copy(alpha = 0.60f), + maxLines = 2, + overflow = TextOverflow.Ellipsis + ) + } + + CompactGuidePrimaryButton( + text = if (canPlay) "Revoir" else "Indispo", + width = 82.dp, + enabled = canPlay, + onClick = onClick + ) + } + } +} + +@Composable +private fun GuideDayHeaderRow(title: String) { + Text( + modifier = Modifier.padding(horizontal = 6.dp, vertical = 5.dp), + text = title.replaceFirstChar { if (it.isLowerCase()) it.titlecase() else it.toString() }, + color = Color(0xFFBAE6FD), + fontSize = 13.sp, + lineHeight = 16.sp, + fontWeight = FontWeight.ExtraBold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) +} + +@Composable +private fun TimeBox(text: String) { + Box( + modifier = Modifier + .width(92.dp) + .height(40.dp) + .clip(RoundedCornerShape(14.dp)) + .background(Color.Black.copy(alpha = 0.28f)), + contentAlignment = Alignment.Center + ) { + Text( + text = text, + color = Color.White.copy(alpha = 0.88f), + fontSize = 11.sp, + lineHeight = 13.sp, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } +} + +@Composable +private fun SmallGuideTag(text: String) { + Surface( + color = Color(0xFF38BDF8).copy(alpha = 0.20f), + shape = RoundedCornerShape(999.dp) + ) { + Text( + modifier = Modifier.padding(horizontal = 7.dp, vertical = 3.dp), + text = text, + color = Color(0xFFBAE6FD), + fontSize = 10.sp, + lineHeight = 12.sp, + fontWeight = FontWeight.Bold, + maxLines = 1 + ) + } +} + +@Composable +private fun CompactGuidePrimaryButton( + text: String, + width: androidx.compose.ui.unit.Dp, + enabled: Boolean = true, + onClick: () -> Unit +) { + Button( + modifier = Modifier + .width(width) + .height(34.dp), + enabled = enabled, + contentPadding = PaddingValues(horizontal = 9.dp, vertical = 0.dp), + colors = ButtonDefaults.buttonColors( + disabledContainerColor = Color.White.copy(alpha = 0.10f), + disabledContentColor = Color.White.copy(alpha = 0.34f) + ), + onClick = onClick + ) { + Text( + text = text, + fontSize = 11.sp, + lineHeight = 14.sp, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } +} + +@Composable +private fun CompactGuideOutlinedButton( + text: String, + width: androidx.compose.ui.unit.Dp, + enabled: Boolean = true, + onClick: () -> Unit +) { + OutlinedButton( + modifier = Modifier + .width(width) + .height(34.dp), + enabled = enabled, + contentPadding = PaddingValues(horizontal = 9.dp, vertical = 0.dp), + onClick = onClick + ) { + Text( + text = text, + fontSize = 11.sp, + lineHeight = 14.sp, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } +} + +@Composable +private fun GuideLoading(modifier: Modifier = Modifier) { + Column( + modifier = modifier, + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + CircularProgressIndicator() + Text( + text = "Chargement du guide complet...", + color = Color.White.copy(alpha = 0.82f), + fontSize = 14.sp, + lineHeight = 18.sp + ) + } +} + +@Composable +private fun GuideError( + message: String, + onRetry: () -> Unit, + modifier: Modifier = Modifier +) { + Column( + modifier = modifier.widthIn(max = 560.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + Text( + text = message, + color = Color(0xFFFCA5A5), + fontSize = 14.sp, + lineHeight = 18.sp + ) + CompactGuidePrimaryButton( + text = "Réessayer", + width = 96.dp, + onClick = onRetry + ) + } +} + +@Composable +private fun GuideEmptyText( + text: String, + modifier: Modifier = Modifier +) { + Text( + modifier = modifier.widthIn(max = 520.dp), + text = text, + color = Color.White.copy(alpha = 0.78f), + fontSize = 14.sp, + lineHeight = 19.sp + ) +} + +private sealed interface ProgramGuideItem { + val stableKey: String + + data class DayHeader( + val title: String + ) : ProgramGuideItem { + override val stableKey: String = "day_$title" + } + + data class ProgramItem( + val program: EpgProgramDto, + val index: Int + ) : ProgramGuideItem { + override val stableKey: String = "program_${program.id ?: program.start.orEmpty()}_${program.titleText()}_$index" + } +} + +private fun buildProgramGuideItems(programs: List): List { + val items = mutableListOf() + var lastDay: String? = null + + programs.forEachIndexed { index, program -> + val day = program.dayHeaderText() + if (day != lastDay) { + items += ProgramGuideItem.DayHeader(day) + lastDay = day + } + items += ProgramGuideItem.ProgramItem( + program = program, + index = index + ) + } + + return items +} + +private fun buildProgramGuideCategoryFilters( + streams: List, + categories: List, + favoriteStreamIds: Set +): List { + val categoryNamesById = categories + .filter { it.categoryId.isNotBlank() } + .associate { category -> + category.categoryId to category.categoryName.orEmpty().ifBlank { + "Catégorie ${category.categoryId}" + } + } + + val categoryCounts = streams.groupingBy { stream -> + stream.categoryId?.takeIf { it.isNotBlank() } ?: UNCATEGORIZED_CATEGORY_ID + }.eachCount() + + val usedCategoryIds = categoryCounts.keys + .filter { it != UNCATEGORIZED_CATEGORY_ID } + .sortedWith( + compareBy( + { id -> categorySortWeight(categoryNamesById[id] ?: "Catégorie $id") }, + { id -> categorySortNormalizedName(categoryNamesById[id] ?: "Catégorie $id") } + ) + ) + + val filters = mutableListOf( + GuideCategoryFilter( + id = null, + name = "Toutes", + count = streams.size + ), + GuideCategoryFilter( + id = FAVORITES_CATEGORY_ID, + name = "Favoris", + count = streams.count { favoriteStreamIds.contains(it.streamId) } + ) + ) + + usedCategoryIds.forEach { id -> + filters.add( + GuideCategoryFilter( + id = id, + name = categoryNamesById[id] ?: "Catégorie $id", + count = categoryCounts[id] ?: 0 + ) + ) + } + + val uncategorizedCount = categoryCounts[UNCATEGORIZED_CATEGORY_ID] ?: 0 + if (uncategorizedCount > 0) { + filters.add( + GuideCategoryFilter( + id = UNCATEGORIZED_CATEGORY_ID, + name = "Non classées", + count = uncategorizedCount + ) + ) + } + + return filters +} + +private fun filterProgramGuideStreams( + streams: List, + selectedCategoryId: String?, + channelSearchQuery: String, + favoriteStreamIds: Set +): List { + val query = channelSearchQuery.trim() + + return streams + .asSequence() + .filter { stream -> + when (selectedCategoryId) { + null -> true + FAVORITES_CATEGORY_ID -> favoriteStreamIds.contains(stream.streamId) + UNCATEGORIZED_CATEGORY_ID -> stream.categoryId.isNullOrBlank() + else -> stream.categoryId == selectedCategoryId + } + } + .filter { stream -> + query.isBlank() || + stream.name.orEmpty().contains(query, ignoreCase = true) || + stream.streamId.contains(query, ignoreCase = true) || + stream.categoryId.orEmpty().contains(query, ignoreCase = true) + } + .toList() +} + +private data class GuideCategoryFilter( + val id: String?, + val name: String, + val count: Int +) diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ReplayGuideScreen.kt b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ReplayGuideScreen.kt new file mode 100644 index 0000000..6dc4362 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/ReplayGuideScreen.kt @@ -0,0 +1,511 @@ +package ma.tkgraph.xtreamtv.ui.screens + +import androidx.activity.compose.BackHandler +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.focusable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.focus.onFocusChanged +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import kotlinx.coroutines.delay +import ma.tkgraph.xtreamtv.data.model.EpgProgramDto +import ma.tkgraph.xtreamtv.data.model.LiveStreamDto +import ma.tkgraph.xtreamtv.ui.components.ChannelLogo + +@Composable +fun ReplayGuideScreen( + stream: LiveStreamDto, + programs: List, + isLoading: Boolean, + errorMessage: String?, + onBack: () -> Unit, + onRetry: () -> Unit, + onProgramSelected: (EpgProgramDto) -> Unit +) { + BackHandler(onBack = onBack) + + var searchQuery by remember(stream.streamId) { mutableStateOf("") } + val streamArchiveEnabled = stream.tvArchive == 1 + val nowMillis = remember { System.currentTimeMillis() } + + val visiblePrograms = remember(programs, searchQuery, streamArchiveEnabled) { + val query = searchQuery.trim() + programs + .asSequence() + .filter { program -> + query.isBlank() || + program.titleText().contains(query, ignoreCase = true) || + program.descriptionText().contains(query, ignoreCase = true) || + program.timeRangeText().contains(query, ignoreCase = true) || + program.dayHeaderText().contains(query, ignoreCase = true) + } + .sortedWith(compareBy { it.startMillis() ?: Long.MAX_VALUE }) + .toList() + } + + val guideItems = remember(visiblePrograms) { + buildReplayGuideItems(visiblePrograms) + } + + val listState = rememberLazyListState() + val firstProgramFocusRequester = remember { FocusRequester() } + + LaunchedEffect(stream.streamId, isLoading) { + if (!isLoading && guideItems.any { it is ReplayGuideItem.ProgramItem }) { + delay(150) + runCatching { firstProgramFocusRequester.requestFocus() } + } + } + + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.verticalGradient( + colors = listOf( + Color(0xFF020617), + Color(0xFF071B35), + Color(0xFF07111F) + ) + ) + ) + .padding(horizontal = 28.dp, vertical = 18.dp) + ) { + Column( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(14.dp) + ) { + ReplayGuideHeader( + stream = stream, + programsCount = programs.size, + visibleProgramsCount = visiblePrograms.size, + searchQuery = searchQuery, + onSearchChanged = { searchQuery = it }, + onBack = onBack + ) + + Surface( + modifier = Modifier.fillMaxSize(), + color = Color.White.copy(alpha = 0.045f), + shape = RoundedCornerShape(22.dp) + ) { + Box( + modifier = Modifier + .fillMaxSize() + .padding(16.dp) + ) { + when { + isLoading -> ReplayLoading( + modifier = Modifier.align(Alignment.Center) + ) + + !errorMessage.isNullOrBlank() -> ReplayError( + message = errorMessage, + onRetry = onRetry, + modifier = Modifier.align(Alignment.Center) + ) + + programs.isEmpty() -> ReplayEmpty( + text = "Aucun programme complet disponible pour cette chaîne. Le fournisseur ne renvoie probablement pas le guide détaillé. Charmant, mais au moins on sait où ça casse.", + modifier = Modifier.align(Alignment.Center) + ) + + visiblePrograms.isEmpty() -> ReplayEmpty( + text = "Aucune émission ne correspond à la recherche.", + modifier = Modifier.align(Alignment.Center) + ) + + else -> LazyColumn( + modifier = Modifier.fillMaxSize(), + state = listState, + verticalArrangement = Arrangement.spacedBy(8.dp), + contentPadding = PaddingValues(bottom = 24.dp) + ) { + items( + items = guideItems, + key = { item -> item.stableKey } + ) { item -> + when (item) { + is ReplayGuideItem.DayHeader -> DayHeaderRow(item.title) + is ReplayGuideItem.ProgramItem -> { + ReplayProgramRow( + program = item.program, + streamArchiveEnabled = streamArchiveEnabled, + nowMillis = nowMillis, + focusRequester = if (item.index == 0) firstProgramFocusRequester else null, + onClick = { onProgramSelected(item.program) } + ) + } + } + } + } + } + } + } + } + } +} + +@Composable +private fun ReplayGuideHeader( + stream: LiveStreamDto, + programsCount: Int, + visibleProgramsCount: Int, + searchQuery: String, + onSearchChanged: (String) -> Unit, + onBack: () -> Unit +) { + val title = stream.name.orEmpty().ifBlank { "Chaîne ${stream.streamId}" } + + Surface( + modifier = Modifier.fillMaxWidth(), + color = Color.White.copy(alpha = 0.055f), + shape = RoundedCornerShape(22.dp) + ) { + Row( + modifier = Modifier.padding(horizontal = 18.dp, vertical = 12.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + ChannelLogo( + logoUrl = stream.streamIcon, + channelName = title, + modifier = Modifier + .width(54.dp) + .height(54.dp) + ) + + Column(modifier = Modifier.weight(1f)) { + Text( + text = "Replay", + fontSize = 13.sp, + lineHeight = 16.sp, + color = Color(0xFFBAE6FD), + fontWeight = FontWeight.Bold, + maxLines = 1 + ) + Text( + text = title, + fontSize = 22.sp, + lineHeight = 26.sp, + color = Color.White, + fontWeight = FontWeight.ExtraBold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Text( + text = "$visibleProgramsCount / $programsCount programmes affichés • choisis l’émission à revoir", + fontSize = 12.sp, + lineHeight = 15.sp, + color = Color.White.copy(alpha = 0.62f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + DarkReplaySearchField( + value = searchQuery, + onValueChange = onSearchChanged, + label = "Rechercher émission", + modifier = Modifier.widthIn(min = 260.dp, max = 390.dp) + ) + + Button( + modifier = Modifier.height(38.dp), + contentPadding = PaddingValues(horizontal = 14.dp, vertical = 0.dp), + onClick = onBack + ) { + Text( + text = "Retour", + fontSize = 12.sp, + lineHeight = 15.sp, + fontWeight = FontWeight.Bold + ) + } + } + } +} + +@Composable +private fun DarkReplaySearchField( + value: String, + onValueChange: (String) -> Unit, + label: String, + modifier: Modifier = Modifier +) { + OutlinedTextField( + modifier = modifier.height(50.dp), + value = value, + onValueChange = onValueChange, + singleLine = true, + textStyle = TextStyle( + color = Color.White, + fontSize = 13.sp, + lineHeight = 16.sp + ), + label = { + Text( + text = label, + color = Color.White.copy(alpha = 0.66f), + fontSize = 12.sp + ) + } + ) +} + +@Composable +private fun DayHeaderRow(title: String) { + Text( + modifier = Modifier.padding(horizontal = 6.dp, vertical = 6.dp), + text = title.replaceFirstChar { if (it.isLowerCase()) it.titlecase() else it.toString() }, + color = Color(0xFFBAE6FD), + fontSize = 14.sp, + lineHeight = 18.sp, + fontWeight = FontWeight.ExtraBold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) +} + +@Composable +private fun ReplayProgramRow( + program: EpgProgramDto, + streamArchiveEnabled: Boolean, + nowMillis: Long, + focusRequester: FocusRequester?, + onClick: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val canPlay = program.canPlayAsReplay( + streamArchiveEnabled = streamArchiveEnabled, + nowMillis = nowMillis + ) + val shape = RoundedCornerShape(16.dp) + + Surface( + modifier = Modifier + .fillMaxWidth() + .border( + width = if (focused) 2.dp else 1.dp, + color = if (focused) Color(0xFF22D3EE) else Color.White.copy(alpha = 0.08f), + shape = shape + ), + color = if (focused) Color.White.copy(alpha = 0.12f) else Color.White.copy(alpha = 0.052f), + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 13.dp, vertical = 10.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + TimeBox(program.timeRangeText()) + + Column( + modifier = Modifier + .weight(1f) + .clip(RoundedCornerShape(12.dp)) + .then(if (focusRequester != null) Modifier.focusRequester(focusRequester) else Modifier) + .onFocusChanged { focused = it.isFocused } + .clickable(enabled = canPlay, onClick = onClick) + .focusable(enabled = canPlay) + .padding(horizontal = 8.dp, vertical = 5.dp), + verticalArrangement = Arrangement.spacedBy(3.dp) + ) { + Text( + text = program.titleText(), + fontSize = 15.sp, + lineHeight = 18.sp, + color = Color.White, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + val description = program.descriptionText() + Text( + text = if (description.isNotBlank()) description else program.fullDateTimeText(), + fontSize = 11.sp, + lineHeight = 14.sp, + color = Color.White.copy(alpha = 0.60f), + maxLines = 2, + overflow = TextOverflow.Ellipsis + ) + } + + Button( + modifier = Modifier + .width(86.dp) + .height(36.dp), + enabled = canPlay, + contentPadding = PaddingValues(horizontal = 10.dp, vertical = 0.dp), + colors = ButtonDefaults.buttonColors( + disabledContainerColor = Color.White.copy(alpha = 0.10f), + disabledContentColor = Color.White.copy(alpha = 0.34f) + ), + onClick = onClick + ) { + Text( + text = if (canPlay) "Revoir" else "Indispo", + fontSize = 12.sp, + lineHeight = 15.sp, + fontWeight = FontWeight.Bold, + maxLines = 1 + ) + } + } + } +} + +@Composable +private fun TimeBox(text: String) { + Box( + modifier = Modifier + .width(96.dp) + .height(42.dp) + .clip(RoundedCornerShape(14.dp)) + .background(Color.Black.copy(alpha = 0.28f)), + contentAlignment = Alignment.Center + ) { + Text( + text = text, + color = Color.White.copy(alpha = 0.88f), + fontSize = 12.sp, + lineHeight = 14.sp, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } +} + +@Composable +private fun ReplayLoading(modifier: Modifier = Modifier) { + Column( + modifier = modifier, + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(14.dp) + ) { + CircularProgressIndicator() + Text( + text = "Chargement du guide replay complet...", + color = Color.White.copy(alpha = 0.82f), + fontSize = 15.sp, + lineHeight = 20.sp + ) + } +} + +@Composable +private fun ReplayError( + message: String, + onRetry: () -> Unit, + modifier: Modifier = Modifier +) { + Column( + modifier = modifier.widthIn(max = 620.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(14.dp) + ) { + Text( + text = message, + color = MaterialTheme.colorScheme.error, + fontSize = 15.sp, + lineHeight = 20.sp + ) + Button(onClick = onRetry) { + Text(text = "Réessayer") + } + } +} + +@Composable +private fun ReplayEmpty( + text: String, + modifier: Modifier = Modifier +) { + Text( + modifier = modifier.widthIn(max = 720.dp), + text = text, + color = Color.White.copy(alpha = 0.78f), + fontSize = 15.sp, + lineHeight = 20.sp + ) +} + +private sealed interface ReplayGuideItem { + val stableKey: String + + data class DayHeader( + val title: String + ) : ReplayGuideItem { + override val stableKey: String = "day_$title" + } + + data class ProgramItem( + val program: EpgProgramDto, + val index: Int + ) : ReplayGuideItem { + override val stableKey: String = "program_${program.id ?: program.start.orEmpty()}_${program.titleText()}" + } +} + +private fun buildReplayGuideItems(programs: List): List { + val items = mutableListOf() + var lastDay: String? = null + + var programIndex = 0 + programs.forEach { program -> + val day = program.dayHeaderText() + if (day != lastDay) { + items += ReplayGuideItem.DayHeader(day) + lastDay = day + } + items += ReplayGuideItem.ProgramItem( + program = program, + index = programIndex + ) + programIndex++ + } + + return items +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/SeriesScreen.kt b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/SeriesScreen.kt new file mode 100644 index 0000000..f60f6aa --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/SeriesScreen.kt @@ -0,0 +1,829 @@ +package ma.tkgraph.xtreamtv.ui.screens + +import androidx.activity.compose.BackHandler +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.focusable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.focus.onFocusChanged +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import ma.tkgraph.xtreamtv.data.model.LiveCategoryDto +import ma.tkgraph.xtreamtv.data.model.SeriesDto +import ma.tkgraph.xtreamtv.data.model.SeriesEpisodeItem +import ma.tkgraph.xtreamtv.data.model.SeriesInfoResponse +import ma.tkgraph.xtreamtv.ui.components.ChannelLogo +import ma.tkgraph.xtreamtv.util.categorySortNormalizedName +import ma.tkgraph.xtreamtv.util.categorySortWeight + +private const val ALL_CATEGORY_ID = "__all__" +private const val FAVORITES_SERIES_CATEGORY_ID = "__favorites_series__" +private const val UNCATEGORIZED_CATEGORY_ID = "__uncategorized__" + +@Composable +fun SeriesScreen( + series: List, + categories: List, + isLoading: Boolean, + errorMessage: String?, + selectedCategoryId: String?, + selectedSeriesId: String?, + favoriteSeriesIds: Set, + categorySearchQuery: String, + seriesSearchQuery: String, + episodeSearchQuery: String, + seriesInfoById: Map, + loadingSeriesInfoIds: Set, + seriesInfoErrors: Map, + onCategorySelected: (String?) -> Unit, + onCategorySearchChanged: (String) -> Unit, + onSeriesSearchChanged: (String) -> Unit, + onEpisodeSearchChanged: (String) -> Unit, + onSeriesFocused: (SeriesDto) -> Unit, + onSeriesSelected: (SeriesDto) -> Unit, + onToggleFavorite: (SeriesDto) -> Unit, + onPlayEpisode: (SeriesDto, SeriesEpisodeItem) -> Unit, + onReload: () -> Unit, + onRetryInfo: (SeriesDto) -> Unit, + onBack: () -> Unit +) { + BackHandler(onBack = onBack) + + val categoryFilters = remember(series, categories, favoriteSeriesIds) { + buildSeriesCategoryFilters( + series = series, + categories = categories, + favoriteSeriesIds = favoriteSeriesIds + ) + } + + val visibleCategories = remember(categoryFilters, categorySearchQuery) { + val query = categorySearchQuery.trim() + if (query.isBlank()) categoryFilters else categoryFilters.filter { category -> + category.name.contains(query, ignoreCase = true) || category.id.orEmpty().contains(query, ignoreCase = true) + } + } + + val filteredSeries = remember(series, selectedCategoryId, seriesSearchQuery, favoriteSeriesIds) { + filterSeries( + series = series, + selectedCategoryId = selectedCategoryId, + favoriteSeriesIds = favoriteSeriesIds, + query = seriesSearchQuery + ) + } + + val selectedSeries = selectedSeriesId?.let { id -> series.firstOrNull { it.seriesId == id } } + ?: filteredSeries.firstOrNull() + val selectedCategoryName = categoryFilters.firstOrNull { it.id == selectedCategoryId }?.name ?: "Toutes les séries" + + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.verticalGradient( + colors = listOf( + Color(0xFF020617), + Color(0xFF0F172A), + Color(0xFF020617) + ) + ) + ) + ) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = 28.dp, vertical = 18.dp), + verticalArrangement = Arrangement.spacedBy(14.dp) + ) { + SeriesHeader( + visibleCount = filteredSeries.size, + totalCount = series.size, + selectedCategoryName = selectedCategoryName, + isLoading = isLoading, + onReload = onReload, + onBack = onBack + ) + + Row( + modifier = Modifier.fillMaxSize(), + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + SeriesCategoryPanel( + modifier = Modifier + .width(280.dp) + .fillMaxHeight(), + categorySearchQuery = categorySearchQuery, + onCategorySearchChanged = onCategorySearchChanged, + categories = visibleCategories, + selectedCategoryId = selectedCategoryId, + onCategorySelected = onCategorySelected + ) + + SeriesListPanel( + modifier = Modifier + .width(430.dp) + .fillMaxHeight(), + selectedCategoryName = selectedCategoryName, + seriesSearchQuery = seriesSearchQuery, + onSeriesSearchChanged = onSeriesSearchChanged, + series = filteredSeries, + selectedSeriesId = selectedSeries?.seriesId, + favoriteSeriesIds = favoriteSeriesIds, + isLoading = isLoading, + errorMessage = errorMessage, + onSeriesFocused = onSeriesFocused, + onSeriesSelected = onSeriesSelected, + onToggleFavorite = onToggleFavorite, + onReload = onReload + ) + + EpisodesPanel( + modifier = Modifier + .weight(1f) + .fillMaxHeight(), + selectedSeries = selectedSeries, + seriesInfo = selectedSeries?.seriesId?.let { seriesInfoById[it] }, + isLoading = selectedSeries?.seriesId?.let { loadingSeriesInfoIds.contains(it) } == true, + errorMessage = selectedSeries?.seriesId?.let { seriesInfoErrors[it] }, + episodeSearchQuery = episodeSearchQuery, + onEpisodeSearchChanged = onEpisodeSearchChanged, + onRetry = { + selectedSeries?.let(onRetryInfo) + }, + onPlayEpisode = { item -> + selectedSeries?.let { onPlayEpisode(it, item) } + } + ) + } + } + } +} + +@Composable +private fun SeriesHeader( + visibleCount: Int, + totalCount: Int, + selectedCategoryName: String, + isLoading: Boolean, + onReload: () -> Unit, + onBack: () -> Unit +) { + Surface( + modifier = Modifier.fillMaxWidth(), + color = Color.White.copy(alpha = 0.055f), + shape = RoundedCornerShape(22.dp), + tonalElevation = 0.dp + ) { + Row( + modifier = Modifier.padding(horizontal = 22.dp, vertical = 14.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = "Séries", + fontSize = 26.sp, + lineHeight = 30.sp, + fontWeight = FontWeight.Black, + color = Color.White, + maxLines = 1 + ) + Text( + text = "$visibleCount / $totalCount séries • $selectedCategoryName", + fontSize = 14.sp, + lineHeight = 18.sp, + color = Color.White.copy(alpha = 0.70f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + if (isLoading) CircularProgressIndicator(modifier = Modifier.width(28.dp).height(28.dp), strokeWidth = 2.dp) + + CompactOutlinedSeriesButton(text = "Actualiser", width = 112.dp, onClick = onReload) + CompactOutlinedSeriesButton(text = "Live", width = 82.dp, onClick = onBack) + } + } +} + +@Composable +private fun SeriesCategoryPanel( + modifier: Modifier, + categorySearchQuery: String, + onCategorySearchChanged: (String) -> Unit, + categories: List, + selectedCategoryId: String?, + onCategorySelected: (String?) -> Unit +) { + Surface( + modifier = modifier, + color = Color.White.copy(alpha = 0.065f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Text( + text = "Catégories", + fontSize = 20.sp, + lineHeight = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + + DarkSeriesSearchField( + value = categorySearchQuery, + onValueChange = onCategorySearchChanged, + label = "Rechercher catégorie", + modifier = Modifier.fillMaxWidth() + ) + + LazyColumn( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(7.dp), + contentPadding = PaddingValues(bottom = 14.dp) + ) { + items( + items = categories, + key = { it.id ?: ALL_CATEGORY_ID } + ) { category -> + MediaCategoryRow( + category = category, + selected = category.id == selectedCategoryId, + onClick = { onCategorySelected(category.id) } + ) + } + } + } + } +} + +@Composable +private fun SeriesListPanel( + modifier: Modifier, + selectedCategoryName: String, + seriesSearchQuery: String, + onSeriesSearchChanged: (String) -> Unit, + series: List, + selectedSeriesId: String?, + favoriteSeriesIds: Set, + isLoading: Boolean, + errorMessage: String?, + onSeriesFocused: (SeriesDto) -> Unit, + onSeriesSelected: (SeriesDto) -> Unit, + onToggleFavorite: (SeriesDto) -> Unit, + onReload: () -> Unit +) { + Surface( + modifier = modifier, + color = Color.White.copy(alpha = 0.045f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Text( + text = selectedCategoryName, + fontSize = 20.sp, + lineHeight = 24.sp, + fontWeight = FontWeight.ExtraBold, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + DarkSeriesSearchField( + value = seriesSearchQuery, + onValueChange = onSeriesSearchChanged, + label = "Rechercher série", + modifier = Modifier.fillMaxWidth() + ) + + when { + isLoading -> LoadingSeriesMessage(text = "Chargement des séries...") + errorMessage != null -> SeriesErrorBlock(message = errorMessage, onRetry = onReload) + series.isEmpty() -> EmptySeriesMessage("Aucune série trouvée.") + else -> LazyColumn( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(8.dp), + contentPadding = PaddingValues(bottom = 18.dp) + ) { + items( + items = series, + key = { it.seriesId } + ) { item -> + SeriesRow( + series = item, + selected = item.seriesId == selectedSeriesId, + isFavorite = favoriteSeriesIds.contains(item.seriesId), + onFocused = { onSeriesFocused(item) }, + onClick = { onSeriesSelected(item) }, + onToggleFavorite = { onToggleFavorite(item) } + ) + } + } + } + } + } +} + +@Composable +private fun SeriesRow( + series: SeriesDto, + selected: Boolean, + isFavorite: Boolean, + onFocused: () -> Unit, + onClick: () -> Unit, + onToggleFavorite: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val shape = RoundedCornerShape(14.dp) + val title = series.titleText() + + Surface( + modifier = Modifier + .fillMaxWidth() + .border( + width = if (focused || selected) 2.dp else 1.dp, + color = when { + focused -> Color(0xFF22D3EE) + selected -> Color(0xFF38BDF8) + else -> Color.White.copy(alpha = 0.075f) + }, + shape = shape + ) + .clip(shape) + .onFocusChanged { state -> + focused = state.isFocused + if (state.isFocused) onFocused() + } + .clickable(onClick = onClick) + .focusable(), + color = when { + selected -> Color(0xFF7C3AED).copy(alpha = 0.25f) + focused -> Color.White.copy(alpha = 0.115f) + else -> Color.White.copy(alpha = 0.047f) + }, + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 10.dp, vertical = 8.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(10.dp) + ) { + ChannelLogo( + logoUrl = series.cover, + channelName = title, + modifier = Modifier.width(46.dp).height(46.dp) + ) + + Column(modifier = Modifier.weight(1f)) { + Text( + text = title, + fontSize = 15.sp, + lineHeight = 18.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Text( + text = buildString { + series.number?.let { append("N° $it • ") } + append("ID ${series.seriesId}") + series.genre?.takeIf { it.isNotBlank() }?.let { append(" • $it") } + if (isFavorite) append(" • Favori") + }, + fontSize = 11.sp, + lineHeight = 14.sp, + color = Color.White.copy(alpha = 0.58f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + OutlinedButton( + modifier = Modifier.width(48.dp).height(36.dp), + contentPadding = PaddingValues(horizontal = 4.dp, vertical = 0.dp), + onClick = onToggleFavorite + ) { + Text( + text = if (isFavorite) "★" else "☆", + fontSize = 15.sp, + fontWeight = FontWeight.Bold, + maxLines = 1 + ) + } + } + } +} + +@Composable +private fun EpisodesPanel( + modifier: Modifier, + selectedSeries: SeriesDto?, + seriesInfo: SeriesInfoResponse?, + isLoading: Boolean, + errorMessage: String?, + episodeSearchQuery: String, + onEpisodeSearchChanged: (String) -> Unit, + onRetry: () -> Unit, + onPlayEpisode: (SeriesEpisodeItem) -> Unit +) { + Surface( + modifier = modifier, + color = Color.White.copy(alpha = 0.045f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Text( + text = selectedSeries?.titleText() ?: "Sélectionne une série", + fontSize = 20.sp, + lineHeight = 24.sp, + fontWeight = FontWeight.ExtraBold, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + DarkSeriesSearchField( + value = episodeSearchQuery, + onValueChange = onEpisodeSearchChanged, + label = "Rechercher épisode", + modifier = Modifier.fillMaxWidth() + ) + + when { + selectedSeries == null -> EmptySeriesMessage("Choisis une série pour voir ses saisons et épisodes.") + isLoading -> LoadingSeriesMessage(text = "Chargement des épisodes...") + errorMessage != null -> SeriesErrorBlock(message = errorMessage, onRetry = onRetry) + seriesInfo == null -> EmptySeriesMessage("Aucun détail chargé pour cette série.") + else -> { + val episodes = remember(seriesInfo, episodeSearchQuery) { + val query = episodeSearchQuery.trim() + seriesInfo.allEpisodes().filter { item -> + query.isBlank() || + item.episode.titleText().contains(query, ignoreCase = true) || + item.seasonText().contains(query, ignoreCase = true) || + item.episode.episodeNum?.toString().orEmpty().contains(query, ignoreCase = true) + } + } + + if (episodes.isEmpty()) { + EmptySeriesMessage("Aucun épisode trouvé.") + } else { + LazyColumn( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(8.dp), + contentPadding = PaddingValues(bottom = 18.dp) + ) { + val grouped = episodes.groupBy { it.seasonText() } + grouped.forEach { (seasonName, items) -> + item(key = "header_$seasonName") { + Text( + text = seasonName, + color = Color(0xFFBAE6FD), + fontSize = 14.sp, + lineHeight = 18.sp, + fontWeight = FontWeight.Bold, + modifier = Modifier.padding(top = 6.dp, bottom = 2.dp) + ) + } + + items( + items = items, + key = { item -> "${seasonName}_${item.episode.id ?: item.episode.episodeNum?.toString() ?: item.episode.titleText()}" } + ) { item -> + EpisodeRow( + item = item, + seriesTitle = selectedSeries.titleText(), + onPlay = { onPlayEpisode(item) } + ) + } + } + } + } + } + } + } + } +} + +@Composable +private fun EpisodeRow( + item: SeriesEpisodeItem, + seriesTitle: String?, + onPlay: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val shape = RoundedCornerShape(14.dp) + val episode = item.episode + val title = buildEpisodeTitle( + item = item, + seriesTitle = seriesTitle + ) + val meta = buildEpisodeMeta(item) + + Surface( + modifier = Modifier + .fillMaxWidth() + .border( + width = if (focused) 2.dp else 1.dp, + color = if (focused) Color(0xFF22D3EE) else Color.White.copy(alpha = 0.075f), + shape = shape + ) + .clip(shape) + .onFocusChanged { focused = it.isFocused } + .clickable(onClick = onPlay) + .focusable(), + color = if (focused) Color.White.copy(alpha = 0.135f) else Color.White.copy(alpha = 0.052f), + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 10.dp, vertical = 8.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(10.dp) + ) { + Box( + modifier = Modifier + .width(54.dp) + .height(42.dp) + .clip(RoundedCornerShape(12.dp)) + .background(Color(0xFF0F172A).copy(alpha = 0.82f)), + contentAlignment = Alignment.Center + ) { + Text( + text = episode.episodeNum?.let { "E$it" } ?: "EP", + fontSize = 13.sp, + lineHeight = 16.sp, + fontWeight = FontWeight.Black, + color = Color.White.copy(alpha = 0.92f), + maxLines = 1 + ) + } + + Column( + modifier = Modifier.weight(1f), + verticalArrangement = Arrangement.spacedBy(3.dp) + ) { + Text( + text = title, + fontSize = 14.sp, + lineHeight = 17.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + maxLines = 2, + overflow = TextOverflow.Ellipsis + ) + Text( + text = meta, + fontSize = 10.sp, + lineHeight = 13.sp, + color = Color.White.copy(alpha = 0.62f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + Button( + modifier = Modifier.width(62.dp).height(34.dp), + contentPadding = PaddingValues(horizontal = 6.dp, vertical = 0.dp), + onClick = onPlay + ) { + Text(text = "Lire", fontSize = 11.sp, fontWeight = FontWeight.Bold, maxLines = 1) + } + } + } +} + +private fun buildEpisodeTitle( + item: SeriesEpisodeItem, + seriesTitle: String? +): String { + val episode = item.episode + val rawTitle = episode.title + .orEmpty() + .trim() + .takeIf { it.isNotBlank() && it != "." && it != "-" && it != "..." } + + val episodeLabel = episode.episodeNum?.let { "Épisode $it" } ?: "Épisode" + + return when { + rawTitle != null && rawTitle != episode.episodeNum?.toString() -> "$episodeLabel • $rawTitle" + !seriesTitle.isNullOrBlank() -> "$episodeLabel • $seriesTitle" + else -> episodeLabel + } +} + +private fun buildEpisodeMeta(item: SeriesEpisodeItem): String { + val episode = item.episode + val parts = mutableListOf() + + parts.add(item.seasonText()) + parts.add(episode.extensionText().uppercase()) + + episode.info?.duration + ?.trim() + ?.takeIf { it.isNotBlank() && it != "." && it != "-" } + ?.let { parts.add(it) } + + episode.info?.releaseDate + ?.trim() + ?.takeIf { it.isNotBlank() && it != "." && it != "-" } + ?.let { parts.add(it) } + + episode.id + ?.trim() + ?.takeIf { it.isNotBlank() } + ?.let { parts.add("ID $it") } + + return parts.joinToString(" • ") +} + +@Composable +private fun DarkSeriesSearchField( + value: String, + onValueChange: (String) -> Unit, + label: String, + modifier: Modifier = Modifier +) { + OutlinedTextField( + modifier = modifier.height(52.dp), + value = value, + onValueChange = onValueChange, + label = { + Text(text = label, color = Color.White.copy(alpha = 0.68f), fontSize = 12.sp) + }, + singleLine = true, + textStyle = TextStyle(color = Color.White, fontSize = 15.sp, lineHeight = 18.sp) + ) +} + +@Composable +private fun LoadingSeriesMessage(text: String) { + Row( + modifier = Modifier.fillMaxWidth().padding(24.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + CircularProgressIndicator() + Text(text = text, color = Color.White.copy(alpha = 0.84f), fontSize = 15.sp) + } +} + +@Composable +private fun SeriesErrorBlock(message: String, onRetry: () -> Unit) { + Card( + modifier = Modifier.fillMaxWidth(), + colors = CardDefaults.cardColors(containerColor = Color(0xFF7F1D1D).copy(alpha = 0.34f)), + shape = RoundedCornerShape(18.dp) + ) { + Row( + modifier = Modifier.padding(16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + Text(modifier = Modifier.weight(1f), text = message, color = Color.White, style = MaterialTheme.typography.bodyMedium) + Button(onClick = onRetry) { Text("Réessayer") } + } + } +} + +@Composable +private fun EmptySeriesMessage(text: String) { + Text( + modifier = Modifier.widthIn(max = 720.dp).padding(18.dp), + text = text, + color = Color.White.copy(alpha = 0.78f), + fontSize = 15.sp, + lineHeight = 20.sp + ) +} + +@Composable +private fun CompactOutlinedSeriesButton( + text: String, + width: androidx.compose.ui.unit.Dp, + onClick: () -> Unit +) { + OutlinedButton( + modifier = Modifier.width(width).height(36.dp), + contentPadding = PaddingValues(horizontal = 10.dp, vertical = 0.dp), + onClick = onClick + ) { + Text(text = text, fontSize = 12.sp, lineHeight = 15.sp, fontWeight = FontWeight.Bold, maxLines = 1, overflow = TextOverflow.Ellipsis) + } +} + +private fun buildSeriesCategoryFilters( + series: List, + categories: List, + favoriteSeriesIds: Set +): List { + val namesById = categories + .filter { it.categoryId.isNotBlank() } + .associate { category -> + category.categoryId to category.categoryName.orEmpty().ifBlank { "Catégorie ${category.categoryId}" } + } + + val counts = series.groupingBy { item -> + item.categoryId?.takeIf { it.isNotBlank() } ?: UNCATEGORIZED_CATEGORY_ID + }.eachCount() + + val filters = mutableListOf( + MediaCategoryFilter(id = null, name = "Toutes les séries", count = series.size) + ) + + val favoriteCount = series.count { favoriteSeriesIds.contains(it.seriesId) } + if (favoriteCount > 0) { + filters.add(MediaCategoryFilter(id = FAVORITES_SERIES_CATEGORY_ID, name = "★ Favoris", count = favoriteCount)) + } + + counts.keys + .filter { it != UNCATEGORIZED_CATEGORY_ID } + .sortedWith( + compareBy( + { id -> categorySortWeight(namesById[id] ?: "Catégorie $id") }, + { id -> categorySortNormalizedName(namesById[id] ?: "Catégorie $id") } + ) + ) + .forEach { id -> + filters.add(MediaCategoryFilter(id = id, name = namesById[id] ?: "Catégorie $id", count = counts[id] ?: 0)) + } + + val uncategorized = counts[UNCATEGORIZED_CATEGORY_ID] ?: 0 + if (uncategorized > 0) { + filters.add(MediaCategoryFilter(id = UNCATEGORIZED_CATEGORY_ID, name = "Non classées", count = uncategorized)) + } + + return filters +} + +private fun filterSeries( + series: List, + selectedCategoryId: String?, + favoriteSeriesIds: Set, + query: String +): List { + val cleanQuery = query.trim() + return series + .asSequence() + .filter { item -> + when (selectedCategoryId) { + null -> true + FAVORITES_SERIES_CATEGORY_ID -> favoriteSeriesIds.contains(item.seriesId) + UNCATEGORIZED_CATEGORY_ID -> item.categoryId.isNullOrBlank() + else -> item.categoryId == selectedCategoryId + } + } + .filter { item -> + cleanQuery.isBlank() || + item.name.orEmpty().contains(cleanQuery, ignoreCase = true) || + item.seriesId.contains(cleanQuery, ignoreCase = true) || + item.genre.orEmpty().contains(cleanQuery, ignoreCase = true) + } + .toList() +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/VodScreen.kt b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/VodScreen.kt new file mode 100644 index 0000000..d16afa4 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/ui/screens/VodScreen.kt @@ -0,0 +1,661 @@ +package ma.tkgraph.xtreamtv.ui.screens + +import androidx.activity.compose.BackHandler +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.focusable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.focus.onFocusChanged +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import ma.tkgraph.xtreamtv.data.model.LiveCategoryDto +import ma.tkgraph.xtreamtv.data.model.VodStreamDto +import ma.tkgraph.xtreamtv.ui.components.ChannelLogo +import ma.tkgraph.xtreamtv.util.categorySortNormalizedName +import ma.tkgraph.xtreamtv.util.categorySortWeight + +private const val ALL_CATEGORY_ID = "__all__" +private const val FAVORITES_VOD_CATEGORY_ID = "__favorites_vod__" +private const val UNCATEGORIZED_CATEGORY_ID = "__uncategorized__" + +@Composable +fun VodScreen( + movies: List, + categories: List, + isLoading: Boolean, + errorMessage: String?, + selectedCategoryId: String?, + selectedMovieId: String?, + favoriteMovieIds: Set, + categorySearchQuery: String, + movieSearchQuery: String, + onCategorySelected: (String?) -> Unit, + onCategorySearchChanged: (String) -> Unit, + onMovieSearchChanged: (String) -> Unit, + onMovieFocused: (VodStreamDto) -> Unit, + onMovieSelected: (VodStreamDto) -> Unit, + onToggleFavorite: (VodStreamDto) -> Unit, + onReload: () -> Unit, + onBack: () -> Unit +) { + BackHandler(onBack = onBack) + + val categoryFilters = remember(movies, categories, favoriteMovieIds) { + buildVodCategoryFilters( + movies = movies, + categories = categories, + favoriteMovieIds = favoriteMovieIds + ) + } + + val visibleCategories = remember(categoryFilters, categorySearchQuery) { + val query = categorySearchQuery.trim() + if (query.isBlank()) categoryFilters else categoryFilters.filter { category -> + category.name.contains(query, ignoreCase = true) || category.id.orEmpty().contains(query, ignoreCase = true) + } + } + + val filteredMovies = remember(movies, selectedCategoryId, movieSearchQuery, favoriteMovieIds) { + filterVodMovies( + movies = movies, + selectedCategoryId = selectedCategoryId, + favoriteMovieIds = favoriteMovieIds, + query = movieSearchQuery + ) + } + + val selectedCategoryName = categoryFilters.firstOrNull { it.id == selectedCategoryId }?.name ?: "Toutes les VOD" + + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.verticalGradient( + colors = listOf( + Color(0xFF020617), + Color(0xFF111827), + Color(0xFF020617) + ) + ) + ) + ) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = 28.dp, vertical = 18.dp), + verticalArrangement = Arrangement.spacedBy(14.dp) + ) { + VodHeader( + visibleCount = filteredMovies.size, + totalCount = movies.size, + selectedCategoryName = selectedCategoryName, + isLoading = isLoading, + onReload = onReload, + onBack = onBack + ) + + Row( + modifier = Modifier.fillMaxSize(), + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + VodCategoryPanel( + modifier = Modifier + .width(310.dp) + .fillMaxHeight(), + categorySearchQuery = categorySearchQuery, + onCategorySearchChanged = onCategorySearchChanged, + categories = visibleCategories, + selectedCategoryId = selectedCategoryId, + onCategorySelected = onCategorySelected + ) + + Surface( + modifier = Modifier + .weight(1f) + .fillMaxHeight(), + color = Color.White.copy(alpha = 0.045f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = selectedCategoryName, + fontSize = 22.sp, + lineHeight = 26.sp, + fontWeight = FontWeight.ExtraBold, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Text( + text = "Films et VOD disponibles sur ton serveur", + fontSize = 12.sp, + lineHeight = 15.sp, + color = Color.White.copy(alpha = 0.58f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + DarkVodSearchField( + value = movieSearchQuery, + onValueChange = onMovieSearchChanged, + label = "Rechercher VOD", + modifier = Modifier.widthIn(min = 300.dp, max = 430.dp) + ) + } + + when { + isLoading -> LoadingMessage(text = "Chargement des VOD...") + errorMessage != null -> ErrorBlock(message = errorMessage, onRetry = onReload) + filteredMovies.isEmpty() -> EmptyVodMessage("Aucune VOD trouvée. Change la catégorie ou la recherche, cette idée folle de filtrer fonctionne parfois trop bien.") + else -> LazyColumn( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(8.dp), + contentPadding = PaddingValues(bottom = 18.dp) + ) { + items( + items = filteredMovies, + key = { it.streamId } + ) { movie -> + VodMovieRow( + movie = movie, + selected = movie.streamId == selectedMovieId, + isFavorite = favoriteMovieIds.contains(movie.streamId), + onFocused = { onMovieFocused(movie) }, + onPlay = { onMovieSelected(movie) }, + onToggleFavorite = { onToggleFavorite(movie) } + ) + } + } + } + } + } + } + } + } +} + +@Composable +private fun VodHeader( + visibleCount: Int, + totalCount: Int, + selectedCategoryName: String, + isLoading: Boolean, + onReload: () -> Unit, + onBack: () -> Unit +) { + Surface( + modifier = Modifier.fillMaxWidth(), + color = Color.White.copy(alpha = 0.055f), + shape = RoundedCornerShape(22.dp), + tonalElevation = 0.dp + ) { + Row( + modifier = Modifier.padding(horizontal = 22.dp, vertical = 14.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(14.dp) + ) { + Column(modifier = Modifier.weight(1f)) { + Text( + text = "VOD", + fontSize = 26.sp, + lineHeight = 30.sp, + fontWeight = FontWeight.Black, + color = Color.White, + maxLines = 1 + ) + Text( + text = "$visibleCount / $totalCount films • $selectedCategoryName", + fontSize = 14.sp, + lineHeight = 18.sp, + color = Color.White.copy(alpha = 0.70f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + if (isLoading) CircularProgressIndicator(modifier = Modifier.width(28.dp).height(28.dp), strokeWidth = 2.dp) + + CompactOutlinedMediaButton(text = "Actualiser", width = 112.dp, onClick = onReload) + CompactOutlinedMediaButton(text = "Live", width = 82.dp, onClick = onBack) + } + } +} + +@Composable +private fun VodCategoryPanel( + modifier: Modifier, + categorySearchQuery: String, + onCategorySearchChanged: (String) -> Unit, + categories: List, + selectedCategoryId: String?, + onCategorySelected: (String?) -> Unit +) { + Surface( + modifier = modifier, + color = Color.White.copy(alpha = 0.065f), + shape = RoundedCornerShape(22.dp) + ) { + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Text( + text = "Catégories VOD", + fontSize = 20.sp, + lineHeight = 24.sp, + fontWeight = FontWeight.Bold, + color = Color.White + ) + + DarkVodSearchField( + value = categorySearchQuery, + onValueChange = onCategorySearchChanged, + label = "Rechercher catégorie", + modifier = Modifier.fillMaxWidth() + ) + + LazyColumn( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(7.dp), + contentPadding = PaddingValues(bottom = 14.dp) + ) { + items( + items = categories, + key = { it.id ?: ALL_CATEGORY_ID } + ) { category -> + MediaCategoryRow( + category = category, + selected = category.id == selectedCategoryId, + onClick = { onCategorySelected(category.id) } + ) + } + } + } + } +} + +@Composable +private fun VodMovieRow( + movie: VodStreamDto, + selected: Boolean, + isFavorite: Boolean, + onFocused: () -> Unit, + onPlay: () -> Unit, + onToggleFavorite: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val shape = RoundedCornerShape(14.dp) + val title = movie.titleText() + + Surface( + modifier = Modifier + .fillMaxWidth() + .border( + width = if (focused || selected) 2.dp else 1.dp, + color = when { + focused -> Color(0xFF22D3EE) + selected -> Color(0xFF38BDF8) + else -> Color.White.copy(alpha = 0.075f) + }, + shape = shape + ), + color = when { + selected -> Color(0xFF7C3AED).copy(alpha = 0.25f) + focused -> Color.White.copy(alpha = 0.115f) + else -> Color.White.copy(alpha = 0.047f) + }, + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 10.dp, vertical = 8.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(10.dp) + ) { + ChannelLogo( + logoUrl = movie.streamIcon, + channelName = title, + modifier = Modifier + .width(52.dp) + .height(52.dp) + ) + + Column( + modifier = Modifier + .weight(1f) + .clip(RoundedCornerShape(12.dp)) + .onFocusChanged { state -> + focused = state.isFocused + if (state.isFocused) onFocused() + } + .clickable(onClick = onPlay) + .focusable() + .padding(horizontal = 8.dp, vertical = 4.dp), + verticalArrangement = Arrangement.spacedBy(3.dp) + ) { + Text( + text = title, + fontSize = 16.sp, + lineHeight = 19.sp, + fontWeight = FontWeight.Bold, + color = Color.White, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Text( + text = buildString { + movie.number?.let { append("N° $it • ") } + append("ID ${movie.streamId}") + append(" • ${movie.extensionText().uppercase()}") + movie.rating?.takeIf { it.isNotBlank() }?.let { append(" • Note $it") } + if (isFavorite) append(" • Favori") + }, + fontSize = 12.sp, + lineHeight = 15.sp, + color = Color.White.copy(alpha = 0.60f), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + + OutlinedButton( + modifier = Modifier.width(52.dp).height(38.dp), + contentPadding = PaddingValues(horizontal = 4.dp, vertical = 0.dp), + onClick = onToggleFavorite + ) { + Text( + text = if (isFavorite) "★" else "☆", + fontSize = 16.sp, + fontWeight = FontWeight.Bold, + maxLines = 1 + ) + } + + Button( + modifier = Modifier.width(82.dp).height(38.dp), + contentPadding = PaddingValues(horizontal = 10.dp, vertical = 0.dp), + onClick = onPlay + ) { + Text(text = "Lire", fontSize = 12.sp, fontWeight = FontWeight.Bold, maxLines = 1) + } + } + } +} + +@Composable +private fun DarkVodSearchField( + value: String, + onValueChange: (String) -> Unit, + label: String, + modifier: Modifier = Modifier +) { + OutlinedTextField( + modifier = modifier.height(52.dp), + value = value, + onValueChange = onValueChange, + label = { + Text( + text = label, + color = Color.White.copy(alpha = 0.68f), + fontSize = 12.sp + ) + }, + singleLine = true, + textStyle = TextStyle( + color = Color.White, + fontSize = 15.sp, + lineHeight = 18.sp + ) + ) +} + +@Composable +internal fun MediaCategoryRow( + category: MediaCategoryFilter, + selected: Boolean, + onClick: () -> Unit +) { + var focused by remember { mutableStateOf(false) } + val shape = RoundedCornerShape(14.dp) + + Surface( + modifier = Modifier + .fillMaxWidth() + .onFocusChanged { focused = it.isFocused } + .border( + width = if (focused || selected) 2.dp else 1.dp, + color = when { + focused -> Color(0xFF22D3EE) + selected -> Color(0xFF38BDF8) + else -> Color.White.copy(alpha = 0.08f) + }, + shape = shape + ) + .clip(shape) + .clickable(onClick = onClick) + .focusable(), + color = when { + selected -> Color(0xFF0EA5E9).copy(alpha = 0.32f) + focused -> Color.White.copy(alpha = 0.12f) + else -> Color.White.copy(alpha = 0.045f) + }, + shape = shape + ) { + Row( + modifier = Modifier.padding(horizontal = 13.dp, vertical = 10.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + Text( + modifier = Modifier.weight(1f), + text = category.name, + fontSize = 14.sp, + lineHeight = 18.sp, + color = Color.White, + fontWeight = if (selected) FontWeight.Bold else FontWeight.SemiBold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Text( + text = category.count.toString(), + fontSize = 12.sp, + lineHeight = 14.sp, + color = Color.White.copy(alpha = 0.70f) + ) + } + } +} + +@Composable +private fun LoadingMessage(text: String) { + Row( + modifier = Modifier.fillMaxWidth().padding(24.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + CircularProgressIndicator() + Text(text = text, color = Color.White.copy(alpha = 0.84f), fontSize = 15.sp) + } +} + +@Composable +private fun ErrorBlock(message: String, onRetry: () -> Unit) { + Card( + modifier = Modifier.fillMaxWidth(), + colors = CardDefaults.cardColors(containerColor = Color(0xFF7F1D1D).copy(alpha = 0.34f)), + shape = RoundedCornerShape(18.dp) + ) { + Row( + modifier = Modifier.padding(16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + Text( + modifier = Modifier.weight(1f), + text = message, + color = Color.White, + style = MaterialTheme.typography.bodyMedium + ) + Button(onClick = onRetry) { Text("Réessayer") } + } + } +} + +@Composable +private fun EmptyVodMessage(text: String) { + Text( + modifier = Modifier.widthIn(max = 720.dp).padding(18.dp), + text = text, + color = Color.White.copy(alpha = 0.78f), + fontSize = 15.sp, + lineHeight = 20.sp + ) +} + +@Composable +private fun CompactOutlinedMediaButton( + text: String, + width: androidx.compose.ui.unit.Dp, + onClick: () -> Unit +) { + OutlinedButton( + modifier = Modifier.width(width).height(36.dp), + contentPadding = PaddingValues(horizontal = 10.dp, vertical = 0.dp), + onClick = onClick + ) { + Text( + text = text, + fontSize = 12.sp, + lineHeight = 15.sp, + fontWeight = FontWeight.Bold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } +} + +internal data class MediaCategoryFilter( + val id: String?, + val name: String, + val count: Int +) + +private fun buildVodCategoryFilters( + movies: List, + categories: List, + favoriteMovieIds: Set +): List { + val namesById = categories + .filter { it.categoryId.isNotBlank() } + .associate { category -> + category.categoryId to category.categoryName.orEmpty().ifBlank { "Catégorie ${category.categoryId}" } + } + + val counts = movies.groupingBy { movie -> + movie.categoryId?.takeIf { it.isNotBlank() } ?: UNCATEGORIZED_CATEGORY_ID + }.eachCount() + + val filters = mutableListOf( + MediaCategoryFilter(id = null, name = "Toutes les VOD", count = movies.size) + ) + + val favoriteCount = movies.count { favoriteMovieIds.contains(it.streamId) } + if (favoriteCount > 0) { + filters.add(MediaCategoryFilter(id = FAVORITES_VOD_CATEGORY_ID, name = "★ Favoris", count = favoriteCount)) + } + + counts.keys + .filter { it != UNCATEGORIZED_CATEGORY_ID } + .sortedWith( + compareBy( + { id -> categorySortWeight(namesById[id] ?: "Catégorie $id") }, + { id -> categorySortNormalizedName(namesById[id] ?: "Catégorie $id") } + ) + ) + .forEach { id -> + filters.add(MediaCategoryFilter(id = id, name = namesById[id] ?: "Catégorie $id", count = counts[id] ?: 0)) + } + + val uncategorized = counts[UNCATEGORIZED_CATEGORY_ID] ?: 0 + if (uncategorized > 0) { + filters.add(MediaCategoryFilter(id = UNCATEGORIZED_CATEGORY_ID, name = "Non classées", count = uncategorized)) + } + + return filters +} + +private fun filterVodMovies( + movies: List, + selectedCategoryId: String?, + favoriteMovieIds: Set, + query: String +): List { + val cleanQuery = query.trim() + return movies + .asSequence() + .filter { movie -> + when (selectedCategoryId) { + null -> true + FAVORITES_VOD_CATEGORY_ID -> favoriteMovieIds.contains(movie.streamId) + UNCATEGORIZED_CATEGORY_ID -> movie.categoryId.isNullOrBlank() + else -> movie.categoryId == selectedCategoryId + } + } + .filter { movie -> + cleanQuery.isBlank() || + movie.name.orEmpty().contains(cleanQuery, ignoreCase = true) || + movie.streamId.contains(cleanQuery, ignoreCase = true) || + movie.rating.orEmpty().contains(cleanQuery, ignoreCase = true) + } + .toList() +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/ui/theme/Theme.kt b/app/src/main/java/ma/tkgraph/xtreamtv/ui/theme/Theme.kt new file mode 100644 index 0000000..01294a3 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/ui/theme/Theme.kt @@ -0,0 +1,43 @@ +package ma.tkgraph.xtreamtv.ui.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Typography +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color + +private val DarkColors = darkColorScheme( + primary = Color(0xFF60A5FA), + secondary = Color(0xFF93C5FD), + background = Color(0xFF050816), + surface = Color(0xFF101828), + onPrimary = Color.White, + onSecondary = Color.White, + onBackground = Color.White, + onSurface = Color.White +) + +private val LightColors = lightColorScheme( + primary = Color(0xFF2563EB), + secondary = Color(0xFF1D4ED8), + background = Color(0xFFF8FAFC), + surface = Color.White, + onPrimary = Color.White, + onSecondary = Color.White, + onBackground = Color(0xFF111827), + onSurface = Color(0xFF111827) +) + +@Composable +fun XtreamTvTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + content: @Composable () -> Unit +) { + MaterialTheme( + colorScheme = if (darkTheme) DarkColors else LightColors, + typography = Typography(), + content = content + ) +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/util/CategorySortUtils.kt b/app/src/main/java/ma/tkgraph/xtreamtv/util/CategorySortUtils.kt new file mode 100644 index 0000000..7e97af2 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/util/CategorySortUtils.kt @@ -0,0 +1,73 @@ +package ma.tkgraph.xtreamtv.util + +import java.text.Normalizer +import java.util.Locale + +/** + * Orders IPTV categories in a more useful way for this app: + * French categories first, Arabic categories second, everything else after. + * Special app categories such as "Toutes" and "Favoris" are still added before this sort + * by each screen, so they remain at the top. + */ +fun categorySortWeight(categoryName: String): Int { + val normalized = categorySortNormalizedName(categoryName) + + return when { + isFrenchCategory(normalized) -> 0 + isArabicCategory(categoryName, normalized) -> 1 + else -> 2 + } +} + +fun categorySortNormalizedName(categoryName: String): String { + val withoutAccents = Normalizer.normalize(categoryName, Normalizer.Form.NFD) + .replace("\\p{Mn}+".toRegex(), "") + + return withoutAccents + .lowercase(Locale.ROOT) + .replace("|", " ") + .replace("-", " ") + .replace("_", " ") + .replace("/", " ") + .replace("\\s+".toRegex(), " ") + .trim() +} + +private fun isFrenchCategory(normalized: String): Boolean { + val padded = " $normalized " + + return normalized.contains("france") || + normalized.contains("francais") || + normalized.contains("french") || + normalized.contains("francia") || + padded.contains(" fr ") || + padded.contains(" fra ") || + padded.contains(" french ") || + padded.contains(" eu france ") || + padded.contains(" eu fr ") || + padded.startsWith(" fr ") || + padded.startsWith(" fra ") +} + +private fun isArabicCategory(original: String, normalized: String): Boolean { + val padded = " $normalized " + val containsArabicScript = original.any { char -> + Character.UnicodeBlock.of(char) == Character.UnicodeBlock.ARABIC || + Character.UnicodeBlock.of(char) == Character.UnicodeBlock.ARABIC_PRESENTATION_FORMS_A || + Character.UnicodeBlock.of(char) == Character.UnicodeBlock.ARABIC_PRESENTATION_FORMS_B || + Character.UnicodeBlock.of(char) == Character.UnicodeBlock.ARABIC_SUPPLEMENT || + Character.UnicodeBlock.of(char) == Character.UnicodeBlock.ARABIC_EXTENDED_A + } + + return containsArabicScript || + normalized.contains("arabic") || + normalized.contains("arabe") || + normalized.contains("arab") || + normalized.contains("maghreb") || + normalized.contains("maroc") || + normalized.contains("morocco") || + padded.contains(" ar ") || + padded.startsWith(" ar ") || + padded.contains(" mena ") || + padded.contains(" middle east ") +} diff --git a/app/src/main/java/ma/tkgraph/xtreamtv/util/XtreamUrlBuilder.kt b/app/src/main/java/ma/tkgraph/xtreamtv/util/XtreamUrlBuilder.kt new file mode 100644 index 0000000..a8e1862 --- /dev/null +++ b/app/src/main/java/ma/tkgraph/xtreamtv/util/XtreamUrlBuilder.kt @@ -0,0 +1,71 @@ +package ma.tkgraph.xtreamtv.util + +import ma.tkgraph.xtreamtv.data.model.XtreamConfig + +object XtreamUrlBuilder { + fun liveUrl( + config: XtreamConfig, + streamId: String, + extension: String = "m3u8" + ): String { + val server = normalizeServer(config.serverUrl) + return "$server/live/${config.username}/${config.password}/$streamId.$extension" + } + + fun vodUrl( + config: XtreamConfig, + streamId: String, + extension: String = "mp4" + ): String { + val server = normalizeServer(config.serverUrl) + return "$server/movie/${config.username}/${config.password}/$streamId.$extension" + } + + fun seriesUrl( + config: XtreamConfig, + episodeId: String, + extension: String = "mp4" + ): String { + val server = normalizeServer(config.serverUrl) + return "$server/series/${config.username}/${config.password}/$episodeId.$extension" + } + + + fun timeshiftUrl( + config: XtreamConfig, + streamId: String, + start: String, + durationMinutes: Int, + extension: String = "ts" + ): String { + val server = normalizeServer(config.serverUrl) + val formattedStart = formatTimeshiftStart(start) + val safeDuration = durationMinutes.coerceIn(1, 720) + return "$server/timeshift/${config.username}/${config.password}/$safeDuration/$formattedStart/$streamId.$extension" + } + + private fun formatTimeshiftStart(start: String): String { + val match = Regex("(\\d{4}-\\d{2}-\\d{2})[ T](\\d{2}):(\\d{2})").find(start.trim()) + if (match != null) { + val date = match.groupValues[1] + val hour = match.groupValues[2] + val minute = match.groupValues[3] + return "$date:$hour-$minute" + } + + return start.trim() + .take(16) + .replace(" ", ":") + .replace(Regex(":(\\d{2})$"), "-$1") + } + + private fun normalizeServer(rawUrl: String): String { + val trimmed = rawUrl.trim() + val withProtocol = when { + trimmed.startsWith("http://", ignoreCase = true) -> trimmed + trimmed.startsWith("https://", ignoreCase = true) -> trimmed + else -> "http://$trimmed" + } + return withProtocol.trimEnd('/') + } +} diff --git a/app/src/main/res/drawable-nodpi/imedia_tv_background.png b/app/src/main/res/drawable-nodpi/imedia_tv_background.png new file mode 100644 index 0000000000000000000000000000000000000000..d02f8e72525d0be5c1c24fcb552d85a97c7f112e GIT binary patch literal 3113832 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̆U-rEf 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

#sW)7I76* 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�u%05BhR+NFRp6*fZgGd0v=iL?LKru@NC=A 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%0D7}#)Ay#j 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

+dyT0bPq(Pp1>zv}NQ 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%0A18?3R>66RMZk*F7g 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 $b?9Dv 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

T#BAi3hxz;cv#3JCI*AR z6KEBgu}Rz%eP;eflZhdEp19zeyvy?(&Dc$MVLw!Bw7k)Qd1)k{8Q)ptBtPPlw$i|^ z5?6Sd@7}4C*SzTGV?g*1zGm!+_!#c0h8E5-mI;lLuxDAt*s1sz5a1@%Qd#+##KrhE z;A^|P(TLyZzytc1B3I0VUTwxk@^6>ZwhdIYVkOL++q5-9~B(b4xS6CJX$`6@r6i0c3nBY=~|RN6rRf^1Y(3l=e!@iH*xz zxD=1jPkS+Tg-xbw;PRaN=v4ZTO&c*8gLn^S09M~Leau%E!J2~prX{CIw2OF3< zH!m;+7DT{lq_wb(bE(<96*X(Hd2Cx+V2ZUKmv@}$)NCe+vxWg6RY|8i;jdLp&hx&Z zzI7nCc)|~cp_=~{Yr30PL+ig^4+dP9@lj<7B+0W}PjYa-m5R0#FCQB+86MF`NFvH% zg=eGx-Dl0m04!MAUP>1*Fx5(f*qJtb-;mqjC~hSdr)NVuF%N$`e0ngC0I0xnqV}J_ zSL9D~UvP85pQZPZ^6{YPbA9OL{~aGNPS`jRPu$dG%$%MV=*4CY*w}~)?!h=Rm=0=J z@+1C2x31{UvjILJFbrEKK4RdcvS}Ybf;;`f9hI1HBXHsC}P1LV4hUu2HAhaUOhaL>oG$wpayK*Ga?woctK5Tlg`PytyMDCv0zU@d%&yY*s%|H!sXdT?PJd zFrq--OSP2**A=YTTk{Izvzcc-q`|zbtc}Ta@nh=Fr-9bdd)o`NWxl)A-x@ z=py{U7lU0cIr3aL?<`HmAMUlo$Ikn#M2zj7>NDo%QLe+F?K2#h+*vKKK%=vf|r6H;g`d?@O!f~h8%yH zqkTRp^0vh<$J8VzC-1~fQ5xi!rZjnfY>px(jy`m#r0_afr_AL4!o4ZuQe}xXn2}%q zr^>ALoWGnz-Wa)j;1{(*`N6Q^w0PGU#57!~&_jMjHup_#_KFo?WUV-ovkpF$^33!d z&!{Q*l{^n;#{VLYg`bnUhNu)ww#MB_J2nm1B0ml`!-D-vu4ONv7}sMTDs&9`*p~3C z$ft~zo9Abp$nm0WN2cI(;M)jpa;2)YcPvR4e7h2(@R%6p$b-RnU-;0O z{=yeAN0@uN1RU+)-%jKqd3r|QDK(oti0rS_W=+}3R4IQr&$$8;w^K!&>U>sknR!q2Y4T#_A8{#ap0nPM9da%H ziUf|o&3my?l(AvPcfoJ&U8Tv`3S?3DJgme#b+GU|&)0a{Hs#vD6%fUb9e<|ASHG=S zKlPWH2jA-c4}KH>-pk^>TvQ{{EXBG&b1S}!bd(bG=3YILGCwmWc+HL2^n)} z8_?xt*Qc|_=|&`gR-GV#Mf|m~hlwtQ8}N750?BRi&gpNf;D4a6_LBrhJMWh{w)07K zb4!`S&oNZ^=55yj|MiUz^~3*%zpm$h_PJ7D-~7u@_3!@ne=qSKH?Tz~y!O&<`cC+W zy&{JPIX2NTSuZs2x#B0Ws^B4}Ie*D@xL2>MDLUa*%;7?(kr8<>d{80B zk+U>t8sHDNL$X!qsbR?*zqhJqA87vy8`=1rTCB&n46S?h{cEu}RQ^9+YLxO5tPM_W zQsYPP#eVb|5i`#6j@#7K$(+{IjI_u1246=BJ`^!%gP{x_Yn<6@IX~C<#*gXS|MUE3 zf6j4H&z@Pw_a60I|IhzQ@Bi695|cC78aFtS=lEB|zu?bce8QKcY~{nbWVr@?ri|ZW z@Yu9P7T#*<$i0PfA+G$mEX3rBQ?2BQZHbRG(x&n9YZ|Y|Fu-Czc{bM%0xru<*$YbcX zak91Akew78?5dL}C=!!oKfF;te4^v?KhnWwdd+t_*j)eY`=7|?m-_f8e@^Fb{)Bw{ zb;-O{nL$C{rOW6aUivV_xffr`kLw8r;3orp5`5852(Dx)gy^3Hm=w1V27IN{q~NFc z9ZcpDUx_Xh4P?aTf8)bsLT)zE=3@#KUsO8J?{$6qhROaNU9J?G_d1X>Y!<{f{f~R( z*@#&i3t(z^Y6wr!%{fPnp}97<1U*!G5_Ds-Y6`_fb}*qd&v8r5$At;T&KotG>g1G~ z%?sroyOTu+LMk|#_ftef9_Z9X?|Tl?e{`tQW2_P{M&G>@BnLOdFU_xK)&Q*Xd8?0I661?!&@KF>sfpw-B#1>q8 z5O3mm{p1HLMyHQImT#COt|CXxAK=f6M-l<>O`l1j0H8cdM$d8_zjJPHivA3c#5Oo4 zIcB2^oK22ju^;9pzD)>7yhS|2N6yPA?JldaHCY&Np`s{6w-)H9XOPRIN3b5Eh3kU@ z?eIavx<1&z#tU_d9QYefY-G3&wx&o9;uU`yKPNebi0X7E*Q6ugt;Ypj-@PZ23S!f;NrTn7K z?h$M2uH$blgp9QD2e+CPx0ko0yeQf@N>0U#O2VH zmxLxztx}`Q6z7TmgixxX@Y&oP;FZx?9PoK$%wuf07rfT}N`ON_83{O?9v-Q}~?Rq}-^oNJ8)R^*wGF)0SD@i|{y+H~B}nWbCS}iEoqq5gare=bR&4dkl#jJm~KY zb>wZY@lY~+5Kd8|)FfHB%b|f_(GQ&sZi=YPf-Z4ua(SisEO;=spLpO#Pq83QBG%!b z{BZnd3^n%#pXpy&oDeJFM{USrBe7!u$+R(T;r0|kRE^RgCh;p+CLfAbUUqxs2RP7u zP?I&RjAvoD;HGIi-n`fPG0#-;ARgq%fp6m4+mOhE$(Skl$l^NwLN(o*XZS~s$5#By zv7Q01sw9#t<6)w+@GlF}CWgzO!E-_w-HmOHZPg#8ePPEozBKhBSd$06>gW_MAPbiy z%S`@UrPL1SQ-jCUf@Vw~jJM#K<3&u3zMEEwz9pQvC&cT&BV*F@w zj$}}i`yD-uk;n}4YqH5XiI?ereR~B@OZ1svV7c)8O8rBvjE|T1%^JSNV_oT&F=OQE zrTh)_OgRs4rR^j=u&IA}XpM77qwN;h^f@Rq1AC3$jm_xBk?_Z`W32^mEjY5u7SoXq zbWD7^<^ZF3>FvcE`lv67xfnx(jr_?bENLjiQ&BdKx2-Fivf)1;t*@USI>KFP<&N-) zut87DORwbQGMFAey`sk&e5gPg8U6&zVB_BAnplRrBL7DElA=OyIBI}L&5^%(j-TR( zF0!rrPY%wloj#=BisykJxxT{hL~kLSS|rYeTw?I>Y3mG@JUfUB!y3L0&BPNDC?)tL z#eR{S?>;-^lrJ!)4r7`en2e>?iA{bW=^^tEe9&EIUWkf;@&M)?JCB^N_#6FNGQF@i zF$~9(93ALB!$)Ei*|AISKgR|>Jc6-?g-QWu^__5Wa9o+wD*4A)OrPuf2^{(n*URf> zj%nS$IoPzB>pJ+LRMDAwA3Su>M1H>=+LK4gZS;n>Egz}KvH1P|v#WB>hY4Z3NoMom zqrrI4|G=NbKI`}BjDL;4#oA(m?||PzzR+g`nzpRR5*HD-5F;Gw3? zY*c5RG~Zs5EF4p@FKjl4v2l9AKq-1NHjj5#$tGqP0^5B1AcH|65ZPiQtsl*M)|46J zO$}t{o>5=PP;kzz3BFp1uD5)WqbwH&;Ev zp|@Qdn^3iFns28>fL6SD7QL8|%H-Y^90a@uIfdUF$v~|;SpOv8#eJR5@_u6M6uH+D zYn2&%T)J>Kbr}4s4b0-_h#l6L;aH68_!)i89QHI{(>X~n-~!$nnbfRe&DihYnxstp zj?~Ls12{Y>353zaT@;`r^8`6uw`U35Gj$StiH&UKIB4t4@2lTbQ&-J;sWVT_sq{JE zy_h5Dq12h^H+&a9Olo+ObHZ1xAIsEtk%LdZ!7uJO>o?XTlbA}#WN?#P3pYG=3hqXb z5EqAufAkv+q6phleW9?D{1cuiax(E-^8-9IJPDr~ZaaM8j}|W|t9@azEeRVrBX2f- z!bOAC__A~$9_$TPVOL;3;y=8pTMb`|Zt}I)`vLl7Wu4=d2jmJNa^jAzhX457Bv@zu zCa$Pa^d??ST)Kz6pOrc-@@WzS!A}P(&+A#<|FBK|#J8+zoplnr1@^{%69*+#o#Z}K6)@U0s7W3|)IGMkW1|E|)&mTDK&%kVj9K=sxNE;d64}0#***&6E4lcksS583)H&ryi?clfOsu zb4VGdGrrf5$&nd**ww_rjIV(RZH<4$_#ebTV40J?41)OFjMWJT9+qfpIGVI^vwn@= zjv*#kB;;Cu5*@3-)!>WY;quG-NgRSdX92}yC^j+{8(iZ4phnMJ14V+LoRQ5b<3+I> zOxkp?hS)y(A${%Veo=3~`|tGjxBjI(A5__+>hRi%4Z}mQOmbAg%NVqW(q0)yD4+Ou z;9unG=B)ge#?5AVWUkbQ3E+eAWcoHlHL}XsI86L3lk?D|3HBz*Ci#bT$yO7abq0G+ ze7>47aQBoCJ(TgL+9Y$(*UW>YjV7`y$G9iiK`QL$@#+1J=ZSZ-NRy{oizTIiO_^QV9k2T@1=*PmJk9%?e z01yC4L_t(k{qA$kH$TwB=ik@m^G}sES1>mi1s+ZGhg(=SHbt&9u@FaOU=5SR2mfNf z=eBZ0%l-fuKJ}(0M@ZT`A-mD`%^%f|{4f7QJ^Qg|yuU~LEHrAzE`Z zvIk>c=!Y2ep$=b~9BH57>nqw{eWY18`F1S9{a~;8`uYbt-tf^RA9mOWo5z9QS02N8 zqa&P|GuM-P(V9}3+&JK(kTVCe#I+TUq{+3amJRV!9te#MK?DG5NR5&>N278rBgwI3 z>6}4jn5j)N8^HbkQv&>5&9{H7e*apRcW?FCC*NnQ`lPS?=%3Zi5C4?>?3?obLLO%h zf`(Gt0EI9%e&?JhYdHxarS3u0I?xi0(_S>9Q6W%RS*-q#0-g;ZbOOZk7C!za;hvfgC(I+&~`ay_xb^}udfa9MI; z+UAc|VP9a24PiSn+i7THauS&G_3Oyr9!8IYD|o~Yc8Wa9%zpInk96=(XVd&8CCc(5RG z4S5U=7Q@AJOeq759;=(dR$wO(GJfTrnO4Qu_=%oi8x$O+V#C>d{hEGG0D9;pXiu|)|dFij{&x@A_uv8!ZTIek1C!{ z8FNNfF42%*6?h8&#Gq{Qd*uUpV?v`4&9P+gRq0lx8dmYbmi$TI!bbQK_?p3gWs_=B z@P%B{W_$?O>u+PFjl9^MQ8p- ziuk$v@J4xQKh;$)?+$(a8>O#(rS*-kS>O8hrdKbf@;3#aef17Xr}BdP?5oe|bJFbx zce;6g(uVyV9}0cO{@^9rwj92&>wPB##E`{hkzXA?@{C-LyqToKxhs9fl8w(z{=|>u z%KrSB2Hb3n9T6MD%Rx;s@eKdARm7x-Lld*6K!-~ko!B>Hbj1z~s}>kFg3+{#hvF(>>SM04B==;9@+C(UMP!rF^O7IZ6%N5qO=wu=-i&&>U4Lbjk>bE zxMc!77{Z6P7k9Mns=P2<#r=)WFK$%lGyOOD%=LcKAZFXkI}Q5h<)xVrix`?`vGsHy zkNt3_Q8J4l4S27Tz%W=G)jkwXCjD1>F$Rr}F8Xep26bjT?J8TrEMCx>9G_Vfl55dh z>4S`sw+;3iO*S|b9XGdNW?U0rhbQ{jQ-<@5<;jPR@JNctW1}6}jd_rTNgs_!<9BK0 zLwP+fuowMZw2x9zA1AS$Y=AU1T_R$AEvpmc=pY-DzO!+{Qes&>; z&tIPDqqQJpF_ig{MWi?EpEe1Co?_}JyP}1;Ec1MaTR7O+^e$s7xn7bb+5A}?=;1~h zB{ODt!ZkdzIJQLFkcO2phI3MI($_TSJ~%|ZYgvYW6Yq+j;jFL;{|g7#t|7BoGkGBv z9EVpiHbi^QhBp!0$zm>j#>!h_1%F~EJI`n8EIN<8>=Dz05A7>YuvZ)=*A`gwC%825 zfwo#)Ni!Q#JS%)%_VHzAzQq5`od)MdZgV28@EhOb+wHD;aaM!98S5(aMhE@8b3>fX zwZbRYbdhKur_#;`(_jmS<8Id=CSnd8)WXGsOQui8S^7jz*%~(mV3=jUMd5?^iZokNoX@G*qxW+u(F+e>s+{_?bL6deTQ=6@BNsgC1bvnW~iM z!JGUkTO+z|3w{~fKrmQ^j>SiKfLF7DdgX({@fv{W+@4$co96>x2lDxNk^A7C)YxoZ z+<$)Ppk@T?h@a@hoJL7ITrqr<_&tK}g6{OYvdO-);hwZ~NgMjp$0NM8b~xFv7n>8^ zH|V+JBlv!n_D#aQB@=Grb>eg7=ENp=HhHf!4DurS7cTTsKE+f;XREkB;q!)%JG|VW z`zbf9_teiTHVZ$3p^$M2H(DFA8#!l5Ct{g{WtoEW0iOoXVNSL+=wJAd`wN@Tg^wFP z@5xP)WaIf6yoUGKzJGftadgo)2kp5o?8#Dr<4n$+Uu>d`E1aF4mo{`X&ko}8$R-B+ zYBD$q|1D{d$ADL`4R|!VYZUF9#@&VhIiXT9rQ2o(G|gJiLH$EbO}k76pJU z@0$iX$IXof>$OFI5y3xtYVk^67r3Znd;WXmJZsio;illH@KHSP1RA`4ewJj3b|X8p z0rQS`I%EbIJqBiY9{a&jV8y4RUT>_W)^nGHe;StQXIq7?*ecdJ3ITg*WG#sgM(4pi zA#@d+R=F2_s4Ox#gt~R6O>mU{CI(K9@O(WZl_;ueHn#vMqf6+G9`h`|WXx1*JN=q< zPv5`SI%`T@brHu(9Pme+6*PgE20FB-g~Rh)q*B#Lqxqcoh7| z*3Ns48SCXza;LL^nFk*^-tuwat;`&zBCp{<_`BkdK2*s$n=8&ExPxySypOP^CU>=! z#IMO0S)^oXGKMA#rx|_72Aj%?UcnzhkQw_zSHsVY9!ZNw_>>M!*6Ne>Y9pg6`VJMk z#Kh}iExUP!d~Ap3rH5yU`QjD62XA$Ma ze&=85;rH15*9C}EvDb)NLoQ-gxhdtxMH{%1p9g*%kMI&72ha0t?5Y!a4S&V8UFaAL zqgI`76#u>ONQ37^4lQ{Vwk2;yo=fnpiz?bS9$15Mra?_IM-4^);61iDgiq2Y^HI^{ z91qnlE!|_6;>QjyYQx5Rn2GHG&&s>=85=y?IeSR5v~+9|c4Fhgnq+FoCuGngj_|+z z$XE3z{q<&%!Cb#ZQl?Tp1a^l5A_hWpNn08}(r@ zr@BfRh;|y3b&~io7{g^^uQ8Nd(Y~pe>x_RY;w*G*#WSaeG_I2sJYY;;{yq6!}kmnDoe$c^(046W=u~J1(F|KQDGIkX`;P5E! zV`nVBR(p*YqaFStkI$mb>!AO3L#Z10{ap3@tJ3*H>D9OOL%;Ob^ztX3i&PVC>9c?O zPQU&C_}hB?x4$757p8bnBEO~-BG{)}_l(V)9S&eJd@1M6O24oxYC}IhXlDO7 z`5^G{TA%&lAM08h8`M9eXFvQi zs#kwP+6d0L10cV7$z8e{^`t85I&BL$PUFN%P%s5YGa+^+Nr2NqqSABpFA{E>e9@BTf#`Qy*@!N(u!NB+_;X#e&PlQ=C2+32H? zCmEtAZAAf{=(sXztO2;6G_&C_g$spft1@^ew}&+0yBMHNpByQQIR|HsD+_Ha!t5a2 zzmvh%@Gz0*M&pG36hQo#;GewQdu-?x+)g|%H47?L3cWS6F*CS^tLBhRo;5NTId*u9 zJ$~?gzKngM^GAGbd`Uj>^-&s9WGAxN()on$fgN+kM%p~E$-qayB8M%x(63OhPCnst z+EAuRA5$o!dxE7SJ136~&PPqIBQuGit0d75mqP!+gwA7h(u%*)lZDGfCuX#Mj9qSu zTo_CwmBJfcGSO$^ z+T_F}uMYAW2T|HG&`rJuY-2ON6!+chahl->D_~u1_@F$W(!t_YLO~qjJ}(lza6O`T z5VwQAlHtTIUEe-%6T#*~;YAN`9yM+@J@OLND9<>t9`(aNa@L>!^Dp&R{^E1};-7!6 zzrp!`_KPp|^Z&s!ef+9*s*7%TK^zoJhN@01^4vp{Tsq&K0M?p}&G>w#IhWF$CihL`Jh{2*=!3#DsVdh^YG>ckie7<=nfw#$} z$zjG&7K2S3C98>F_?#^ESJ_U?Gv0{9iamL9EIy?xGHQA;JesjL@l7@h+WV-~L0&}f z!6bH2t3Zc%DT@d|kmH4K2bZPG8{$QsI%H{!Li0?D&0I7bMt?C$(MoPybzswDS6%`p z{9L)u3&}NOZ)f73=;C?&Ij9q{+xT(CPLIMqHn4ZF!45Dbo*75u?ncWW`lk&K!GTqL zkDOB1F49bG2*0#9zM?=PW=dd*&*DD5gco#)dZ#ELo=g|g*wnPgrZYat8x?KHHGSf5 zY%e_?U^?jDYCZx?#=%Tn;D7O@u{g=~iZeJ4^3~*;z!N(M zc`@o)n)oPcji@;?u|QX_%IQ;*tTJ-s?(9jtA)T|T)Z{~hb;)uq_+EB%JsC&wfjDWf z*o22puCs_`YJRfo(jV)Y#`G|GJ zpXEp76OxG@IB58taN5K*F*ve8KzbTJgbulsmr| zN*uCb{s6zxy@4&YB(murTUTQLnCIvT7IP+L7Ov=C@xa~=KIl>Scuam`JTaTZB6BOZ z^ppMcwAP)!Tjt|&GX}P0z=zGN9u(6 zn9%Uw*C->8(Utqh@81*mgTBNb%+4Au;}YJ5@6nyw;4!ElQ)}%)&5O@ZHDD;u@-GF1 zy>K_Fk?|qxn@8+7?dO-f4#o{jKHc!Tb%ke_^zL;l`Mfj62gxw7e}Lo4I^^>1P_E<8 z8sEVW{BC@uZc3aXuu1Ysom;l4Gj+3T-6PY&*T~U6IdY#`Rl?#(opL zCO-t`N$s21G@!ljI(_g$`}13kXD58#6#pk!RXBp~a1t9L-!uahZdfaYpS6x44-Rrz z*zL$*O9MTOxu%w=#>$_`99uUhX_h8=Squn+XMOl3{*BL?QXwA?iM5R3Q9>`zH7Eu`Jbc1MQ@;iN zM(<=kZzC7~IYe7>C3$y%)mhgirs!@8LxX+7L30S6jJ}!rXTc9P=rfrMJMm+EEac33 zBkMe$ZxGm7pTR9LnBa*XlZPa#`iuCbP4J~|P3HUw|FL6yP99C{n z=&{Qw{P^NH}TWo7OHdK7zU98+YvUcMu%AA{w}V&}wxC&p@0}gB z20t|CR=IB4Tczl`lFx}(p{L0Sni)3Mg*qtsnP1=?JRijI`iA;R|AD^~ThTGWcThiz zcnl6rEBYJ$H~Q!(?X1fN{d7=Mr*x3BgL-6SCTpXO=ZV07C*3vj~iPsGwR92Y~;s38bb__kYDV3cnfC8*l&1lVIPD3E51X0HL`me`6Yr> zSLQlZ>7cH8>^jJ|2_f(Z7vaCwU^5(I&6O{VgKlCAO3;j-h`}r4M7u9&^+6-qLnbV=eIL$Q*NA zHNN<|zW9IqO`U#j*M5?o{K<#<@qhQPWn#iECErj)!E=%;iIYZ$gZiaWbd6Vi!I6opFi18cOXGdAj^ZPIjDH zBE}9)a?rPrwY~jW)oY(2)HW5hr0<{ce8fKRix>JyX>(ny*pWIK)o2hvLlTpha{4>ej?F&Dz*MIvzliv6__3NL}7ysVh)$3n> zT~}ft-@kb8PoC;8|G~e|<$K@J7*mGXWPX|0BjcmRZ)#$9cdOB_nIAeBfK^|oLf2fc zGXXc5k0*P_c@f{_X0yOGSkL${7%+w=<`fm?40Ea+$zaGBD@rDlU>q9E^ z=)0%j_O2SNNG#Q`P)*BzbXnMkj`)9dUCP+#BvfqbpBN(3j{Ig!3Qv9Kg556ls|Cv0W>gl^b z(H%ki)|bDoH-7%tb$aWo(&-KP_K`$lz*ru;oS+mR0CbgHlF5t(JONPzpaX^tfUN{c z#zG~HA(uIdV^f6(1{x~Eb8qTPfAhCBzVP{QRBE{s z?1l$Nm@VFed$61=a$d=k7GL-an@_%c6rWnO`C4y=UMq%6;Zx8hwwu_0;Og*V z3=_Yrr0^t;V6IoPaDwt_IrdmGWa&@bMF#~pe4B?1h5vwNv;_VECwyI|v1NQUSsWj{ z44Z5UHwDkp8;peS#mCWwbAB9MxbVO~*t9mvkQW>Jdav4cr7y>dN9;;p^b>j(ybf@z zF?4!-BUkD5Pn`8@zw$u;`7iJK{jco$J6}8LZ+?F0_kXVRcYpPy-}%+Y`pjD=J$T5N zM>o1*!~f>dS^Et-F#aWrhl3b$d={P1zp%A}Pg!=U(6`QKEx)kfHT_DgL7#DwCFosoS1L9ltW5vssF-WxeXJlEK%5 z(aA}CFdl5G^N{IlCZ+IjavvJ;Av|Sd7#_v1;<}0J3GL*;uWnBg37T=;Eg{Tcojf}5 z@5J%Pi!8cJb-T&POg)&v4Y`$gfmi-b&@4VY(D7zRCP#DvtAmG^>$8{gRvPFg^k`ya z5;KWCfyY?b!oSQ|c+eI*iwFD3LVSDlKm*-_tKktj#Rh4CX~O70hlX!rTTXp#6+CMU zRrDE_iXS%34Td;Y>rCzxv0>&Fdy}9SvXgJZhvVT{6+EmA;Tjsl2s(qE$yagI%}Itn zd>Wf43-1Oap{tOoHvK!}p(Ea$gAFl(-+Bl|rm?REzC|b1kYouAg>Jc&unAe>Q;cu$ zbLbcsx`PKIx?~>WDi0XMt;!6`xJ`zax%Gzr_}ZL;d!w&H$6O)649?r*NBS6xNxaxr zkvB%a;EyUY{2hHp$>SA&4fMzE@QfUzyJH)NY|^B45O*3wuf|GCcI8|O2BLN)#~gXV zujsRoe^L<##&*T_#A9rSukn$nkx;^;WON#d4>pBjR`e)xUxp&Igt{5)9oq0C9!*?$ zD=9v)(XW*F(qJw^r$U!?znED2YY(&$A3pPviN$xZQ6IVCnVgDU4Q)1=GS>U10guK{ z9d<`aGJEHpz&r>Np*8z`p zE~|J6I$8W5_)_pFuoE#5exg7A+8&*>Q%^FcmMnO|uUYJO@Mg2KHm%PUURO3FFKh;y z4e?bw23;KcO=-WCHa4tJkF7$lEO7S+;#wMKNtO!QI!Ot?4V!n`2mA+ef?t+>I~%(h zAKLU)F%;V1TF4pbXX+4Pt3jQ=d84#+obb;#y0Pt*KLlKi+9fk4Q?t>_>1UHutd+Kh z)<7SlgCob1IBO{CXtl2~LRKYJ6dsYQd|Ij-YyC4dJV33!ykM}E4dFpw!C%9H9%3t4 zAK)7~g& zPrioN2_A)g+N5Tlik+fO&`fe5c%N>pTVAZ(J}PBg=m#{m6dwc!aZ}haz(brvvtb)y zzu8se000mGNkl-W;coc!W=Et6e(br^42av8P8CV#TshJ8@+CdG=LojEr0S zxgk4a8y}tU>7Kvz0PhKIJ9=)!$UvXyeR^EF^00RQtY7gMmd~X@tW4U+kj`(SDA)Om zfY?uImXRT2E_0!_#s+EZobjLGU-WNFc4@^^Sso$|hP;&qHKkrZagPDRs%@x<%Vk`Q zhsIUP*vTfkQrps>wvTc*@{R9vo@~(PFA5Cb9BIqhqa?;C&W1-ZcF8Dkq+UdnS4~0> zOCvQ8r-W|2cB73tP{e=Qow1uWu^zERgq+oHoZk<{@`lBKANrvGDG zz3o7N+CVXu}$qWe4|UzzCFHGWp3tLQ3$&XHd&j9 zdRJ@;7W9+#OSASgvQ|)`V_|c%E}2=M1$2VgWre<(|0Zj`rgks+!?5RIOl(;?lxWK@ z5p*qcD)QlDd^1f@q)48Y123?V`l|l{5H`c@>l&2P5cEG-4j#L8y&*WWmR>le8O zdYm8-=R#NFa-uGFDzd=J+0w}A`iO8zVZ64iu?|C z{wUuH-sULu8}J$NKWDh|BL9vp5H{-68tAffoUnBUZwTsC3jIb70i#BEz<+|t-SazL zSO*qkY82{O;ZY%EUP=rUCT_&?hTrz{NrfJU-ebt&6~3HJyciy1+q9#1;TyTMW9xR> zHL&}P-*(2TEWx*E7awDb;eU{;;kolHP_)(9G;Yp1@yuv=H8!27oew_oNITD;Vp6?4 zWA7(;?7JquHF@I=-9Dlhy4A3ZZmVwDk*KtDA=5wL+2ojuap)f&g3gR9;%CG*j*O3< z6y}m zmt<(-*JjL>*qqb`WB1}izi2lxt%Tfh1HdjC6rrWb$lM~put=$!ooYKLos z=}^I!UutsIu^0SOM}mF9e;qfslAwq8cyPcK-5&p(6b5y{-& zYA5doygW9@Pa1g+Bkr{A4B2#g?V&d2W`*W_Qc>3iJSs0DYQv^M8#2M6be3DmaM0j9O8V&9`zFC_lB?lm@_FHnyxgz(6ncj~2jk7X$RAZnTzjO7mVEn$ zwoiURr_ZqQ4qwwhpRtMk>;qKIVi}d;VX#_bZB_I_ep9a_&)nw_eUY>5qK1f=5&ln1 zI5?=4y04N7`7UBorTwd4)9Zip@8~J>&t<#O7yb|bgA(2~ z>K_sdQs9*GYw;*qQlSsxxv-pT4%zgyyjjcM)RJI9tKx&Q5HA-za_v&`xyDfbRgN_V zIR^gPN@@m1r}JZ-KKWVs_H|u&-jc4`&(eJHp|Yo`zLQxqzyvXt!;iQ(xXYCv`Zw6M z3XBGMU-TJ!#Chp$gq01Y;E zT1IgrlWbRhbDcI`0_gIgjt_sN%e#Lm-@Pkd+3D%e-qCZ4%j-Y)RlV`mzpDLHzaX97 zmd35L->3nld5dELD7rQe0CZ}}io!xoCdr0zbAl*rv!}IvW=(k}QeWu8SUh z8#$A)fG0EAH;d>4Y#YAEi{O1Id{bZ;$=F`lg?IeZ_$9O*c?gNVoV0L2ciG@^5lm!~ z=J?=!Z(c|| z2$;Oh8-2{=zG=Tw7A`XMsK34yl9vDzyX?|q7HdEE*3fI{`+#J6n+NyLu)uf(wx8dm z-}&mMU;X-xZnr6e^~R#%{^>C~vm=`Z31`|nay|A#Gw6%;K zn_R|GS0$FCCt_Ednb7BpE7vFk_6K!iuo!J{NTPr+- z-{w6?Vt;{`sO6P<1_D-!p7qeKLi9>Qr`$-eKBcjKSEkhOF zSNI;p2zbySR$^Ly!#0n?f4vUj(`J60@Qdy}(GQvq?}i=s2BV(PGe3!Vygqr(jE;V> z9e^gf%@>D)iMT)Dw`9r6xGWx1zoelo;y3I|dVP)vr*;L;gZqQnoxu|w z4>tDZ6&<1r%;)o~8o#!z>oXR)v`_Nv$b$Mb6kkr_rl=DmzKTxZ$58B^7$)>BX@{ub|#vI5hazJHG^l0&cF1R=HJO0D&^v6fn5AGBRKqob{Igk^c`)el| zp3yJy+SqFrnv+ey+yjvs+b6oO1@~R6(C6~>AReSM8>Yu|*g}IFWq7lE)4WJ5n{=W- za@K**t}mJ~=l~xxW}}XiE=s;0w1Gg>X2WXg$~~MlHhzQkt9z+VlBbwMbM$}IZw(A4 z=pKU;mrWjJBl4i_@)BCcnehkH5X%`A8_}_GzL-mA+scFM#6C>Xj1DN3n7Tf1WE=l> zLPdnW@)>NRFZ&L?iZ4KjE#Z$lP_kJYwXWFU;bqSO4h7DQkb}CAb9g*>eQ0Mh{Xo}* zS|Quw1KovI)TAyP9HKec#4jf{vNQhWlS2lN%d@GZ zz~EZc0-(cZ$MV5QJi_ll*ZAnfN&3jt*W*Y6T-Lk%x{B_*{$g%o$9hQ~WaNpHJ`6 z51gpoxtFP_(7dWIu?;z3DrCiXqSnrjzVX}CzO+rw9z%7a0AT-`(~xy#Ez38vZCj3QtS6e7QhW(fS{gfNxC>dd*!(TRgK4*x}lM``I-miJ9HHptP9elZ`X ztpR3oA61O51>ek%ePs-5BU!}DvEoAT<5qc2=xK?mO zA0fJkfyCv(ygb9CtY-Z_(b?n?9MoWLbcfk1|Ft!k}2FXEx|{~BQ(R_C)!9LeB^JxeY4ZM-O)#IID^)_Mn(S!*6(8u_@Bxph(# z4h6f4VvNuH75beQmlJ(W@r4t*i2_w=;JL{r*@*UT{(m(nP zQ~M85YDtAD7kC6SbQ}10(lN>T@EG9p;EjiR_~?;tA3o5a#x`}Kp}i8Xlf9GF-HELS zafr*%8oQ1OX5f|lNld{%yapS^h3;ZKo%u$C{NsL7_a<>l?pUFbj1Zw4Q*@9R`z1@@fL zIQ;4BDHXah0>88lUS!IHxWCA@j9;RYv8nOzD}8JAiG7vhrM3Os*Yt`1Q_^!CI57ROf8_yq2D^rC z(G&ZWO=;|~80ssw;{(H6MQpJyR-Gj#x5*g6Ti90EQroVMF6h*gu^M#k_%XgY$>5`7 z1Jl9yvm(dm2XgrB@PvNs%x#zwb2jGN@Hz0YiRb;{EpCDrvN!e|_7wy0K~{JVUN*y+ zR4sK)?O%MPU;ID)rr!AcNe@}OeekEx^!@+l57kfZFfV$E+ADdWD_9-WCF8dhe{-s3 zt$eNl9t9nI6PxtWsmXkyf(JSF%AcFqD$}a>D~6y?A3jz-#XUJU;USwA4zN<>=Q;LD z6FAH}n1a8IUYF8wH#FY(v`%0A1&vR9PFZiPwdB(eb$#zWP4@mWXBe4tZaNs_;256R z)x?Xi!ST-peesdE;9Uqr2lOJC)Yq0WhJLyDDek4^Q)2)83t!jkzxki){qKH97uIE8 z`g?yzul>rKy5l)z;IJS5f4{4r{*!;Dhdg^ce(f~|PR-;4G3J#o2!}559{do&`~aEI z0ntrf(v2$IxEXs#j2y^s*;Zl0^2Y#Yd@z~cP>X)XPiRm#He@X)%Kbi zoGXz*&|ROr!y1MC@_C2wMimbD#fNZNvhY()tk3+?Z|U~4zo_x()AB~L5n#<&!OI*ucO(pC zki-$$G%S5&sVx7;c7Q-X$ffXLf@)^JMki-{Ma!mGwS@loOJap!l2KHWssq5UDqqz& zqOTX&z%x&s3y-V3F@)=8anOuCaPlND%wp9Woi4^$;a$j&ZgEVKI0+El8ys`(Ewt!j zw17`|Mb8Q!Y4M2};*)VAK|b;MFY4i2Z=s(#gg!$ar6w_mM%BZi`Q(Yd{r~>w`p&=p zhCcDRH}&=Z@^^Lfh0m&yvHqkua;sGo69#fd0qj=}>>fO9h>6h)x7GmP$;Od~B(P{E z&frkHG?^H?4@BRi&s@9=JI`ZXH^n(v2`q|5!_4BD{^n3V_@&Ul7!>{;e=#;b!x1Vb zVscF`YXoEHEh`_7p{Bi^`>B5MRQEspfzFQ}Yyae%kkAfrMy}8?i~jI2<6oU6kHUzl z+za=`2S;qOq@r(ORrGV%vWpILNJh46s8HO4!A^TiBfjArnT!|7Enf*!}KQ-l_6srFLhCpyNTwh?qd z#=|l%*~SBS;g^C8CaTBOc>5a_o?q)H@RqHr0v6z-&yg77zSe(UCDr;q(l2%7HJ%7%|y>JbpYpkvCU)^$n>| zhFr@;Q|LY(-)L}Fa)?FRqJw{AEnZv~^yAU39Q~-#y=>W(nxtWAz*k=S74$elW=vv5 zW#uq2yxJMtTpK-#7cV}OU$K?W%Hk!q5);j2WX28_>V{t6W;Rm||6&mo9)m^niec^x zeg^wu0i3hA51xjHf{98+zlrrMMmx^IM}_UAkaBM@${}Jgh!=IC&^J7CG`71j2ivyD z8AD1x=kQi^M4nl+8TrNz+e^HW)zr7X+$nJ|;6aaqtZ;LA6v@!9E@4xu%Xchqv@0K&|&cb`^3IC%bL=# z5~IySgot%T4t@FvyI|?TIBK;xa$S@t`9Q6y2dN%R7usQ9-RI5J1 zP|rQ-u=BRAjFG5)THy9%1vYw}bjIW)sE z?HOzEYZmxbrMexeJ$T*eimmtWJl9Mf(+)r~SY>?dNO-9dUs8cVLRdwL+H|K_1|!^6&rP1+4U8kSAptu!_%{77-Z zM!0>2cG`TRi!qaWbY+9>z)yosTZ6faK5Q%aH7q6@!NulvAtwyN-|6Q*OB~!!>_Z7J z^CG|zw(^U?*d2ZYS$zD{lFgU^PH@Vnykdt%}~_~Dy8tOe{1du?M*EAsQQVc1&j2u2<4@V?;JN&eHN zfzMyE;cx-R38=v_SjD${_@y8F?m6Pafex{YX;K?~%fIl>UohOUG5+Gop~BV!`a!-$ zcE%k%kOr^YkN#31KHTverfXpL=~41j3ZC~*r>==dVn5>txl!o?xE z9^lgf?PN^DF!43fC2^H@nv}dd*yy{w&&KkQRHA;q)Z`fez!aL5qrGkeYIxRzP4WFB?7X=(ickDzZP*Nf^7814|4>1-l?M7T44Ycw`6sq6zs7gS zTyqKMgBs#dGWFa9n-gQy^Q>8_r((N@S>F)Rhh%h&&ae3SRX^%18&V%Pc)_>9%eEW` z!N>SFv5!I$G?RW+$zw>N0TZKJa2d?Wf`?BV(;SIMdj}7U^Ck`IbjHeBA7^}S(vQ!C zJq?Z(U7@jBikNL^*%)AI4SjWwoWxA>Ew-8a=xTJTF@*7oKH{0i%v*-P&_~QOHhie- z%LZzXnQw$VV_TD(;a9X7Y!n?+l(9_=Y{rXE{N)iwXaO#3eu)m~E0-J{woTqC)ZB}E zvyNM~6#8XsNrpz^LVS?7>_HEQhQ81-}2`a_jtOXUj;;ZP#+$5Pk5`5w1 zm?cBw@T3UldAnDP<0IM^4}9z3Vf2VU@STvCBl7)mKepNMWQ`|2i9e0lI24+KNAjr{ zAF}9{cH67p#DL);M)ox?VaTb(!$Cc!Njo}TsB6#Od!qZN&vD09g}qJ83R=+;Iwe5B%iv+rhsSSv{_e17h|8C!L3Pt<#M%WJk3UiI49o@>|FB~4_Jx8rlu75DTCP1F7VBz zhiT#<#Huz;5A9$6x?cOMe@pNF(I4vW&;OmgO*uQu)VTQC#X25!4Q-JxCa63%)rQTo z#4*XIW`1dICvh6x3amrp3J{jZkQpyx!s+`cS4Dp_u$k!6@6#zPWpm>BBkoCi@l2{3 zlBiqAn8Z@SW8Cs`;*gTJqBb^@LyJbAR*t1MLrQv=O^!#@{^Vp12#ls9JRby2M+LsqIS-^-KS^U(?%P zJ?WObdgtGKsPFtg{vCT*_Zra&`@HYSCigdvTyMb@TfnxE5xeS^+ToJRGO?~2Sj#=O8!HjPc%cE(fFYU6yX z)HivD&rtC!wCsV-&=rSwXtn9V*MCWG{?6afdq4V-E+5|O%YW~8^~Nu~CLZavRqIFp z@|*hUKm4bfKln>M{nj`1@+a&?>yS4~#8YCdzz^8LYf8gf?T&hzRF>)IPNG}pYA`R5 z@4`N1U~tB!&Kysl$;Wj~yK^6&F2q^SWHAv3!c8GWg3;wtFaDUb59>!6 zy{0H2A8HnH6p9oMO=xIo3T*~A%H>)i#85?et~pX*QXKm3spiw4=*w_OU-=t)^!Z;=oj(Jc2l61$d58)-v{Gc|x+$jmr)zhE+NNI;y9h-sywkU={s~@u;T6h<-8r&Pcjt=xR3ojM21mE-#H->K(V}>5K_%nu(cJ$AeS78SB zl!{^m9UL>}L~w@kJMSKp1s7!4qXCacX$YkK#ssFSGd{5sY$ls-itPOVA#~M|xC#gm9W2PQ_{yR&OI?lT+SnVL-U<2-ct>`FK^_zqpT-dRX(8+w!D6MUK&9ZY)p zHcqZFiaa16Fv0sSZ@jq=9rEVNXG<(Nval0=&Gp1iiFWRr7&)*Ha+#*|&ESoFliVzF z+k;$(E_gRs245G%{4f`(*_aXcmBP+gaZLO@sYR-iIaV8EQ)f~STT>04IEMzKmrBj1 z$pIE=51kXI#(v}rc}qSuHqJBmlZ~8X$uAKEn(=G&1!FVu<=-{#2QS4{Yy!eBkhy~%#Mt*cxVud^tI<7Jh`rETa zy`K0}@LjQsysnS%S!YP_sZs+Nm>T0%=V@Q_o#71k%uk^w=a1lpKUYm+Y)79V;b>)} zjw=bMv2=Eg_C z+sP|zc_j*4zXEbpb4 zY(g9Uqh5^-Zs8UF(IK1f!E+3OW%D8j{?JnD6ux(CoKKjZd9e_GonITOO}dMGVlx}< z1B~{Ev=8eZ8+UY#?gyA$h`FLY@~_Vh?JUE>H%d-;MDIMzL!t}V-qThko$!@VeEGjH zU}6ukaF36}EB=e_cgQpP3^2J*KbXbF=wpcX2SbH^$>S@!uym1NSG#3fk$*vE_@u5g zWW_}vlB^YzYttM47v`@!@?a7l;dkKYNsb6(60iBIgYSLgqUSH9*p}E#ywR=VC0B#x zfnS^)1=PfZ0KQ@nJXIyt(E5@!}+Q1^4H?a6ttXe!e62A&vRu3F{zg#=w?l?a^FoSXtAlC;fLyZPFOIW!-d0 z8@9Bx8bmvKMW-wRoUz3F#NXKvi>W9Gex;^<#b*je(1^mG7@Lfr+&4<4{;qY;bCP6~ z7C-u%IYWg^el>XKo4g{p8g(YJv=In7W~=GHQqz_3tRb5D*mJjo%8)Yb(v@64}ts;4?8khH+99vDDQ2<~eM|5OdqSzmur7!dID6J;03d zow3B2B0F=8Yr!~EaKSFNN8h}NieAF@@R*qw^SpXT@r2gQ;ie`wx!$3P?btnIH+_A@ zhsYE5&)`lxI=bNX@L!k_+l7sj+zn>M{4U}tIvnBChm8HAz^r^h=Z}3y7n~$hIFbt! znpQvp3-p@Q7zHB%4*KfE3LZUs`5D~~#v;#Y5A7@!Ye~mPTx%mxE0{^DA@f|@=;`R- zK^{-qC3|Xuck~%-lnplNf^mlj@*5vT=0qoPpFuPEnR_}rF_<`E&AxCHALJe3$>s7Z z*wu;RKQ_&*AE57GOTTlCU4aczu*aXoR$^N4goL=iN@v!Q*gT0t4PupzwgA}CqlOw= z#nHr_434WkI57y!oOKvDt}})82xioZx#Gzh*|0>6s3BeGaFq6kyCxg2%NF3;^MaU~ ze5D3m$(fB8hGi+df?2Mc9Ec8?@9?CG7`~!&YKY-2=R>CAUH^ z?$9YUSEKOXvBtzNvA5C1*k}9}-GrV;FnV?;?|v1J(7;9}#y_SJ`e+z_S1_mU5&#{% zKZ>P=Cwo7g=T>Tv@zp?YvmoivFt)&;v8U6IElV-%kVOreYH-$8=x~7@5lM`{(t~^g zkV&1Rm73E?4;}FpJMamvlA&pG`TD}zzwnEC?XR)X`p5r^?!WcNvJZ|6V~-_EgM7G1 zGvD;~t|L3b8*x5cGxigQ;yUt+JeN=scgTZ5+!gl*4{T}Z)BLJVHZoeydYJJ|zlt1T z{N&nT-xDwiwjwW@xSwDmcum?Sxnpv#8=Z(Tu@9Cq-8f*d(J$?~-dpwXcFkuyZ5#U= z!L@k4s3Je9n+E%hP4k=A*!bqTZf8^a=BWt8>9&Xz5*R{~jF;v8|iC1BF)SGp$ z?Q>`S(*NbJ=#yVL36=E2KX_k%_W%4No++-Xu}eUZFPuzjckDW-aT++juy@i8ZdcYb z4ef;KyyD|rgS&`LA-A!&Yr`j!&g^AS`zN#lC+D7A@BRF$Kl6l!=20@(nYz~W=M3OH zC$@BRLu_mkbkxsEwODjJYwVdMic!SorNxq4AqG+LH{~S)cqFsSLCPPLrX7WtYtm^)nC?Izx_A# z&JTW|gJ-U<{O^8CuYK(y<3)*W{otQ|Q$PM6{*n6KAINv_>Df2_R3Co(&!u@VItQ^u ztaVEmDU(l`pZn4>K5g>HqgG$DZ=|g> zYWwt8lz;hV`k`cFGJP+f>hk_O>ik)?ue8%PaW-QK2leD08B0E@h|f%pm*s{o{5dt7 z9nm@K%*3t?Au?ivh(U23V49k$0$;{WY!P(jF_eo&kYQZ=F1zHh$poJPp`(;7k0Gb8 z=(jO62O4Zcg2rxzCJTqPfaB@Nm-m$aC&2yB{!H`bPxRu$pXn#x{XWU_hJOAx|CZkR z+Ha9OpOg337<)pOdUb4^;i-6Mm^MiXWMr$jMlS)7=qeJg_LAuf0488eySUHE#c%8b zHTk1)(a(6Svp@@gB`y6a#0-OUvbex0=uqcPg98dlmV?VWuR+SEPP>|-6TcV+OAd4i zs$75EHj)f!hXzI}t__>Wa2R3hWTF##I2aHNAAa|{yy1Exlu`nZ3-$G)6q(4I6ow*b ziw8TQ?|c9AztZn>0q?;%aaksm zEIZ9s^bvgQ&}=IB7DZ>oKTew!`B1CSx1y^VSM;^C?n@eDtfT1nNOFNO#j?0Bd}+=i zPF<37&v>rnoTF3DfHttLxUYf-iQ4%8V6l(VD)^y{Oq@fSAH@$YD>zPKxEPW4>Ubg=g;5 zZul*}jE!zazh(iQV2S*}B8DzG@etZ!@ph4>R{m;hqknsFqjIUxuUTLf@vvd{ptcSk zs2HH*<-HUiBioh+{oBK{GCt#E@v`@&8Vrgt(L?ymq0c4>ldiFCe|Xa1Tw_y>A-m-8 z1q)^DC{_BgqY$*Q08_@&9$pU%4JUYML%{Lm>l30k9vqsO`)S{O2>9-LGxs$nnEN;1}xZ^j3M zc5kJk1_;^|4|6@jEBELpY$*J>J$k79(E|<9o;a`Ig1p+mjhZ@N-ia%Cr`Cj*A~~*mb#Y-905H&?RlljxrBX zk~s&Wg5O5}iH&r`(9wFyrsjP%O99f=+SxqbPSTZHc)hePZ06rTo4R8IdSb(%f52nu z4Zi_aX*2ppZuHyP@GdZK#*ars=f|Z12I&td(Z{i)q)y#{pD`}&gLxykC<=m2PK6BR zgLwt*x<{AT7`kF?&P-og{X;UCgJ zPwd~3y(2R;Km-Gnn3Az?V~j1;kd}P)^2Zi>>>K!|(KG)u;FnJhg?~v(x*}di_J)lo z=yvcsJtzsj!SqTE$_9zxjYMtqg;#WmkA%&nulA4REFZw{1b!QRTx!o4_~b7dvKdrW z*ldmTBex;S3#0pNtmE_W+t4Fegm19R%cJcLImxO$$ zzA;CrxKCZdpSD$O#+&QJU`2lV5fL7>Z7OQRp#CKXwnryLzdQ@P_KA}|@tL6;?AyWR z^w84KdUSu5f{u|I0b4;^=WomP3OtUeac{XZBe}*cD!NZJAjlVv7xz+>| z$9msomttpup=0wfrF|-91g9|YY1e>O)Sb?Q_Gy#wN1k~Ez2Tp8i%+4rTCR_-@ylQx zvG}8dGmbF@=Ih@&$N3&5gHP5AGV&vwc10%anml!|WUOi5!Vg`W=RibBWhItGGIi!l z=(FY%IhQ_d^mB;zW`j_xC|Czr7`ubxvV~e#*edE=Fg9{BcQ|?@V_}u=wPES z^M}yO`-aiTq9_=76}xEZU|n2ruOtxt138O+0uZ#uwq~=y;fdV_gV@R_$JbV(d`7;(RB%UEnrdrYn9 z%n{zURp4sm2)o1pBX{5%B_3Hbo4HlN09r%4_;B{%*$jBCDT7=5AOvT;hZTDmA{W=t z7knX=h${!{6Ps^YQ&I=UYY*fTIa}Do=A1Y?FFug5@+A7Yz^3J_Tj3QfI&<0MTgL8E zl{8olIZ&iG^5W&B277B$raYgwZthBO8#RPY2N^j&dHTjpGI_CAzPC;zEEx%Md4M{-qz zCd*ZVt7_qoEU*g>ie65?lyOa78To<-Ei$&+j73&~hYXj*Q|bpbDD|x1QK2z$rCq0= z|0TWlE5D=n{_tPx`0k&o#=)?wJd7=Hg=e$j@6(Mw`&)lapZ(3>)Oh$vVyw3lbm;7o zDhK(4b6wUTo^A25mLKt{!9wHEwZRj?Lt?l+!RYM!`aA6~PQqxbb-zqV=5&y}d!Q6WLiCaDV z)MFL%@afGPZI7{wbxL!;zkb&F&9nSylUPG{a*O%hTp#12^B2$hjsN=V`rKD`?Znl0 z{`vd*=KuXqrTfyjeLzYL)gYcu9O&XPWOQ%V28Dh;->iER2Tt5^9<<9tDrAmb!XD*} zjV2b2Ut(+F7oTq>UIY{`PYW3cV<=+>V^tzlC6@#?hPTNVlb3>5<}%;hDp(fv>E?@H z((PA&9y=fCLS5US?GHcH@y<_>!JgzOd2FlfH9XrJY&Z_7W$f72QDeweOKwvmge>oy z>U7f5^>kM9OW5a+Y|(aBYt!q$_N)5j-~1i@^hZBo1O1|(|F3>sZ+-1Xp3;eDx9|S< zf1;oLgMT7Df2taYK%2qZ(wR4jbr*W%Ab;#a=B@%)(WWXb{JC!OXT{exWHV;a$608x zPU2JCSu*3qb>=@0D@Ri^+7DHq__Fp-eMxhiM0g1{x;}rG^}@UA>#OHPZ{%WZRb_8irKvKUoH zlJqDoEJ;up^bAoLG|86B#)67M2x~SG0+1-SP3O8s;yOc@hidmr>E(NxAAV1lcfX~} z2S3u?hwti#-}#PS@@DRff9*fhr+?*lb$atl^35Akod5;pCJgg4(2F94*2=Mhg`g0+ z$-+=1Qv@XF(4z<<;ke0|3V0l`uRjKlU})%?Nw4!d&{J8IO*TcEzIBGyu(J-uHUW4J zTk1>}V3s1afW!%TbJwvO?1E1U`Xs0e&Zcf>RC_oZ)YLKn6*AX0vLsRfZ78aagqRB&*OmK27^*9A;VL@KDNG5(7-8!+0 zQ3rnNHe69J?O@Yjkqw|p4qeb!ZZN*;`uv`k0C(KB?ml>~>s{;FGwIL2d(prC#-V@y z7gK-4`>*d_t?wSzwy6Bzu&`fPIldo@Y)W{1&0Lef$zh+WO-6_tKMW94?M+UF(n#5Y#f|;TVn}vxTv(Pp*qv;Qi2Dk83!E7M&#Z_sKT$A$? zThhO-$y)+QwHL8;)j=FJ%EyoEKu-WBJ_dRnn#49PRLzSfm|Z`78g$gy*Tlib0^7m{ zd{eOv`exC;XJG(trt?6bgSNpUzy@>@c4EK5+9Ec=Ll91E?-gXwa2~{1N~^)6lTYED zSQ%DfYp_TxCUyrj$)`!aE*xMniBFMdxDGqWKXRk#&o`QSL4=K9-q?Kbup;V($ZepO z3LK-?AivS=N}P(E$yhX2;LM)mMULjO)a8bxrf89Ujin#791sfm9< ze89Ik$HwS8(Iu0-x)t6_7p`B85&nW1b^r(c*o3}D?}DeWsd?cmY|Qx7{l-3_LfV?V z3cp5AgMH(}_&5G;^l9>Kk_$@A^P-7KM}pr>+**oF2R1bfi^ZO_YofpCE9`3?U=Hk4 zZOW&EANUu(>BuJ5j%RmtO_`jQthDo6#-G7)5+_6x@x@%mxFVjTZ}b;5GvB-?eq0j6 z)%i;y#F@S(wkL)iSdbVCv`706TGkRNW2EG#H)$%)Qjj5 z*;jaELnSfmfnl+0>2y`YcgDxan=7_U#RGSIdgMMng*Ic4C-8yndNoAdY2 z8=tl|@VRn*&x?SuK?i*k9}M9^dg?C!&iGl>^Qp1H5}Za^=ZB>Y`nYhy_W-XGZB^0% zj|(+F*l%p=9?z#@doe!8fxP@b268=L(1(4dugN>_T6#r?{mr7*HudZfO9j1(|4A&< zc9Dd=GrXHI+~%jSFW5&P@$7M+ztJInJ&-l%Z(=VxMyLG&`aU^`moRB1-m`(74Q_$= zmVRVp@8JN$`zNjO07Stcf6b7X4WIB!Tx{sXGYe}Z=!{;(Zuoh#7_Q?b?bv#GA;tb+ znq0`Y;t3n%YyH*SK^#xDF6d0zXUT!h!5%)7zWA)%F6KDq08h2#2}}f24W%hOyb%@%a$ws1y)U+K0dg}@M_|0^71P3COITm(QSf9 z>QSRy(}yVZKV2EmaWns9IBWe6o(lb32cc_H2zCb_YUs1ozMWwi? z)zsyQE#B!wzZqKw&HzX8K_yLmmbrVd@zu09bRBGw(Wo}TMF~b(lX=6;$HLA=mS{^X zHo6M>bq@~-`>?aq&vn{od{4}I+wtFl%bRBO+BWdCyonEO;bo~`;4E}mwG00yPCERs zufv-*X{gS(at$?ePxMG1qt(&-fF(b%v++q{pr?t+E0>3w*lU$E(RWJCk#Fz!*wl)DF`a#;oI>E1!iJj(;r@@f4+Qyod-CR53F|*Gx1qy3ar07*naRD<_)L77Ia6TGC9wsD26t*<>VbJq zo8;;|u)B=?^pVes&+zH84^Sf`ItcxXHC83pLA!%h__JP^oSQLXZ6BFgJ5<)3sXdI45h`wOflI%aN~tdA%7s1X_+80XU& zdaKEuTwmA!YeI^SlRAS53jSgN65A$mrlKZ+MPkAG#`x9&jvgDa3Ul1i=%)@H@fDd9 zXT=6&PJB0`FPM7_#vhvKiB z$3qEAl=0AUZ=JvLOM3Iye@E~Chd!TN?x|NXUH z{y5$1_Dj3|`v3WB`oiZo z?fCpJ{>KmW=l{*Oq`Q;GP7O!LN$of|T2hYdy)?O=DpA6?#tw4A>`5dSRU4**Pq4y< zK88}ig`J7XhS#DS&`~ER^-lOdc29Czj7iNB+`?9cmRzb8GQim4+dgF%cL4p~K2KrfITp>i7U?sJRL~49yTN?Dm3CJqsM$fs5 z{2>67&?jW;433$YCRL%S1}RdWhoZCLYwQq=n*eMkvf8J#alqrnpZ`GL`B#6+ev$R5 zzw#A*?r;B&#wS0eNiuaKDyp-H7UT(blR!%ri?9QmCvt+xIB(>}rV^@Qui-5Ms$w_# z$8Lc|VONgyo4)8cFl1xGkFK$GoJjOwg1=%*5zvc1%q`4EvGB*grV!NWtSquTh8EpU z!JeCD&#b_V`}F+b>9H57a6M1nAGqDK?cs**X1 zf)lw}2&8}w{Mj;tOB(*@Jmj${^cqF6n)n$iXw&9FKVuGJMz)O2Hi=7I2|We)jvgvG zeB#FeLgZJ*igu+ReH7i0fnb^Y=woPYtxpYP4QaK*cZ{J5M!80xV(g*^({*NGayL4N z>jDSSCl)E(%J_T`mjk^B9AvZ>K3qAzkN%&&}$B*+s&K(8xUdfx# zC*~9T{o*A>^IqHSt+w;63^q<)tK@A{^z{hX+|$Q=B7=1WXZoG^B4%w2W()$ccN4-T zS+0_(RT@_D;E?NVAPCG<(7_vIB}52am)_#jv=XZ-%i+K1E#arg#2r#-xag4Mn*q(n zrsyDdv-yCV%Tx-y~TBx&hufm!ynK+$6RyPhKt`XAUy_T|)-jrC(Xwqg!Q6#>SS$CfPE5#i61% zZD29bBl>mlU06YPzLAOf@Qj{D7rXE&3lZeR2kA30A@~{Gm9fNSHm`lc2C#oM4&~|h zhD>A>V~T~7BR}+v>*Pu9sRgUfEn14UTHcL+CdXBUugj9@2VxnYig~69)XW_VM`FX_ zGmys%y%F7WnKQ99&SzC@TRt(E3~5-gL)d2e4V{Ht7DkC1;|HO;%c`+4rnK~AsB@r4 zp_BN;cH<8vzKLIy=|iM(F3QB=DN(e6Zmq#5nU3zIf%^mcg%sSLRaYh4{VDBkc@Tg%68fsnpEZ z#Y1W_f0`HxZ{fQp52D9_uVUlyt6W0Q@EA9nc5EFB;~~TU`t%Ny51D#ZIglgTjVwoR zYsp@1!#bW`G?AZsr9WeGu2Se<`GYZOr`|FcCGBs4E91gv zJSrKvvES&jF-M3`=K+AlxHl{PHfMrmdjnk9z~635I}dcEiUv4{&w!7yeW&llgWecY z+9tJZgBK)nNtJIKAwSpA@s7=IZeR7G!vL@RrNG#%+wg+#&iK$!<|OzQb{2S~Ez2c^ zFZab5p~K=0jX9<*BlGllQ(mfE0Y2k)FkL#5XJZ$or*&cDbAWIBvD2Qg+2C35AHzE5 zn{5{H*h<@uuAw(NozU?H|DDl!L+8X*{1hzW`}k)-x8cJbT{AAYZ_o=JV^7Ap@F~FF z@o>JzL{G-Vww(=sqetQ)*Q@QpAfHhR-mmaxJo$Tq?~d*#`is5;+wR`KVkfzTGtT&L zfX_P6C-%TagN?63MuKLeKj+kdjCcG)-fcMt)7N(mWQhCF7&*yPZ9_SaTY%lU9;JHi zEK{$evx!+VF10peKR(hHEHWnx9BShi*aXX!yQ#ah75qkR7>XzH=X`Nd@_O(BB4e8R zl-L>%ciL;=GpJv;uMZX2nxu&AGxyJlXISWj-2)tU^gVM7d1Da{8GxWGf13KbHW~`*`A?wE) zimu9MSOy0VYsDL~6(5Bec+9((>dQ-+e1ipS%prM`M4jbMLWagB?>xJ}IJLs8sby>C z`S9hPDl!t(^-6YPs#8Fi_g5c0*7Fi}Mt_fzk{F@KCheOthY7(ITj8C4Be$7zCUN)i zdc*@6WyOvL!^WnjKQawl4a>0+8R>UqaxMAQ7-$85XT1a7Mt0_JZ@Y|6bv~;?4TyL@Mw3BYF6S@5W9=G|+iV$o zUdi+DFfs~%2%9Fk5SoFHBh$8w0_Ba0RJ#4eU)Gzy{2O}jkN%ae-}z&?cwT0g*`DO| zRpIloK0-eL)zfc%S08@+`)X=|uran*;wFd87%yGKC$eYg&`EwZzdLl%nX%jXq%l6S zX_yfaVikBbywrjhesD3o;60SK-74jn>S8+QxA21`$m2^_2w_!==c7wU)EQ@FjUm=zx;z|`qn>SZ%Sw6-w5}k&QRj4 z_94|+HVIs|+gohf=r7ti#{TM@*eBLH{^Qz%K7Pid2hfg1v)ZzZ7rL zWaMbu*V)w8jO}UFev+y0zGd(4+kgMx>D_<)KN20pCpkUA+}P&e zRFca;dzH5Em$-qp)!@<8V%sY4aUuJo_^Q}ti7shaD57=FwJh5owH0~M+_xm!&Tndb z?w6^}pVmP}8T*R)>h7oC)8)e-EBO+AObrtsn=w^fwY*z3N>!X0Cv+42(W}rehdJA? zXpAm~R>W#tasU7j07*naR4uuRV@TApU~Dc0FT+01jD5LRbWs{SR18r*M?iqVO3LP< zrzT7SO!_;~%0=!SgJ2rqBslYvYep$Wfq{ZIShWr&SpxyDfz{97Q$PKIuJ3NA2q&d}8 zLSuN77!x|FLZJW>Q^Y3)kJGCkY*kr{KKc>3p$)%Y;~V|cf9POwrh*kRW)`aeI+;8= z#F0%R77j>4#%V@E5pd1IVzQxW#?qvNF%w5#nJi?>BpfWY@QHnf3ftmX$;iE67q;Pp zwdoQ3Bk%qty;mJiK1Ba#>X*;eFPdObA$A-u^Z#BVY6Uu=23IPq)6TL-DIuO(IV^ustZZkPlD^^B@SEfq%F_nUp*futfAy5)(yIs64H9CPLVsXi$4NF1IB9Eb zEUap5+#igwuEfD{cgF_KOFet%Niu*o?bwIy*BAFH@IE-Bl;RgaRdgUEG60} zwrBDkW1z!<{Ch2aIOt$Qy@}b_-^5#J?b6^uTRj!~6kl<~kHV*P^RV(l!76^d-d)uQ z^M>C&bbSVYVz7~SyqGF#&OAz2@DQ;vIj=<{GH^Is+J8EdisSPk`-TMtkQl?Es*3=+9tN7zfMEp zeOycVR3=_{U)dPZ7+UmfJSuew>@!xx0;wj!*T`Fbho4$1d>g#dpSlzqQOoCPjZQ@`eLzvKtZ?J4~EZ>ApyZB6abCSxhY$yMt@3KqivzNr!NnL6%XzFQVGI1ub2roq! z^zQfw3@7Kz7v57_t};HhEuhg{8$(=+TjFf#gbs;ip#!a&$v<*iIK{-<@ji1aF~tz( z*{fvYVC*unGN@sRTN+h71Qs^V=NGjNpDVcDt4ICET9l!SfBcQkc}dmqp2 z>SfNgl^PsoI^cPE3XOZwugPE79YkN{yQ7{ zO)bc`o1Miz3dYvpxbkBNnJt=S#xIF%gf)G`4W5vb_h68+767B`B%ZH4IcEkT0GLPr21DlL~iP`YFqN8oaj`(He2z+vuhitDg z^Z8Z6u;b}fMg9wUy)cyoeKRjka?gx8f8thKHX>6G;*S7ey~;D>2S?K%d8-bhtC%R7 zzEuO0Z#+BX1^G;l4=FWg)i>s}ATse$>=gQm92TEo(Ac|!>1&@F8mRp81Ll&sRMZ_g z`Xc#zA_mas>CavgTL+3Y^<%J1pq=r-jz%^19IPiqZA&dn4eH2|mAGp1wRRlE{Q<2B zph?ZQt$}?eN1F9XQIEB*84ZR4qe=T@PCziX$Yu=!1WG&3q4ire&$vm<0J~%> zF(R;i)sJ8EvUg()a_j=H4PLMOpL`ag`B7p=`Glve;MlC~%qE;jcBUD|ViPhB<`WHg z20zx1&6w!t0smn&wR=)KwIw+L8%#TMFm@gI&)GoXXnfV++UVBnnO4{b)`=VXga}ko z)_hG&;RtocCoU>XugE&6XUG5tsg~Y3H@c~@EW9}NP>W!OU>BTZhVDYja}YZpK)#09P6Yr`ac)wwj=rw9D{B zp0H=>hYkn+Y4PFLs(a||D(1--5`J4gMnSVqO8=zJC~G{%Hu2~EERiDNt=uzK1Zwll z(iC?tmu^P(q#kQK%Zv{mlQn$ZK9DXFP)P7PvVLcg(l$z!6n?CeMG(X3OE;Y3$Uq*-yq81#)9}>0U$14~XZ9DZZ_`OK|V!k+t`6l)@ zYJofXb5)^J#n;5pHMoJ{tx7pyhzbUb~j&WkhF&mBh+Ux}TW zYg@I}@Zw`wa4^?);;bxDC>oq6`JOQzCA&1AJl7R$4``E9M)yWfn5>@(=J9>77czvd z(Y^6OgUf7q&)8XU;qr6zIoRhB02%v*o=wc>kY3SEeAA4zhem4eL>%$y*Z|-7+cjt` zbca9Jo%#hY+lon|HsvoZZ@>IYdi$^bmfrc(f1|rU`y=$Ymvzs$E7)^}zGFXj&eUM= z@|eWqP~szNlV)#VrXM|RgY#7%>&nIYX>yD%8Q~K>Ci?W0V&jpQGqi_BV1okWd}rE~ zZ54j*Ln4)6i(SwxdH6Yf8yo1-Nt2kU(^--=@rgGUm%)hfuHw-NEb!5uSOvc;<4=!I z%9lQhEy(j*C+)A7#-rAQPj5Os=KOZ)?Ju76=&jP}wbsK=l^%U&@B(0{9vvEwFZ$fq zPx?Fm<|;%rhIg*@MY2XWW58~v0RAQlY2=oFu+tk3`cf1=O*?l0?m-};eW zzW-Ez<@dg(&wTEr0frAAN#FSUf2^PUqkpNvVze+KI;376CHSwQs-`44?zoB`4 zOZTz+G*t7sE7UD zIEn^{wC89^#gR@SXoBuIddUNy8nwgmGA2vg*Q9U`d5`Gg#+NN|k-2v+({U&rt& zWpPktL8!E+aKsE}!iWJbd6;9!Rmz7Z#okxfR$6T-$4s#U;JGG}$-^p9Ai>+J{Upg; z4^AyF8%h;B3ND-jx%`U8rZ2JyKup6=hazlXzcqpMs(JsM_B%D3m0|)b7W~$sI>9f* z1ZC`kwR}41i))u8ORo;o+*%k_A#2E4gvJI6*kDu1{)kjkfiD2^gU^!mv^g?y@;Y;U zko@zwAQvn$c$9=bO%ZJHZXu5!Glt>HxY$)?RqP>8L(|0ZO!Xw*3S0~iW4qvITSk`4 zQVd~C+LykxrEe{!xK`vzO54((Ax+Vld00b6;$kOeaWOHC-uQpAXn6XQCwfXfc>3-O zeaOqfXFOa!WpnI99@gLIf%g3;hd%h=q8BWt?^tv{WpnR)-~Oq7^yfd&qX#FUvIGv8 zswEdaYC%z|_+xM;W+r|u{IX&f-TZNk@{;YiydaNXD!3S01v6;P*o{T&`ep`srz$p$ zSe$M{mk*vX(Xk1LJcCi<3hP11s@q-pWW0w}@a$lRU+T37+z)9hrO)UhentQA7ax-= zs}C}VKRl90(O<~68H*2#mljPvU06UJZ0^QJVb>aq{v!W0N;xlDgfuZ1UF$rw>?&)2 zbk=~ch_wNx2Y!K+_FJ8(lLMMM?J~KeT%+H3bi2lE4|fe>*|ZxTR~Gxi9)taWelY0= z^J1YtlUSpA+yDR&07*naRBPx}&@a6hQ)6hrd$7Up8nIsC#z2KPA(-vQs~U&NW{KZu!zLE%Gz7vU&Fv;2b0)BvM%afnZNRN7_v;aMBFd6_;g>yfQ%2us2`WkPp6Yc0N>UfiPG|PsL`VFy!jQCl6 zqF?lqOU+`$$d0^DF~_!#&!IQ>cF7wD5B{*m#HqrkObF}x;Ngx76}BZmujIuV8@|CP z5B)Zhwd8dTsjPLT{gu76xfMBO$%A|REkl<$7oXt3N!Xr~vB{@R3&#v%0T#ccy%=j` z8`>Ny$+3Za%em-d^}cF#Jv?d0H^D)La70J{Mz)E8@bh_xHgjpof1t&O8k|~|=6ZBeKAreU(BvR@v*?}RGimq!ig)-&X67ToKl;kjtNx)$ogNQ% zWy2?Q^X(F9}Tln##B^>y(-NgtmacpwGBseB=pTqI2@6pgF)H`7+o* z9&vyAp}l)=GQG5tZZ72TLL_z@e&Rm*$Bu>jRXTt4t#+Ps&_>$eSKy+-E$64qXZb6; zfqv1Wz`*q7;bBsnLvQE|ri2_mKsG}&e$isv?Q7N@n-e)Acf(f$K7^2>V{N5D+zfbZ zv@f5bN6rk_2LB5WD@$fc1|QKD{}3kH!IRX`OCCa>vnkXJI?>kA58C}k>ysB7(UFy^ zGOnQ8!DWpHi(r|t+i7Sc-fSs;D0Dgi^d8I$?89TrUtXZg!T@XrG~pQ@h3&js*a z5+fhHcc&-szNFMK7`6tlLXF8haD8^CUTV~GaI4?rV8mu)eK3u1M z4q{BuWezd*`C#oZ@#*#HbNC%HHEHZ8rOz7xLz`;}J+Z5Cdg4jLT6m#*gQ?JC;o_E= zLkztonVRkqP;w1FNm&ax^uuy6H;n}2Wc?ERig~}#tuhXND5mf)#sptjtD)^?+y-xS zP!ObHvfk)C|1d5*@@%vG#Ph`R9r`byvbGK1W=sKW)(sV15fFV1Zfm{8Iw*mDll0U4FswDADrob8Oxpl^jlJ}Cp!yB@oU;H_%EUo@cPCxc&4AixRO^%%lU(4X{ zT+^RxjZKkj);@{jNv@f7WUw>q!vdFL4K#=wsZ_DarAggU%v;)C2`Wk-XNcLY7{Qj#(E{BTjG$5>x+xdY+Ua6EN%#&M$SQPy5o7Tk@J$x@q3<4 zrlkV!jc0)dyAx}x4c;P_3OjLwcGh!)dVZio>WGk`vUXy8r+%I}Qg2LdhTimT)Ta#_ zg8vQU&-nG0wbf3{sibFY_}^oT(4{jjyN=i;@_qScFBv@=KfHYZLtS}paSa)RJ*+&_ z3(Tyh4cd}2&g5#*UTzh#@_aj4%dT@g`o7ke>CWj{28`%XOVvNg5yIflB8|RXYJ}%3(D;vHK ze(6{A*02ATe)4brC*A+qzms@-{k%Qa+PU+`RQ%b_bv$P@7rJjH!s-=H>Bd}Jwh3OkC8 z=IwmeAeM^SqXEv)7SEG~9yLlEv6u1jR}s^DVkdF$<=za%lPq1?j*mqM>pJ;CN+P8*@gIP;v;o3dV6g252bb~ zAAD=Yyw^Ka|rpMO(*$L2q=7ar>n!CRvJq9&eAU2*a$o9yV(%qP(= zGBmJd-!;x>Id-5^Fc5Xmv zz}@uOjY(6@xV$6?Pho>Cxh&gU9LgAP(irPfe)uVk&;N>!^J6tU2fX{k_jLcmZ}HOk zXAoUD`lExBEE~|!$%1^7a%M`%tc_p672TFD!<^77EQyJg zt7*%)(9*43bB>J_!+Iqt4C#n2P0^+)ci;gth=su&K?P^@pU^1nTxSvz?crrx;Ws0k zYY8YiML?#1__fMi_UoC$eI2kkd~hn9#;Ra^bP<`p`P$; zjA_Oguo%WeI?h3!$Hw&pho(VXg9ld!0WJ`V&BTz302WTnSd(z!ZFIgqzbK2b;(Cy* z0>c>x19y#qRJbtdi>t=jOYeAA=*xX<4DJULr)e?*ENLWJ;c0kI9&RQJ4HforhD1sd z^T6d%G8o+b!5`_H|J^^+-HWR}@e7~PSN`+At@D?^5_M3!ux}!&HSbXjyK5(^3)^{^ z5rV@r*vGc!fnZ`s1~L7(4eQrSo9NJG{6NtyxQpGzSru?c*cq^+J%S#uKntm zRx^1ON!W~?u@h<*UP@B2@9clc5t{O~>WKlJpy7y9Y<-;Z(n z)!+Vt9)tagT z;VWSdI!E4QF)+a1Bv3P<9$@1kHNI^&AGHw!#Ka6ee1y)$Vq-jbAl7i;e3hACWGnPe z-GFE0O!ParMpea+6PqXgn!MP&a(%#aBxe`FfmV(GE)sDwShyYc+}~j_at~@lu_!Y! z)ZjV6F}fJt8~d-%?^VQ;#;yjFiJk}b`yh_TdUzN*sF{s%6Z+`a8oItfE|3&C(bTs1 zExLMuTepJm#9u1u$|lkk?8ohmG>uJHDL$fxRu&}abpdnKU$t?DA2!66!iENmgYlIb zhz{8Z@(sK^;B{zwa0><|U#22|qWdI2Fi5ej!7Dry2WEb1YG|Dqk8;6!`5Bp^ms$;G z4rVRQD1|>v&GvrMfu0Rcxfgw%&DHXfpB&Ait*QUQHzwaY3x~u5_sP5H23zP$jW4>9 zH>J=CHl4*b?c%19+l*Ud@Jrj8%#Q~1NgigA6g?W9v~S9J<kd{4XxISsb1f&TcE80{y|;3_rP z6dNm@+?l0}OWYmAO*e*y3N}rxidqLgiSKfV{=`zV*o%F~hxcM-DNQXK!#lOEi60qW z`1<=q>zlJh`agH;C7rjnbXPuE4d)SCw>qb`K^~#m4C*AC|o= z>SyEz*Rm#Yd$6$Ic$hEx8oI>aK`u}HBuu^1e?(twJivBh)64e{-G!#5yAP)ZORxf$ z6N~qQxW3~BK{Gyc!2PpU_yF;eck@W9_{zP;g@0q~JnTlgz0q&n)_)v-ylAa| z;gK4d{hjC~?1{_+c?b3yT-R7>z2un4-FPUvGL}*aFDo`oXoFegozb_spUB1JK(X}7 zUoI4OU(w}4zv$r>9U8xJsJWgR1AT)(G=+S1uQgo0iDmk(_~edy`TWB}#r-I&;hD|! z4W9&)<$K08`F&tZctQr_*5D!KAgAsblXcSRF-*W_!*((Lf-jBS*qE~zIJQ!Jn;f?! zo|lww*9VJ9PRIZEjH}Jq(7F&;i3{Zeua_TS7yJ)oUhX6#QuuM{2A+5Hi_aBaFP=;#W%^k+;@sf}cGIcN)g@j@W7FHfg7Ui=*QFo5rcI&#J4hCFd`eSRoDy%N_@Xb^9a zdqiJ!YGek#__=tIofyouM=5=i+7~$!KEb2No#kI*pnw+D|g6kU$zElRj9k%LXiL);;O|H>5yaBIne*TKe^$>XMOd9Cx(59-v* z#7%>_;464Fwsfu;zObN9O#=KtkArndBjmznTV;+QCuOkXJei+!7!16E**p{z0NB*Q zfchF6Bj>|nZTK_shk07}#Fc=&IVbJ~uf`9{ zW@Kb|8)|+U{U>z7KTXiB`HOX}IYdzPz14Hb#FfG)xi<*5I;okboV69c6#h^{OB}0* z#_6PD%p|@J;@J2q_8w0^iW%e{!6oCct?`M#wDJ9w9Puc5fJOW=$p`4-H^r~qFZ=PK z2%G$6lfX*hGtnV5@vTd%1|UlVV+l!(v&{NTtj{L$=f`wv9jwi#H(jU`!K1LP5BOyq z{2SZ)Vr6aKS8HNd{5ru_a}poK4%bc1%y?8@K2?#Ai52*Em4ZVPCq?~9{hj1#QNK27 zPSbv+K5eWCJfxT4mFNCJ0T^uHU7k-&!Y<6YupZdJU?VOkJT71jQq*@8r9W%FCjJJ` z3uWu_ER6sOEtXe z>OuT%&}QEx^XkO#BXP-D9E62lJiS-i3m-@C8#YV}EUxHWU{i3sf{$Ig<)sTK>ma@c z7~Hciy>b*el(vH$R!L304u8W(#9(6C=qU6BBowqJJd;-{OT3@No^sqC2G}ykQGz%iw72ZgTUu?z;W?U(?%v?YH&gKm6Bv z`KS5j{{k^wh7C$d!Ng`+z4hO@*y_BZ)-(C_Gtjce^d9|~xq zpQ0cB&$EeO?o~IWT<2GEM)327!y+U3L3q|_*9e}}#PEzfZ#%V5TI(6~oyczTZ}3vU z-jD}h+OO1zv7fZzlb&L?$T|_XXI`8|&l79$6YE1r^!SZUZ}1Y}^+&BwzES!#bL=PB zc>eS!hd%Sk(wn!f2iw%`e(0;b82H=2@rFLfSS0BiKf2fd@-KeII=NK%aDt!9a^!*` z=Bj1U$usU9WzTACRdB^lv+vNH4-OOKCKfv5(AnEYZOD3to0eQ9Z^rmT!6Pzcd>?F8 zil4Oe+#UZ=^Tc?Gey|WS?UKL?F!bp2pVa4m_scqc>a3U4qMeO+Q%9cv$v1WV{DT#43nVIoSKX|GMA_&c!+Tp7&CUVMiDTroV8TE zq!2b{{;1bJr~RwHp?Ug*vOXNes1JXp>rcL|e)<9I30ib)@-v5RAxy7wiR*?QoM5V^ zwmSKlI0!vDiVsv;Yc$%U(qv7AmP!pO=%c^De=;8%SvW}z9wskBAGtEI5T5WW7uIlL z@gLXg-jWeuTkBqYVEP~1+_Xy_U@)=}Y)Bk1NqG1x%106BCO|qA(yQBh>H0*+2S3#P z&%UM0``@8ZzoU15{A0cI?t6Op=`ZLDyaagTYrm!K%`ZvkHxRZl*fIs&5`3(s4>}9E z<8-5sbxpzI2BM+R6#eOoenk;!0%B5h+wiE+@3toRY`j^FbDH2ecuI_JNo2tYE)p^gk7BHcm7@v5M#op}162sVI1}Cp zUhgNVz+-IaR*I8D+XSLdxtCqjQ-Z5 zQjt(q$YlIv5{t~VWsF1T*l86y@=|S!*{Zl9`+p5U@cwFv@ zU!zZrUA3LG;ft!$*v=X(HjP|^^*EiDqNdLoU*L<*xlc#Vuv5-WF%a=8A#)oFeRya{ zVpDALBA}4j#8>i0=o#ESN-k*3p=NTus3PxXSB*hmsn9p^nXyd{82Z|p_Nn9LQ}y+w zhOgQvq)l!tbWR3cbg} zv)+CG1AY4K8~xq??br3CU;nJCuRuS+r<8(dw`!CK2vz(K_9>PSN$~I(7}FZ$K{4s& zZ0t)67+dOQQ{$eQh1ktW+k?dJP~@AK@t*#c;p_OG4VH|XEK&{6!FXkoMgQERh>9@? zRmL+=!habP-x!@JB+BM^6K69M(`I>;WWD;JmsbF$p@p#=*inhW$+ac)X(m<7Uvidy z#I}bQubi8SLbe3!#KiR(ll)#9@E=ulH9o%T?%50An%Wcxc(&4WdT z!XJz@hCaqe$h%-eYRX1mzUgCG+ZkSClbHC%qX%l{5xLel5nIJZsff|0HV$w;QHuuh z<45nintC~q9eo%qfzM=-Z_Y(tOcp4`Lq}1waty}Sw!y!&aEIqv?z-{ z6>+3iz9E)=S80tWhJsDzUPaIF0S`zQPlYZz6@s@Rl_m6RY%}-k;NBTPAbYb6ZK1ch zNPZY>%pBvftFW;{%b2E4m~-)Br6L>uF8(cfAj_Pw@c={Al4B2ts6`%LymA(L6h3o! za4mej;*z>yax!&5=p==qwe-n7wiFMasn>}Ul3QkzZodCak$Lc-Ca`qmoljC!3Quet z+#Bp-r-+r{P}nl)Z|t5ttjSjNi@fC@WEK1kUH&;DSt|5fJ|}i3_0Z%;J=is{J9A|r z%h40Niuw_?y%i;JX1EHv$pYTk9vhpy_3Z{@+{Zj7#xDIvsb~)m#lN(hIXt{%%jCm> zz46H->RtXV(vi)8^bIdLMwbCybl$?Nq>TWZKxDrcqfPC)vT1x!kAq>Aa?;>s!N8u4 z^EQOe*8ZS0klSo>=QKRk{J2;1nE^f*ukj zP}u;=xa}ifUDSGcHCDXq09UB(!ZJ^60FMd`J4uFqd>)_rQcY=m|mW!WKk?-5c_%C`AmIW zgA7JYA4)6=y=r3|?837~A>)>{!l8mLc6uwNyBU;uF%S3}E#sTq8=Tf$SCWPq7tC2` zWnAX7=xWJeJE_&t&)`3(Yp&v@@p~v+E{9 zZ{|k1U_wV^vY~3|YCum@`rQ%}jOw*piTW$khrRJ>@ZKIjq-occwLfO6d5&uoH{&%J z3j4I1+-h*l`mc!VLT_P@(BsNx)B)a9O_{c(5@VZnZevqq73~^nL?Ol&F*VUA^GW)H zJ<`I0!!qk3@!aJc!8W#XPVE-)F|aky6VWyCrDDu!m%zcC4gc}*Rs(-J`3067 zK$UxZsI3%QnKSF!T${G>`bk=b4;8V$vp!K&--d1 zjC_VG&Eg&hsmO`q`KA7UJpFmIF4=Y7i9KuWo%x>O4mDvWiUdG_#6Un4Aj5o#z%Zl$Mu%j9hH;eS-_Jo>S4r_{dbQ2f4iw zt7$Ba8WO4Cx-HpG1eO2*5CBO;K~yQBTZ;StC0s6-dhmrW>xIw#w7&Q6|AUU-VDrBX z{S`j~H!^6DJRBXezHEvNnnUv^Ldmnl*AaAVJm(O6MKswLVZ7vCE~^r5lbo}!{oG@0yzeZ;zM~=RdsaKl$+seS$Scm-O{FkNU%Z_X8cT6W!-(*y{DTniS3jxJYxwxyYIR z=u%0psM7(&jeJV3gK^QYhnRyzMNbYiz)N6*ut$wCjkXNU@#G^T6g-P{Rb=X3SJUi^ z&M=pZi}fG|aishr@XF7AQXl$-4~p4Wg}jF!TST(y>d*gDr`Nxu(57U4VcD|Bh|2_D zHe@40Efpd8d9$y;;(kiWzMMF)skWnRZ&9PeSl}Yh_|QcjCA<4S^^g9JUis2X`s!DI zpey!)e)VsEQlI#Vb6ueOf_3Nb|C9fy@BNG4M5cdxC^Veo5ejlypdZNb923Sibvsga zp-Kw=5Cah*;|$L&8A|7ebCfaiz5Cc6ObZ`S%;HPVql}@%e&s>!BcD_Iv7gb_9^#^1 zjkVZ#>vipKenZ-xNpMtF>i$vEydG1x;3r#3Q?EFKv7rp?eAYl1kX1{k<5&7 zyNkU7X|{o|{jclxt#7EV-`2AqyrDN= ze^bkgAJ&il%-__@pZ!Jk5B|7fc@c1{R1i}sIoJpE8_sgjl-meYAG9ZhqoQf!MZg=} z?q8nR6)G?##ef)*C=kNVoef8mRoL(6zV>ENRY=+7>#)vbvxz=ftbx5d3%h{Sok>v< z5&<*#@)fNqz_L-KT<8numKScw5{X+JV*`s7MI)wm84KN@t`x~L_d$mz7dmLne-b6I zoY*`)N>$of*s^7rN>P?V~fD#QlVOvmpn&BPh<> zly$=XBuICPSB+4T`2J114GuAny0S9{`Sxpov*TkpDeNdFcx7nXY1_mPecT?s!NEz2 z1l!Q={_r?WUsi^s#Ft;k9FEf68{Y-Ib( z%k~azHpa;>z8yHh&!^64IzA(==<5kOkW<*GG5CsjRFOAI>|;POfz-6U6fGp2TI52} zHz2*>WR7Eu?Vj=*{vFc9!r0KzxMuV2=1O<(zRO3zCt4`(ci(?cr|TPCzjLK$KfKcE z=5}&%^@D3YdHbnupWW#0*)?CxkGgqs#rZ^?Cywq)&%S@H|L{9s*UKL{=zsU0e^#IW z`5y;zYGc7Feg<*q#cnb&6)`n91YXx3)U4)dsJlA6N&pFmDdis8dAL9Q>3Gd8|?qMeQELH^k%_MJZf*xo8>fE_`c`8&}~ zt_@;6!O{*a2xtrRdwg(xdU7M{9QfDvB{pwtux)T2#B*ZLhOX1qoq|Pi@Vt6+|4dBH`%?4ES3_Pf1`ZV=MG@me!D3q`2xS9o13mt&V*l1z zA#3w*F@U@AvKDRC0AEnkY-_OzS>#M)yN>~|6uwl3cIt3}vCuU+?M-9i*%kPVkdR+? zt-tWEpVdee7zI{JJTfH#RVsz!1iq{2Lt}x>*U{k0a~tj6z~GVWcV$ySs$)UKiv`Uw z)W2dUZ}V?#;z#2za0Q&JpJ{A##-{9D8U@!!1$ar_zd9FossYUQ`zaEN|l7;7Zdc5bT@eEx9 z49ZmSqB$Jnk&tJ1U&Fhxw-A2mYz?T|OX2yeBe!NZXCH@HY- zZ|KUZH`=0EZZQuH(>8t4z_|0w^Rma}qWgc@P|}JX;}o9xGBiHZ9TnH{2!#F=Bw;ul^v z=NS4#hHiR>oN8%lG!A(vQl zYzUx7bR_*PZ}VEeq}Ed_A5ZS*oM2q4j?%&Zx`9~Qu670aXS>X=gT8@p1 zIQ;(uks<#KI0K%XH$|KWb6k;=J2@TjH#nP{$fkKsoEBpSF%lj~Ocx*B%I(ZYB2o&x z16g9cYjjbIlFbO`{lGWsof^1H_%B$m?5xd-x}KK@aNrQn4?Fm@87{oB2jj+w}9TD;zzCWS-j1MFTSI^Nyx`1jl~@Shl4 z$WfR@4(rB#WoN!SDX?D!ZfZf;X4XT4`M>CA8-&jyQv)9l(#!k?>s1jy13wn;Y01W* zu?*e^CbqzK)+54hx9`MenX7wvf&>wn141k>e9;L`yHFz zdB;vua$>IE$m;_i-O^*>4x`^XYV}a+tP`5%PV+2!Ou~% zMnUJ!dtH(5v2df*;954E*em>GnKO>zB3*w?7q8;1$ccb6%h`!L!Do6RRw@?=L-xRrk%4?6vzWIJdiYa6rw3p7-2Bb|<2Swnq~dwW zelrFk$2l|k;JUC`#G&(P;6n!ZkBS;PY_~fSQ-!Yiz-RNPrh%P7Y?!ZT9UIH$-k*^b z;4E^;C8DB(@!rQ0cAxkgdkQ;>zJ(sgld#WuHORkx4+*&nbkRQ#7uZ2vpiUL~6Zud@ z+pZm~J2}wK79ISb;~_2uO=pjr&R9cUoR=Qw$j3A-R3ZnMpSE;a~mmUEVzVk2tEvbIu*i{(nxGZXv2#SGkozu~NC0(3rMwXIftUY4uP4 zyte*8_KiObj5q&6``h0VMMrj#brjgj^C!LlFntH{4gQn{AF|vm%Hgul$&#DzsQ3X`|lU)&2D++Y5ozn;sCh}m4^>HUQ!H2zM7ofA?7f1xZ}V;so| z=ouii7lQ8-bSSdP?H*^qCR!BFh?Erbf9|gcNgSNx`Ev)0a9HF~vAwJDne3f@=oyz1?kg2?ET{ zOD8yF7lEHl+KQax+!ygcEN~qd6FYA?``)PSHErKbqKbM&Lga-L1LyG4|Ys&L;?$6ZD9_S~3 z>8JH;|NDQSmp}O`9N`;y4*XF>>a<}fbp=@ZIb2XQ6iFf3q~`WT>9N^7fHq`t zZ9LIa=E6x3*i;I|dZt{F!=_y#v+#d*?$Hx%kzE;$e%L~H-SPGEbp1pZpZK)m;stz} zQZ5{+h?uwnJabH-p`p`B2Y<;Vv6GB0GD)n^O~zBsi4I=Ii*p2WKyUvFF8zE^P+V*r zW0^r=KH@qSBYf2y6dfTyXqP;e1HHd-F0{2&fDctPHLkI3hD`B1QI`@EY9l_1g^tGtoZicd*(XB$1iDrM zRrZU5`wU5;=pkjug^s__Php<<(ADsF;=}C5H6(yU3k3_;aeb}u+d6SP*!Ty&&MC-w zI?BIQv=h@Oj+-af*ng|j-JN!xo#^YAipIp9)RQ{iXeF=Se)B#3n}7aQJ^djQ+J|3M zKkw+{Po&I2B7-DUmB2; zmlsOf!gi9|<;CmWhR#KTTi2%z8xWyLY)4Mg*ZL+V4A0h-*bpt19efIj>%rtxNgE60 zAV(CTiJ9>t?!~R#1`ok_zf>h020G-02f%|DgQS09)4lvQMU#srq& zaQu2>!m;1Twe{hp&L3W=AG#WLMm7y%MvRT54Oxv?2=Wv+E7@F)mP%?ue{dmVYK$Ay zOX$qFUz&Q;dmrJrvKnCusfGjf&)gVd*mgtJ#m=>$4s5%+!OW4ehAtV8{%+K zw5|kOFg|+7@iEZvvm%sdol}S~l1dVs@wcMECl^KR4qj9=f4hSYHI&40fs=ufF{Wl) zz;&_-HpddX$q~uJKr}ff_z*a3n=GH0u+4%?ALc5^cgISA!@S&Y8c2f$cDWuATlc&( zpA%b_m(E)b+br`zt_&8V!!LEnPLDyK+l1UHpZJg226yHIS=-YaCGDb*YkMP)qJbam z&R@|d;4o;K_!bCK!2Krc$cJZqv^d>!hm7KdIC!29x`gkiEa!EElIM*Vm*dk-SMS`B zM?*qaUMvbQM@Z&mvow4suq|w~W>2}!9C>-cMd}ya^OCx7 zUf6&i^z(04KY8P%<25m48=mXwOX%#fYduT#C9PHh_YVHUMWa2mvccVXX&P*d(?#bG z11vzqw9aw%u7@@yu;LW*sBO zlW~ELIX0w#8|TD{&F+n(GtT^;o^P%X9wJ(n;otT*2J76BWqdqFh?H>SI+^x6GMBY! zv3}Y;#{8Z?YUCd{Y1;tZTB?&fz}LpQa{f zLgxQO%y>>}*t^>2lFnalA}!_gZ)|i69Ja~-p9jz0*$825Us4@^Dx{4VOK|VZ!ACaY zH|omuyE}0^6wmdg{Z8L(;pK`vE|BY^fj!{}NHQ;t*e+ykY?wKhggk*S8Ut{Y^RVD; zdvb@YU4hKFToehv)gM!h`sA7WhY0R3vf!AS0cwgNbEimdmD8vkmFit{7F0oee%IU z>Dont*j`_|T?AjCv)J(VM_g};7MO*Mz@~zefpZE1i@99P&9N@>kLS*$MhAGyJkTf3 zRs{(k1{(=rMz*|f3n>;12re=d9Et8mT~vfcYvKg67&F*Z6Tz9>C--!h&|?|Kmf+aI zXWfI^uSkhb!7=6GC(n7}Cz$VY0XNSA?i4f*j@~5mDSXNNC}awZf$fg_g5=rX{qUiD zPWr-|kmVzqWu(&cG(HdX&P@;61Kd93qU-)v9HH#iQ~a}*ngahcNNQ5O9^?&obBttrZRuVg#E$u z;QIY%n*PLZ45Q$vIey(QLSBCk|8o>owZ+HEXMdjdT%v$$G`Uo-!E&)pFtR+-liHZ3+4Z`h_0rC`q=v0`S=s#=>P7 zm-}4b(E%Q@NeGNJ6^t)@O{&QFa$%g~St)Zt2iYD!E9!4Bu03Kik~z5Wb8_vt9QfA0 zD%MB&!Z}<7<1MRk&KWO_xLhBv>f}&E&c(|Io%U;m z_sdB6Kgo0P_*_0#a4qC*FvhWYpyug$T(9uBP`k`o2ji_jd_d%h+}fyfD|M(dJ|fic z)gYe_$xrFc-~L^lzRBkQ!USc$rcLxyDuM&Nwk13s{pJiI ziYAWaFFpU^&CHyce}OJT0nhI1!x*Q$kT%}wi+YsAk(y zq-9aSWwcaesvN8K&DxdR`~M}tW7`mw?D6! zzW7)-teqUHXRP@**2Hi9Pv6qrH@_oqY$tq4X;zW9$Unt;V(`H~c?U0YFpLKqi&!4a zC(fIR-THcp!LshiP#zYAkNGYu^^bf+zwm$fPxYzKEP8nz`Un5Xi~7%g{T2Px$5WR8 zzXH#{`LF(1Z~oRF$axU0sjw*`HDv`+R;6eu=S*a99rBNB{P5;?le{7CBk`xm(ZPO? zf_EAW4?hoN%wZ*YJp=BV8$ zeIkMaxrqlF6aeu<6MrL<=a!KKaKmW<0q#@&b)oG&)%6=Xz4U_P*66_AD$1KQ@rWKl5kiWvM8d^h(B|5P}8)qzrIx%5~M$jXWm?Vzl#>Z|Vm_F-fcSd%Y}j>@V$` z>h4AeK-%&Cdb?J1hQ9Jo{<+@z^B?H!g;k&X zJ3pfj{qo;Xwfn*({8I#|?H&%a9l3$sED{Iu)KUef1&8a!1KrYg1k(`hw5duvlX*bl z<bC9~m36+Io-}n~Mv1D7^5S`Y?y*YE6;%N7)ZSlGDEofkNiC+MAMso}MJ=U;8f6 zVelnwpr<(AFNosWd<6-9`rd0g{_ss*{KzMjFT4b&!LWok_+} zIXL61z;5{PM!~@EgD;uQg>p{~;==_!iC6!o&M-g3h}9+&V}ZYj`(V8=zGWY z?Rz&0-ln5=dDHFad*XAWkb7bM=fD4&{@?%Sf2ZI67k?n@T$pfc2wTwu?*kt?cf%8v z?PH_Q&mA{{oFa#@ROzB$b~S&|q3~02_CnP*O4v-@a10N4phT#M-7y^@1ru%YpC zj%q9h3a)o}h=zaZSLm|d=x8Lr?4LmIfHNplfp5Mz=AvPo_;0`=1W3=vM}|DEh?gR6 zi-(21#bS(0OiI9{2D%*+yBD>@Vu?pASfZsYW4mV3qDE}!;R#F(#uVvuqSS2KJ%OgQ zp(9zu4}7xmf}Ia8Bw{~#QP@}zY|dNyX=&P?9aYFQo&okCHa6-}(3bEo_^YXgmY+#=^9;@|!!vxq^zf&QS+;H7j}KQWl(Z$-!7 zD0{zNqc3RJjQ!_zsU-ja5CBO;K~y5Ah6cQb>jTfk^_c#p&?S1YJ1#C{yk*-)BaVp) zo>`7L-SLkyl)M}|j|5)J8*o#^K*4L^tH7@s=%ZZ`vJ;Dqxx(+_XIKvLB(N0qZ#a%U z#`cmM!Qy(r=Wd@YU<2Z?zo~(a5BK+3@F4o<`2uciWQ_4?l#)0~xUqV3Ch#P(B2z1i z;KUB&DV)3G563UVaL+E|AMmlGGtd#n%m%(Fc8-lzwr@~ZhVimk^;psF zHZi#DCj-Go!bQrE`%M4Q=0}O1a=W=8=y&+qr+-q(g5LbQzvr0~F&;e>P2>)_1uyQq z-C{Q{F@rp5-#(E68R)3&43xAYB@iap$Uh*PP*RXDj)zS1chXM0`@iWgep035Q~W@m6aMSO zfX^E-amFV6ViJjgBeK)iu-X~e>g zO-J$of{C@#0-rckCpZ-2kgjW9_>$$~-P3)JcRUyaDW?N3>K+p)bSzlM-Hf?VVr%n3 zEH1>WaX1fgJFziz1e37G_l}Vr>` zgH0~`Nr?7*dm=`I4|$Pz6j>dKK*e3K3FvZdo@Zx#FwJ$Oh4cuOv5Tk+r5}pSf>~NW^o!X-_@^@%Jd!v?jZ~U51 zLF_vA0@*w7eMQZ(zs=#q z2A1*~7YZjo_$P=b`=y8(&lTdQCjO=%b}ZXAPkqFvBIJ94-7*ICK%$L9{7iZ1aXgyK zU>z`szfzZ4XY7t#IL}4<)1w?e+C!Ez$Kp%-F)t3XJq5Lcer0Z(rOF=k8EK`lk%=8)L(FmNzg2Gn9ZigEwC5HNaN{ zd4vDEcdnJx!=0Geo?P?nL``H(O#F!WVfi7~6>~H5+B~7Fh>60Nj`hKNq=Fzrk#i|| zw-E7D>;n`sTqgv7_T3H_H3FIJXE;tQ18gGCqoriI)Be7bQQ5y1qJK@2>o(@+6M7Z9F{-err=FrMLjs+LLvWg92B)dwlBMO>ae1z zJ$j@%rXT=YnzmEpdQnne2L1OvBe%EtfaUtaWiV)j$;@KOBn;gCKEu$Qs(L)?Fy_K(x{qDlv3y@qXn_PwJ<9(2b0 z-9k>L?Zm!?7%C-rA%wnxoH&r%bQ z+9YJTJ|*?5S%>{WJO;T~IJ>ytdAF+~uZXAGk;^qu;P6)MVb>>q{quVClMnRtYL|Zj z14>k^gTC`Sf1zvkVZ)A*ROs?LdU*Z`?j7qjqy{$TOJlRo2Xl_)M_(A#75Jq#Y={0> zohN}T?i~}cYVhp*GoR2e{^!4>PkemQkG~lD2VYq9D<4k%D6ftW;V@Zi{OP}cU2py2 zx75!cD)2!Sa`1I=NTK02%oB3Mn5eG>-H;AgDVGJ_hIVpr^5HXiT!TT_kv&w@t-*XO z{40KDeAh1Lr;xRK?t0~uT0j4*stWjE(Hy0B$XLMMgk@yWKa>DgP|xYuBULWgP^lQ%L#_6VE}*w^2HBb z{aB)1$Q=g4b2mn~FU0nNEi4#rf2jSv*L3&2Khx>^uj}~Un|kx>-_$LO^$&jL)B4y? z|B}vs>`QFieq34}fw^0Qtk=d_M;Je?QYeB0e1+a((nyjhjTvmgK{MS_4oFd8Vm&B1 z7)aZqXr1P+3RIc+PG2ii@GM2Ef?}+aB7$4&NX|GVdY6eer%A#NCj?{L0lD-kIM|s? zhR-}J;S6-A`t5)A+j{!;GkLLnZ_BD?TSjqCWot_CHxf`}KxT3pY7~aZCd-eW zN{>+}@LMEj#;7#~_6she!A(o<8;QDWhr69%Mx>M>87DEOOesS5^2BW^+dhx&d*9LV zo$u=6)gMzn_P;7wrC8*#$s(gR=%bJ)g(@4mITAcjtjtvSkYw4}p5NOpaJZijQBa_7 z_D%a0{0%<__C;$-?q^XCp&FZ#3-QA#z;G|Ssrk2GZ1>?z$;Yc~i~8Z9PAoTMw0=K`e<)jlp6~I%#21yFGbV zr)SUf?9I1zdhaPiiDh=11|PM?=?=di)ty{-ciOM71)Z|YjhC3m3}?oBHE(6%%RW1>GDsZ0d)mgug+YdDC@)-^OBHk*Fsg z`hx6L%{cw9S$N6IhnMR9)r)Lw2pu`@bdTMAJJ(IhRAG~I)Oy;%b}*r{$T_i?9$xs6 zAGSB>-r$BIGFJnP0q<%&h?K7_!;7%!ZVUM*;oSXEq(r_sXf4&T!SR#y^%$v5xsA;m z=T~G?XJN@&LFU@nn)MAym>lqzUPKc=xpWqD#5IrNun1DX(}{I_(y@_T34Fr?1sEDO ziTmK0@hAL63mKbr6^m#oB%X(BQI&$lr<;lwddKXHo0b!^Wyiece&K)<_YXt_ocWpH zc{qkwaCrklDYq%RlKLas9lr{~btM zWQX-(mjDSpQl^p@@3u0Q4Z()&!v5eKe%3>3vKA#d)h;`=wG?Yg{3$OK%^!Wkdg&j{ z4|vSDsS|%DI@{%lLAh|uH++9v-D8TdtwcKQaJ)4uL3Y!^0~BZE2`O5)f3?UO{- z#yshFfrZW6K;MR~PoHhNVdF8W<#9kB*aYlZ;?cX%ww_5o6UI6`N+o)aY~Jqha{cbE zjZNTwA$9mn`VaJYQ~JOQ+9fY$2k?3P%Ey9)JG;XEXy|nR&X|OYi6Nx`e}Ewjhs|p7 zGkpaPpS_uUc(KXj?#Y%mY&iM1$5~JK+Wk8EWX_T2sVkebJWMULH~i4y0TYx9^d?71 z9ZVg(#(swGi^okD4?<_ObubB8);r)Xxla5T@DVAsH8@f$eb3og*?AFfj5*+!?!GwD z@7BAdfU5xfnd2m6v1%Dwk#~NUdccPH0W9`w;p?5+T+hch#_n)@fVcBUO)Ea1Hqfu5 zyU~7Pqrw0B!FD?h5AGIS-ey&$*2W#EgXwk7nr-V zhpU3Q)?JEPYFU;MEA@mt2Zn;$Ap$9=Pch}!{TOftz6*2={*dW7amLDZ0oECN4x&>E4M{wq( z28NJ3Nx}7C<0UZApr!x-5CBO;K~z}7%uQr+e)_|0C2n7?162)+lY?>wV=Fz}J zfe9W3*M(2yJR{DcryNJ2=j&zSaXu#|Mc)9g$0U3OVic(*Zu;6xHMglwPXn2W~R))WNxH`cbzdBGZ}9oXn5 zzlE(rx5%Leck2u1T3%)yOzc=!GG}9o2DLe`rL!4n=z(8cpOzjvc>Msj<~I5ty?)`k zQ7Pi`dmYlp7oyvusJ?WRVp$nW^*f-#R?KInq_*y-cG z{e02Fb6+Q%p3~>ReYyq`LrLxH^Bp2|#)s5PxH@ON@gBV~+(hW@YH;HB$-u5aXJN1K z6My6w2%cw4XfGwt1NlzTWc*?sUPIzfQ8yAh!uGe6aU^^NSgbR#Z$9JP@Fx;y9}zQi z{fL}~t-*ujEdTHh7fo_o@lh@C$6#Y~r}n(hwa6=foT9QRS}N!htz#T`ADqz*)`!%{ zgSIT{4=(7}6n#0vD$a)&^?|?ncXjzAAJTXJhkvF0jc+NI zK^fSTU=1G;@;b*@1P0L+ri`dVE_I>zULJie;71@AlR^ zO$%|o>F(xMN9s|hPM*QnN)23zq4O6mboSD@8uR$dy63>! z|3#ASaYzp`#gr1#YemSu2Sjk!E;!c4G;$R_< zvHGjzRP$_l^F=x^1Q=*U|6+`v#DsVv~P7|8V7c zl*n!C3STHjrpSXS3tTh`Vs!Y}L;cwQ;-_@>>N%VL8=&AAp6lt*_kQ;qy7}5`3X(s; zT@<2hO-Y`1YEdFPz!mEv+mLV?U{vq0f~fbOQ`e$(1+ftJmt(UbhnmpH=j6TTg)jc3 zzVr|Nx<2;Nrcb{t{mLt$mqJ?6`3U_Nya)OhUOxJP2ReIj|DW0^H3jkHm=ickA?pv~ zC@ep@CkG1Rz25aR$3%Jz{oTj>8LZC{^tTL(K_sotRSo5ep78z9*t^=tzM#v$@oO3{ zd{igiy8~=`=M9b5|4iZ|KrE%8#t1uwoaj;z^C7ppfinu;$4RrIAr~GS+!<%KRM1C( z;+_c5{0Z!tIZ3k{{5a@)FC!F<)+)(EG8EWJi^MrvC|a9`?=2_oR6(*EeC;?128tpy zNWdZ)6Q>3O4aWBlo}ka**?bu=;oL_w$+8TD8&0{-iqwozcB2Z?4<>Kd; zcQJ9?ysiCh0`Hr@r_)+Dk!a<&Td+IWi!b}T zUnm$;IJYQ5gQOSoVmcvMfU>Crp8JI=dXzFp0*|t5w@l;-P(fSb^fH#lGh`1fauJJp zKj@WG0~h1mzXokgOt#C{Qph+hzmRLaMRkcfso4DA-hG?%wZsPlVp-x#Tip%?!H^Wd z`r#9OUaTML^DKk+M{)sOwXUs294teb@V=n2n4&fqUv0!+L#6h1sXd#WAY z+sedrI8!63OO3e`6!<n%k_$a?I(s%L-jm1Q!wusPB z1+m3JPAW)}+IAJPr#~5&Y*0m`*r7X_jH7iGMb>iFJT_GLs(9%NK3r^Xzonb+zNWJe ze^l**AJ*8hsnA7y)F^-@lnvTL_PvzU<$+xYrE59{He?b9G9N6kA{&?O-XGS_i)evI z(clQYoPA%!O+0@-upL7b$SC-li>lT%cx$r`jMav}@^B%=sv{dCwXk@^*8SAA$3f~3 z6brM~`cNDBFtn;&k{iK>bK#ToOKg#hgU%`!E#htv&r=`%81|?68Ja&4oQSoZK3s{_ zfok88GXzv&xdvPg_zK38T<|0Mm^%(^D4y-aMr3Gs6Oz1-7K*_J&lS1u#e+0$-KhZs zzD{i7`=4cvBhQbw=-ITr$0q*GQyrgP>F$S5wYcEkUF+@#?`T6#@o`|kxzWx-YGWhV zdJ7*Wla}=jV(!GI^|E#?#HrOLI0m*2YFs$J!P%IwN~uCdQqwGBCnp8|Aa`rVWXS#! z$u^j9g)pD3Gg+v30VZtUujx!zPfmj`{1pv+jwfQ|aE{I7){Ns)!E^Z~3ogvnRDgV8 z{lHfh$p?{JjT&iN%LVJ~#mE*14b(d30EL5dCDJm-GUdHNMS(;sxkHrIlJBg+FO zc*sYktZTqUAa@{hhogpFrt2-I{Au}N?OQ_211{^;4r<@JLzWD`;rhUT@#v7B$@s-41(SIlw z5uu&@k?o{!Vducl11^Vgv?Qm%jx8I$$@4P>zObJNad4!Bi~^sr4&rCZ3(58uG9sF` zCwEX?le1E2P(#Md?Nmgl;M*~_@Ub;pS7LWM#*n+=yTLhJFI~%!sbmao#eK5C8pNSv zE?GdKSzaJYDVb~hA!H7pab}Rug)Pw*`KQbm7xtTZS0DkMvmZ5UAY173QLbGLx%T%{ z&lM0}L;k1FwxPIHAx!iE?=X+#YT#o(i%caxDC$&+K6Fj{5FOTI8O9vy#M!1mMww`A z9q5$(?|a7D-e9cAhay%AtmT(G%SWE|32vid5I8Km;4X*_xi9rYJlmgAJ6e-p-UnDc z{YfF81Kf>8xaXDqX4C9X?NBs{KJyQJ4A&&;t>Y-EB_dw-cb{paR_;72UbOSvd?&ep z92SbF>y6mk)NCXDH{0hpj6^rFLVP5?O4`QN={|4q!^9EbBZdRrT*3b)uN@i-V+=TgmwGSw z3%>^#?SH~qfjLV0fKj-MlCJO=I4|UOzu9pgw&{Avx*8kprrjE>^K@JCrh)&D?9Cmi z3N8`X(()kXpFqa|$97fl9txT*%U}sn;>XgY>nB5$CAH3Y`WHABHf_wmv7O+L<+A*r z2LhHF{%D7;M(reob@S|`8+h39f5+wx8!WlgIRLVg7nlHrKzhGVjKLGKomM-XG@f^4 z1)a}W^M!(S1#!WcBlbmT#*X_XLj=2$)wbB+o3Iq`v{ALxt!2J#&P=Gji0XQgF0QV4IHAA>tA_}O8A>tjw%0b`3^+rr2&k7m-?cjnVy312Uf_>nVg{7kF#*y4}o{1lpUgSvw zZE8oyjxPdzGbV|X?a7q}XW`5A#sc+e+Q19CF$~*CT)P$)^F_Hf!*gM5QA_4J=!$xR zeYV4O!DBoh7Wpc3k58;Sm;;k~wli)Z#|dQrTBdC@hITk;(0||uQTqipb8fp}42uTy zFCQwH8^VDN?qQCZOM?DIV3d941XU`GooAN8V0nx`beKoSOfi?ZwiXFl$a0^8+yaAG zQ`ql?tobi9csRiB`ak`T9yOxY?*qhHz?tw5-Bk1oo&`h~d=1YVD2!zxFGWqoX`O5H zpsr#KA?wB0KHuvt4bM{%Ds)IC9Et2<>J<3VdK67XeEYFj&v-5!*&x(93QqF9tS#<0bkOi&4L$P0KuMu7Kzjnoxz zX}$K3Y!C7(LXMv@K2lh~1+bitMIRBH!nXx?_L2GWI@v~AS0BXevJ8=W~P@Y^lxi5-6&d7l$RE_`q(W2n%@i=NQw zl}#%(${}EUD<3Ei51NEukJO$sHvUyZk)dF7o9+DZg!M0iG{{ng(v-6&7A)}1dc-RLi#!GO7e3-*uyH3nmn5H71MQ#rN|ECcDC2VS| zsuu0!TReZhpHd?p>*ZhhdpiHbhxPhz|EBiuzAk@k5DOyPyW?|3sFWzir%2J6!RW322=?433SXIJf-*G1e5 z9s}RXc~?AdO$DAE4o<{f@!UA~z37@!>k4ER_HW0~yw9cqmJOem5fHxv{f#^=aNS{N zW9{ttJ0ZKVqYs6O7<$C~`6_FNe_vkGtM0>yk-h*THytj`LF~j{)3i5OCaYD$n&9tcT-Yf79 za!Z&vuv`2LV$ZcF%n7+va3pGM&GA?YCkR)gmJVc_1Fee`O@*u)^ueCu1MT4>FX$7$ z_E{|-UiIV&^;Dt8DdFtRfBSVd|A`GxiuilRANG%37B8Q7>QAugU-)zfiyD5!{)kXA zUwAGk^onCpyVbyv;6O%!e=x4p_2DmnL0|ZXpV6ZiQ;#Km_JyETIuCnF+QGcjeu2N9 zy?501^oDrA4r=KDZ-@j8{swmqIwITHL|jd<*y}EXc%Jo+SZu5>T;mgN%CSmpF_N4< z;*W((pZZ%mHa`7eZ|6g3{op&=|ME{1rzdJFLm4+!f~D{W zDXiK~D&m&Egh3OQ;4^rbOIK#9xF2vW8&M_WHn zK`uHJ;QcHZ7qp9hLZ&f=_+OKvGuB?Ck9Y=3xqosW0M9r{$9JV?uj%%+Kh*W>f17VEaum3=gKKhDY{h6QB3qSc~wU2yCy7+)_bxHLDd?k2`B|d?rTavxVOL_y0IPUDG9=o{ zXD$PN%zyGMvuWCvA={sgdpOO;8D7M5^Wn3SK0H&Td_50e(-)BP_&`sH{~_DY{Wu%< zRPz0uAL#bYZ|d;!i&{SLVL9Z>9sGQe?9XcV{+c?up4cKF7alVdxp1VSaaae#0)Hg; zGgfFTxDR4$Ct;@#jmbKQDFi8e4hGV9UUO;PJMlBNQsa|!GQo*{=60i)?t+iY3k4rO z)K;|zj}#Yt1UOvC9|&|f=h>z5?19qP@KlVc5y(4N$2Tt0iA+L5-7h%_2!b=g2W9eM zI)dipna|SDJg4|6Wlv>G1&8QY6e3?oid&w$-En4nTT>!ODJAha*cB=Yl&?E4+2X?% zgE(yzKk5Kus9=N`1^C2n5F7pBK1^Pxn`b;as*~G;xC-KMVS;Fx8cgoVxv@wYY~H$- zd69EubFdh{KD>*YWd}KRe+G-&GbDUh_+U8JczFt9F{mBEvsf61Z1Gc`m>A9Jz`>;r$|g`x4RS@zP1A>szy zeyK5L;}Ac^=0Lw-&Tw4zuH7%Wwu4%j_{iLtgD{u)G{70ywqM_Ae|Ck+l8BSW2UI(+ zczJRS6I_o9`E1@@GYYx8V*>0uap`}OEZ5O#Q)f>n| zv8 z^EG->=B+(EQ-hmA7NQkwica~&khz*N;ZgV^UH6%bkRoGp+mwr61Q+6`$X{6&_T~9O zys;@APj2IRaGkvPnmdnAuqHN`Q|lMzSX4pT)ZueJZ|tdp@8B%BNN@$R)Ok)UC$ftd z?*Z2X9|~c`+4j_FFy9fQaGPsWfX{YBgu>W@-f%pozj@AeL@JC8eZeu=_dSP_0geaG zf&C@>ai=~}-@qVrBsEIr5kJfgKX8d~mK^z%h$JYxR zxt3MPYW5GZh3@7TXUo1mk`L%r>BNVtk`!=~U7GqCw=(x1&Qosl5gBrAy?JL-q}0wr zjWLan1le@|62QWLy-0F5l;B;^dxp*fFI0+&Staa`Uv_rj)e`3`Eh{Z;>Yb$D7{gE4(kc*xnqO) zguES4j?c#Cvw1_cI($%)b;U;YH7`!rY(DdTKKUII+@=y-jTpLo+;y-{>R5xXjg6XH zKHS{0IkzM1#HQUHGIr)XrDUIVa1!3?aAHndi0hPHkod*9a>eGP{q8<1KJ>9PX~hoD zokGS5;Lo1zG9N)~ba7mVHV71o}mPpepE__-8)jr8At1 zme*23pJgTUUh#rEH=L<2(Rt?ajFqp+^Pnyzhp`3Yi}_kOB>hs!+ArWZB!&AJ6F4fv zCeRpa4;OX#eDI*@@dpFjCC9k^WquvAzD~yYXy`Ww2?pP1rlO^U#BhDuq*%Hpz82Ej z6r9p?RhGg$@ebm?Nsim!LWcZ! zb3$+(#I3;U{1iU{j-)N=JD-~u?uCrNw(vOXCDD@FEbC0L?pE?M z@CUXB7;KYec}}q`MM_R82OD)C+;-#Jb>g z!#p2SUao57)WY0;ApaXScjU_WI&+=RO?2dd+*}X<9``fv*_+%ph;z4z9PQ-ofY%)^ z7BDU7Z|Gl;ec+>js9%T6MVTooO>*04LZ1XRL1zZI73!amF$>*`-w!#PgNLS=p;ZOU? zeHMZ^&L(Wp7LM5%gvJmFr<(02B{=7E zVkLS1*6bJbp&$M;-wK55{wM8gX+HOL^i(w7S9nhi{1QCJwc452%CbCf%eixvg;xPVHA#ctnSa>7 zfb+n+%;Did*^vg0q7EnV(0IR!-hrG-J~Rf;V#YASKpo_Sd2@s?|o;S1TdJkt8vU(wkYe^JM_ z66T?lw7vcnjqm&k7teH`N8pH5wx)pRfY+kNhRLjQDR(RM-vw+*RX|a+UX?6M6u2+_XTt$=+I3^WF9%8*O+LZxB|(VkzK@WKKotXm5k=prh@m{;Pf>)98qb|!%-EyIm?Ed4vyn;50E>Y( zAOOJxEqVYcy*n%;fwO};cg(#O8|Wxeu+ zU)1`s&r0Wf1Q2OjX^2vI^9LpT2?Dmz1Eh*Y;bbGg3e3A-Ky4p#iiPuLIe*1jA}*8;I_&m_Lrr_33MZLU^Ft?`v#G$g z^R+jSr;v8I7?zi*1b;+l(|`?8o&_9vEUwT!wjmdW!6cJlo4?86AmTn^Qxsg@-Uz8G zZ@l=os{Nk?!UpjYDK;*fGmdB9_>F(Aum8)hXrb`@=$AgG&;6sntL1|qlwX7*n=F6Y z0+eD=F!7>mu%O;q927E76q8`W$-_C8r#6CrR1pF!_wjv@j5{x~vY~Liu_>kqY@mfA zvD3e34~mHG+$sL^nj#?NOZG=74lBGd4jjsqf7?iE3i!GI@|Y5s&65xEUQ)9p2Ki+S5KWuaur~wB%cQ)TFR}tvm83R`$R)~ormPspkL?(R;Ts~qw1J1(U z8Fbvv9X+y@{7o{cjyh)FOI^Ei;E z(txXB?jf!rVrPTb@tnjweR`?@01yC4L_t({Q5VX2GD@;h6rbVvb&lB{+6VRp?UDEi zJ=TSbpWAxEY;^Fl)R=ICotwcXD}k&1=4Sq8M$xwUHtaGYy!cqb|7yk~BKTwb3p_C3;&@mHC9?&&^b8Ak%_$}bJ_~lnlaap1nr z8-^RA{7lvd|3z*I-p!kc>tf?)p3Nb6)ItT<0*63Q@Jt}ciy#&LAm)m*+Xr#0mYTH( zIdk$uPPq>{WFuy*f{PcB8LzaB>l+Px9OP02<9q0Ib*Ga#BdqNI{raR6N5U0|lnVJb zj6~dQS0|u_9K!>98;c0bX01-Ul-OWtd+d87_Epz7N-2#~fVlz6M`l z)1bcZ{!JwoJttnW)EUcjKMQyp)R+>e=v!bY#&1ti#*#s2JZ53 zz}He?lkn~2jo7k5WvuwoxiHuW6+g+MXYdV(kX2CY!aA#I@Z#X>d_W$uX*A4vCm-+y zY9wqad{l5|tYhX+SF}YtHMRVkJQwFmj@n@vzLcSW^TJl30dL4Zz8=)}h>-YG#7Nn$ zlr(DEGr(T+ng_(Hh#~72jwz0?5V#8ZG&qR1D(7N-l?eSpf57*gZ-^n=m%Q{3w|Co% zT;kaIS0gmYll%DFWh}8E2YiECA{LT^murnp>4h732V(^5j$PYXaHxTOtmupUDf&cf zHcztO;LBXdF^p{@=L=p2vFvus)hPUMRMk*no9~l_bs*NiO&b~L@3QP2`RWh`f1dw# z|Hka|`)R-ZCuv8%;4WHdkOPGb$L5K+PxuM)W#RyzYnnN>?tmj8@KZ=|2D3wa^q@NatG zu$i8Wxxv!-C@;5f(8!u)3AZcu=9vIR0{aF9Vg2SDUoU28~SatLbOTjmB4eLt917Soyg+bwd}u!4-UL=9C%Ue zaGx9=d&Fmceq@vW{lovsBke_6lp1~w6eNB>XXAIrxhpmDf_Pz>N6eNMWHq?7A4{@0 zZSXp1D>#ji%)R5&`nvhUKZsRhtnKhv_w$$yevbGxQtH^cwA6}E$5zz;QsS@8{J;xg zLP;z&+e(|q+MmGnyPj;XIk!BZ$^C?LWb=z#v(xH9L)0>uW;f1J2vmMp`I8o1>6<_icUKpBpjo$GzA-Q zNv=3n2R@&Ms5Iy^z!~rnY?L|g%KkHPiB$4vxUN&HgicZG5;+l};=UN4Y(m=pL2Xxu zNS--r! zsCnBQAJkWIU!L>PU##nZ1joS|Z&Scm5KP7Vw7X8jv#%97`>3Z>F>8_Ag6H=(@Ek5I z+nDOv4f!?X=l7UGG2cI=VQ%1WV2=V>tnb(%MLtN-8|aukyB~ob84~Nd!67b-HBS*c zbB)ORrT_C0)jH$-5W&Vl$54~G3*xef-wU#3zCJdxOlzXRFR zPu7pkVoXqn0*;G#HAbP=_$=Ep1O(qBNIUC^qM;a9a2cHfi(i7+9{3v7Qfms1!guq) zcSRpX%47LUA}6PO;xm%|3k4p3D?>qq*#DaN;cypu%W-~k0w#XH0|Ts*asWlf+Gby!khCWlJVqK zz<+q%cmnU93f4(T(2jpLe45nfBxZ~IA_s!CO=PIZg=7QL91XVM2gZXc$Vavq}y!Z0%+YXETvBGu+TnXHp>l&C`$BfUq zFJD=;QwzNZaK^l~Fz@Z;{Vn;@sJrKn8Y)YJI9d1z0JSVZHzn(`0{A(b{Wa|>dBd;h z=k?l#FA*ch>DMEvOg6jz42c1x@ z^8NvJLMRA0#CZDAztM*{D8JJMu_1m+)T$$Yg}Y1Shnxqz|KJ?js1aIKXOFcfdjXGL zX8w3lV?UP;AJhkb>F?;`)fe>ozxf}vy~gH0{`Y@=7uDbh1-YE~T)Yo?-gKOd6=ZCi^7hbd8QCC|Ja|*0|oJenjH<&gpF|R zTq|S`%WH5zEC%_Z&ig_;DA}`6b-cJL+M=YcjZJJP7H5)|6g{zyJAaGmQQ<^b>zjou~!9ZrQ=UDJRm>)ccDd3)%FWVNO!8~Ma zj3(Zs<)ugZ_%D7+rzP~{9ei`OizOX8B>#VoSadQjGxTr2_DuimH~v6R-+HP+zU+=4 zjv(F!b*I2`zg|3vArt>#UotW^^A(?%i|M#QO(RwZxi=~%zaA5J2;tApB}NN-eK?V6Q3OUt$^vYRFeo5e?uUYCQbhdKF@aB^C=Z_bnzLmI5-cML z-1o0%JL3!EW;>Pyfoc+lgARkeIV=Ag@a-LKZ+uPHum7=h^L<@?|J(ZhSHGq~U;71}ee#Qn2YduzV^d%i_=NuGivl|W*)DFOxVOn08QB#S2QSQxs|ZdWD;OUX zxhZFqlBD&4*}yq!XQ5!+g7oMvLLs6-3eJ)mNh#BiDPf2EMoR_!m2KnUluuuUCI&mb zt(`CHf_4KK3 zzWbM29$xDFM?Rrg&Qzjrri2dJmS7BHBb%hAkNo&2^y~lGKhy_*^2fIdcJh5EzC%H^P7at?ILvCMNdo_pcOn_@)BI!-Kfb`}_c&d3B0oMcEmw+*>= zHS7uOFA9wB&2bPLe(r7o_F=y%WGso^>1%Y)7(i^`BT_-;qOpK#$c+evW%Jw{{W~A2 zw%coR;9AiImXp%|Ul#jO^4lTBve@8v43{?AN{xwH<4C_T$8Bux7YjHMu z*hx;eGZtY?uJ-Z5SN;`j2^a2{_*{%*0E1wFJZ;Ec;9%u^czDoq-j&D#t`3(6^%iR0 zw8GxbGslB#%SIe-#G~yG?6ByG2Tm1D0}M%=b{0$wRji8wuIx{xl<4E6#@L-r!nW4VY^x<-(D4NSt$grj!8D3??iEc~?dRn2-P|Eb32y1MVaUZ zS8T-N%tzwo;!Ns`L~bT?jXUMVg`zhloX7k8`P@>*8rI>Xr>38X&E$Ys1$?S?g>x%; zjvULB$NJiYqg1AZYBpaH^rD6^l zyi_&hEZE;K&t~6fU6y0s1AX(HNJY&D?4dwzB2yk4A9T3DHaWv%5mvEk8zWl<} z&}Dpr^ zJSM)O~W|cY| zSXN7Enet+CYP}8nFvY{={)73)x)yYK4DZiUN`uCQ4fugSg%QRS3~bg%dr9(p2Hosp zonyCUG~_feH~Mz$zvZLQHNM|Tv}lrL1onC@*1)zfuHm?x)a@lILoCeA9N+pikIsMdcd*!3OwP1Hijt}7ZI9c@Y`J55HG=Xq$Hl*ACkx| zb88<69a9cDU(9C#zV^aFejYp%_5?EKGsZD~QL+!yL+a7R`YbwF?@a07>d>};W z(Sg{`RT4Hda?84;P($WMu2b%nYm;a**XG=EV_g{26g)Hjsjr1x|B|smtrYb$*uZPd zMal73CNegR&3zKQ3=6;{_ib5}jW&*mP-l}dU5_Ot<8tjrqJU=-44jSokb0AGky0wg ziF)k5b$e1GJCMyxAUb>+9A+gW_APp8{yPGS+&G8|Wet z(m3cG=G%5bM=ae-BKi5$=V2b>e#o4-!i^Y*oY@Bq7$Ms=&?j)(&c>P`kr$atFc zImf6qY%9g{v6d@13g*@9sm=enD|jBaNBRu~97jvm2uGBbW~^{Ob+(W{=c5`&1j4h*Us%ueM#eR44@DClr7cCq4mM4 zjrRuilK;N}Zv6`yDRpX0w8jVCO*`)_;r{3&wCC6cSIW>1rf&URvfM#zG}b~3I2Y<$ zgmm_J)%u_*!O^JwC*nA}w0cvYSm=D%Xv`mnM_rwocFvsNcz$?cRe<;M0|y;0Q)fIc za%H_}a@)>))eftYSl9rz^KNGl?qj{lSjV8T+x|coa0F6?{g6^bs$U$mV8e_h+S9hp z9KaWjQG65VDAqIbJ>1^QOIhZ;hF>AvIwQI8f+a;0GAzr_ea|@}v=Be7$1E%Idtl?C zq{zk?+R-UD;WJ#UaQ>iMBQUWPOPA;qeppSpb|p2ZDiw!w<>MC>moF$^`Hht_k{b?m%EF8y0_Ue(dx@wK$`{JBl+eR0M6Bl`qBwZK(lh~>ALhe>&* z26QoAdU%$4k(eV~MTLawkf>)qGPu6~L)-H|zUT0r^+bdg21g6+EP|a60+VBQ<{5hr zH}6vCH3V$Q^8vXt$i-Lykw`LMJS=nNd)G;L_w&St08f}#oDxe?w@y-pVsaG{7%aTR z4}S%`*at#q5HCgU9{CV*`+R-g_@Hq0&8K?n-+e`Q-+WWb(3C4@krd>B_a=7o*SgcO z5mF*6saHil&iR0L=RmTj5CL#-I5y3-xDP*XiR`9;ljsL+$UL$BTBrk8oAiCw%6ya1 zj(r=)+nDxG{`GhDfBP?gS8u=e9$0u!g|C^jA+;9Bk{VbV+$4wXEBB!dwLDLZ5HZ1N za@%C=&glk!#upLtFL-22%pb^YvIsqXRp(#+d&-Z0{{3k{@#KfP{g1z+@tr?Y#GTAZ zm|OU=lEgOgWA?1a+)cdXeS%l^o4***f4*0OneK`R8H=(>Apt~w9?3PeVz6iHcuC|$ z#xy9GMM0c|_#bU^e1v2@v?Uyd5A3F+d=ztGu@;KfFxgg40VP`;3=%(s1raeNd7wKR z6kTfY*X)CNTn{Evx+@}l((qRcuKA-P0bo*ySJBT33x|hgVmv%x&&Cz>QQ(qNjKdFy@`Iq$QGhe3oeM~9> zWS4?TV4zDF5jb`5avKz_q)19Qmtd;_(c&jaB6O-PYKJq4VoME?`l3N_3m7g`%5dj- zG>T;LtoWiAj8Am9-^OMMtZH~u-n>CR1K?uAHYvei4irIwfI|wm0z53JlEN4XCgkRN zP?4BU4&%s`O=<33FQU;WkvfDP{z5k*ROXQ80Eqc3I4|49{a~}p&KCu@*h~?{zm6<; z2V0?h&Gy%(MnP2T`sV-dU+EA3>HjE4{L4S~g1+>>{ZDoAlb_UhMt?Z4dSUnAD`Qf$ z0tXkHz~;!CxW&Y`d67n6;Amh^XHzV&Vdu-I7_&2}2E5tVVthCW+=eZMU+pjPyzrkQ z6!^3F(ibziLhJ`)RpV^?;RCK|;16w#w_Y)}>^uGnp(SPgmf%eDs3hV}564hJc_*bCPX_!iX6uK+g{9a+}pm>J$=WP?AFNt+m* zddQ)jm$7oEko;m+=qbLSZs2n)N0UxWVn-&_s*`p;eifXmr*?3jJl=htQJ{NMu5gJ@ zb~aW#5uJDmxO;Xj#A+?VVNx3MG z+g(!XKEJrM-zls+iy1$kwSnfMjRBI0R8yYeuUz1No4zdty#l@14?l@N+%))lUHCqh z6%3{EJT4}uH4O|F7kChF9F zy{WJ%4+rgRx)$RH_2XXVk(Yuan59`KBD7uIF@7UXLsq!qj}!h;hE6vpd0anV)Oyp( z=I74Fd{J8yJl(a1>jCEG7Y0D(x+oG+ z&N#;G9L3z_wjF!-$zeloCyq`E7U1TU-u!`gVnW7?y@G?}WmXY#-fq~ifzP^?UE4EW z5Z5ye>hQ_eEX-dS%H=MAQOh?zZdk^CP28ZzJn!%=a&zE| zfga%_l3K!EV=U|+8~w>u_0SHUeJ&K6M4c`cOJkD+Z>(ZzYtw(`-98uoD`dOwI}UeZ zcE&6ANu{|cX&%!wkgZHP|BK`rsCA!lb))Sm2e~;SHF8z(A+f++r&LmBP)vNnO@@Sw zf_K-o!Tdka?|cjQhqEBBq{f`SE0|wpE`}70+u7vXu}NTx2+de0UyVZ$Q~1dEBPHSE z=*Yp}f`ov(;wARpzx2khK^%`KHxjb>i!p^?s7KUNBSCAn?CI^oKk@)9}wdq=oisGT)`i`Tw) ztc`2p68&ZSy$Vj`bPjMAu_j_T38R7U&5?g=Yfujg+_6X-z8l1e`QEXiop*I!mZ!hL z6v!%`@8s1TKH$9(e6AWp!~U^8p${r7v-4s;z~Uyy(vE#6Hdtc`1${f`g$4V7$6Nn) zen=-U9&bzSkm^fn=l+(D0sG*gq?`AK0<21I;K$QZGQJasbcZn7dFFatJm0Cqw1~$J zUojP`;C>uw^7?|8m-*a(!NZBUaR*~#x)3!Q~=%$AMPHbd1 z%KwIJuj>-s#%gRESeRzDvdOx#(RaWHmVLvRK;Mx~cKdOsP7JthjNKfM+>4(D`8#|9 zRUL)KxpU*+q)P5rVn8Q4?ox-4;F zY?>4Ha0mzd8T9W5xEaz0f26b;_>6Pse%i?y5o-8kyDlxr803uYPIM>uH|`xn!S#vw z+lXcRV5dEMP@9H)mIXO((dT^CK4krYojbTUg(0)5VB3v*n|Yv>pA zUNJ{H&jz_MtQ&=cwWM6fO)Px6Hdm$wF)iljAfE^Fcg6^Ai*e@n;z8)aV^M#l1|OKK zfWPZ^OE<*z37d}CctZYw&p{2SF^J!N9$|giX6)LwnG?M!BB;?v?e0&!8M<>vDiJ{V zeplfa4;<9sow+~Rtjc9ofIA4to%TWOM1&H%1>cy8T-F)P-^I;fJ{K6g2H4FfysL>H z>J#>2l>noi&06!YQRB_M*I5JHyD_jXOg8g|>mYS8;7iOGlT&n<%P4UB58OLm)Kdi? zwmI;X3qb8d!TMmpS24e6r8+rh>_B3m;JmQMcnV!Yf9;Zx9o{7IrN`xvb6NwA{2acG zd0<0D3TP_Z5B8!iLl0Pvv~3a`cw;PRdc; zJ8w#2Z6M;iz&6Z}`x%?>$zA(yz{N&wu)1)pMQE@d@Or`e{med#xq-H+JzU9)T|t~7 z4&QHT#FQY3k(f*@QJh*26>;kJyQjnq^kKftm;Gy={M_##11z3Hl32=+cI<}*2@}M# zg>`~Mb3laWEW%j+7XjPFQsCYI01yC4L_t*8NrzoYd^hYoQTH0S2AywNKLp(S80Hzl zJ4PnYo3Ypt94jAF14SD?Oy-djeHUsZ;S1JX2kI7V3aiwZ6Aoekg1h*b_DsJ_o!Ec#Phtr6-ATgZjWp(WK&; zkNKRsB*yKm<%jw8{*ZNLN*sf{uK&A|6VHvuGDIHT$7h$;bMz$oR;is6 zM=wbILZhu3{akVJSdTyPX~nwhwcq?LonHUCa=)P*-7;>Ia~z`;kTz~_HNY3(DRkH# zjFR&?sfD(E5btqd4Q+0O-R38nVxf(_ouURM{06onQodJTRl+u&DZ#lj&T{-qQN)<_ zydSSqZ@TUhsm9P3FyfaTKEbuKjwpqa_m25~g-+4OVvO%ZY}6QvWIWt$2jAY?_3qccuebj7pXm77 z50&H(NqG+eI|hA)urWe|ci6zUW@PvLhfl@9VXa-A(`h|Mm_2=GSlayRYBrpZv==^?&*=eow#gfBz49_SPNt zNY0Z`D4SzQavg2NX5g4?)`y+!DMey4whrP(;+kWS|CPj+7z=N)uEhH;hRS#Y8#83- zII{^++g-uMQl+=62R)Ja9GF;Eeq!Mk##C>0j7`(GebdRL?~>%B>*rN9zh@(qhJDY=Lq+qeGDli(NDB- zp}?V{&3y-xp(12?4X0#s-5{QE)+L`6N(#3UrtnhwOg|eDJsFE0jC1kNMtbegiwpzHay!aP!00^~P7e!Gv|x2S4#){pgo}Q7?b~Z>YcUQ7O(Orvsb) zOh9TZ*0DnVNfzJPo00-IpGU}YlL8o$0-PeC1MGRAA2tQL9ni_y*NryJS8|R<3}JJT z2w0~ChYC6NGqRN_Wx&rSPe8>7k!N4~Q#wcwKl3?-H@XHgf_~tllRUAA3i-}=-_n2o zU;Q(E>yN&on7WW7evmJ^M++r(wuB=%ZD5b!f&JQS0R5ADiSbRwstnE{(d>lYpI&Rw zfAc0b&l;OhEmH}Xwk5E+vC$Y8dEa)>=Jb68p%t-8TSqS@YgsJ9KqS~G_Nxi z90@NCnTD6docWXn6XFs7-zl(E#KEc zfBx*=$fJ-2?b9DEB@_f0#C7ygLngaQDn2X)*9o6RJt+K{=uNB?iD17C7G~lnnVd4D zq_2-ac)&Fj%AfT(jRqTcA5^xAjLVz#sT9IUB$HgP!m+@VLKgP_hsy z>W%Bjj^Ch4fsYc|4Y`f$GOsT6aFzJm{ynisJn^#cF+uJ&4pLrezi||k%g(}OeMk+) zw4IkA*BQ4j{tZC-G>!u`uqCnCx)$nj!-fK9Voy8kvOME6-UO5V+^7#EgzVSG3%@ZJ zzOf&jCpDj7F!;r)s7-7bP^Bpgn}m)q4?e?L%>_=Wkz0esyB9VE21LQfBC(Jh*yMWF z@L4#v@MY)P{wfwp=E3dLC&a(c^LTh6HDn;K@nOLnC_=U=7TVEo+dO{+u$%Ffrrt!y z;3Jk7-+|qMJxcLI&)~vx%*%}FVhoEJ@DI2bT`afYrdR}Gy#(hXmZt4U5#t3e4aO3G zi4PP~pts0RbDQ{m*1H(9?(bdzE=|s}=DOoK6dxL&;FQ#&UhE3m13A&~6u8TA#v$V0 z`KS!dF<>zNfiDw&j3tqi*fhBSP-Ih}Q;Dp39}@W&9D_O|e#&55O5ha>&)~X&!L|z= zMa@tT*-r`QJ|jwMO&%KXXuc4ov<&9y8Mok1bQhfNyjX~P_fKTHUEm*%AKDwST^`2^ z^2{5@7dc~@zAus_d|$KxHP4&Eu|vOU8#N+m%ZtV7q9lfkO*_A+w~MZ5j6;U!*Uq!U zqpsGHp{d5WewJG3*Uy>;vIdL&=pozV-yBYFCWMsami$wW`Gx1qZ{TR&C~wGO12}lz z&QtU3+G{zSi++Pev~%t58Gfd%({FcMgc`a<%ys%VHh32>2|a|E%>R)^wLeHMJX<-I z1I;Pna$UX<*euFh>6VSxySd@5xlv#@HFV`Xgw4{zCcdYDkQ7~_+{&02HXD?ha=eJ& zo(%=MauFLK(&i1(C%Xo=1o9$7jSUD+3UH5;z!C5i+W3IMI$O!cMT5U?ImnKPIYz>n zLvp)qnKGNSUgkYM37w_6In8xP4=&U~Y3%6seM7b}S-15#hgwJrea&0gHtuc14V)CZ z4}2WR46R@aFlS1OvGJ^>#7PV>Iwk%1GtVnB-M)}J2YglJN}JOtmA7Rbw zJsF`u#~`l;`C)$*=Wxtpo4S>k8vI6p4?f(#T)V88IXadm&3j%n$+M!q%HwGc@ZBdb zV{t@~?`{jYp8TP^*a!+_%sj{b!dAyou$G<}87F)x^v`z22D+1W_c7k2&9Q#=py~2C zm*;#0XiPW$#gHSMxHKNgOI$2}1aKUf?=p7FHdnS+nyM16gZs1%p6{?Nn4=YN!km^~ zFYppv;Pr3Yd&5xF!D%C1gulks-K;%ig?6qTE1uJxkCyABVYBN|gB!2!0-ezsYosAz zqkRy)DLDcx39sofV2MoNxL)l_=Ii~*wLCVc-@$q{A{5AD_fo;QGHx(V+X6OO&lHE} z^dxs?kfvmvq6o#(74!>p!L`68bc%Pb0FRP~_|E;^NAN_80v(}195WGXsbXzASi=>` z;Y06_wS6Xs^OOhH?7SCyeqx;wU{->sg&apgKl5-uUh^mWBDYzL8>&*V(6+9=RdSA` zt);{aL9T_$+*>M0HZ)$zYED6=KJFa8myUZ_XU6s=7Lj1D6l8tflFWx z?a!{6_wOY9Q0C+S7C(d&Ws|@pWDD$QQm~$pe=?NrTlfY%>A49mEIV81{)dOY;JNTg z5tqU=i;hkoa)Z%ojwd$~-_sWG$@fkw^aO|aiPj`z32x?fD16VY=##C12|mqNB%*mv z><7LQ{mL>qhYw;Vu~`w4pL6zo(ryev92Idn%qRWx5rv;V;(qb}VQwKFy#1wfCH1GV zX?~#Q5E43L!#fyDX6V4jzk}y?`{GWk+@baPuuQbwl15s(^ z<48ltiM7`Cdv`j%pIeSKY~08>@#FaEGd5EVY{o0)Jh9H*ogdgN zY(lxRH3fFtM$v!PD7X#u6!j!B;1b929>&G|Bm9vIc}$zf&K!tT&^N);7;CQFjzQYl z%#US}EZ@$K(0#nDvj3bP&2cqK5g~y`U=V#Hkc+(F-A38TyP@R0HP6r0)(d4jXnDcE z0LWwzO=mAZ*6HR-Z~WdLYk%);o|o(w`_pk^PUgJn`M?V*7C?hN9^uP8tn_V)WtB3d zM0evpLd`i$$rkk|*HzhQH@;?`o1~D88;la;ocq}noCCSJ9OSWzMM8cMSN2P^uEf^p z^yS)dJLjPcg~w07q9an_YxBr^w{6+)ZZ&O5$!a6Q%~~H^s3EUk9+ZuT_~~%D$ZI>B zyt3vlQD?+iaq$Y4FT*nLh>$*At%kzBunuv(K}T-sSiqbM6mVa~3w- zB4?+g|21bss$*jyb7Jg*Vk9`G$Stqy9V6mCdny89{Bc|bI@{SIl0-aUjs+w(L~EMQ z-LLTo`3O}IAMPjGQLD&QlJj!D%sLwKSi)A%-ni3yfACF>r+3Qi3Unh$5h=@YJ*z$B zc_1&&6%mRSa=Y;s^()z@Xx5puC*yqJ;~<8kEeh_F_sbwhf_YoE1>cR9y5U3KN_`_N zbOHXi-niEP>;Lh``Y->Bf3N?~|MU0t=fC%T?Wa{r`)iONLm{alD^s#e=hM!{`gV0Y zpBo$Sr(Q+S3Hw`DB0saKp*x6G=Q9t5acZpXvZXJzS6BbkPwVnm{=UY`AEAT{HP&3) zx4y>a|8J?T-cYRIh{4#Bb2gLY#&@Scd>vpQ9v_BzGzoV;f{gIx&@im>Eeos%o_nMx* zb)|HKk%w5sC<19000mGNklpH<`3MM%c4yj!E+ZX@?9vC+XKDa$UH@Fa8w)~ zjh*m5SpAznkCog8=l<0+ZAt>O@QKGxf8bkB2<}$516%glCrI|UfAwkrJ>xlM-wzUTz-1@V&8_Wn-&q9N;3_ytI7)A>N7K%N zM#NKaC{jBMip0Jdu=s!Mft^@UDfb&-5&p5=!d5Q`u~74#3*RRJF8D<_V?qiJWbI76 zNK&yN87w4G=UbJ1t|8nc-Q4KvkN%_f|$ z$%4v0EPP?vaN{;{Z=Wj?z1zfDyaY~6fo&{M5QV;>iQD~n9vSjWVmZm_(3Vv2za6ZD zNhVpiDdCIckKA?60`9{<`hq_6BahU%9{!gwNv!rR|M!PCe<^Q^)K(S^QqW$+*Tx2I zfrFOWHi(Bpre@nvP%LX3+R34UZ-0G^7D~nozl)zDuWIasC-(3WWiSyJg|OHxRu4g~ z3T`6(oMd6rj2VZ!)RLH^3w{@V8!X5?K^7b7HUE!)kND?Ez8!%yq~i@d9<{URO9a<` z;tTSfl-$9U+Z(b2U4uRfVj6#M#7%|dNx*n_as;6Yik<&8!13voIvbJ8`I!)_9UqFM za7+aL|Jv`rrvJzgyw);MrJd1cO_^8P}vdy9M-CPmh-IHod6=Ri5-qe%9=6qzrDHu^3 z4YfQU#Et85*=G>3`#0%$F%)rCjzJqLVDe=@W{mn< z#9NsIe3DGWmbtSTUFH@d)BQ2mIy$^r&rS}Bu~MkO7Pgb!k>U1$6Z#KcB$AgKVc*7v zMY3qS*E5uk18_6X%5AZ9jcuDE``IeY)_ggDi~{F?w{KoY}ROW1iD2M%y#0_`7$}Mu01q3l8;734qNx`4R?)+3m3!LKnGml zPy1_PB_2e43U0>Lt;}svtBP2${bAYmk9|&?aSv<==NZ_Gx)qKWV!{0dSF@%OSN3Jm zcPF3ZxWFbwD0#sh)Xec*UPRE`HHcluzT+jbDZy3bn&YD2$ZLf5_*{*b(Li1h2Zg`( zcbGpM3z>4>s|J5|?eE?ya=<%2y4vtlX}w%@c(@3*sW;RNmG--#)|*!U(|u%a*fhq_ zKzFjq70>hQL_CT`Zjpn7e9eoF4EhnfL5)6L?TQWrHuf9m&bXb8(w%Y9Lc{iB<9d-A z#Aiu5aUSqJ;No;W?y)+Tu8{>c>)FtCWvMr>AlFbfdE=e2q z+5QCM5gYuRWGO1T1T(C1e2_{2}nC*$xKbBcHk zeB=)%h0nbKzQYMxh|5rq(BuU_cFf{f$YJfAcW?gnsj9zncTh zP+;qD9qm{}ELm2d-y9F}&3#;cid^z<%tdeV*rFy(qI^%MV8d?O$A=Bk7MUuz-aU_z ze-iS^ojL!In`$VQRMf7by~sb2L$mI{NikQuuk4I@f0Dp8XfNtcUPyzQWM5wr&nyAR z$GZ11U2lk+6EPL!!yV@*Z&5p_KmN_*-T68gPhKmr$2joy0EhiH^}7CG<9+?(y}{U8 z)BfI#MC~iqR6(szJKnO4>$%Ow8DO<70se?kdftWK4Nl$GsX;;D7WNx-9a-B^yY26S zi-4aZ?gnwtsMC!aZa(dYV$Pb24}xpBrh|)OIk|K_s7N7Nh21+c((7Q>A_b4m7ttw* z9nT*FE{qrVs2m5#6r9}01VPGu5OCoS)6`ghU=(%RiD>+m#g`Sqri%4UVNYOtQr{I# zHA0ao+dTaYk72yzXf9o`ELM&0Sl7aph^2ye86S14nEwzXAw&46;5j@lihL&@@Rl?>m(T}NH z;bcXw{af~h`+IVR^l&^-91*2rUMuEvtt(>|6~3%JCC0m-xi8B{*6=zG{~&^K1Kx@= zac4o6*Q7yQ?C@9c9JUuc#bMiuK5~v)9zufnDr_xc)7;xG+c<0|u?6Jm?_j+pr+{ zY&d~sNE-0vVcsl1A>X`g){Pwv9?awIyLW1gF}El3(`$)aR00aSo7znUA4{A1vZjfTP)h#>JmO@rYig1K~afE-c|11v?cBtEq4m%uT zQxZjyEsAQ6Ac%<|iK*tQH{^8hJ!da{zB^x0x|QeMbM{_)4c|5F;pBVOYSYJNg6$)O-;?#CaAp@Y;0 zx^M8uC&+Tz1ZIeM-l#iPv=Lj5odF(#X>kdRMeIi-H^5k(Ji+iHU-QxnkOW)gAv@eY zb!!r125~q4cA<*{j!$B)Mrxzx1^V^?6Cl)$^ zvx*wG5%bCX+n9e=>fH)%N&OzgV@O)TedXS~Z#54P_P=>|}4 z@aKV80aCjb_m#XpIwAK2ujll?!}SI--eB!xRi46QI|XMiCI7a4f!QF=4o~4o9T~QL zAOK7@=AR9GBBjQDw7{<%PXY5H*%7?m+^L4|8H4??aE?Qs7C9sGZO&WZ8XZiCcjG7Q z5pAyH1KCsgLoHgQlJ%YI(=VAoV^NKNQ?~ODy8kg?;alk4(p~e zVM*?<2=v)$_r+h+!+-Zb(0cibj$qt!)!|!zs?%Tofpq)6vTX`tZGhE4mSoL@oD=OK z>$Fj068V`tBWJ^(B%uP*fexab5gPO%9u{n*l>~Xj zs*GEW=Wpuvhu`Ax{~J0!drMbuy{)J3T&q2Ps2}cxqw2(X*ME-6BC!6~Tr1nQ2F;(#7MK%tNOl4~_|7a=eRX8=zF6877 z%R`5NCNd=dKxZCmJUT!*;HvG!!^S0y9bBstKVYpI1+fuKMZqKzCGG<(21yxAJo(Ba z-VT0SfAnAcuDpoQB7Nzf{<2>CN52GCh2EvcBxRXJzz2GSb+D26)4bb!Ms{l?mo$vY zgG+U;*q=+ZS4hEkq|{hIJ3)QTHc3HYDTr);V}cAX&M|lvA#j>J#NeKyiw!LaPmH>~ zfqCvw9J-)CnGj?>dB*w34aL$G84@drfRx!&H(&p%Zr^!RuYB$&luw?hz@(J-biz;G zY5O;`eR-^;G=9G48WeQD4cx&0bbTu)ruB$~5V|QFK8X(kdSj(Q-+=dQ!-+g*=MQc- zHeMp>c5Fy?yqwuFF)m=g=S9mWKlc&+=D+_F`cMC}&+0$_&p)ky??3#!KK7;8)gE1{ zUp`PcUcn&Rf{u$CZ^Y47*#f*5yH8b^AG-gvt^&Vw44|994Y)ORZOMZ6q}9LW4t>z? zb_EakJbG}8A+xYL)?hg{(aH@!;fp^KAQ;1sqDvE-iARV3Q5!E0#&)DVzL5+wZANvxMf@q5#8iki(*>u@Rba24CA1yma%oIN0>0 zk)Gfw#`pL(>`AGm!tx|douP@~o?4J>VzW2sy5hsQfj)az;{F0y1z4XriZ*Yh?jKt7e@uO@kM*y!f3o@aT-`@C@6@b3nJ8 zEpnUXZ)~JCHg26wO)-Hbx;HMzN&MO`000mGNklkxEQjaZ@08e-jBQ}o@P+uS9KftB$Z&uh`$BD*o4 z1iBXWBiMAB7vL+2R8hB=h zk82^m_kBQXY$8GoQHLg&mjfLFzohk}PmWV`@4VEooFpFB_ip6cA?|&k=EY|a^I{z^ zd54sYjSPvJ62wPi6BE>$2rxqDm5tAlcsX$xI2hM2sh2E7S2lnvdE&N2?($?&phL%J z%affFEX}KP;9$OD;cC9qznGZh#azt#-dB?r4$^I-UF|DUYKyQrwc|xV??O+mlsvv% zQjyoslR3C%TR&?uUZ|$(lCX(Tk%Av^8*Cf~_zvzH2L`+I(2lx?wa5x}o~4rQa9wbF zGzqtQGCHuOnk2D$>FltQ0?E|h0H@Z+h9GOdLJ3BpuidO_+j zd^hZ|-HGjqZ1X^+sS~hjK}XB8O^y2lhtw;F&X&D!fNt6kZEg=jC;C_x$Z~NJx}Zdc zn(gL0(b>F=dE$G22XZaD!*9iR#tAhQAqhP3h5cl{ zz7}}zIkXOJY{=Wew=r%Y&+)Thzp<8Wf<}A-I$y@XF|b^Q95a@=;1`p2bPF(8iKU}A zlN=b03N>_}`T~w+V*b6);pqd7PL4EUAka6F?Kt!0+LK^;KL!chm-7*QW8PD%z%MSz zE9!MHHu+9!i?Aoa$!m)`9Oe5U-yM@;Y(f_uhYSE@UJTbQ#@GkJcYr1CQJ{Y~cc7p3 zf&1mrBIia&-Wk{9C#ktL!RKlFQ592_@b9#(ULt{`r=@~lx-KxTxds&S#fN@b2DdT6 zqTOv=w$(8e@D1ibIVk*KT4W^Sd_{yJQ-Ph+cl?puTaRq?VWaEdpziu_vu-}PqaY-@ zm?lzcrpLxfk1V%sUL$ZwBY0>aw08wHmOF_1Ft>}FKu&t@HHh%uz5YNCKmADU6AvVO3rhw5@j9ryM}x+3=UQz! zGQX)~-s=F~9wY3Fc~eU3fbSg}M3Dj-RG2@$Z?@0$@E-nWEm=2;IVHS?H^!#7?;@16 zVT>xViDwBTTGPe>LxG8HN%)o5-?VEcQ7U@V#2p!lU4>t5({NEr@wtzIK-OH>H25OZ z*hh0W`z!W0<`+AP;^KqMRZ0fKQ^7a!7GR+a2|luXw{v++qJw>I{+_oz6f5RX|52#BC|oeXn|j+eSx;~l3>MuiCr5$ zSuXJfwm14KH9v_B$#bB$GUT~-BSw}7i#FG4@|^d>_K*XEHD4pXlIPRYTQ&UJu{*IX(N*NS?Kts5adW;m zsY8SM3jaYKB#I}>1U~oruE94V6tw%^I2Qbc4ZiPSmRylAbN&RepTG*H!I$@R!Oe^_ zbjY^I!U9}GjSzgtki?o~$~7@EB?eg^)~|uy5vd5bkw;dJwi%PALEns~>66~2))jr> z>dH)5#T+}3R|HLi&jsfKk6wMKJ+fBU5%Sl%K+I3hv0kr5aKGOxmL2Wbh@3!1v;@vl z1iX>qXRBrYg-)m^2*mLF?+8ttASxyt9vNG-dA#I&iHYCFK|Y7s=o&9$EYMMbJaA8P zsi<8_bn(@i@{BzOIOXF@7}1Vy{ql@Cawv%hVMr{E=M9xk3Sz>T@*p{Y&?y-s$1U`S z7q>b*yPNv87CP{wbd+w7skiS!-{D2Tw-3^L3O!SZS13C2&6&OqV0nuzw;?@` z)H@OSE^Cj!ezxj;V)Xf)bbC{}yV`WT9_skdd6v*S*L>jbcxcR1iF{a~XHiav25b8Q zn~7nT8g`ZE0OSR76F)WPt2B1hFWC{umzm?2Al_}KF*ODgANuC`oN)n%>5JAJ;>skJ zj6XEy71-#ph|*wZAj zdLBflaNJ_Y?8AV-)^wh>kUs@4&pD2-+J;Qmda6O^ziB%1kuHAapXuz^ep7e6wD9>| z*PZVE@OQQT1&9CRh1zaN@b(owlwe{Ph`gK6hzk2ExFPW^Gms%3#UDkVl7|wXQUFJp zj@T!F;n#GZUp4O&8IiOV z7+VI`N^uPm*9w-EfxrW8+@yigyr&(`icA>tQxXWyn^NGTG4ChvN(}-hTT=vdB*!4R z6Gs&jth`8wdp<$iph#M@P_l3kBkq6DO@aZk$K5SBT}fAO=bd0kN@n?=tuwlSG4=lpOpF|0PB2rmBiuTtp-BoTNvv`B28VaAlD%19n_^{ zTuN=PY8M*uK-xXjC<c}AvI(bm%W=!k=#Qwm~1PWXwU%n z!hYiu=-}}PlJ!cSi+Go$j@wTvHQS8p)v)49%vm5&Y>{%$3Uh-!G6v0zt zQ(-6F=sP%AJ)rMV;=pt;F^m(361<=(lEa0@zArX%V+#d74rIRgjQ7W0`1O4^wu9dSZ2 z-I$~*7nPbuHDV{h9Ocn>5cdN)!DLXxo@m>cj5cC6vhmn7@rjhcUjttgH-fHUVIL28 zNc8h;8?F0hJ<;8~3SI&i^RXjsvA zkIZ|3mGyBvxX+j9S4c%1ZO|iL;*WtY13!tt$X$~s;lZX%4XmcE5|8{jNpi%H&UEL_qx11}kdqFD` zSP|pHc@|*C&v5?Wr-6hs_;{h%!x)10I`MyMW;c!KSgg&T8Ol=A# z@ocH^ICOX1Onn&-6wsy$ncj2_d^>KAn)%G8iZr;lpPD?VFWXCdPtT~sopA%c$l`AP z7Mhf@Kca^=;%UQ1G4}ZUfH_Tp{tGd%e{_a!WBwCvp2Q2@orOXO9EsD2P-{tyZrado zfNN(_n_l?R*LRC{=V!3)@L3i3bEP&~-(Xy1Q(@}>w+M8hUNkV@@$xIcYw>TYTel%C z=X(V@7In{<1^!#va0U6>Tr2oqsX@*il#)NmBFwtl-y(jBS}>3?`q zVGsG6;9B^|zMl2s>}1D*g7Lv4uZn0^AqkR=AXoxLh#Jq;&Ys5o@t0Hqgz#`J$4>tYw4s3wD8ZdSg!99G@|FKybWXwcTv$ zY|yiX))%W98*mmS@^d>&sL;!Bhcsga8w(jYKm)s{Pl%P{Egf#8t#ObjXa?;k@b+&? zH4g4Jblg4c>hKjYeqftN7g0OOye- zQG0AAEVN>8+ev|4;^V&!U@0qcZQeWUjE>eVnslPwJd=B4apc8L-lw-de75~!%sKiT z@re(;JM@9QEA6|E@%XE#3-))ogfmouHXd`bLv}4`81ksLunICp8 z=r2B&b3&hjEIrxzzh3&f=&W6qg1Ykz6l zgUYT^&huh^EaSi&H;6Aejzk86kKj?n%D4s}_>`3<)*Lj(&psA{2Q|)lHmD1^>k10N za1Eo~&;6`Vn;my*sRF0YoZ^})Ch>y4@Q?W3dS0PLbqc64Cd5E zY>ygKr}ig!Nif>M?M+1wg|0{kyvL>)Bvpagd*`*UQR`@pR%0|2l z=ug*2VBB;5fxO>pt+oo);QB4l4uOjlseT#Kk%=9%(v%xR-0v%Jb2@kz<{# z+wL+!lQ_qowv-m;0{_AtwLXsPpYAf+_OEwWRu|UTC%Y&Q1KDOUuQ4?BCH@Z|JX4(xO8ANW z`QiGR4(~r@ZFr-VL)8;85r`||qtLbNB!vRLMLY|`hHaux#8;6|=3mYkf_os>@tiHt zxipX;rlW7e_aF94^ufoxWZv*A#!g#ZJ2F(n;&9#}Q`r~+9*i+fEN6UmZRlIkl;@YK z4Vt!-j2rn|#Ej)zR%qPk5915J3H=-oC-2jnrvF#wtRs6g;g8N7e`1Y%{r;UCw|CD^ zdhzB_C-k{GhW`5P(qDd1`U}>W-=poFk$M+-?{Csmg+4&1AA;AnSLti4VgBNSq3>U% z-g_Q;#@u`NLb`hI1m-pQpRSJD(97|(QMVfLvf*pTkIgUau`Q7)Mac0`;JI3V5i7(* zf#L8z1)3V6APy8@#+;yF2)-ED=U5!iuVoCT|Bx5hdw-9@@L$P=BkLja5obYzx+vnd zA~nb(kv~Ol74{nEqP8sO7fR}AL}>FGh3^7`;dKG_4DJhDhH|DPVW|;c^-Q0 z*M3Z&_|?y-oDAr-$A)ui$?j76#((p-diO7Wpct!)n0H+|QMcfrjG@gsW8X028t^Cy z!v`_CfmNaV>UETwlKqqarp&-+;n)JVsVf*dp5+gHf|lim>f+-%|J8r4{`0>qOp{n& z#M5_m^Si&L@wZ>&@tPV%u8vLPv}zzP&>^hLN_&)wMcCj%4f+on{)My*$+?caVjM#> zbCq$0`coG-!neqw`|*t7has}-rJ*^;@Wo&i^{y0hJQO~X?Sr?tuM)Tn1#;&ch>g)g zao-{9F8F0jO`pWF+{-};4~j;%xFz_*Oi(mgKtv$WOlU@eBDvu?xG`y@8QuriY-6ki zC;a`K4ZaYXziER2+Z@zGa>2}ud!F()%sc#0-m;Rw6nX?o2aW-0#dfW_eoLpfzNPoS z{l|Lxy}#1ki|2a(?Q6X_q+a>b7xd|0`wg9a`lqDbtE$4zuqxMEMwA!7SExY8(zV?7RQoDO*=^*eZXs$cesFu=|N@3KB4w z1R_(>?w>suC=#Vo*_x6hO5~v?&3IB$5Ew}?(=eSEBuqtH>stNo$s1bx9JlJP9UqDw(6d1Jj^-)OtNk!piKR4w@)3hddSNe=LK4=>fZ z8Zw2+k&H)2v4{!i8K58*5}(Xx{G%q_w|6ygYs6=IQDr?~VB3?iks%oizB>!f2x5v! zXag4~UYIBSK^!+?EL&5+--#Rz5xsQy>u>ADcfX^@pZ=`cM?az(fto=lKbE0T1lNv2 z>?HI(@-iFkT;^-PV}sxwEtS4(Cs#4C$_Z(Ec{cY1!vuq=hood|<4WRVK!3aeQ+!a7 z^2?NG?_BGRw}#W&1`qsC{0qCCFNq!fg2UTn z9BswI#e8N#LSNfzx}Yz}p+aup-$IWanI<6ha`Oz;pN$1JiYcJOi^OceNU zBmRqV$pi;y%GOZ{O`>;Wc%ZLX6nL`}V1`O^p`Tb@o~u|CY%Bmb7Js(g_J(!G2G@ky zhV1(>FobE~=Sj!CkmXzpCWgUedwRj509!mZur)lEi8;VGBV}A0J`}z*9>Kz2OvFJg zOlYHp8amI3j7iTg0R|Im(!TiLQ5;x_J)ML4jy;WW&;~jZ>PmF5F1BT0 z$9jFIEwXmZ+{f{ zsxS-}WDi+~%$SS&fNwrHQ)3ewT#8U2KhYVJ+$;O25#Jg?y*x6G!xdzTx+eH2q(C2x zm#h!ADrkgHBsk&oNS?*V-{g?-3b2)h&}JFNL|Y+m(H!sg-l!9sgzmCT@!6#k*$Ey| zQc-iF@y+6^z$-M=LUR3R#F)@QEtU8)!N+y0u_-KMJMO}A%&Rpe^P7Z1VhDD|tF=+l_B6ua6)4!DkN0PrVr z4Onmp)j0SPgb5zWy}yMo1I!&l0q@z4ec77&{A=}oy~ZME{K=LVQELd zXdz!K^hr&-`Cx^%kQ3_ASbrcJ?VffM%d>02RW7dkH=&5kK zFOLhj@)Ohp2Ez-dbMPU?MQ4150^UJB7WwG5_GC}q_lbw=TR!Sq9`Ce)m!Nfi272_J zz#TnOTVE{R4P5$uDeJdf)TsfN_0((2*CB>(#B4;!5-nc~0@%l8b1r*_OoQ zJmhEIlx@mTP;(;q?&3aGJ}97`PFt||Lu?u`)zDKoAYP6w#`%{hf?6+l&G`v@8gtad z5JgYV*wax!l6j;tk9cgOCKWLq4Y}|P3AX5+pb4$<32=11A6Ex3IK8<~4dvLDiSjbR#9K4eGtGu2W zl8D2weZ5QAAoPhQ&Gi#=YlT!VWzj0rrq>tfB5auJ17f1Eea3S(a2QJFY1@$aV)08P z6kDm=D`SEjnf%ddU_+zcL=SI+bjDt0&t+T-;hos%_A&j*_mTO0PfhUsphkA;USijR zO%2>S_9Qhb;C=CEFSmE(4Qg~GwgfR?nef}A<6_$*)LetAl(a9-JL0X;Zj3iDJK?h< zF>xZMUH1cB(z2l0XkVEqH|By)?cGtsPmEbvD=fV5KYK#GfVXqvoW2LtsE1q^x#^s@ zm=|ZIg?i?(SF9_Jj60!kwb1ob>K48dAJ>8g9*tTKJ9&SU=$bv%@WGya!c@9o~IMH*deK7eDxcZr^-MI&pZ}H;H|+W313QkRMqW{8={y2mCRAIV*SxR=T+=J-Z8i`~9ImdB60ByjcI!>(W;_ zcKI5i^A~s0S6MUs5p93?-lji&d(-!CQ}11cUc6Um&{QLthxlf#y0VUFfdntXsI|@Z7-PaXj@VHUpi7zJh4dr?k!gZy}0Xf7+8hdl(yR3~;rN!}ySs z(`Uqvv4K>R*F2|#k>>>BFTlzD3JG}bam(aBB%qtsDAzb^bhnO{~tfEU;g!v=;E>Ti7&pYFaF%?x_k3Z zfBb*{3w{3&zA4Ywt~Y~P;@q2j9k09q5Lf{$YL*&ui?zo_T`-pRLkD!{D9 zkaaWPz<KN(!{*C4g8gawky_gx(PXt5ATso6>%TpZG-c9|hS;KljYd z5&j-vy~#e5Y0?6qV{9NN@VWa2bvDQW8T)LCFr5_sCPw6M^OHY?9w^Lhz%R{!du5wZ zIfZ#(!OT}Q3aEDukusQyP{DNANSGEzxG?!!SeEI2X=8#x6iqehH=H#E;s6)c0e^#4 zOfvJC$#e3DH$MV1#tk82>Ll(gGvMz@xBT~YwkuKXbb8}kdisq&()AC%&Ed%lJ$>s+ z&)BTJ`jem5XTJPTbp8{+DD7TDDK_QE*;uSk0q8JzYi7NQ$wrZKG8Og?5?4E8(o};& zbapA7y`tJb;rp?wo#Wz#^-C(2J@$GmMJqb=T_OMlro^s_wuB}UUep~G)+BW6kWwnX zR|;HVqasx3I9T)+fsho0;mt{zjz8Sb?7LBbv>*@vhzR!>DC8gz{Y9JGCyurgxk044 z-SUikko+47R0L3C(rnDYQHF=SO5PH^zE;`p;_;Y9dFTt*c18;Cd0zU z!Q=ot`B^k1vLix+394S&(|XE2D|FayhyxdR?6lmlujw32ZjQMi4vT^q_8T@#{!BcL zOFS1b7PgG0|<|(A~LL#F=BS(9iam|K{IF0OKTHge}3uZ2s%4sinl!Equ!=H*33+wIjk$QOJxWYbjmWaa~UOyAkB=q~Ur+5&rg zKWIM^L$Tj8E@Z5PPYO&O_nLm+u)usvgW9zXa*4%kvKftB6!@>O6$XqS+Q3F&sR)Uh zA@WGb8N{Zj5AtV4QM${x&==s6EO<7a2hYY(t!rGJB;wHbQmV|u7&DwNO+BFxXi-B0 z*#&+K(zsy}(wZW%3;z%NQ+!JUK1WeVHOQya^BZL*B0Bt}#tV@dckl^n@zk5K;#1^) zkz4+@Ea#ndDEt{a;)7gd4=5O_@PTz4#9UB+f-s*r%(^rbFXMgqw_fl)=Be;S!Nald z#b=@kJ5AGjZDCSE9YSboe z%*hxp+oDr&*iR$8r~lzI(8;!8K05Ezom0qNufVXS)~83g-*HvY3R?vp13Mi91N&EO z+_;+K4qXSn$sXFso#WN2VB>Eb2mW^)+3eGE<~eLK-+}&}jYlHSq17+D8XL8ZgGAdD zY@*lq4{E#6f^Ghr3C5^Hb9}l=QQE+@h+l8au~H(oSM<1h?ieer$k^t5C6)}E?p}Zo zIpumb(Blr>PUazLyDM-jd4rEiTCX>;ybpgVj(7LeQ_!m4)dw4OlVpAGN_!QT2E^1Eccw1m?nWc^PL3jYC7HH>hCJotT z9LSck3A;p076-baLOx|u#;DP^A@9hG2m8fsu8Yk+A_fZ^nsMeO%f#FDN}-6*34NR3 zM=WpPIORLeXkX#EhsPlHfLeQM>c-e5Lqh%ld&h;b^A*(AfgOv-z-yy_S33xQ7F;BnLgse0$#tio zDV%0}3mphB$uUGN9G+jmJreGK8o@U@1P4(lP7U2ut0X&5i9ZL=$WCPQ5}O|Scp%6I zxkb-x3e)qDtO*;neR*ZCeS)&xQQC=MJ6F^SkIw+A+T zI43dIZADIsTJHZ}Lb7ftY%A6`qVC&&1H6iwtPJu))Pf=7jaU`)NxAM*CtSbB%(amB zKF+xT??UGWf9qY$R|A`bQ?oaDe%M&&jqOMsKIr}vs%vU2YY9=i$L*>Bv^gHk2XzTl zB@(KTJIEzbzon4SyVwU^eg6Yp{q1|&-hLq;&dUeXcXyKG0*p*5`@_0`Nw@(!94o_h zocS;Cr6`rI?Y33?QRJM!$9)k^_IL1H&eNNl885;5M7gIXY|Ok({u@YoiL3dA@4;k{ zvw;k+L2|z+&(Ad0rVSgTEz=z9QslIP$K+~Y26p8=Jlu_AG&(3m8}p48iX-}9s3I9e zycM=M?ji_Kd^v2tv3EPqBC*Tg0Uz+5_U^ibO=a1{OF(11EN}4gVSuNQTlg12a(vy> zuNv%atnUU*Al%gXs-=Bjf=-tX$2?8^?X^6j)Oc5 z4!`Air3bLPQ;Su z+D>lx5@T0l+4Or}?w4bmyer1QUJErUB6LFDiCi9BJK6?zZ^XT299bW@&-@xS_&|;D zTp8g1VNG7)t2X4d{7Me^-$Zw4JbaaygJ+@JIWGdvnGX}Y0Ion$zhfO*_R<69*>jY8 zMVo%~!O-VlEq(sc(5D`4I`{wIjri-tT;Y>5UPv_VJ8?5>J})@3HJykT%9#A=_^|MQ z5o5cHy{yAZ?w!1+!QhQOiinLQFQP3P)DE@I+5_Lg+cp*PG|1s#E)rwrGjS6=iKUYq zYtw(=IHuiw#-7)V!2-sz%k5xXj`zt6u#_6atB_-V`rA5tty|z-$aPyWX2XvVYs#cv zc+L!RJZyWCN2~NoL)BpQ#ob+$GzVUA9`_EGE(0@%I?^<;A&c+Lv zjaVxko*lKZULNSNdG8M98};Nw{wDH+t6U?nzfoT{;ufVei0NPrKsee=usA2Wu!}fw ze=%ncXzefAWPFeh_7e7qI_ww$a=EXFkBI^Ng`6U{g5t9BePI1=|H)Y4XF@~*!@(Hw z@f{ruOOA^sE2; z3;O%NwAVvI`IQH$FMs9J`g_0hy59cIQ~l|``eVKGC*LD{Ly@7mRv{m})-M8OkWVWZ z1$sqDgLpYnldO+um~p6}o{EcLrtL%>p-HyQ|GW>8rvU39#>8H{e8#do)b6LhtOvjO zzt#HDkLg65EW4rgtADDy-~Vmt<{ibZ;BiucjjBL|A7V}9taHgS23QSr65ZZU-p6se zi+T7+GfMN+TH{Z~qeD>_tPf8r`_wn!SojZ#8gu>|iWstwBN7U19DGeV+`~iQh1Dt? zR~S1O@3z|Df*i{j)O9i5GL=o%cbXDS2|M~a?I?!=+@NqNtSrxA&`czZ7_{@9Zs#&X zz7#H$01_TEX`yomv`Q4EErRhSMIe$}@d^5pu|iQEF|?GeaV0hl$<>@&SzErN@dt*A zF-2Q=eBhkB_cfk=PtU*g=X(0>uStjJx_bXc@4Y+p>K9+vPyG6C=*iFi1I43HU>l1Y z#tC3${_unq?V&(+AR?Dkw#F5@*RRwsFO=sG)n0jB{S!Z`eDa$75}-V*0cx^f3kr3k zcs2@mYdgkwbx%CGU=KWdzn9UvM1f7{GE)kEn7|8s3oQH_szN>t5U1c^THgTK8yp#T6707*naRMvpTx>AILF_s2C&sqhDVRXqwo)uyjB?kNmK`C-l*eRG8AD?rKEbnTGTWq0ied!xT*d*|6pcRG zokUo#VB>Xq>uo*z*4Opm6Q9!lM?X1Zb?Vg;u0xR_kBbO7uFOZYCC`ao5!lRq+jqte zbb<{1vsq^@^b$%Ycn3a<2)O_T?ZqOdQ`|kt*{&p3BBUt?zudmK)8G8nd-}cK|AGGX zzy2Hj*&qLq0|<1Il&EK(J0=s$ZfxiVg=2GJt)Zz~hWwxKRkGmoHx079;TLValpP9U zGn$!7E>tc~$ws@F+^l0-FITfD2(Xd%S&(cK!v=9xKYk zE%*i)*kAsR2nBYoFRnH10yFC{e=#V4NurM+5t_z0v@O^ z{gobry!QA~L8A}66M50#gYW5*`2?7x{Yadxyg1psm;{$Z_cU+rBSYb_evT03LXMS2 zTQMOTlK|fZn>=n1DKz%K+SXdCvzXuc5JFNQXSv*| z?-p6#wqMlfPuh2E>h~-(mPZ%baiHGdVVVK&&AR$!CiKdLQOKr7hY#3=uSO0kq}H@B z{_GUk;fAIercM< z2P}#SIg&UD>XDK-mE^j>B^X+y&{4fBu&-f5U_)}R3|xyX=w|(GQ0%CG$O-y9UpRl_ z;#`6(jJM|<>=XTA8MYT8$!1U72YqQ-ZO52Yz?){pS(C`c!Gdq#*FgX9_>e^WVgmg~ ziNltad=6~eJvs-+z1qusFb;uD$+$2k9t0jDpGE!`F=5-HH>LfHPb@o~>n#!FpVaI} zPnGBnHL#faKocP_DcZSuD46Tax5%qO9B)@Qz_coDuZamd-zT!n!#XBDOybpgH+Xhv z8_(IAjC&Gq-Ot!HbwGy4PG2sItb4Og*lBu;G0(DJz}9uq^6nRlrKFBDc%nG^h6eLi zV8+yo!RDRh;b1{2o<%Jtq_w^{XyYod_FQM5`WnQf{U7KUkrHEK5u2+`enHUop*@T3 zGyji+;p@0;VAakN`6(aP^$YyX!Z(MsFuy1M-k8UoOGgd@f_m)BuIunv7~9#H?>SuP zJ+*`X)P+s9eUQ)}IKVq{AbF%l4X|h}wd_LHFRc^1fE@?87n4V5e-XOi(6_Mr$mUL2 z&`LtJMr~S{e+yfk&O64X{g7f4Us@i9e4sAJ8??bN(}|lo279ej!YjDuQVdWJ&o*r= z+INprjd4CW-H^e)Q6Af{Bf(RsVx7&aPur!mU%<=l0`Jqy!|TqNg)1^-S%Hq0ZN3{D zx`hJ~r}%6S$-iaaC_8r?K;Qa+d@n8FqH}=t;RjBRDi<{eO>PyTMb-ybR=@sM7WfIRkp!8 z?eRlL$A%XnB+($>1vu)#TE{W~_V7~pS#rRjF~+y4{7Y^WDfLT^kQbNkDt zyJyAvWz|Z}IB@VU^htOpylqEEkC5bhj}=T4KMOkxeGVLmA9y)q%$s!uC*j**%z|v& z7Yen@t^kv;U%}J4)BH`FT2sI;%on`{5V@mGe28n&7Vw_m)GfKMNr9e0o=?6R(|JK& zh41l^SPKZ6qz(x=<{#+dXOFeB*Qa+nap*2+{9>+ClRLGl;j6RDMGs%y>&dH4kBI%< zPRb@3-;O@)ZT0@!8)u!R=DLLbfnTks>#KPNycD4T*Qo>ggrw64tas+2=AxqhhwUOp z0{M|pkjv@$Ia36O1m8gRtUtZac;XLjp7+_nCYUtlFdPYYsS}%RjtO}TOIJBgk~vr? z(k}Ok7E1JvmP+t%`<((l!hqoyFU&~-7mtmFzTSjuz#f0Io?L_*f<I!8WjdG@Hm&phJ2*yc_Kip){_J1Bm8W);6|1-G)w@G>a6H$iu<9 zN7y@k;Wp^y3!Y&;0L^k{Y{ApImDghK$M1nJ1kae}ZQPIuun!%m0Y~RCbz%qB z7hdO4+ZL`p{CDWLV=nTGX4l;Zub%0_lSLPg7I}WUeAM*dVe0HGbV1#HOuc#)m_GSf z`q_^){rV@n{@EuM{cnDJum9DL?esIB+Uqg%;TiJIy*9|yIqQ=J-52Ji1^Xu+A=EAO zOhro`2KP;e53Y2&yJcQKY2Y8+KzkS9C?dIUY7ftO4t4w1IYItR|5B$CPLN3<$v6In zM*cWHAc!WqONmaw-Mok^Ip>m2;w(Id@sSLGMvPSi1G%g(0hE?EbIo=z4*UiE9Fx$Q z7h@(b+ND&u&7>jne3Q-=CB91Va_$!SDZe?$Rdu-Lx=}RfID2utHvAS|K%l$$6!qLP zMO<`Vp5SzF+vGe7Y;uhdvV#0@{3dk4#ZdSrvYV1v7DVnBwncb=<|m*HY#AJUdyg38 z&TQLt`jhK_rlr(LnF`l{Xj1En{h6#oK<}LK3+YB2)R8v`%u~XavTcx?Zm{n6(3QGz zq81E%(Tp>(8{j*Lm>#U`B&sN>CK7986rl-$KZ!rb@ z^)u-kZx4NggZ{5S4}J3k>H9aS_fAb8uwHq=;s3gZ?pO;xd;3n;?;W(VzQ-ca0d?Qw zt7c!>|Cws(-Vy{7HEp}bXUs1fFEj*>fv&<2v0EgClDZ$%t#Hh`4QvH{u^zE)HS3x1 z;gGN|S_(EYu7&;dXtslAW9~z;5B1 zf}AF0*P|c(sD9#CKdR6D%maPl7ar+TKl^cAeCicFeiAb@y(T+jjKk(n|I6>_Z~paH z<$qq*zApIte5eQp&*|nJDJg`E(zK_$foHdI#nKcI1v!@1zok6Z`N$vzG>trQ-D~tU zVsLPts3)J)#h3q?9{k2{>ad*a#M*h;?sWVge@~}B{auMOWY6{CIa#F|oM-WkDE>r# zNs%djkWp&ZgEk12;43SEZ09*&s4}#%H{E=$<%au#lSlBJ;F~QKDL$pJok53xxG!2G zLjjEx@S_DD(VBv>vuPSB{LdNyI_pFR4kamD((k?%?zZla#h;c{3}uci%CO$Qt(t8 z{1Ht1AfUrWL4SYWRPZUDty2MF&i>R!QfD4jx9@6u`>%ENov-SHZ~nP-{ggLx*Lv@* zO^-kGP+#~*zp9V?;y+aT=#L>`uW^U0snbd^T@?UkzQg(fTEsRNAmjQ*T5q*Je*w^` z{`iUV(Z|(a|E%KiCp79@>$cFhsJ4{U35Gqk5=0$)*lilivy76$~AZVUx%w|73!H~-b|=2 z`WHW{pZkx0UArIom^KzALVjB2T3|@Arbvw&3N3FeH}gi9mBqYL%8N6~xWCV(LaNw39BSt#^gKT znSG~hebNg)<`s-JMuTTMRmA6vU9?=^c~{SQ!Svv@*LCq@pHrdZpkMG1ejCJ2sYwQ# zKZfPw*F=7&CtYY#;}6HYUR3(<_XZPF@6~YY~T`RO0_(|JqIjZY=g_RB>O} zQs^!0Xe@j&U6!?RI5WU4hz%P#92dy9J%Nvl*ctXOM$BjIyQjw%Vl2<_uY_G(E|?0~ z++X2*9w~-mZ$T4^Xvi%oOEZSa^_9sn@TJmtt;EC;W7cVm?>h)3pQi! zg~-a{Em%0Z#uppSgpcE6L(WG0thcK=FQ>{_A?HL4)>v8mobct45}UEnak{a{Iuf6Q zBtG$0dc%$tg^tAX!X(|O83UebWd;RX%^ z{@y?Yz8cf_MVN328TcrjE3M-PVkl{&c5m0WO2>y~vf$kCvFl5+kdk)Vz%=k>QU`~9 z?EK7S9-;^x5P-2Lz>lB{_y(aeo>8wQ>g|xQCH=PIOh`Q|7e+$x*=tjNjB zUvjQulVd+0ke6T;OIHwkwcM8U#LHV4?GG#%irKV@QZmSx#w7v$Krd-wMm0omSCS?FX#ykxz+^nTa2}z1a`*3 zybvbWSs}CVhjT+Q0|MKI3M{O5yF?eT9AF@otfTcB)(uN|-MH z*80k!F(D!2Xn8C83Yuj8Nn{W3TG4wY?gufw+Rw-jXllbo)N<@>)DBF9kJKN42ma|C z0=R9AVuV!4Kf*u2t-)W!*g0C;RfqVX^DT zYWs{Kyd8rp^d9T`)AM!mFKjzqGZNkvQlW(Rp_c87cVg5%DRo zn|+DXP*27(B9tK|yjSo}^k1;^d`~ZQoBfVFSQC>a`{!g^kzrq|L_GpaNh@v1m>u>M zHu~GY!M8!*;Ol;4W_u#Q0YC2i5`gdF+(6`sL;ZdxF%4^FoZ~tXK89Gs3=Q{YI{Z=TmqO=8JnEi8$(`?N_D-b6yZz1#J;WNnUtEU(At?F`-{1%C^+3 zYs?D+ABnsW@(W`JIauat@G=zmW_^Ct37$a=7wfA*ZtjSaS2+BC!iKuR_jHAGkbQS8 zt=M&o&9_&Z8f%ynF?^(+z)ivPpmr2Br7AR-w~L?&Hu2VP^KTTgM(LhMaCm!iuDWJ@ zMU9;{*TDOrGoQIlF5*e>;tn6J5;2Nkt&z`N`R>&CZj^FIn)UZ+Q3Zb*FJ%O~JnXopnz!ucHd z*y}jdl+-k64{G$p26<{7;*jup?Dot9n*#kBYbar!=>(6B^}O&;fpK^|cnxA?Fn<+x zm+fNz6AL_e_Lu_e61?pP4!|b1(2LmdFC$py${IwBGhYo9)o-9-$_MUDP>U)(T16?)bNKlsq1+2`lziap7WO@&^=6_HVnm7W$~ObLP0f&xtM%AEqwPrOVv( zTHo~ZuQ&Yz`hS|b_T#bXb8YDJUHX~V7d^VXw+qzn=c^YRx=K6NLkDo#(DCfy4h&N=6`CK%qlkI6 zredEV_{epE`Zm}*ZtSTC&w&jltE(H$SY^_2u8MIIWAS6Ol#o}xN0xn*4WpyWv_Zf7 z20DoQ0Ly}Q5SK-qg!eVBP1sY!k98Kd6nPS`E+*6BC8G5yYI#xPH1o=P0N1=tgWR4m zjeZKLuzfg&z-*9DlMnki_X*z>@)hWB`Nk9djaRTA6g;d~F{r>YJ&%yL!}>!TFZmaI zH1!P?@?CFb`?y^13mueAvEK_PXfThf4 zBMv=#XXu?Dta^Ie^e%`0@4Q`l{v!3k`_c!TFW$0-^#9xF#Sag9@y4A7b66th?&*p3 z=xOHZ${x3jANiQ%jB{nB_HEvS*&bdVDiREc{Njte8=O&EZ_Lxc7Xy3CxPh5<4A(as zTLpey<+TkwjI;MsMQs_#bOMFPfsM#jwctGHAb$^RpMHe4oESk|I3~c*@+>!?59WyN z`JFa=J>apiR**k+Pj4E+O(*ut2Xa=#=|caGu}LlFy__f?B3$*oZ{O&*{~uq~yZ_^N z35`%VPkPBQXn8csHF6Lyp8t^`V>Zx#L${=EU?#CbT!V8FiyQGVbr2ZhYu^uOt!qU{ z(X?@1cRHocfASaf=%4;`=?h=d6>HICE!z$+bo<}_w$`uxv4ZpDL?0GZvd_dP5+2yJ z9g*p0?3!|U4*WUDIsdKYqZg!-E|DDIAt55DjPqWr#_cV^b&EQy!hiR2 zy;0pfmkw9z89IORSg(BMQ~KmD{(>HU_DfQ~WYnVApR2tDdSQXkC}hH*&Z4H1tkD3T z1-KosobQyoMarhY)@*#YRQ6Qx9l>`3<7OXECTsX#!#q8Mq?BE3oWm_u6+24 zlzXXl_%OLZ6A_9ClPOv#xtxWYC$U-Vkps_U6EP@?_RZuUA%8dP?Sh`EA_0WM^1P|8 zuJrBy&+q7mUwuOho02D=Jl8M(Ctue2XFjQcjj}zwJqwam=owUpVz<2ULS^Gnwewci z*qm6XI|nvN31(*>d942Aq2lo+-N-~!9pm(GBdEreUh?a@=lJQ#ztddvA68^ z3fkRQEYPDb3iM%+e0g%s-Cl#FbM2)OKK$8|KlmXQBe{o1Adk>c@EE()xO$`7douhmO^yBUZzUV;w2p=vS zxGiVrnz$e%(50WBO+7-XMqH---WJ(*-#2_?{jxRUZb%9Rae=bv$5Vrg9a-Fyzq3zL zIzOpWL0%Mb9IdO_KlD|GJi%22c6O;JymHLkqcOw2Ks;|;p^d%rGY(zJP;F!$If=f zglQubY+&4<8A|xgx{16bhlHZH?_W(Gm8lBs*)M9)Nu}g|BX?s-nVTZFs6eM)D)phfCs8ECZ~UW;BMR%p(J)XG1S=fCoh#MI|D%pTw`hSA~%*)vFRu< zRZBH;HX>*{5^o0yOoZJLjI%txh0LIKc|%dexD{1~?^h0(mtya`>b`hmHA^6j8&zMobBug6n?VOB?1;AoT4eHWyV41 z7vLzAiU^C6b&+japu@L?zbsqsUUk2bf4G~ zH;>3r;&{h|j1`yo1Ti^FOW;@Pne~c}Q1_wZJwHE4(UL2aj0y6k>}N?0jF(ra+w^Bo zwaW#COA%5-r-a|&&@Y&$8XIPMn0kxD=uOF(?%y^%PYFMnHkel#sUReFkNrI zb<_(E!%rN>bZVQ|4?FmuUxY5W&K{)9&(}boNU77FJ83XxhpYuVf;9^zR;`CxlOjWn zw#}QFl5!u4U@V8Joiz%#+Q3ICE!Ia;qa9L3a(~eT3tBbD4eF0E=^Tjck!P75o(&=& zay0J6=fpM@2Ai`Tc3GBv1eK1AqgM-u_Sw0^r|$PSg@pKf zz3AIariib8%dAU+*mbolMSuhYN4chJA!C+9??&;B)jcN~=Y z*_ZiE4DnaPF1O8Z;w88`z6yBnz`XC!2i!Wm+ad*6He~Ja#hw^Q=nMO;U*|bq+AioF zyS{8AK`H-czwiA||9GAwHRorj4I_l_t9^;sk4xBCkm z9WZ&Zpj$}B51zwy8@z>nxnSs!#VH@MKHM$Pg@W9ke8J4VW~$NT#hhe2jfL~lHY5b+ z#A$Vl!I;w=83)j zx6C)!{}2*O$)Vu#kb1+=Xesf-t^BbJWyrXRIUt#@i&3_zai0rw4OqzIsEvW%BG#%3 z@#slyPv(e#MZCj84KHIJ-xq$t&&)bh8@Hp zBNW)|Ilq|CB56Ta6@zW7FJg)(#f}6`WYHF_iAhF*y}9d(NU3od8|ZSsM>Y!!V+*PA zH$G|stAS!A<72)4ZX8&KdEr;VXV?eU1)T!Sntcy8#a;&{l663YY!5og_OP}U^inFU z5BIiD+$Y!u<3)`M7&QFRSdY~pMrLPJMh;+W6wl`}1#pP^Gqd**HDb3>PfIyca_fPya-x@_F+A1q4bghCBp zx-Jf4Ymn;;^)G{V=J=HZ#kNaz_*?Y^n~gd0$V*J`)6F}tY`MFRroZx5)9m@ zCMEtjW8Jd@n;r4J=X$_eV}YOdKvM?ujK>tRS7LHcP1@7;;L({bShKtKRF?#=M*f{W zY`S2cJ!4*aK%IJWA^rH{rk`cK@fmnrXeCWI(r{(&~YQwS))_C65DD&Q^f-q;%#c~w&) ze=z)htXmlGx@Vw00Ttf|espJWpZF}i&_M3SnMA>F?uV0zWnG_q+rC;?37wNU z%``<{m}d(`N)0?s8|m0D#j;a0n1g>gXVD>v$*|2+K7GWh_;T$jax<`7d;;5Izo#B- z^8NHdK8!LAS88;1$G{=(pZ*P%?+)emCu( zyr^X)l_s5`f`$BzjNn_IThV2<(O|dCSOy!>7|at11E3=c_hYRdjODS`mCmb4Xx-9ia=rpdy=C> z@NB2U^!daGeP%y2FqEKEb|qI}Tv#_~6xc$Z8Sg!DT_FH|_A8j&6dV zadDq*PH+s{TnvP_80fVKX{#Xi!)-|)K{xD6kH5Re_<#c)g;IiB1kVJB z>BN0t$o+k4z-$0iT97c8=i(Cd2E$GjhK5jp;1iz>L-bt9Oz(g74|My^8#+9@(ht9NB`@MW z`LjQz*M9NW)IR=M)Vfgluo^%IJcbWO_(qtDq9Gx#OLccA9SP#M-qqckZ|LEx=lbj~ ze_UVu)lcio|LNb?PyBnoCY?X=3rcNmCw1PYW5fWvc7CpkCLi()HB3ph{h4+b57f_C zD3mA`*cT~7Gf0HMu33Q}-N!$P9uGA}$Apw{ zI4*$ykOHirp8-U$7LnmAkj1TBkb*b#2*KV1L48sXpacHNx3EPc=q?3(BH;J@THpGY zzoYN`+wW=52KCV=&h<Ogybi$YMvSB4IU-3SRqeS9dz`w!Db9=;#X8 zK^z#Pja7et{8)PMNOAc{TF%70j7>tHrj0kfCDcHNv6j3580h7VX(jk>;!t9p^uqWg zeg=uYu7Mv?(IoqP#jZFzm+Y%`(4KUZihCt?wyqh&Dh2-`Qh_3YJ#}-fXW#g$l8Nuh zPyH;q`u_=Wriwj$?sc%tAbuU^g&s0{>{Ux(ShbPpZgw0G+A9)ytAZkD8wUecZzMeq ze0UTD+BoQEu+-jO1iyK=aumG^r=qIpTqxFr>8Fz#B7dRZO>n5Wswl`A45B7 z^TY&p{o;J;%lk84c5X^09NSs=+B%Ohz#dG7TR|bga9z=ZwwL+M$*E!1cGwj38}H(9 zVz4n+YpA@kz+W}UEyFmFJ^A84!9TIr@-}=VV!(Df9*1oXX}DN%pG>)pceD6IWiPrFWbuk*S4Lmk5UinP|Cl_ z7%Z*|c>}+RPhj_Ui=XiIu>X+nc$kA$dl1H#94ph9b zEOKduKG1Ok$IfECK_AH2;mZHcv-}Wm?{^x>D*fq!xhR8WGpbYXn zcRMAEax`%m&HLyLlS3D;K347)xrP?<26_-`3hU;$16X5J=rnjPHB#vW{g`|<;%VjJ zNezA_6<7@X>1X$C@Do06$T#n@evTElV^iVx6+FfW4eC|&gopWT3NWCI@IGKjEZiz^ zB9nIIB4Aa)$Gi)9HK5t=8JOs{(m%Msz3r4N5(;^P{6Iy0=tuFA)y{EV1b75C%lf0E zfhzJRsCkXKC(PUOxIDgy%^+S1-K~R#4e&2x1Wllz^L5~}0Y-r;uH}xemHIx&p`<37 z-r}Zwd|$-d-C@or3t2pKUYWWgWmRxQ63zLm2ngpFo)Q1_xKc z0&b8?178X~1HTtz9gkBE7|FVk(;_}6Hsq*vv@Vk$tnEvHmXJNLWAZ|$!hQl#yUQI@ zQBzt6WDRme+>0C*Sd>y~sdOweese$L6~q8}CHNMO8rUl0su3p=ea_1S7x($V0DG+4 z`r>5xCD;~udV0p3jD3S#OEv)Zuk{@GW$Gd_0XeZ?1^R5agIG(%c zyUBdpWt07|a)7<(V8WaF)Ai;Oqlkc+=C!^YJHQin>O_n?4;q^S^YOvzj>BMKw(@5zi3E=k^ik) z+f&$1+0k+tntj-~qJN>2u`mwyS!Y~ftMO);Alq*odm% zABWS%0gh{*Ft9`8{sR~_;+=Q=@;?J(xwqI|$UI_~W3*$#3BNXk5KbPhVP(*FM;^Kk zm~P>IB|&e97lp}+wQJ!Q>5kliTnlo8zLT-Goiq;OuoFj~6KiB!ZrjFi?Wp5DU zM_y8x;|YED9Qw@o9h&}t9lk1;cCif9!lC_+%POwmW?fF$6x%W*|Xn*Kb3cQZfh zVSQj`{PC1bcX&D`zscj-s)n8k)~oe_*70M#fmBINOy(J3;2_>+9r4_{Ny(wwF#g1X zpc&LUL`p4Z9Le?ZNX)HB#vda8EZ<{iw5=GwJ=CxV><9rQsatxF{qbC?6}?3JLzPUsUAxK#u4SVxr(*)JT&!7z?^F+fE7& zNQHjW9$17yCN_(@ZGEO5_7U>c@uLCrJ+!t>^PX6Nr{k^Im&&-i-N{`--xYmV8LLSH zHXCtL@Cb@u5t9;%T0!zu^b5rUY=l2#nJ$3D!hnCVevl{xZGksI9Nc4Hv?gOE?{WJ~ zP?hc}%6fdhIK@+Ph$)E+*N z*BAnGPbQW}k&&o9wrBbPHsTWvUM(f!shFEJ@FX=u_;KosEv64*%eoFf6ARXF5Z^@% z2M55y^y&MKKKRId4C5d+ix^Obq9+)gqy!`64Ay6rq4`YP#D7Hzd5)&= zMQ74ngF0nwj_flAe%D)n}=rH*>;k~GGWacqRXyXiH(6zJM-U){s-0ocUK6- zprYL}@1CC+O%AhIHtkA2ZLItIQmnx@Qh10zbjBh4hA!5rFQFsjJf|(p<;Uw)oqA+l zx9O*$yBF+tfcgj~1N$3w(qj+M+KvG%*B{&|;I$FA2k?Px>YXhJmoeAMjTaXuVs^t9 z*@Y@Y)~^v}M{>nH_sk0}ajm3A{Ct$P$!B;`aY-ECF#&YI7`fA1yfyebG4>}vJm~%R zSGx&b_jdM+)X^_xjScZJh~L$|_ff`&W({miVr0X%BIfM_7^%R{G>)AjP6eHP zA_k2s_R;tc=R&tBiO)jU!6mRq4E3Yr81lS9piH_T4{icnm2*04V;Dyyv5i%T2_u8sNaQAOjlJRtn-+fbaX-7zQm!OAw8lTWF4|(~ZPS zfcYEC>;(qrYWDwd9<$L1;!o%>ctH?tQ)5mmYG{E$;vboY+#BSb<=95c8u&GKO+~DF zd_}6LkJahdJes;|o#x6ti7mkb>F)?4np-;N@!(-s{6V$`0*^*tXWm+Qxo~`XtJN_}Jgls*H$8^@F#rG%07*naRMy^}w+~NGT0dB|JsY}y z=g8sqNq4L>o__C6&whAfeJUMqr5A4=bp7s0x9{Dl;n2eeN9YdRNkaa5bzt3dW=dF>qyUc{%zhvNc!H^#fYxF5vV;7s)K&-}ce zeC1bk)Au^Do;;)ejvstaxBuq9R=xFoMK8=;iEryr;z5B=%6M8AYC|}m#Ghaen!e+b zFi0YP!mhC{jJfXsZ{jZ^l<*p~4|FSHHNiKq-53^QMdC$o*pCht-x4@58d@OM%+*8y z*vri6k{ykYJr9acxo?hz&V%st6oFiEQ(jQ}qP<)<0*2@&f15z~KO&T^DY%4^;yd^b z(>g%$f(0dkLbE*1N#zM(SRrTUU5pzz zuK;Givv`*K(a-WWj97ix2Op0KWZoNeQjBNP^$)au_b>F`AN`(g-~B!l<5PY2&)-t= zX8p(iouAUDf92oR{_`B(E|0|7sboX2uWCraPm{%{0M37XG84XatL^DKdi&46s+A4- zr#{>C>CZ3v$N$l1^c(+&f1>>-KS?bfT63ph!4(v@4TlWy63OFaPYTaUvfSO=Q9$lA zWr5Yi7rA~eY!bGLk9{!vurGShTnd6P(9?QNy9tn^`7uev<*SPQLsjmiNPf7Q$MG1& zADG2h{*-ycjBoeTXTGeWq76lyC=^sTil%*FdRaa}Ih?fU*x0iK2TtGmfBlaBFx(O;$36(q3|(ILqfGF%8Z7Ee@U?H+XP{oAnkzWX;_N$!00 ziTcN1SNrH|k`Lg{67P_%2Nm zlIE3)Y)aak|H9sKWgsSGEF(4j2{xLAGLest#H7&CA#F_a91PJj;1kq{h)`tQ%YbL# z4+YQMcW62rhfv)2!_teVz@~sZygd`oY)}HD<%l%1|y{9h((Wg7pyJEwxZ9d=$Ffkn5|&vDX_e}t!L7Z&0T`g0E0FCKG4 zPOd&!=5To7N}8;P0{+t%)<8Oc7}{Y=!~Tw(hAvT38rKZ*qrMXj(t1U_(cj@mivk?% zhX`r+Bz68uXn7EXR>`{J0=^~dk2)Me4BfoH>BM1spu>*CXzR7-`y3oD;W7W_0zAw+ zp}FG_);cG)E2VyBOr!>ld3FxaeOVsxLmJ8^nSV;!yMHGIeh74r##p{P{5l6I_J`bu zy(K9a)QFW0=G>}fsH0?WsUD#{zFx=!`!#8!QPD$UuxsZH^FYzw!PGI5@NV3DPe^H3 z2jjCxY)as@T%=BH5AQ`X5p&<}G2pM_6Kd!g5%A{1_9WKe zjwXKQA`TtPVY?sg)QszrGB$-%5$dXn7F7t67M@W+n z{d|x~GDxna)EMWh7S?fWbj>@c8|fNB{)fMznY9peg%3{T_K`!cjetFS*mU_y>TD-$ zDpm4LOq@Roo!d91sR~o!jAhTg+{mA1zR+5R@L9k+sWXEE$jygr)G+5}pqq8t{8#=x zM{~#$tP9kdf=i6E-ilIE9~*YHi=Be;VQi4I_@7`i%FqVSxLAq=-<=Yg4y|J(Eo<^j zZPdign`QdEh6sW#z%h1Rq6WoFUaoz~d|>=#=c7lFu!XMEALfUB>V0A)FycnS$MZsu z`J8mj_#ZM&^rmQ%xF$)@`)B49+u-<}el(v5%r8aqjeS!ObV&TSf90Waw@AdI0)FPh zC1_<{zK>Ah|GCzMMA#gyPge!&h-k=mJ37f%Ln-5c&R&~~=Wr1CnfW)l58GmS#)S5% zub;UO==0)CUWfYLe!7>xDXc$=dM*v-ey{7r^Tf|%tsCD$=Xrsv5`Ewq@Kj22KkK@{ zFG|~yKs7WtsI*ZNTkJLjB94Q5^P1z~ZyNKNagVPx*YF8RN%%LASubOQutFa49Xpn% zkmbjRIEAE^nr$9yy-mXvZl`c~4WfmZ#omn#jl zNzSgso8xsOKNCKUTTe9pk%wh;BRD5?oelR;e0V9_V3U9YvU={iN%8y?9d<|| zufaC>Q|+|CXrb1$gg#D%k zbPnK#(){JYdomNhy@$3q`#Ugf^BvZ7=(iZ|`kvH@;77Yvh^v&sqw0LPvoY z=E#`MdPQt|PwF@TnLuX0P)JFBwoDD?Ek($4ZNO`FY-h-JdOq2xF^MXTHIDbutM{Q? z8*A$$F9BArT`n5erJJ{Ib@%>(b>xuO8Fx=l9Qxns>YZENK0lJ2&jqlZkJ%pZ+dPjXGzKp9gITj@Fzslexf?qdIw zv@;4ld6{Kk@N+t5B}JyxxWf0P0J{KR;nN_`6JLuy5kJom{&iE=~?C|tT*WZ6frA{p;4&> zlej2}t+kF{`=;)G_qU{*x0MTx;C4@oFEgi%z$WXJ$RDha2fiHh>Hj%nvm0!=VU47S26$!5YL+W3(#*%4{#lE(@~0)_d~ zfZwEtPfg+Ua?n=p2VQWTW%6O+kk3MNv75+{YckXqwj+%qz4M+pD`5CBO;K~&}_B{n2FCCNM3 zB)hO=rta}4wkh)C?ndKqtK^WsIQ(CqKd1ke$>~~kbFHic-#0p4U4z7`7)KScv~tj! ziACFqmtwb=5ppp{IQkAbE)}8Z4TX&9Nkt(W6ulZ_w%d=xu>qayf+y!_p&}Lr{-^w+(f zF|JQ5ud}_t@M2K06Yp5~+N*hHfoBoZwnLfn=6VpTu|F43l73AEjcqc2PvQezJuws; zee0UuaHCgoO+H}2K;n;u78uzE^R~{`$24Ufm72Vmj5c`r3MOmoyaTU5Gi+&*^ddTuNVo)qZN~!h$U-4}_L{5}#^KW@i{UqxXY!Pw3Bh0J=UAQfoB9*2DJ;WrLjCeVfpsX42cv?$e`92h ziLT*VABd)XSbqqL1O39TsW-7Hz$)_9c>t)2h&gVftyqLQ1~(Sik)gf+sy6XwJ=7jV#!rccp-;A1a(g|Eh8sPLQY6Em|^58SjWG46?1UlA7eJ~xn)|O^`g9K1FuGW+4k*r)flCL%)9q*sO>|%V^uDx zXrUsm0YV->^=0hJ##>9Hze)I_tRFlI|4kZr$qHpKe#|SOZ^Uz9-(Y-ufWPrcBgfY3 z6^t;R_?oeRZ^Z|9$+RW-5VHkO>$!0V+KJyChtlhd63T=>>34)C)z27xAY~L}@Z|Hlx9qMfSGo=$7C6-}AB^i?w zeJeinOH|`({(&8*YwRAo?a&Rr4cckk1Ybk#=#+s+?_xtn2 zc0Y^!*>i}YlVqB<@QsWJX)uP+(n<^nfj+dw46%$*(tpRx0K!1#bKroxbGUCzR>qr; zbMY3e31zu$kDnZC{uX%Oq%bJjWFVa$UA z61pU8GtY?`dQM!tKBGTagBOS9gBX%^^x+(}Y9n8Rc(I(=CBXX~!t7Dg~kBsO1pI8&$SG*)SVW(vs zc}cQjC&LsG*jXxKxTtHzbK%RW7qxTB1(KDT9L#gJHO_Ym&rdKY>Jd!j_GB%u061*f zczIAH@W7XYdg^tw=bIDj`RGkSt#rF>YK$vtW>WiC*XGuh)FR_BafV->?Wt?j9Qdh1 z8@>^p=2fmu%(>H-tVar(L0uJdkT#UJp1yYxBA(F@n*k+JmTTHO@CWze%eEIjmi>W$ zt>d`a6g-|`FgANsjADX=LzYa{X5@lA631(O;c!<7SH zPwW_2_CGcT>odz6*ydo(la6-3NOq$4pHeN{$)F z?O>h2(i2Qi8qf~p&2iRSp+LW33=mKzbU*F>F+SEw4Ov`MA7}%g#o4)P#U^}W+XSHH zc(Q%jz@4?V*9~AGCWj(6lrh`=ZJjYjg+GkXAm8UVHe;Luo6CF0VOtX0Nj!Ah+!mqS zGXZFUAN}~cu&vb4NqkZfp(54>I;kb<@r>>pIV$2kFE13kGsXUbK4aSD8avR(F_`2) zL2C?ze+D@dKP)gImdQrB|1(}wK_@<-H%WZl}3JMhifE6nGPRpKM}O|G{y zw~4ilm{`b%J@jWB*hl2-x9`kvMd#K-oq5f_2_H)BncH{N=>oHj{!U#?YR-|`vm(#6 zHL>4uX?v>%>49*@He&k(UE%M+oN#1(v=Cw^c6)3*!xr1Uv)vQdO}FgZop;T0$KV)b zljpl5xi)y-zxUw_Nl&oD2%x_2526$FS)-x-(uEa&lPP~Ma@FD*O~tyYwnQv#J_8vI znW@E;HU_##LZxiUBRW+BYSktPW%h0FkG3_4j-`IXTN-SdaG;h@80z@dGOv*{!RbG zvx8o|ajgR{34DJ`zxT4&?_O*5KOv6a4z+XCMrZ$kX%cJQ0= zVy47RkcX~$9w%@T&*At$$pPjC-++foD#xkt7xf^}r5u~^DP(!P|NZ-c&o<^8s3pew zDnBEa)S7<-fbdl@XO!1X!-Bv7yaT_6|DY|2=SF@E^1B#d{}E!7?do*}v>Wp6znXYZ zME#AB4Lht~5>G|lDCZk^S(mH#U&!t^6sN!Xo(_NbyVA4wlq|A?O}Oa?H8pHAylh*c zkFhCosIYfnSCV7i)7UvH`Vn3V{GbYLj0^M|M+Y-CH*6zJCL>`xU`Fu0YJjo85(=I- znMa|&pbdOp@Gg~XkL6QlrD*aqgC!aY`@|l>7 z%_Kl1TPo=EccGYrOBNm>E0#>M0)Tt^L?q0@7q|R0^8obujZqOa@)H<>xo{c`#mGn{ z3#4p~UMZ02{u#L91DeUinh}Z!R47gP!971pWdASj?TE}!V@zWco!DXh1BYh2RouO) z@#fd{^pAg6H*frv>gJig`)5DYfdG2#CtlH)e*GWmNB-eIR{z9jRl%ahiy%9g2~`>j zt4Z=EVvD4X6`py}_TCTl-~C^ITmRK>zpD$*gss{azOd8({{Ql;`s|ngo_r9ssVl&x zF{w@aNS4k5*F4?sOMKE326779eFZioxCy4gx7%dLa_>G7*m96yZ}F{;o{Lm>w-PJJ zq`2k-4!6%ANwI@8rXI>hpcPFlAd@y5#pELuKc%qUjrIsx=O78EZ#bAYt~5(16$uUB zGe9Xq{_AJahTi=D{(*k)|Mov1uXO%O)6e}!zob`w<)<}^6SBf~?vv+}9KgXuJFaeY zcCq#NT;$D)^+N>(6O)8Lk=Bwo z1lczE@csI0U(?ecd{>Wu;)`k@{RBFacavUz50z$4H8vvJW;U znQ5;lr;ybBM=0G7{zX2ZyfT9?WWWbu3i{HQ{S=ZY;9eLa7W=TlxWPjasNiwv1^v_+ z6B0i29{v0s0h9CvE#HBzrg8DySO|*eXeqZx5}($KHlYmWDN<_0V=l;vP*^q{(V8N8 zJ|iX{UMSkagnm%@G@{YRr9gjt>ap3H`ojl`bRWF1BP(2kaS_OBY}k^8W%h)S zA9RlhIlez^Zx6v6423RgK@6O<;k%XiFNMM{b7+_KMrIMufsU?m$#7CLtu(h)( z7jleId%Tx)Cw~fvnR-_?9UiwKhbATbJwFBG zJ6P-=E>qNC9q1Tvt}bVxgjd79g#+mhZ~2*n&w#fcm1zI~5CBO;K~#yCOb6N*@7!#&IHS|dAx_xic?TeZ(Fe0T! zTQb)6iD%oEV7#E04_mrZmAn=Q`={oyvoP+DYOZcF$F z*W@4gg_sTW!zF68H}oG8^rZs_A^{JNgH(HLv7R{F&`o;lbi!_9&@x=YweXGlz>sQ9 z^5M{w5C4QPTcU4@+j;FA2O%x^qVJ>*=BRMrhrf+WdF?~v!V3!Pv~s}KsP(N$3$f7A zyJ5RAun#h&hFuHe?Hk+X7+ulTbZ7W?Pv6cmk+*QLZyjx4E~!A4c`VQ|ohu^L@rB1) zpT@W%rv`Bl=D33!Q`P}Jq=zLd7+e$8s46&bPb6tA&bcj+ZWkUl5V0W}sQtyRt z&0pvmK6)+L+8NGXd$t|cik9#PeIU{*Y<*a2Tn?Az2Gyj zv2mC=SO-{<`#k8=Z?&U~XzSb`dQH(5MPDTIvtIi%iFr3YzhYllA25m;-zzK!w5e!a0cOHy z(L?sBc~ANbnoAXYn=g0-HqCj_eL_BcvEM1JC%n{Bg`BkP1%0qHS|}PI+D>e=Eyl~d zCLITs*1J9NnjBik$K-=-$G!h%AM>~4J|AJ1P>Z#gh;#eg@m|y(k>C2Ci2Ao@UAFD2 z6Kk!H%t1_Z=bYb{IePtCuC-yFl`Atxj?sJTtzX8- zk#p@68y+nx4lLBl9J)MNh$t!lX^Fw6{Z1_y^jn$dRhGcFK3-T?TzS{ql;0$NU~^t2 z74^cSRJK;+TVh^3>(SFiG)pviDS5T7Y~t_Ksqtv&fq5}8zfdo1;uxwfY@`kPu5dNh zcVi5)5kHqT(6ylB1g`W8&$l0}T96T{H)0~=7V1DPQv4NvZq%0rejc%QyT!giO&!Q- z`V{jWEDE>lyZE^K#gA6zveNIv!9V3AR*4S^?NU@*R|@t3ml6s%!te&hdUlb8ULu-T_o$pys`(^7N?Pjn-5=EFfY+_(;gV_ccj zE(dRwJO&42IVUfh#lfU*rsmO8F3aQ(&~^A4`OT)j(P_q1&d4%0i?}y79cQjp4B@CU zcz0^qRe5gOk|U;lCHEHcXCYTix3n31HMo&vIr!P{|C~PaeV8E4*;{FB$%gZV`OV0je0<#au(0ud(`@D!ZOwcQa+$UAmG|9^{j8l`=H|XR*RVuf z7}*AY!A;J=CFTkYz$p3vIGh`voZ1!p`KXiiR^q_;UwJ=0{*%EENf7)`E-nB6~qq3t`*CE`8vey83MQ}1fMBz)1l zhlQuaTO|eqAOAt78^6ua}c?W+JzUDo92ec1z z6H{acHVa5IrmqjGAx!JTf5C3%KpXplFWlotF|IEhYc=l;O-Nn2gV}`5vFq7b0xKB!5^$N+p9UW8<_O zo&I^t+g{7pZ>pdFj$Z!SFY49r{~PJ`$NI)^eO)gBrwsbe>sRNt%EV4W|&ph>VaX zDRGvXc2ksuk0ynpGX`H{7=I9g!h*Kv|L~u~$v;t3{7)=Me&TQaIepj9{uws+uM+mg zOkw|Iq0=d>MKcrg<=fBo=4;>4<<(m$vV(#C3dYlo{Om*37e6n5^jRX{tPL4X5Kn3H z($;`CeSx95!)y3DxP)JxrOpVMl{N}*UoX0T@-biF(Z|D#75sd94hMz5%2wJQp1;uj z*T12D;AN+gnV3L^w|mwb4|@2@Z|dXU{w+QE6F;uyyT1=V3kpjnZNkOIroQ+D-b^$d z-Y~o4KhqDrNyg?Z3@A3+`f@MrY|gQ1zu&##@*+{pn!>y@2~G5yP5+%@JcCJBY$4Wl z(SHA08wJ#C{A**ebiHSDM*)HrR78CCi zT;LW9^2x^Y9zIy`8#|g8dOJo$M|{3(XK}Nm4+IiCZY;D+|2>Nva!W=37BO`d=|P-K znKm;KPV{WqMC4x7gh@Va)HMOJ$+2*-^FpFbmJE*Ud%oNk^}cNU(Yn0dw6Lfj^x5J6 z;U&2E81?q$8*TVvg}+gy$+N+j6E7dhn+eAowjG;Y#OKQ9dNZF|Lo2pN=JoBa=Dv77 z@msL^_Dq|R-6~|8c()XSpCS6g}B;lel)8BN{_{^sjDHQdbbHWrD6U#|Q1222pYoaA*Oe&B^%5Mvcg z%*Wz!6AR+UODXb>nB_9DHiMZlCSJ#R;KNOcMX}JHaHm=j0UqQW`2t6Yne>mI&Pyb+ zo49OZiDD~*v5Ae;gh~EQ zxZc#naTAk=zsQ}23n<4A8%u%>8j!O}SK?ywJR9Osm5tOBo3HWZ!|Ppxmv>U|9Zkra z*fdy32JiN^wX)%u#q^cF*N27!OXS9eE!m_FjuV>(+g*#PQ3G2sKvy=f6RrvUx1V6E zf~9r3v9jjg(37zZ*SBmI4D2b6)7h*CTDU{!XT`iVW!gop+~CXb8cY)`$3_8UcG_jR zpp|RUe`3q^b*r)|u}PwRVMBS|fn{<(tOqtF9`aj<=@V`D2D^Ks0Ey@S}Wr7Is6RyZE?1Cj2ZBL_?yG8u*`tqs{HHc+nAiEv4Z z=;77WI7t_{Bn>r?C-jBO+!qNEzHZ=1_!ZbPe}$hbJ`To$hlZ1lV@GE*a4AXnY;r)O zB1Z(nhJ*5G60=5juqk79DQ$`0a4ViQeGsX%t@!wg|5%o2!Jl`Z><4b!DpEYLwZs1g z_V7B9nOM1bGIU~W-pPc#4W3T;Cm6zC0bmduJ3bOW(T8dcc#PgF@tBw5)Ro{`;NgM~ zF^C#8SuaVI-6wQUHjxaLj0>LB8$=3-nvuh^cQ;c-o@}pnrJvx-yr@S0WZlqk*36}X zU*nJFLx5SUP3EqNp6E6Pq$W(}1e`0Aukll`hqvfq87MQ?igiLKuZux|>C}?4%zcrI z`5NzgroOY!TfW`4fAT z`xImvJL`?e=lwxWCn*L@iZdiN?Q`E#;7fDCVC~}WRtB5rqNpRL+Hn>DX!%s&y*9suU%&dbOzTu){L&l~* zc4jV_;g4sgUGL+;*ybvHByF!AwDWEou{+$(tPk=meUV|}yK_yw3f7(V@cE+T(FJOK^?#kR> ztF+T^a;)UivvcdasLkQ|_n6CmEKl#>K4PApJkNYH z>C@C%gNs&py-+81G~h%V&ba69N}tX>c8Q=pOe%x4HHoE}x{3ZuKlIJKt7jvdMRZeF z+`9zd`%CtG;HdEn3BuaoDv_6sEoSb>5gX@QY+#XAW*p;pFi&h~d_CD~==}2Vm3Pv& zFQqrHrRxLx5gdt!Miu@waiid-?G0-eQEk^uiqec*B)8a>-_&%H0OfQCw9Q8KlA?J`u-$_jo`Idg2 z`f~@)v6S*&P~e} z_XZnJ0=T$GKP_BZg3x8*0S+W z0P7+4biL+k!QV;tT;RvGEQ7O0g2s;op3O)KYjInvsl?UPL^@s1XexyjQs2) zWKw)piX0C~Wr;uk{>(M3YOu&KwoW#Xo5U=JH3=_Ph%;xtj^;NSI{u+=vA}BhDCDJB z6$_DDqai}D8_s>g{)i#;4*aA8zSgD=H`5EIwMW|2pcgcJ}G zROnM#J`PBSM<>2WmT>JcG){|ZK^D@lFJChDB2iQTe~c@hd$A-ATXu60U(3|>cYjBp z{PwTE`v~y8U&6LR3Q0*HZX}9_iH+zy7890&<{a8QT^fA8?IILN;EwW3;f)(6@Iy$J6=MQf5z#{1_3z;k2?~IMULH)^QLcxW=k?R}`ReWFgW5f2H ziL&8D;7v~FtaXvVo&GEK1$%r<6X`WI9-p*?A4?USOx`vl;QXELp`6zb9%*@Yt9o=& zv5{k*iyt#N)OnHIO0Dd?L}!tKkRx{TuSnp?Ic?Zi&i>4RI1Cub=(W7nrK6Rw@M=nbC&F$=sNn3PzhUC0)=D;xBj z53CFI6g$lrGsfJD7*4-VAJfWV{Fs`V=SF7qWs|Ys&TDDn`{RQ}Ndp|wA+;uR1mb1# zp-w}E9u;;G|AjBocR@yoJv~{q@KLIWC&QtLJ1wPfR`gk(!ap*CK{9_hN{YN-801|s z=D-c78I#S>qCNQ}#*D{{1~O}94uMypr+CReWH2Ur>s;>^ePE7{3f@LOtYK$z;q+*z zu)&rF8?-0l@s!_uFR6&fakjijEB!=1HZgYp$ptQ2%VTWhS@ceb*}yR2Vz8mTP)F94 zah#9(5WMItOTl;LCI0Ts&T@n~zoc=3VM|5-H*D1Ac{YVNbS5uGuwdVczWfV-$IqMaH(syN}Huwvj0~rHu7i<}fso37{^yXRaxl_);xv=qK;$UNg|Ck5hA^Eq!!-zcW zDUQiHZNP81G6IS*KtC{tC*C)-BCCU$=L>Rd9aa!oiv100?u^I#w=+=+8+ zk8Oo+L)gNHm2iK?o)v#g=DDn!<}MB7+Q>kzu~ppPvk8MpoxqxR>J!+bZ{b_CKjRnqYs z9dBQ5Iz1_|lw--%8rWX3hjEljIrf5apktt0@V2orvN9$gWSWmCoY79kY zJvqrH*2yhDT2vff$I&+6eJoO~(h2*X@Nq2V@tk-WVlTgiqeW^ea#!kwWF^LPAXSJ4 zQz$4-7)QA|SPfb842u%P4f9iFR?FZil|u6uWsW z^B3|K>VLB#RLH|MG?xs2#t}_`59~esg0g|%Ryc~R97dL@e@#tFUCdfz@@_D*USR#B zvSPPJ%kYuoT^l#Cv!oi9s#IervXu4!k*J$jP3Ek~7r}1&8J!|92J^Q+^>=(v0yxFV zLKlBYoJ)p-$r|L4A=+IM{hZ6eU)Uvl8(tF=kzqJ9{oc)ob>K2~y1-cCXC7@_$iajh zXP!A^QJYyuDl(QuH5fBQKMs6pxX`CI^3GOpJ+hWLtui)>pZMHmRb+592|HOs897HA zI%`?AK7FDCBe;rrSp3wW6K8{`4;QZ=bE$#u!GP_}IIWN2lAN1$nl0rr!rq=Q)F^ehkaOe@GH&0GpXB!--zJ?}Rxy^7j(&Bpr;WN>TpzgTS8#g*_X_UJ7b|O+ z!Ut#CZs1{5X{FAt$U0MJc%;}73_H5B{+VFOCDiGLIQ)o@AD{oOMRO_r_QzBI@@t!Z z`#aLN*bsh0$2Tu`y=E=2^L~Hfee9YKN94{O9}3>`VN>Xu^oz|K{=Kk1GrUw3fO&v1 zhi!?&*lhSzz+qcz#m0x5&KetRBDRX~oyf}EVJ45lu45cy#q|*rYht|Wu9saaE_u|I~Bpoti8~Ts_4A+oEy;9LB_r+i4fU_f>X{LvE-pBUj{W4V8S@bWk z7`q3D(OW!|-o@LNT1mbMea7~rvJ_>eOUc+;jH{coD%a#rrQa-`({DY=%PI|WfrAVF z4B9wGF~%CCMM)^!D4Y72P(^TQarJ<{F?L zoYR+6crrZdXqS}z6JlhrZxVQo+=D;nfet^x!?mcVW+5`!puT+kQkPF&XtEzRsh>M@ zK!q3NM^_aW>>Cwhvw6RO1rt?6N-gY9=Pz)imZqQKHZqF1KlCo5zxD6mW$3HanDDY7 z7|hv=o9s=9qsRx-EHD>ysjxTo)J05UW3b!kM-Jhu!WL7TkM?R=riLouSai@WQPu3HZcuY9ryqcdeFslM;90(H+B!| zMv=p2fWckdN3WP8OguVZ;_86*x^TIVeHMwYW zM$P|6VI5R$&#BBGq$vMn=C z1W@oeb;YH~>&OL_;ZxX{=c(;EM1N6xstFdP!tdnZjYC#mN;^f*2tr6h>|`UV1DK-e z7zY4+q8u4-E&>ET)DUJ0M+YL+`5XUCAAjXvtL~ob%f1qFgtye;kjCp_QZ-1YD?!Wp=T0i$$Z4|+|`*_xB?R*9Edq;9B5unY))cww; z315>1ddCOCCl`Ffb>sBLrf}H!Xu{uw`(|>C)5E(441sOWm%S;Cr{5)Ws2)lAf8k)K z#S$<1+rh6$dPL((a3QBt7^u^tai@OBI^Nvk%IA~skCzFCntjS_*f~DcQ zPSWdt{+s$|fA4=}lG()iQ$O|BzN|0(H9oG)*5rjihtX4cIcUE4qMW8(8(#viAHUM% zOKehVftNEA`tG=Nprp5 zffufY%*peX6}y`}LJE9cWW#al4gQK>m?sqd!Vk^Hl8nzTlM^< zm4?TOZ#|@9Y@qM7H8FZz6Nm5O1$nWJW0Gd{#?KokVum)v(H+~nbre(LX0rJ#p2aRP z$kh9p4c)RD&h|G~i2^IGn_AV~5`QYmz7(mdzO~7CNCAOdS@#e zOM#h%cNQq|r>ou%YfTnD*Vt{u&~ZloX_d$kl{B$wC&qGJ@Ex5K{tJ8!?$~rEhWy_h|!P7Y2wnROe_$9xE)Wo5PpNyR^ACSvq)ORm3 zzA>>g*%0d~$w)va(~!caxGolyLf%du2tE=MjgOnUcRZt3G~DmllJUj-7M<~dfMROu zkynIia$Wp1{>T`WHHoKSQ20Vl^bD2&-4!_QJZ?ZXiJ=6Sa?!ymQKi8o>~xWsjAIOdT-d=pEC3hgH6AJ|oQ`%l%Wn$^Tg1y1f zl?MDMX#Vv8_T{Cngc_BnA8Ic&bKyu25-Mg9i&d!D&DNm zEBYpm%&6C&?3zdC)(*bY4VsaWmw*Yz)6zP#A)DWfXY?U=yKhk@b-I-ji&yjy#-W1P zm@2qQ`%XWhI2da+y6J)0rY#==cBYAi4g6wbHNOR(|8Ilz-;w8&HHqshm|4n7*b_ZF z`53-~ZBX`hYzdx$jOe_Axg~|WY}V|b=Jzh*W*&H>bK=Kr)IG2P5}raqNIbYgcl6!8 z+1RgWkrEOe9$rsu6T+1;gdcbYkGNB~LlwL5T~v6ADRM>icG7hd2i}_b5jnHt-2|zwh3;Y)GxP#}2S3Y={`wLjIES0SM z_W#Xi1`w?ix+i+`FDsxyA|^Jt9>hU>8(a6+J2BBRvA^@-!ndXPb>|~da?Oj?_;;ei zs5v+28&zmqx2%t?*T zChiiaO${ASSfuYz9K7@mzC1TJHRBE()U3&xKs*n=rY3d*CY`I)8S7H!|L91~n#@5) ze=W4rXUnE8aeBuFP1AQ}P94jl#AcRmI~+AOZg1f;?O3;G9zn;%hl!`~FV;}X97HfS zMJf6k{gYaaSP3#4-H9XPi( z>`ot&E^9!MD-#Y91AntAtIm)$k*sB=+Ku zNer~o-U<~apBh~gPGj5oqbEA^uC+XQERnF2*f#!|#GPVeWQn zZ0IshwgkU@#NSZtwhNA?j<#SGeIylrOCH46sZW!+F}^W;9qWtq#gL9Cf9fF1&rVgCp-3>*u>w-l?`8ow{B^}9)QEW zb%h`C?w5J^0e@ZDJlw-G9d~psj0dVVVj=U#Myx#$TVAB~ap^*?ZgglCXr?aRv2M)y z0)Nc{;R8OBf7fRgJ))+5!aV$&-`w>Zf3)e3UXm*Ns`Up$r^VjpH2RX7@6T^tjbRlCmo@Q4dkhYFqb)lr|f|Vu6kODzxe1~ z{UPqim3;g%m=oJG{>k`3Uwqn>9kUi59Et4-XPByqeG}g`B%3@F<9cTdF@4NCX`8J{ zOo+8xeBStH5(|m|@R%5nO{oiwAJX@*jc38x(Lr3wB?+FuScffuYT^%BlU!POM;+0p zg*>1iwlhG4w**hx49^r#t{c9a%V2KuW#hfKi$L+Bi61BN@8oo3Fs|pjXJ+l&`%rAo zUWHj4cis)}S(s(v7#lUn&s}Ezt;pD=POa94>^q*_Yo?B+jd{!QBX;%N={GTx8UqiF zO^nnY|6-1Z1>ua{6o2HeNxg60Nhh(cEGpPf++QI-ae$1S_v&yEeUlF-&HjXmzx*P} zyJzsnoV{hPu(gvTW*+K&s*$;~4&3*Wo_+i7=3I5Dq(KX3U!QVvR@q5XLdLZX^ z^u^wBKBLB}n_F$v!Hsxn@NC#(;xqm^?1Rg>V>fFu4GN@7QsG1V47THzTvx_mV>oCA zZ@I>f;}3jq)FZ+Jo&0GIxD1Z;KjHx1;{QV)@wSHtVp9Zv+QLPAIC;PJ0tUD`aur5g;}DW9nR+*xqDf zxOvvpAfH1{S#@hCvLd!u!~ z)0yWV|K?Zq|N1}wH~NSF-S3JiUDOW!#Ls@Dzx;pr%X<9%-vfgKGXN!i!l_HHA;VL# zKoWp^mz)C3Mry%_jZ$pZC?3!^V<;M;&F~m#HqYV@j4YBeLxeUXtl5xh5@S62Q1#L0 zq|*~Mg<5nf^d?cwco%v=r}&L$!6kl*f|J7K;6?sq!70WSMcL6o-+mup;`)$-D1+ne zum7%o>F@mydi%+}BIeKhl|P{`|E-@@v2oXlCFFahGw?NX!vWTQ`&N67S9ePBIJ1zr zWmDxbUw?D{;PW5ob6@_FRyY;>i3w*A4+ka>V3Y<5O}j{{!Q#CVlW^p*$Z+j3l(Cb9 z4bK^GV&`Zhaq_%fDhg`~+)QE)1CWD$g$&7>6itnij|JjY#-8~{f1nrt>VMMXFZ~If zzWkGPyU~R66#FXrBG;pI{2ZL2hw<@C^o*O62KJeraX1#|$mxG!s@WR#BiZ zOQJ}a>bBw=h9B+eo8r+FpIS>JF%`ez!?ZQNt850QjY4l^i9GI1aM)rsR!U~9qcg<| zA00L$qs9Oq&vR{Sd4Df{3<%rek1Bj2SCPR)C(~hArhk<+up@chY9c_`gGhOr;0~eJY5xg4OTDGapsw8NB~+{=%1fGk;*#a zo(a=DGdK#~>U5H+b3%v8GIDAi=xP-_75#LK;hv3xnMsZ!V8-S+#v?Cd2L3K$GF%He z9$*9uKt;%Mno66=$HT|)qsA95^e!s;=VL;2I=&&c8~=|FpHi2I!^lK$aTdB<76R2Q z8jFuiMgKz{IGt-r{(zUg=s>oyB@2qlWZg4Z%y5HiXCZZ@9Xf~r01yC4L_t)i$pm9$ z7xoul(+B>j;Ghd+&=0Kfxrw0U6KDRY=s%g1Co&sM13gQ|V?E+~amRWX6_-x|9iZQb*2UzUA5Nvl|U!JAQ0i z@qPMfcEn0x7rytwbIFV`HuFcK|G=gKPx>f2&u2L?CuEuar&Y#w72UyB>$`hnUs3m> zC$=@Uz{9GHElX8M;Dr9PEBfI@^s!owEZS0=P0YMo=x(%I18x(mjScy*EO>}rX6z)! zkI8N^xX3dWiaQIqvJO6DSNfTFh+LOc`18mWAJP{`vtJEzzES$C=FpF}BEo=H(#owc+7-UeIA(>jk}&7u4%>UKa6j z^WsrFi`^5O1u2cNI!VDc&>Q_MsdV$v0Gnx-3aqk}{tN3AhADO~@HA;A1QVjfXlW29 zk#&N{h3f_0!jEwAik(+B046w&&2{(?IBSt?G1hTAzO_={3g2Csiw8EX;5L1Qa@&MS zX>cv<5a{;DAr&rWcA&nD8F*PHH$y9GXs ztWnYlJI*{m#eU@8vZ=p*Iu<+5;5#Anz?nhB-{TJ!G4zlfPV)g~MaBj0p##3alM6`P zc0cY*#M;)7F zfX5brz1cJxoG10G9iQrV$-x&fnA)~1cxy|#jE;4i75j*H1kfg*8Hl@$; zpG!!MWL(OOoFb5W(v4=Fxt=IBnM75!+BFU5Mdk=txWBzMfu*xiMFF0?lV$DaU=KF*AAW#? z$(nFy^C{~%4a>}fN8BMhx=kD@KF5x{hs%IqZL&VPk!)pdl)1zohff*jft|})e)LEJ zOVcm>3cnwH=_A?%b_Xx_#y1*pl|Hm}cmj`z&stXv-gkW>xRV@N!z=|)Q{k>zFE;aZ zgCntF@YeaPj8*(CE;%o(YX|L#37V93uPizG7cMwMn~dKo_Mto1;>UChf3~H;AL6ml zg9)0{y(UhJwcdcgfp1SA-N=ho!I?Al{zOhcdbVmMR~~(E(xfI#=IXmw4|+g`sR7IS zZp@(n^`Ye|4f^8I;l}#(-gxV*~wXo}H+<+^VU2Vr+0N z$X$_XO9jTvw>xokVtzkAVe^pdGkJLX^sM~rf#{x$---F)e#<8229{ziSk%1COB?yO zVCV992q4ODzt+MfM18;<_T8Ub^jS9lO+EhFcUr&pZ+Cs=Yg5nfhhE=VuV1llxLBr! zyn5dH&eyhM-{ql8-}&~g%T}ZZYm_*fHi0Lh(&W;DEo`%BEO0^!?8Ny*RkftUxw2hO033yWE6ZGf+I7Vz7?6| zR{C^g_pW0Me5mt{R72(vpp0HGi#!&gSiZecWVVegoMhVD;Nf~XV>4rsF>Y^l*aLnMJI#JW zUs>I_l!O214Q}w- z$mfvB^94!7tKcHM4Qlm54XW_S7&E?To2(~HYz^kd3f~1n<}eJGkY%tZ7Sq>b$oSC% zUf@vhAbyImj!$F_I8qCW`3qU1t2i6kgWO+kkpZ^&*28p^oY*DSn*Aja*9@l3a`FHj z24DJm48<1H7Oa>oQcGrRA>YA;z794^A_Qi@zz5J6N}l77N-UIQIIhTAtRjvk8~&5{ z6t>9eK>MRx74t>WX8IcbysYS4B@b2F!B=HypVFak^2jQ44BFAz*}te#fioN#A2UGW zT*M?|fw*hnYZ|$hY9PPF&y*4$@KeZ3pR(vi4aoENdDzj-NHY%AQt>cu0QZ0++j%NZ zJQ~8&vT37V(Wj9!se2+0ix?IJH-~v9OAf!>V;Fp$Rm4L0@7`6^K*O`){^%bpg$~AL z&OF862n-QLdgdNrNeYHbLC84A z<~+~%QM5uHiW{Q2QDa;qPbvi?{0Pj73>N{y#iWlIE951AgyKo^$qb1c+C^J|b%K8q zG$HDp5F|pxPGU8BH7}~Vmmj{RyWjm+`o=&11-<>|@9On8zNT;g?sxQ-h5zm6ZuMh7 z|DWjdKl}6Ylg}x?`Jv+nmm04)`mg`aujqMx zgAB8N@F$+?FaGa;UQd7QOJco-q@jU>lI+20mnM^f2}TnvH3()5^-^kVITn(|^4`@@IZf zKmK3*jI!9v!cIeSN#ez=d9iFzBSHBW01w}Ksk;|%;GoqkJXQ+OO%`Szdi3Elea}z) zkZ!)`i`X*M%PKno(Fj8zI1@*vAWURWKIE9Ur{ZYtJ4%Tg3tKo(uos0x_%}(EaZ23g z1)WmS~Ir530PW}STg6mAid^k$s$q~H`M<|iVRT}~Pq0T5V)P`@y z@AnV7ync?PMeoz;g$s#1zO?}C=8p+{_7rErwWD{Y_Z*pMXF+Q6n^l@aqVF5F&!DK3M zXA{4;cX(rbt?OD2hv1*o z8?TF+{)2@_!{=mCgiC=v;r^;gd>4zambLMMUvRS1wy^xPn(S7DcWP{T?+6{LL@pE~3QNhJvA+cjy^crp_3;p6HVk3Xr zLs>Arh__VP0n^H`4{evV?$?4icf?( zxb9rTx8b|-`{Yo;3H>H|x=VsEgK1)4Voc<4kR`ZxTvA)`jAz_=6l9@60W=!+*k`+Ui4@)-RB zPxL9dl{lz6a-th-CGGfcr(P9{JgCuR4HAEt`#M=WvAq)$(H|~WUf2s6gL<~GIUfEe zoGG!0{^&aL1o?T+T2*KI-LTld|IVhti~7dqLq4?S|LiJuC$}bR4J$`1HNny_z@LoQdI(=B$=|iGYa$CmMmUMm7DtO9kz!pDih37*XJ@yCiSlbG3w z>DVaZDA+D9Q4Y3=Kf>ci97Xp4L--JS`J)pbH4=a6bN6D?KwqI}VAP4eso&RZYR{G# zaE0giVFiEDR|vhNjfa+nE0nRRLzqrW3tD7w2pNQb%usAgt*eZ~)~pS8&Xd?Y(W${3 zJ1LzfMtT9%;Dlk_zuHwpn&2E|tti}xpPl#`_|*W(hmFL@a+1OmO)_BP z+r&Z6XEwOQ^NEiD$+x#3??<19_@o(!+|;I}63n)V$%&RDJwKT<=D4;-cVb+UQMtreXB01yC4L_t(9l5&!( zP2Llnd4=WTCr#{RE*FHvo~Fh)YdZ9$ zTl$PMSee6~JuW?Yq?pH&zV*q+SD~4YF;maK{-C#fn7PltNw1&Xf7e z>mmVi($B2~~i2Zmj(!C?hYurzffag4DFzJ{ZBvRcjjqi_zd@x3yZxDs

Vh% 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

li?iz+t9hb#azh5)M$ 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%0A+!=iwJ5I@y=xHUO1C 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�xG5W12 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