From 1133c61ba26fb6703f172731d14639cb6e4238e3 Mon Sep 17 00:00:00 2001 From: y20k Date: Tue, 16 Mar 2021 15:05:36 +0100 Subject: [PATCH] fixes a crash where playerController was not initialized --- app/build.gradle | 4 ++-- app/src/main/java/org/y20k/transistor/PlayerFragment.kt | 4 ++-- app/src/main/java/org/y20k/transistor/helpers/FileHelper.kt | 1 + .../main/java/org/y20k/transistor/playback/PlayerService.kt | 3 +++ metadata/en-US/changelogs/84.txt | 6 ++++++ 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 metadata/en-US/changelogs/84.txt diff --git a/app/build.gradle b/app/build.gradle index 040e205a..e4bab738 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId 'org.y20k.transistor' minSdkVersion 25 targetSdkVersion 30 - versionCode 83 - versionName '4.0.12' + versionCode 84 + versionName '4.0.13' resConfigs "en", "ar", "ca", "cs","de", "el", "eo", "es", "eu", "fr", "he", "hr", "id", "in", "it", "ja", "kab", "nb-rNO", "nl", "pa", "pl", "pt", "pt-rBR", "ru", "sk", "sl", "sr", "th", "tr", "uk", "zh-rCN" } diff --git a/app/src/main/java/org/y20k/transistor/PlayerFragment.kt b/app/src/main/java/org/y20k/transistor/PlayerFragment.kt index c5ad3016..cbd724ac 100644 --- a/app/src/main/java/org/y20k/transistor/PlayerFragment.kt +++ b/app/src/main/java/org/y20k/transistor/PlayerFragment.kt @@ -199,7 +199,7 @@ class PlayerFragment: Fragment(), CoroutineScope, override fun onStop() { super.onStop() // (see "stay in sync with the MediaSession") - playerController.unregisterCallback(mediaControllerCallback) + if (this::playerController.isInitialized) playerController.unregisterCallback(mediaControllerCallback) mediaBrowser.disconnect() playerServiceConnected = false } @@ -665,7 +665,7 @@ class PlayerFragment: Fragment(), CoroutineScope, private val periodicProgressUpdateRequestRunnable: Runnable = object : Runnable { override fun run() { // request current playback position - playerController.requestProgressUpdate(resultReceiver) + if (this@PlayerFragment::playerController.isInitialized) playerController.requestProgressUpdate(resultReceiver) // use the handler to start runnable again after specified delay handler.postDelayed(this, 500) } diff --git a/app/src/main/java/org/y20k/transistor/helpers/FileHelper.kt b/app/src/main/java/org/y20k/transistor/helpers/FileHelper.kt index d76bf3d3..6dfd57a9 100644 --- a/app/src/main/java/org/y20k/transistor/helpers/FileHelper.kt +++ b/app/src/main/java/org/y20k/transistor/helpers/FileHelper.kt @@ -256,6 +256,7 @@ object FileHelper { true -> try { collection = getCustomGson().fromJson(json, collection::class.java) } catch (e: Exception) { + LogHelper.e(TAG, "Error Reading collection.\nContent: $json") e.printStackTrace() } } diff --git a/app/src/main/java/org/y20k/transistor/playback/PlayerService.kt b/app/src/main/java/org/y20k/transistor/playback/PlayerService.kt index d4cf5c65..9d9c36d0 100644 --- a/app/src/main/java/org/y20k/transistor/playback/PlayerService.kt +++ b/app/src/main/java/org/y20k/transistor/playback/PlayerService.kt @@ -310,6 +310,9 @@ class PlayerService(): MediaBrowserServiceCompat() { if (player.isPlaying) { //player.seekTo(player.bufferedPosition) notificationHelper.showNotificationForPlayer(player) + } else { + // reset metadata + updateMetadata(null) } } diff --git a/metadata/en-US/changelogs/84.txt b/metadata/en-US/changelogs/84.txt new file mode 100644 index 00000000..6d5da60a --- /dev/null +++ b/metadata/en-US/changelogs/84.txt @@ -0,0 +1,6 @@ +# v4.0.13 - Andy Warhol + +**2021-03-16** + +- tweaks the "currently playing" display +- fixes a rare crash