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

Commit a1b016fd authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Make summary text consistent across screens

Test: ConversationHeaderPreferenceControllerTest
Fixes: 409368285
Flag: EXEMPT bug fix
Change-Id: I79588ea3bb77b4a08cc05703313e07d5f19c0257
parent f7356bda
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.notification.NotificationBackend;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.widget.LayoutPreference;
@@ -44,8 +45,9 @@ public class ConversationHeaderPreferenceController extends NotificationPreferen
    private EntityHeaderController mHeaderController;
    private boolean mStarted = false;

    public ConversationHeaderPreferenceController(Context context, DashboardFragment fragment) {
        super(context, null);
    public ConversationHeaderPreferenceController(Context context, DashboardFragment fragment,
            NotificationBackend backend) {
        super(context, backend);
        mFragment = fragment;
    }

@@ -99,20 +101,20 @@ public class ConversationHeaderPreferenceController extends NotificationPreferen
    @Override
    public CharSequence getSummary() {
        if (mChannel != null && !isDefaultChannel()) {
            CharSequence parentChannelLabel = mBackend.getChannel(mAppRow.pkg, mAppRow.uid,
                    mChannel.getParentChannelId()).getName();
            if (mChannelGroup != null
                    && !TextUtils.isEmpty(mChannelGroup.getName())) {
                final SpannableStringBuilder summary = new SpannableStringBuilder();
                BidiFormatter bidi = BidiFormatter.getInstance();
                summary.append(bidi.unicodeWrap(mAppRow.label.toString()));
                summary.append(bidi.unicodeWrap(parentChannelLabel));
                summary.append(bidi.unicodeWrap(mContext.getText(
                        R.string.notification_header_divider_symbol_with_spaces)));
                summary.append(bidi.unicodeWrap(mChannelGroup.getName().toString()));
                return summary.toString();
            } else {
                return mAppRow.label.toString();
                return parentChannelLabel;
            }
        } else if (mChannelGroup != null) {
            return mAppRow.label.toString();
        } else {
            return "";
        }
+1 −1
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ public class ConversationNotificationSettings extends NotificationSettings {
    @Override
    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
        mControllers = new ArrayList<>();
        mControllers.add(new ConversationHeaderPreferenceController(context, this));
        mControllers.add(new ConversationHeaderPreferenceController(context, this, mBackend));
        mControllers.add(new BlockPreferenceController(context, mDependentFieldListener, mBackend));
        mControllers.add(new ConversationPriorityPreferenceController(
                context, mBackend, mDependentFieldListener));
+12 −4
Original line number Diff line number Diff line
@@ -70,6 +70,8 @@ public class ConversationHeaderPreferenceControllerTest {
    private LayoutPreference mPreference;
    @Mock
    private View mView;
    @Mock
    private NotificationBackend mBackend;

    @Before
    public void setUp() {
@@ -83,7 +85,7 @@ public class ConversationHeaderPreferenceControllerTest {
        FragmentActivity activity = mock(FragmentActivity.class);
        when(activity.getApplicationContext()).thenReturn(mContext);
        when(fragment.getActivity()).thenReturn(activity);
        mController = spy(new ConversationHeaderPreferenceController(mContext, fragment));
        mController = spy(new ConversationHeaderPreferenceController(mContext, fragment, mBackend));
        when(mPreference.findViewById(anyInt())).thenReturn(mView);
    }

@@ -134,22 +136,28 @@ public class ConversationHeaderPreferenceControllerTest {
    @Test
    public void testGetSummary() {
        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
        appRow.pkg = "pkg";
        appRow.uid = 123456;
        appRow.label = "bananas";
        when(mBackend.getChannel(appRow.pkg, appRow.uid, "parent")).thenReturn(
                new NotificationChannel("parent", "PARENT", 2));

        mController.onResume(appRow, null, null, null, null, null, null);
        assertEquals("", mController.getSummary());

        NotificationChannelGroup group = new NotificationChannelGroup("id", "name");
        mController.onResume(appRow, null, group, null, null, null, null);
        assertEquals(appRow.label, mController.getSummary());
        assertEquals("", mController.getSummary());

        NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE);
        channel.setConversationId("parent", "convo");
        mController.onResume(appRow, channel, group, null, null, null, null);
        assertTrue(mController.getSummary().toString().contains(group.getName()));
        assertTrue(mController.getSummary().toString().contains(appRow.label));
        assertTrue(mController.getSummary().toString().contains("PARENT"));

        mController.onResume(appRow, channel, null, null, null, null, null);
        assertFalse(mController.getSummary().toString().contains(group.getName()));
        assertTrue(mController.getSummary().toString().contains(appRow.label));
        assertTrue(mController.getSummary().toString().contains("PARENT"));

        NotificationChannel defaultChannel = new NotificationChannel(
                NotificationChannel.DEFAULT_CHANNEL_ID, "", IMPORTANCE_NONE);