Silence the NPE if no FM tuner audio device is configured
Bug: 134499447
Test: mmma -j packages/apps/Car/Radio/
Change-Id: I198099113d5d1ae3e90cb5b2933da47de1ecb28b
diff --git a/src/com/android/car/radio/platform/RadioTunerExt.java b/src/com/android/car/radio/platform/RadioTunerExt.java
index dcbebc0..bee6e92 100644
--- a/src/com/android/car/radio/platform/RadioTunerExt.java
+++ b/src/com/android/car/radio/platform/RadioTunerExt.java
@@ -79,15 +79,25 @@
mTuner = Objects.requireNonNull(tuner);
cbExt.setTuneFailedCallback(this::onTuneFailed);
cbExt.setProgramInfoCallback(this::onProgramInfoChanged);
- mHwAudioSource = new HwAudioSource.Builder()
- .setAudioDeviceInfo(findTunerDevice(context, null))
+
+ final AudioDeviceInfo tunerDevice = findTunerDevice(context, null);
+ if (tunerDevice == null) {
+ Log.e(TAG, "No TUNER_DEVICE found on board");
+ } else {
+ mHwAudioSource = new HwAudioSource.Builder()
+ .setAudioDeviceInfo(tunerDevice)
.setAudioAttributes(new AudioAttributes.Builder()
- .setUsage(AudioAttributes.USAGE_MEDIA)
- .build())
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .build())
.build();
+ }
}
public boolean setMuted(boolean muted) {
+ if (mHwAudioSource == null) {
+ Log.e(TAG, "No TUNER_DEVICE found on board");
+ return false;
+ }
synchronized (mLock) {
if (muted) {
mHwAudioSource.stop();