Merge "Propagate mute event to both ring volume slices" into tm-qpr-dev

This commit is contained in:
Behnam Heydarshahi
2023-02-15 14:28:15 +00:00
committed by Android (Google) Code Review
2 changed files with 43 additions and 1 deletions

View File

@@ -115,7 +115,9 @@ public class VolumeSliceHelper {
for (Map.Entry<Uri, Integer> entry : sRegisteredUri.entrySet()) { for (Map.Entry<Uri, Integer> entry : sRegisteredUri.entrySet()) {
if (entry.getValue() == inputType) { if (entry.getValue() == inputType) {
context.getContentResolver().notifyChange(entry.getKey(), null /* observer */); context.getContentResolver().notifyChange(entry.getKey(), null /* observer */);
break; if (inputType != AudioManager.STREAM_RING) { // Two URIs are mapped to ring
break;
}
} }
} }
} }

View File

@@ -35,6 +35,7 @@ import android.net.Uri;
import com.android.settings.notification.MediaVolumePreferenceController; import com.android.settings.notification.MediaVolumePreferenceController;
import com.android.settings.notification.RingVolumePreferenceController; import com.android.settings.notification.RingVolumePreferenceController;
import com.android.settings.notification.SeparateRingVolumePreferenceController;
import com.android.settings.notification.VolumeSeekBarPreferenceController; import com.android.settings.notification.VolumeSeekBarPreferenceController;
import com.android.settingslib.SliceBroadcastRelay; import com.android.settingslib.SliceBroadcastRelay;
@@ -62,6 +63,7 @@ public class VolumeSliceHelperTest {
private Intent mIntent; private Intent mIntent;
private VolumeSeekBarPreferenceController mMediaController; private VolumeSeekBarPreferenceController mMediaController;
private VolumeSeekBarPreferenceController mRingController; private VolumeSeekBarPreferenceController mRingController;
private VolumeSeekBarPreferenceController mSeparateRingController;
@Before @Before
public void setUp() { public void setUp() {
@@ -70,6 +72,7 @@ public class VolumeSliceHelperTest {
when(mContext.getContentResolver()).thenReturn(mResolver); when(mContext.getContentResolver()).thenReturn(mResolver);
mMediaController = new MediaVolumePreferenceController(mContext); mMediaController = new MediaVolumePreferenceController(mContext);
mSeparateRingController = new SeparateRingVolumePreferenceController(mContext);
mRingController = new RingVolumePreferenceController(mContext); mRingController = new RingVolumePreferenceController(mContext);
mIntent = createIntent(AudioManager.VOLUME_CHANGED_ACTION) mIntent = createIntent(AudioManager.VOLUME_CHANGED_ACTION)
@@ -186,6 +189,43 @@ public class VolumeSliceHelperTest {
verify(mResolver, never()).notifyChange(mMediaController.getSliceUri(), null); verify(mResolver, never()).notifyChange(mMediaController.getSliceUri(), null);
} }
@Test
public void onReceive_ringStreamVolumeMuted_shouldNotifySeparateRing() {
final Intent intent = createIntent(AudioManager.STREAM_MUTE_CHANGED_ACTION)
.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, mRingController.getAudioStream());
registerIntentToUri(mRingController);
registerIntentToUri(mSeparateRingController);
VolumeSliceHelper.onReceive(mContext, intent);
verify(mResolver).notifyChange(mSeparateRingController.getSliceUri(), null);
}
@Test
public void onReceive_ringStreamVolumeMuted_shouldNotifyRing() {
final Intent intent = createIntent(AudioManager.STREAM_MUTE_CHANGED_ACTION)
.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, mRingController.getAudioStream());
registerIntentToUri(mRingController);
registerIntentToUri(mSeparateRingController);
VolumeSliceHelper.onReceive(mContext, intent);
verify(mResolver).notifyChange(mRingController.getSliceUri(), null);
}
@Test
public void onReceive_ringStreamVolumeMuted_shouldNotifyBothRings() {
final Intent intent = createIntent(AudioManager.STREAM_MUTE_CHANGED_ACTION)
.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, mRingController.getAudioStream());
registerIntentToUri(mRingController);
registerIntentToUri(mSeparateRingController);
VolumeSliceHelper.onReceive(mContext, intent);
verify(mResolver).notifyChange(mSeparateRingController.getSliceUri(), null);
verify(mResolver).notifyChange(mRingController.getSliceUri(), null);
}
@Test @Test
public void onReceive_streamVolumeMuted_shouldNotifyChange() { public void onReceive_streamVolumeMuted_shouldNotifyChange() {
final Intent intent = createIntent(AudioManager.STREAM_MUTE_CHANGED_ACTION) final Intent intent = createIntent(AudioManager.STREAM_MUTE_CHANGED_ACTION)