From 11436d8e443047f9791f9d64d030d7cb24aad833 Mon Sep 17 00:00:00 2001 From: Yuriy Liskov Date: Mon, 19 May 2025 10:03:48 +0300 Subject: [PATCH] crash fixes --- .../models/playback/controllers/PlayerUIController.java | 4 ++++ .../models/playback/controllers/VideoStateController.java | 4 ++++ .../exoplayer2/video/VideoFrameReleaseTimeHelper.java | 8 +++++++- .../ui/search/tags/vineyard/SearchTagsFragmentBase.java | 3 ++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/PlayerUIController.java b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/PlayerUIController.java index 59d34d49d..4655a344d 100644 --- a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/PlayerUIController.java +++ b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/PlayerUIController.java @@ -60,6 +60,10 @@ public class PlayerUIController extends BasePlayerController { private long mOverlayHideTimeMs; private final Runnable mSuggestionsResetHandler = () -> getPlayer().resetSuggestedPosition(); private final Runnable mUiAutoHideHandler = () -> { + if (getPlayer() == null) { + return; + } + // Playing the video and dialog overlay isn't shown if (getPlayer().isPlaying() && !getAppDialogPresenter().isDialogShown()) { if (getPlayer().isControlsShown()) { // don't hide when suggestions is shown diff --git a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/VideoStateController.java b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/VideoStateController.java index 7ac20d5e3..c0df8bc2f 100644 --- a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/VideoStateController.java +++ b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/VideoStateController.java @@ -510,6 +510,10 @@ public class VideoStateController extends BasePlayerController { } private void restoreSpeedAndPositionIfNeeded() { + if (getPlayer() == null) { + return; + } + Video item = getVideo(); boolean liveEnd = isLiveEnd(); diff --git a/exoplayer-amzn-2.10.6/library/core/src/main/java/com/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper.java b/exoplayer-amzn-2.10.6/library/core/src/main/java/com/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper.java index caa79d7c1..2fe0a5c3e 100644 --- a/exoplayer-amzn-2.10.6/library/core/src/main/java/com/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper.java +++ b/exoplayer-amzn-2.10.6/library/core/src/main/java/com/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper.java @@ -256,7 +256,13 @@ public final class VideoFrameReleaseTimeHelper { @Override public void onDisplayChanged(int displayId) { if (displayId == Display.DEFAULT_DISPLAY) { - updateDefaultDisplayRefreshRateParams(); + // MOD: swallow an exception + try { + updateDefaultDisplayRefreshRateParams(); + } catch (IllegalStateException e) { + // IllegalStateException: Unable to locate mode -1 + e.printStackTrace(); + } } } diff --git a/smarttubetv/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/search/tags/vineyard/SearchTagsFragmentBase.java b/smarttubetv/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/search/tags/vineyard/SearchTagsFragmentBase.java index 918ff9c7b..345655c7c 100644 --- a/smarttubetv/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/search/tags/vineyard/SearchTagsFragmentBase.java +++ b/smarttubetv/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/search/tags/vineyard/SearchTagsFragmentBase.java @@ -347,7 +347,8 @@ public abstract class SearchTagsFragmentBase extends SearchSupportFragment // speech recognition, and then you can simply call: try { SpeechUtil.redirectUserToGoogleAppOnPlayStore(getContext()); - } catch (ActivityNotFoundException e) { + } catch (ActivityNotFoundException | NullPointerException e) { + // NullPointerException: android.os.Parcel.readException (Parcel.java:1478) e.printStackTrace(); } }