Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70b962a8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Handle null audio attributes" into main

parents 987d14b8 d6c932cd
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -101,6 +101,8 @@ public class SoundPreferenceController extends NotificationPreferenceController
    public boolean handlePreferenceTreeClick(Preference preference) {
        if (KEY_SOUND.equals(preference.getKey()) && mFragment != null) {
            NotificationSoundPreference pref = (NotificationSoundPreference) preference;
            // default to notification
            pref.setRingtoneType(RingtoneManager.TYPE_NOTIFICATION);
            if (mChannel != null && mChannel.getAudioAttributes() != null) {
                if (USAGE_ALARM == mChannel.getAudioAttributes().getUsage()) {
                    pref.setRingtoneType(RingtoneManager.TYPE_ALARM);
+20 −0
Original line number Diff line number Diff line
@@ -302,6 +302,26 @@ public class SoundPreferenceControllerTest {
                        RingtoneManager.EXTRA_RINGTONE_TYPE, 0));
    }

    @Test
    public void testOnPreferenceTreeClick_noAudioAttributes() {
        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
        NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_HIGH);
        channel.setSound(null, null);
        mController.onResume(appRow, channel, null, null, null, null, null);

        AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
        NotificationSoundPreference pref =
                spy(new NotificationSoundPreference(mContext, attributeSet));
        pref.setKey(mController.getPreferenceKey());
        mController.handlePreferenceTreeClick(pref);

        ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
        verify(pref, times(1)).onPrepareRingtonePickerIntent(intentArgumentCaptor.capture());
        assertEquals(RingtoneManager.TYPE_NOTIFICATION,
                intentArgumentCaptor.getValue().getIntExtra(
                        RingtoneManager.EXTRA_RINGTONE_TYPE, 0));
    }

    @Test
    public void testOnActivityResult() {
        NotificationSoundPreference pref = mock(NotificationSoundPreference.class);