From 8927993b0315887914c2b20101bebc8ca7614713 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Wed, 22 Aug 2018 03:41:18 -0700 Subject: [PATCH] Prevent a Demo app NPE on Android TV The options menu is not available on Android TV, which triggers a null pointer exception whenever a sample is chosen. This CL is a temporary fix until we rework the UI to not use an options menu. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=209742076 --- .../android/exoplayer2/demo/SampleChooserActivity.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java index f683e9900f..7dc7890020 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java @@ -22,6 +22,7 @@ import android.content.res.AssetManager; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; +import android.support.annotation.Nullable; import android.util.JsonReader; import android.util.Log; import android.view.Menu; @@ -162,8 +163,8 @@ public class SampleChooserActivity extends Activity startActivity( sample.buildIntent( /* context= */ this, - preferExtensionDecodersMenuItem.isChecked(), - randomAbrMenuItem.isChecked() + isNonNullAndChecked(preferExtensionDecodersMenuItem), + isNonNullAndChecked(randomAbrMenuItem) ? PlayerActivity.ABR_ALGORITHM_RANDOM : PlayerActivity.ABR_ALGORITHM_DEFAULT)); return true; @@ -198,6 +199,11 @@ public class SampleChooserActivity extends Activity return 0; } + private static boolean isNonNullAndChecked(@Nullable MenuItem menuItem) { + // Temporary workaround for layouts that do not inflate the options menu. + return menuItem != null && menuItem.isChecked(); + } + private final class SampleListLoader extends AsyncTask> { private boolean sawError;