From cc184e4e12cf04da8c9b9fc7115e1fc5987a48be Mon Sep 17 00:00:00 2001 From: Floens Date: Sun, 21 Jan 2018 22:00:55 +0100 Subject: [PATCH] multiimageview: fix rare crash on mediaPlayer.getTrackInfo() just android things, random illegalstateexceptions on the videoview, just catch it and return a default value. --- .../floens/chan/ui/view/MultiImageView.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java b/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java index c48d418f..7ebc7a9e 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java @@ -411,16 +411,22 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener } private boolean hasMediaPlayerAudioTracks(MediaPlayer mediaPlayer) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - for (MediaPlayer.TrackInfo trackInfo : mediaPlayer.getTrackInfo()) { - if (trackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO) { - return true; + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + for (MediaPlayer.TrackInfo trackInfo : mediaPlayer.getTrackInfo()) { + if (trackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO) { + return true; + } } - } - return false; - } else { - // It'll just show the icon without doing anything. Remove when 4.0 is dropped. + return false; + } else { + // It'll just show the icon without doing anything. Remove when 4.0 is dropped. + return true; + } + } catch (IllegalStateException e) { + // getTrackInfo() raises an IllegalStateException on some devices. + // Return a default value. return true; } }