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 <noreply@anthropic.com>
This commit is contained in:
2026-08-25 00:48:39 +02:00
parent db5e909028
commit fb7803e6fb
3 changed files with 9 additions and 9 deletions

View File

@@ -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")
}

View File

@@ -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()

View File

@@ -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)) }