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

Commit c0fbdf45 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Merge cherrypicks of [9193293, 9193352, 9193734, 9193641, 9192591, 9193630] into qt-release

Change-Id: I34f06d8277b5d051cbe3f67a8c8512dbbe297a39
parents 57bb140b ec177f86
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.view.InputDevice;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceControl;
import android.view.ViewConfiguration;
import android.view.Window;
import android.view.WindowManagerGlobal;
@@ -528,6 +529,12 @@ public class Instrumentation {
            } while (mWaitingActivities.contains(aw));

            waitForEnterAnimationComplete(aw.activity);

            // Apply an empty transaction to ensure SF has a chance to update before
            // the Activity is ready (b/138263890).
            try (SurfaceControl.Transaction t = new SurfaceControl.Transaction()) {
                t.apply(true);
            }
            return aw.activity;
        }
    }
+8 −1
Original line number Diff line number Diff line
@@ -422,8 +422,15 @@ public class NotificationData {
            }
        }

        if (mSortedAndFiltered.size() == 1) {
            // HACK: We need the comparator to run on all children in order to set the
            // isHighPriority field. If there is only one child, then the comparison won't be run,
            // so we have to trigger it manually. Get rid of this code as soon as possible.
            mRankingComparator.compare(mSortedAndFiltered.get(0), mSortedAndFiltered.get(0));
        } else {
            Collections.sort(mSortedAndFiltered, mRankingComparator);
        }
    }

    public void dump(PrintWriter pw, String indent) {
        int filteredLen = mSortedAndFiltered.size();
+64 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static android.app.Notification.CATEGORY_CALL;
import static android.app.Notification.CATEGORY_EVENT;
import static android.app.Notification.CATEGORY_MESSAGE;
import static android.app.Notification.CATEGORY_REMINDER;
import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
import static android.app.NotificationManager.IMPORTANCE_LOW;
import static android.app.NotificationManager.IMPORTANCE_MIN;

@@ -62,6 +63,8 @@ import android.testing.TestableLooper;
import android.testing.TestableLooper.RunWithLooper;
import android.util.ArraySet;

import androidx.test.filters.SmallTest;

import com.android.systemui.Dependency;
import com.android.systemui.ForegroundServiceController;
import com.android.systemui.InitController;
@@ -84,8 +87,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;

import androidx.test.filters.SmallTest;

@SmallTest
@RunWith(AndroidTestingRunner.class)
@RunWithLooper
@@ -113,6 +114,7 @@ public class NotificationDataTest extends SysuiTestCase {
        MockitoAnnotations.initMocks(this);
        when(mMockStatusBarNotification.getUid()).thenReturn(UID_NORMAL);
        when(mMockStatusBarNotification.cloneLight()).thenReturn(mMockStatusBarNotification);
        when(mMockStatusBarNotification.getKey()).thenReturn("mock_key");

        when(mMockPackageManager.checkUidPermission(
                eq(Manifest.permission.NOTIFICATION_DURING_SETUP),
@@ -231,6 +233,7 @@ public class NotificationDataTest extends SysuiTestCase {
        Notification n = mMockStatusBarNotification.getNotification();
        n.flags = Notification.FLAG_FOREGROUND_SERVICE;
        NotificationEntry entry = new NotificationEntry(mMockStatusBarNotification);
        entry.setRow(mRow);
        mNotificationData.add(entry);
        Bundle override = new Bundle();
        override.putInt(OVERRIDE_VIS_EFFECTS, 255);
@@ -249,6 +252,7 @@ public class NotificationDataTest extends SysuiTestCase {
        n = nb.build();
        when(mMockStatusBarNotification.getNotification()).thenReturn(n);
        NotificationEntry entry = new NotificationEntry(mMockStatusBarNotification);
        entry.setRow(mRow);
        mNotificationData.add(entry);
        Bundle override = new Bundle();
        override.putInt(OVERRIDE_VIS_EFFECTS, 255);
@@ -262,6 +266,7 @@ public class NotificationDataTest extends SysuiTestCase {
    public void testIsExemptFromDndVisualSuppression_system() {
        initStatusBarNotification(false);
        NotificationEntry entry = new NotificationEntry(mMockStatusBarNotification);
        entry.setRow(mRow);
        entry.mIsSystemNotification = true;
        mNotificationData.add(entry);
        Bundle override = new Bundle();
@@ -276,6 +281,7 @@ public class NotificationDataTest extends SysuiTestCase {
    public void testIsNotExemptFromDndVisualSuppression_hiddenCategories() {
        initStatusBarNotification(false);
        NotificationEntry entry = new NotificationEntry(mMockStatusBarNotification);
        entry.setRow(mRow);
        entry.mIsSystemNotification = true;
        Bundle override = new Bundle();
        override.putInt(OVERRIDE_VIS_EFFECTS, NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT);
@@ -528,6 +534,62 @@ public class NotificationDataTest extends SysuiTestCase {
        assertEquals(-1, mNotificationData.mRankingComparator.compare(a, b));
    }

    @Test
    public void testSort_properlySetsIsTopBucket() {

        Notification notification = new Notification.Builder(mContext, "test")
                .build();
        StatusBarNotification sbn = new StatusBarNotification(
                "pkg",
                "pkg",
                0,
                "tag",
                0,
                0,
                notification,
                mContext.getUser(),
                "",
                0);

        Bundle override = new Bundle();
        override.putInt(OVERRIDE_IMPORTANCE, IMPORTANCE_DEFAULT);
        mNotificationData.rankingOverrides.put(sbn.getKey(), override);

        NotificationEntry entry = new NotificationEntry(sbn);
        entry.setRow(mRow);
        mNotificationData.add(entry);

        assertTrue(entry.isTopBucket());
    }

    @Test
    public void testSort_properlySetsIsNotTopBucket() {
        Notification notification = new Notification.Builder(mContext, "test")
                .build();
        StatusBarNotification sbn = new StatusBarNotification(
                "pkg",
                "pkg",
                0,
                "tag",
                0,
                0,
                notification,
                mContext.getUser(),
                "",
                0);

        Bundle override = new Bundle();
        override.putInt(OVERRIDE_IMPORTANCE, IMPORTANCE_LOW);
        mNotificationData.rankingOverrides.put(sbn.getKey(), override);

        NotificationEntry entry = new NotificationEntry(sbn);
        entry.setRow(mRow);

        mNotificationData.add(entry);

        assertFalse(entry.isTopBucket());
    }

    private void initStatusBarNotification(boolean allowDuringSetup) {
        Bundle bundle = new Bundle();
        bundle.putBoolean(Notification.EXTRA_ALLOW_DURING_SETUP, allowDuringSetup);