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

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

Merge "Add dismiss button in Conversation view." into main

parents f1c5361d 00731515
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -390,6 +390,16 @@
            android:paddingStart="4dp"
            android:paddingEnd="4dp"
        >
            <TextView
                android:id="@+id/inline_dismiss"
                android:text="@string/notification_inline_dismiss"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:gravity="center_vertical"
                android:minWidth="@dimen/notification_importance_toggle_size"
                android:minHeight="@dimen/notification_importance_toggle_size"
                style="@style/TextAppearance.NotificationInfo.Button"/>
            <TextView
                android:id="@+id/done"
                android:text="@string/inline_ok_button"
+6 −1
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ public class NotificationConversationInfo extends LinearLayout implements
            @Background Handler bgHandler,
            OnConversationSettingsClickListener onConversationSettingsClickListener,
            Optional<BubblesManager> bubblesManagerOptional,
            ShadeController shadeController) {
            ShadeController shadeController, boolean isDismissable, OnClickListener onCloseClick) {
        mINotificationManager = iNotificationManager;
        mPeopleSpaceWidgetManager = peopleSpaceWidgetManager;
        mOnUserInteractionCallback = onUserInteractionCallback;
@@ -263,6 +263,11 @@ public class NotificationConversationInfo extends LinearLayout implements
        bindHeader();
        bindActions();

        View dismissButton = findViewById(R.id.inline_dismiss);
        dismissButton.setOnClickListener(onCloseClick);
        dismissButton.setVisibility(dismissButton.hasOnClickListeners() && isDismissable
                ? VISIBLE : GONE);

        View done = findViewById(R.id.done);
        done.setOnClickListener(mOnDone);
        done.setAccessibilityDelegate(mGutsContainer.getAccessibilityDelegate());
+3 −1
Original line number Diff line number Diff line
@@ -608,7 +608,9 @@ public class NotificationGutsManager implements NotifGutsViewManager, CoreStarta
                mBgHandler,
                onConversationSettingsListener,
                mBubblesManagerOptional,
                mShadeController);
                mShadeController,
                row.canViewBeDismissed(),
                row.getCloseButtonOnClickListener(row));
    }

    /**
+24 −7
Original line number Diff line number Diff line
@@ -171,6 +171,8 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
    private ConversationIconFactory mIconFactory;
    @Mock
    private Notification.BubbleMetadata mBubbleMetadata;
    @Mock
    private View.OnClickListener mCloseListener;
    private Handler mTestHandler;
    @Rule
    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@@ -298,7 +300,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
                true,
                mTestHandler,
                mTestHandler, null, Optional.of(mBubblesManager),
                mShadeController);
                mShadeController, true, mCloseListener);
    }

    @Test
@@ -402,7 +404,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
                true,
                mTestHandler,
                mTestHandler, null, Optional.of(mBubblesManager),
                mShadeController);
                mShadeController, true, null);
        final TextView nameView = mNotificationInfo.findViewById(R.id.delegate_name);
        assertEquals(VISIBLE, nameView.getVisibility());
        assertTrue(nameView.getText().toString().contains("Proxied"));
@@ -442,7 +444,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
                true,
                mTestHandler,
                mTestHandler, null, Optional.of(mBubblesManager),
                mShadeController);
                mShadeController, true, null);

        final View feedback = mNotificationInfo.findViewById(R.id.feedback);
        assertEquals(VISIBLE, feedback.getVisibility());
@@ -484,7 +486,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
                true,
                mTestHandler,
                mTestHandler, null, Optional.of(mBubblesManager),
                mShadeController);
                mShadeController, true, null);

        final View settingsButton = mNotificationInfo.findViewById(R.id.info);
        settingsButton.performClick();
@@ -524,7 +526,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
                false,
                mTestHandler,
                mTestHandler, null, Optional.of(mBubblesManager),
                mShadeController);
                mShadeController, true, null);
        final View settingsButton = mNotificationInfo.findViewById(R.id.info);
        assertTrue(settingsButton.getVisibility() != View.VISIBLE);
    }
@@ -601,7 +603,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
                true,
                mTestHandler,
                mTestHandler, null, Optional.of(mBubblesManager),
                mShadeController);
                mShadeController, true, null);
        assertThat(((TextView) mNotificationInfo.findViewById(R.id.priority_summary)).getText())
                .isEqualTo(mContext.getString(
                        R.string.notification_channel_summary_priority_dnd));
@@ -633,7 +635,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
                true,
                mTestHandler,
                mTestHandler, null, Optional.of(mBubblesManager),
                mShadeController);
                mShadeController, true, null);
        assertThat(((TextView) mNotificationInfo.findViewById(R.id.priority_summary)).getText())
                .isEqualTo(mContext.getString(
                        R.string.notification_channel_summary_priority_baseline));
@@ -1018,4 +1020,19 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
        // THEN the user is not presented with the People Tile pinning request
        verify(mPeopleSpaceWidgetManager, never()).requestPinAppWidget(eq(mShortcutInfo), any());
    }


    @Test
    public void testDismiss() throws Exception {
        doStandardBind();

        View dismiss = mNotificationInfo.findViewById(R.id.inline_dismiss);
        dismiss.performClick();
        mTestableLooper.processAllMessages();

        // Verify action performed on button click
        verify(mCloseListener).onClick(any());

    }

}