Merge "Settings crashed by a null worker" into rvc-dev am: e189ac522e

Change-Id: Ia747117acf1a8d2e7a77049a013fb777e1ab64b9
This commit is contained in:
tim peng
2020-04-08 03:36:11 +00:00
committed by Automerger Merge Worker
2 changed files with 15 additions and 0 deletions

View File

@@ -25,6 +25,7 @@ import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.media.session.MediaController; import android.media.session.MediaController;
import android.net.Uri; import android.net.Uri;
import android.util.Log;
import androidx.core.graphics.drawable.IconCompat; import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice; import androidx.slice.Slice;
@@ -104,6 +105,10 @@ public class MediaOutputIndicatorSlice implements CustomSliceable {
@Override @Override
public void onNotifyChange(Intent i) { public void onNotifyChange(Intent i) {
if (getWorker() == null) {
Log.d(TAG, "onNotifyChange: Worker is null");
return;
}
final MediaController mediaController = getWorker().getActiveLocalMediaController(); final MediaController mediaController = getWorker().getActiveLocalMediaController();
final Intent intent = new Intent() final Intent intent = new Intent()
.setPackage(Utils.SETTINGS_PACKAGE_NAME) .setPackage(Utils.SETTINGS_PACKAGE_NAME)

View File

@@ -21,7 +21,9 @@ import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDIC
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -190,6 +192,14 @@ public class MediaOutputIndicatorSliceTest {
assertThat(metadata.isErrorSlice()).isTrue(); assertThat(metadata.isErrorSlice()).isTrue();
} }
@Test
public void onNotifyChange_noWorker_doNothing() {
sMediaOutputIndicatorWorker = null;
mMediaOutputIndicatorSlice.onNotifyChange(new Intent());
verify(mContext, never()).startActivity(any());
}
@Test @Test
public void onNotifyChange_withActiveLocalMedia_verifyIntentExtra() { public void onNotifyChange_withActiveLocalMedia_verifyIntentExtra() {
when(mMediaController.getSessionToken()).thenReturn(mToken); when(mMediaController.getSessionToken()).thenReturn(mToken);