multiimageview: fix rare crash on mediaPlayer.getTrackInfo()

just android things, random illegalstateexceptions on the videoview,
just catch it and return a default value.
refactor-toolbar
Floens 8 years ago
parent 670d1ffdae
commit cc184e4e12
  1. 22
      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) { private boolean hasMediaPlayerAudioTracks(MediaPlayer mediaPlayer) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { try {
for (MediaPlayer.TrackInfo trackInfo : mediaPlayer.getTrackInfo()) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
if (trackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO) { for (MediaPlayer.TrackInfo trackInfo : mediaPlayer.getTrackInfo()) {
return true; if (trackInfo.getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO) {
return true;
}
} }
}
return false; return false;
} else { } else {
// It'll just show the icon without doing anything. Remove when 4.0 is dropped. // 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; return true;
} }
} }

Loading…
Cancel
Save