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

Commit ab066639 authored by Geoffrey Pitsch's avatar Geoffrey Pitsch Committed by android-build-merger
Browse files

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

am: 63750689

Change-Id: I9b90d07b011c019da8b24f17ded6d53742c17a53
parents ec3c484a 63750689
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -228,6 +228,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G
        // Settings button.
        final TextView settingsButton = (TextView) findViewById(R.id.more_settings);
        if (mAppUid >= 0 && onSettingsClick != null) {
            settingsButton.setVisibility(View.VISIBLE);
            final int appUidF = mAppUid;
            settingsButton.setOnClickListener(
                    (View view) -> {
+10 −6
Original line number Diff line number Diff line
@@ -5773,12 +5773,16 @@ public class StatusBar extends SystemUI implements DemoMode,
                    ServiceManager.getService(Context.NOTIFICATION_SERVICE));
            final String pkg = sbn.getPackageName();
            NotificationInfo info = (NotificationInfo) gutsView;
            final NotificationInfo.OnSettingsClickListener onSettingsClick = (View v,
                    NotificationChannel channel, int appUid) -> {
            // Settings link is only valid for notifications that specify a user, unless this is the
            // 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);
                    guts.resetFalsingCheck();
                    startAppNotificationSettingsActivity(pkg, appUid, channel);
                };
            }
            final View.OnClickListener onDoneClick = (View v) -> {
                saveAndCloseNotificationMenu(info, row, guts, v);
            };
+23 −0
Original line number Diff line number Diff line
@@ -205,6 +205,29 @@ public class NotificationInfoTest extends SysuiTestCase {
        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
    public void testOnClickListenerPassesNullChannelForBundle() throws Exception {
        final CountDownLatch latch = new CountDownLatch(1);