From fb7803e6fb5edc78053769032140119f8714e39e Mon Sep 17 00:00:00 2001 From: benjamin Date: Tue, 25 Aug 2026 00:48:39 +0200 Subject: [PATCH] Fix startup crash: listener methods collided with Activity lifecycle ControlServer.Listener declared onPause()/onResume(); implementing them in MainActivity overrode Activity.onPause/onResume without super calls, so the first resume died with SuperNotCalledException. Renamed to onPauseCast/ onResumeCast (matching onStopCast). Also drop R8 optimize variant. Verified on a Sony Bravia (Android TV 14). Version 0.1.1. Co-Authored-By: Claude Fable 5 --- app/build.gradle.kts | 6 +++--- app/src/main/java/dev/castarr/tv/MainActivity.kt | 4 ++-- app/src/main/java/dev/castarr/tv/server/ControlServer.kt | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index baf15c9..3d3af51 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -11,8 +11,8 @@ android { applicationId = "dev.castarr.tv" minSdk = 26 targetSdk = 35 - versionCode = 1 - versionName = "0.1.0" + versionCode = 2 + versionName = "0.1.1" } // Release signing from environment (see ~/.keys/castarr-release.env on the @@ -32,7 +32,7 @@ android { buildTypes { release { isMinifyEnabled = true - proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") + proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") if (storeFileEnv != null) { signingConfig = signingConfigs.getByName("release") } diff --git a/app/src/main/java/dev/castarr/tv/MainActivity.kt b/app/src/main/java/dev/castarr/tv/MainActivity.kt index d2b27e8..2d6a623 100644 --- a/app/src/main/java/dev/castarr/tv/MainActivity.kt +++ b/app/src/main/java/dev/castarr/tv/MainActivity.kt @@ -153,9 +153,9 @@ class MainActivity : Activity(), ControlServer.Listener { override fun onTogglePlay() = playerController.toggle() - override fun onPause() = playerController.pause() + override fun onPauseCast() = playerController.pause() - override fun onResume() = playerController.resume() + override fun onResumeCast() = playerController.resume() override fun onStopCast() = playerController.stop() diff --git a/app/src/main/java/dev/castarr/tv/server/ControlServer.kt b/app/src/main/java/dev/castarr/tv/server/ControlServer.kt index 9c6e24c..11177f5 100644 --- a/app/src/main/java/dev/castarr/tv/server/ControlServer.kt +++ b/app/src/main/java/dev/castarr/tv/server/ControlServer.kt @@ -27,8 +27,8 @@ class ControlServer( interface Listener { fun onPlay(url: String, name: String, group: String) fun onTogglePlay() - fun onPause() - fun onResume() + fun onPauseCast() + fun onResumeCast() fun onStopCast() fun onSeek(deltaSeconds: Long) fun onVolume(value: Float) @@ -176,8 +176,8 @@ class ControlServer( ) } "toggle" -> post { listener.onTogglePlay() } - "pause" -> post { listener.onPause() } - "resume" -> post { listener.onResume() } + "pause" -> post { listener.onPauseCast() } + "resume" -> post { listener.onResumeCast() } "stop" -> post { listener.onStopCast() } "seek" -> post { listener.onSeek(msg.optLong("delta")) } "volume" -> post { listener.onVolume(msg.optDouble("value", 1.0).toFloat().coerceIn(0f, 1f)) }