From 9f217690fbe4cc6bcd007c8802f5e1a7af20ed59 Mon Sep 17 00:00:00 2001 From: Tim Peng Date: Wed, 3 Mar 2021 16:15:07 +0800 Subject: [PATCH] Protect possible NPE in MediaOutputDialogReceiver -Do nothing if package name is empty Bug: 181654879 Test: manual test Change-Id: I4c36a811d71e28e800d0b8398c998da3263218d8 --- .../media/dialog/MediaOutputDialogReceiver.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogReceiver.kt b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogReceiver.kt index bd3f5a6d82a5b..7fb7d8b0eaa53 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogReceiver.kt +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogReceiver.kt @@ -20,9 +20,13 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.text.TextUtils +import android.util.Log import com.android.settingslib.media.MediaOutputConstants import javax.inject.Inject +private const val TAG = "MediaOutputDlgReceiver" +private val DEBUG = Log.isLoggable(TAG, Log.DEBUG) + /** * BroadcastReceiver for handling media output intent */ @@ -32,8 +36,13 @@ class MediaOutputDialogReceiver @Inject constructor( override fun onReceive(context: Context, intent: Intent) { if (TextUtils.equals(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG, intent.action)) { - mediaOutputDialogFactory.create( - intent.getStringExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME), false) + val packageName: String? = + intent.getStringExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME) + if (!TextUtils.isEmpty(packageName)) { + mediaOutputDialogFactory.create(packageName!!, false) + } else if (DEBUG) { + Log.e(TAG, "Unable to launch media output dialog. Package name is empty.") + } } } }