Android-x86
Fork
Donation

  • R/O
  • HTTP
  • SSH
  • HTTPS

frameworks-base: Commit

frameworks/base


Commit MetaInfo

Revisiónc0fbdf45d7c9826533186751a03c27e500cac78e (tree)
Tiempo2019-08-14 09:23:26
Autorandroid-build-team Robot <android-build-team-robot@goog...>
Commiterandroid-build-team Robot

Log Message

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

Change-Id: I34f06d8277b5d051cbe3f67a8c8512dbbe297a39

Cambiar Resumen

Diferencia incremental

--- a/core/java/android/app/Instrumentation.java
+++ b/core/java/android/app/Instrumentation.java
@@ -50,6 +50,7 @@ import android.view.InputDevice;
5050 import android.view.KeyCharacterMap;
5151 import android.view.KeyEvent;
5252 import android.view.MotionEvent;
53+import android.view.SurfaceControl;
5354 import android.view.ViewConfiguration;
5455 import android.view.Window;
5556 import android.view.WindowManagerGlobal;
@@ -528,6 +529,12 @@ public class Instrumentation {
528529 } while (mWaitingActivities.contains(aw));
529530
530531 waitForEnterAnimationComplete(aw.activity);
532+
533+ // Apply an empty transaction to ensure SF has a chance to update before
534+ // the Activity is ready (b/138263890).
535+ try (SurfaceControl.Transaction t = new SurfaceControl.Transaction()) {
536+ t.apply(true);
537+ }
531538 return aw.activity;
532539 }
533540 }
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationData.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationData.java
@@ -422,7 +422,14 @@ public class NotificationData {
422422 }
423423 }
424424
425- Collections.sort(mSortedAndFiltered, mRankingComparator);
425+ if (mSortedAndFiltered.size() == 1) {
426+ // HACK: We need the comparator to run on all children in order to set the
427+ // isHighPriority field. If there is only one child, then the comparison won't be run,
428+ // so we have to trigger it manually. Get rid of this code as soon as possible.
429+ mRankingComparator.compare(mSortedAndFiltered.get(0), mSortedAndFiltered.get(0));
430+ } else {
431+ Collections.sort(mSortedAndFiltered, mRankingComparator);
432+ }
426433 }
427434
428435 public void dump(PrintWriter pw, String indent) {
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationDataTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationDataTest.java
@@ -23,6 +23,7 @@ import static android.app.Notification.CATEGORY_CALL;
2323 import static android.app.Notification.CATEGORY_EVENT;
2424 import static android.app.Notification.CATEGORY_MESSAGE;
2525 import static android.app.Notification.CATEGORY_REMINDER;
26+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
2627 import static android.app.NotificationManager.IMPORTANCE_LOW;
2728 import static android.app.NotificationManager.IMPORTANCE_MIN;
2829
@@ -62,6 +63,8 @@ import android.testing.TestableLooper;
6263 import android.testing.TestableLooper.RunWithLooper;
6364 import android.util.ArraySet;
6465
66+import androidx.test.filters.SmallTest;
67+
6568 import com.android.systemui.Dependency;
6669 import com.android.systemui.ForegroundServiceController;
6770 import com.android.systemui.InitController;
@@ -84,8 +87,6 @@ import java.util.HashMap;
8487 import java.util.List;
8588 import java.util.Map;
8689
87-import androidx.test.filters.SmallTest;
88-
8990 @SmallTest
9091 @RunWith(AndroidTestingRunner.class)
9192 @RunWithLooper
@@ -113,6 +114,7 @@ public class NotificationDataTest extends SysuiTestCase {
113114 MockitoAnnotations.initMocks(this);
114115 when(mMockStatusBarNotification.getUid()).thenReturn(UID_NORMAL);
115116 when(mMockStatusBarNotification.cloneLight()).thenReturn(mMockStatusBarNotification);
117+ when(mMockStatusBarNotification.getKey()).thenReturn("mock_key");
116118
117119 when(mMockPackageManager.checkUidPermission(
118120 eq(Manifest.permission.NOTIFICATION_DURING_SETUP),
@@ -231,6 +233,7 @@ public class NotificationDataTest extends SysuiTestCase {
231233 Notification n = mMockStatusBarNotification.getNotification();
232234 n.flags = Notification.FLAG_FOREGROUND_SERVICE;
233235 NotificationEntry entry = new NotificationEntry(mMockStatusBarNotification);
236+ entry.setRow(mRow);
234237 mNotificationData.add(entry);
235238 Bundle override = new Bundle();
236239 override.putInt(OVERRIDE_VIS_EFFECTS, 255);
@@ -249,6 +252,7 @@ public class NotificationDataTest extends SysuiTestCase {
249252 n = nb.build();
250253 when(mMockStatusBarNotification.getNotification()).thenReturn(n);
251254 NotificationEntry entry = new NotificationEntry(mMockStatusBarNotification);
255+ entry.setRow(mRow);
252256 mNotificationData.add(entry);
253257 Bundle override = new Bundle();
254258 override.putInt(OVERRIDE_VIS_EFFECTS, 255);
@@ -262,6 +266,7 @@ public class NotificationDataTest extends SysuiTestCase {
262266 public void testIsExemptFromDndVisualSuppression_system() {
263267 initStatusBarNotification(false);
264268 NotificationEntry entry = new NotificationEntry(mMockStatusBarNotification);
269+ entry.setRow(mRow);
265270 entry.mIsSystemNotification = true;
266271 mNotificationData.add(entry);
267272 Bundle override = new Bundle();
@@ -276,6 +281,7 @@ public class NotificationDataTest extends SysuiTestCase {
276281 public void testIsNotExemptFromDndVisualSuppression_hiddenCategories() {
277282 initStatusBarNotification(false);
278283 NotificationEntry entry = new NotificationEntry(mMockStatusBarNotification);
284+ entry.setRow(mRow);
279285 entry.mIsSystemNotification = true;
280286 Bundle override = new Bundle();
281287 override.putInt(OVERRIDE_VIS_EFFECTS, NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT);
@@ -528,6 +534,62 @@ public class NotificationDataTest extends SysuiTestCase {
528534 assertEquals(-1, mNotificationData.mRankingComparator.compare(a, b));
529535 }
530536
537+ @Test
538+ public void testSort_properlySetsIsTopBucket() {
539+
540+ Notification notification = new Notification.Builder(mContext, "test")
541+ .build();
542+ StatusBarNotification sbn = new StatusBarNotification(
543+ "pkg",
544+ "pkg",
545+ 0,
546+ "tag",
547+ 0,
548+ 0,
549+ notification,
550+ mContext.getUser(),
551+ "",
552+ 0);
553+
554+ Bundle override = new Bundle();
555+ override.putInt(OVERRIDE_IMPORTANCE, IMPORTANCE_DEFAULT);
556+ mNotificationData.rankingOverrides.put(sbn.getKey(), override);
557+
558+ NotificationEntry entry = new NotificationEntry(sbn);
559+ entry.setRow(mRow);
560+ mNotificationData.add(entry);
561+
562+ assertTrue(entry.isTopBucket());
563+ }
564+
565+ @Test
566+ public void testSort_properlySetsIsNotTopBucket() {
567+ Notification notification = new Notification.Builder(mContext, "test")
568+ .build();
569+ StatusBarNotification sbn = new StatusBarNotification(
570+ "pkg",
571+ "pkg",
572+ 0,
573+ "tag",
574+ 0,
575+ 0,
576+ notification,
577+ mContext.getUser(),
578+ "",
579+ 0);
580+
581+ Bundle override = new Bundle();
582+ override.putInt(OVERRIDE_IMPORTANCE, IMPORTANCE_LOW);
583+ mNotificationData.rankingOverrides.put(sbn.getKey(), override);
584+
585+ NotificationEntry entry = new NotificationEntry(sbn);
586+ entry.setRow(mRow);
587+
588+ mNotificationData.add(entry);
589+
590+ assertFalse(entry.isTopBucket());
591+ }
592+
531593 private void initStatusBarNotification(boolean allowDuringSetup) {
532594 Bundle bundle = new Bundle();
533595 bundle.putBoolean(Notification.EXTRA_ALLOW_DURING_SETUP, allowDuringSetup);
Show on old repository browser