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

Commit 18cbccbf authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Inline Controls hide Settings button when no appropriate link." into oc-dev

parents 2075b09c 029a3fa6
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -228,6 +228,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G
        // Settings button.
        // Settings button.
        final TextView settingsButton = (TextView) findViewById(R.id.more_settings);
        final TextView settingsButton = (TextView) findViewById(R.id.more_settings);
        if (mAppUid >= 0 && onSettingsClick != null) {
        if (mAppUid >= 0 && onSettingsClick != null) {
            settingsButton.setVisibility(View.VISIBLE);
            final int appUidF = mAppUid;
            final int appUidF = mAppUid;
            settingsButton.setOnClickListener(
            settingsButton.setOnClickListener(
                    (View view) -> {
                    (View view) -> {
+10 −6
Original line number Original line Diff line number Diff line
@@ -5769,12 +5769,16 @@ public class StatusBar extends SystemUI implements DemoMode,
                    ServiceManager.getService(Context.NOTIFICATION_SERVICE));
                    ServiceManager.getService(Context.NOTIFICATION_SERVICE));
            final String pkg = sbn.getPackageName();
            final String pkg = sbn.getPackageName();
            NotificationInfo info = (NotificationInfo) gutsView;
            NotificationInfo info = (NotificationInfo) gutsView;
            final NotificationInfo.OnSettingsClickListener onSettingsClick = (View v,
            // Settings link is only valid for notifications that specify a user, unless this is the
                    NotificationChannel channel, int appUid) -> {
            // system user.
            NotificationInfo.OnSettingsClickListener onSettingsClick = null;
            if (!userHandle.equals(UserHandle.ALL) || mCurrentUserId == UserHandle.USER_SYSTEM) {
                onSettingsClick = (View v, NotificationChannel channel, int appUid) -> {
                    mMetricsLogger.action(MetricsEvent.ACTION_NOTE_INFO);
                    mMetricsLogger.action(MetricsEvent.ACTION_NOTE_INFO);
                    guts.resetFalsingCheck();
                    guts.resetFalsingCheck();
                    startAppNotificationSettingsActivity(pkg, appUid, channel);
                    startAppNotificationSettingsActivity(pkg, appUid, channel);
                };
                };
            }
            final View.OnClickListener onDoneClick = (View v) -> {
            final View.OnClickListener onDoneClick = (View v) -> {
                saveAndCloseNotificationMenu(info, row, guts, v);
                saveAndCloseNotificationMenu(info, row, guts, v);
            };
            };
+23 −0
Original line number Original line Diff line number Diff line
@@ -205,6 +205,29 @@ public class NotificationInfoTest extends SysuiTestCase {
        assertEquals(0, latch.getCount());
        assertEquals(0, latch.getCount());
    }
    }


    @Test
    public void testBindNotification_SettingsButtonInvisibleWhenNoClickListener() throws Exception {
        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                TEST_PACKAGE_NAME, Arrays.asList(mNotificationChannel),
                null, null, null, null);
        final TextView settingsButton =
                (TextView) mNotificationInfo.findViewById(R.id.more_settings);
        assertTrue(settingsButton.getVisibility() != View.VISIBLE);
    }

    @Test
    public void testBindNotification_SettingsButtonReappersAfterSecondBind() throws Exception {
        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                TEST_PACKAGE_NAME, Arrays.asList(mNotificationChannel),
                null, null, null, null);
        mNotificationInfo.bindNotification(mMockPackageManager, mMockINotificationManager,
                TEST_PACKAGE_NAME, Arrays.asList(mNotificationChannel),
                (View v, NotificationChannel c, int appUid) -> {}, null, null, null);
        final TextView settingsButton =
                (TextView) mNotificationInfo.findViewById(R.id.more_settings);
        assertEquals(View.VISIBLE, settingsButton.getVisibility());
    }

    @Test
    @Test
    public void testOnClickListenerPassesNullChannelForBundle() throws Exception {
    public void testOnClickListenerPassesNullChannelForBundle() throws Exception {
        final CountDownLatch latch = new CountDownLatch(1);
        final CountDownLatch latch = new CountDownLatch(1);