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

Commit 2ffbb747 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Handle spanned conversation labels

Test: Robotests
Fixes: 194446117
Change-Id: If21f727e00b181f0da127b09e5a1c46ec3257836
parent c97269a9
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -233,8 +233,13 @@ public class RecentConversationsPreferenceController extends AbstractPreferenceC
                private final Collator sCollator = Collator.getInstance();
                @Override
                public int compare(ConversationChannel o1, ConversationChannel o2) {
                    int labelComparison = sCollator.compare(o1.getShortcutInfo().getLabel(),
                            o2.getShortcutInfo().getLabel());
                    int labelComparison = 0;
                    if (o1.getShortcutInfo().getLabel() != null
                            && o2.getShortcutInfo().getLabel() != null) {
                        labelComparison = sCollator.compare(
                                o1.getShortcutInfo().getLabel().toString(),
                                o2.getShortcutInfo().getLabel().toString());
                    }

                    if (labelComparison == 0) {
                        return o1.getNotificationChannel().getId().compareTo(
+33 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import android.content.pm.ShortcutInfo;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.Settings;
import android.text.SpannedString;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
@@ -338,4 +339,36 @@ public class RecentConversationsPreferenceControllerTest {
        // one for the preference, none for 'clear all'
        verify(outerContainer, times(1)).addPreference(any());
    }

    @Test
    public void testSpans() {
        ShortcutInfo si = mock(ShortcutInfo.class);
        when(si.getLabel()).thenReturn(new SpannedString("hello"));
        ConversationChannel ccw = new ConversationChannel(si, 6,
                new NotificationChannel("hi", "hi", 4),
                null, 7,
                true /* hasactivenotifs */);
        ShortcutInfo si2 = mock(ShortcutInfo.class);
        when(si2.getLabel()).thenReturn("hello");
        ConversationChannel ccw2 = new ConversationChannel(si2, 6,
                new NotificationChannel("hi2", "hi2", 4),
                null, 7,
                true /* hasactivenotifs */);
        // no crash
        mController.mConversationComparator.compare(ccw, ccw2);
    }

    @Test
    public void testNullSpans() {
        ConversationChannel ccw = new ConversationChannel(mock(ShortcutInfo.class), 6,
                new NotificationChannel("hi", "hi", 4),
                null, 7,
                true /* hasactivenotifs */);
        ConversationChannel ccw2 = new ConversationChannel(mock(ShortcutInfo.class), 6,
                new NotificationChannel("hi2", "hi2", 4),
                null, 7,
                true /* hasactivenotifs */);
        // no crash
        mController.mConversationComparator.compare(ccw, ccw2);
    }
}