From 9c62052663945bbe3638b7545e7ad4d53abf0a39 Mon Sep 17 00:00:00 2001 From: Jos Vooges | STH Date: Mon, 21 Sep 2026 02:56:52 +0200 Subject: [PATCH] Ship event logo badges on TV, mobile and iOS. Bump Android TV 0.14.72, mobile 1.0.26 and iOS 0.5.36 so category fallback covers show the channel logo on event cards. --- apps/android-tv/app-mobile/build.gradle.kts | 4 ++-- .../vonas/mediacluster/tv/ui/EventsScreen.kt | 15 +++++++++++++++ apps/android-tv/app/build.gradle.kts | 4 ++-- apps/ios/VMC.xcodeproj/project.pbxproj | 9 +++++---- apps/ios/scripts/VMC-TestFlight-0.5.36.command | 18 ++++++++++++++++++ 5 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 apps/ios/scripts/VMC-TestFlight-0.5.36.command diff --git a/apps/android-tv/app-mobile/build.gradle.kts b/apps/android-tv/app-mobile/build.gradle.kts index 0b4264d..63ba34c 100644 --- a/apps/android-tv/app-mobile/build.gradle.kts +++ b/apps/android-tv/app-mobile/build.gradle.kts @@ -20,8 +20,8 @@ android { applicationId = "nl.vonas.mediacluster" minSdk = 24 targetSdk = 36 - versionCode = 25 - versionName = "1.0.24" + versionCode = 27 + versionName = "1.0.26" buildConfigField("String", "DEFAULT_API_BASE", "\"https://master.vonas.nl\"") ndk { abiFilters += listOf("arm64-v8a", "armeabi-v7a") diff --git a/apps/android-tv/app-mobile/src/main/java/nl/vonas/mediacluster/tv/ui/EventsScreen.kt b/apps/android-tv/app-mobile/src/main/java/nl/vonas/mediacluster/tv/ui/EventsScreen.kt index eab41d5..464d7bd 100644 --- a/apps/android-tv/app-mobile/src/main/java/nl/vonas/mediacluster/tv/ui/EventsScreen.kt +++ b/apps/android-tv/app-mobile/src/main/java/nl/vonas/mediacluster/tv/ui/EventsScreen.kt @@ -18,6 +18,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.statusBarsPadding 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.rememberScrollState @@ -528,6 +529,20 @@ private fun EventRow( ) } } + event.logoUrl?.takeIf { it.isNotBlank() }?.let { logo -> + AsyncImage( + model = logo, + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier + .align(Alignment.TopEnd) + .padding(4.dp) + .height(16.dp) + .widthIn(max = 48.dp) + .background(Color(0x99000000), RoundedCornerShape(4.dp)) + .padding(horizontal = 3.dp, vertical = 2.dp), + ) + } } Column(Modifier.weight(1f)) { Row( diff --git a/apps/android-tv/app/build.gradle.kts b/apps/android-tv/app/build.gradle.kts index 7c07fe2..cd42dce 100644 --- a/apps/android-tv/app/build.gradle.kts +++ b/apps/android-tv/app/build.gradle.kts @@ -20,8 +20,8 @@ android { applicationId = "nl.vonas.mediacluster.tv" minSdk = 24 targetSdk = 36 - versionCode = 128 - versionName = "0.14.65" + versionCode = 135 + versionName = "0.14.72" buildConfigField("String", "DEFAULT_API_BASE", "\"https://master.vonas.nl\"") ndk { abiFilters += listOf("arm64-v8a", "armeabi-v7a") diff --git a/apps/ios/VMC.xcodeproj/project.pbxproj b/apps/ios/VMC.xcodeproj/project.pbxproj index b3bf941..b1de9de 100644 --- a/apps/ios/VMC.xcodeproj/project.pbxproj +++ b/apps/ios/VMC.xcodeproj/project.pbxproj @@ -274,6 +274,7 @@ A11C1EAF0000000000000002 /* AesCtr.swift in Sources */, A11C1EAF0000000000000003 /* CencMp4Decryptor.swift in Sources */, A11C1EAF0000000000000004 /* ClearKeyDashProxy.swift in Sources */, + A11C1EAF0000000000000005 /* AVLivePlayerController.swift in Sources */, F8AE29FF63524E7D8C036C7E /* RootView.swift in Sources */, D5D29939C5A64A23AF7AD046 /* MainShell.swift in Sources */, 1EF110B9F82E440F999ECE37 /* Components.swift in Sources */, @@ -337,7 +338,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 18; + CURRENT_PROJECT_VERSION = 49; DEVELOPMENT_TEAM = X25NYX3K49; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -352,7 +353,7 @@ "$(inherited)", "@executable_path/Frameworks" ); - MARKETING_VERSION = 0.5.6; + MARKETING_VERSION = 0.5.36; OTHER_LDFLAGS = ("$(inherited)", "-ObjC"); PRODUCT_BUNDLE_IDENTIFIER = nl.vonas.mediacluster.ios; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -370,7 +371,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 18; + CURRENT_PROJECT_VERSION = 49; DEVELOPMENT_TEAM = X25NYX3K49; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -385,7 +386,7 @@ "$(inherited)", "@executable_path/Frameworks" ); - MARKETING_VERSION = 0.5.6; + MARKETING_VERSION = 0.5.36; OTHER_LDFLAGS = ("$(inherited)", "-ObjC"); PRODUCT_BUNDLE_IDENTIFIER = nl.vonas.mediacluster.ios; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/apps/ios/scripts/VMC-TestFlight-0.5.36.command b/apps/ios/scripts/VMC-TestFlight-0.5.36.command new file mode 100644 index 0000000..282db04 --- /dev/null +++ b/apps/ios/scripts/VMC-TestFlight-0.5.36.command @@ -0,0 +1,18 @@ +#!/bin/bash +exec > /tmp/vmc-tf-upload.log 2>&1 +echo "TF_UPLOAD_START $(date) user=$(whoami) gui=1 ver=0.5.36" +security list-keychains -s "$HOME/Library/Keychains/login.keychain-db" /Library/Keychains/System.keychain || true +security show-keychain-info "$HOME/Library/Keychains/login.keychain-db" 2>&1 || true +security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "" "$HOME/Library/Keychains/login.keychain-db" 2>&1 || true +export KEY_ID=C4LTZP6328 +export ISSUER_ID=ab4414a1-90fc-4fbf-b051-59d95c48097e +export AUTH_KEY_PATH="$HOME/AuthKey.p8" +export IOS_DIR="$HOME/Code/mediacluster/apps/ios" +cd "$IOS_DIR" || exit 1 +rm -rf "$IOS_DIR/build/VMC.xcarchive" "$IOS_DIR/build/export" +bash "$IOS_DIR/scripts/upload-testflight.sh" --key-id "$KEY_ID" --issuer-id "$ISSUER_ID" --auth-key "$AUTH_KEY_PATH" +EC=$? +echo "TF_UPLOAD_EXIT:$EC" +echo "$EC" > /tmp/vmc-tf-upload.ec +date > /tmp/vmc-tf-upload.done +exit "$EC"