Loading core/java/android/app/notification.aconfig +0 −20 Original line number Diff line number Diff line Loading @@ -154,26 +154,6 @@ flag { bug: "343631648" } flag { name: "expanding_public_view" namespace: "systemui" description: "enables user expanding the public view of a notification" bug: "398853084" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "notif_entry_creation_time_use_elapsed_realtime" namespace: "systemui" description: "makes the notification entry expect its creation time to be elapsedRealtime, not uptimeMillis" bug: "389606876" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "backup_restore_logging" namespace: "systemui" Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryTest.java +4 −9 Original line number Diff line number Diff line Loading @@ -57,7 +57,6 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.res.R; import com.android.systemui.statusbar.RankingBuilder; import com.android.systemui.statusbar.SbnBuilder; import com.android.systemui.statusbar.notification.collection.UseElapsedRealtimeForCreationTime; import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUi; import com.android.systemui.util.time.FakeSystemClock; Loading Loading @@ -151,8 +150,7 @@ public class NotificationEntryTest extends SysuiTestCase { .build(); NotificationEntry entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); assertFalse(entry.isBlockable()); } Loading Loading @@ -252,8 +250,7 @@ public class NotificationEntryTest extends SysuiTestCase { .build(); NotificationEntry entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); assertEquals(systemGeneratedSmartActions, entry.getSmartActions()); assertEquals(NOTIFICATION_CHANNEL, entry.getChannel()); Loading Loading @@ -357,8 +354,7 @@ public class NotificationEntryTest extends SysuiTestCase { .setKey(sbn.getKey()) .build(); NotificationEntry entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); assertFalse(entry.isChannelVisibilityPrivate()); } Loading @@ -371,8 +367,7 @@ public class NotificationEntryTest extends SysuiTestCase { .setKey(sbn.getKey()) .build(); NotificationEntry entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); assertFalse(entry.isChannelVisibilityPrivate()); } Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinatorTest.kt +5 −21 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ import com.android.systemui.statusbar.notification.collection.GroupEntry import com.android.systemui.statusbar.notification.collection.GroupEntryBuilder import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder import com.android.systemui.statusbar.notification.collection.UseElapsedRealtimeForCreationTime import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifStabilityManager import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Pluggable.PluggableListener import com.android.systemui.statusbar.notification.collection.notifPipeline Loading Loading @@ -321,10 +320,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa setPulsing(true) // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // THEN group changes aren't allowed assertThat(notifStabilityManager.isParentChangeAllowed(entry)).isFalse() Loading @@ -350,10 +346,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa setPulsing(false) // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // THEN the notification list is invalidated verifyStabilityManagerWasInvalidated(times(1)) Loading @@ -369,10 +362,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa setPulsing(false) // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // THEN invalidate is not called because this entry was never suppressed from reordering verifyStabilityManagerWasInvalidated(never()) Loading @@ -389,10 +379,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa assertThat(notifStabilityManager.isSectionChangeAllowed(entry)).isTrue() // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // THEN invalidate is not called because this entry was never suppressed from // reordering; Loading Loading @@ -425,10 +412,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa setPulsing(true) // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // can now reorder, so invalidates verifyStabilityManagerWasInvalidated(times(1)) Loading packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java +2 −3 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.database.ExecutorContentObserver; import android.net.Uri; import android.os.Looper; import android.os.Process; import android.os.SystemClock; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; Loading Loading @@ -75,7 +76,6 @@ import com.android.systemui.scene.shared.flag.SceneContainerFlag; import com.android.systemui.settings.UserTracker; import com.android.systemui.shared.system.SysUiStatsLog; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.UseElapsedRealtimeForCreationTime; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider; import com.android.systemui.statusbar.notification.row.shared.LockscreenOtpRedaction; Loading Loading @@ -830,8 +830,7 @@ public class NotificationLockscreenUserManagerImpl implements // notification's "when" time, or the notification entry creation time private long getEarliestNotificationTime(NotificationEntry notif) { long notifWhenWallClock = notif.getSbn().getNotification().getWhen(); long creationTimeDelta = UseElapsedRealtimeForCreationTime.getCurrentTime() - notif.getCreationTime(); long creationTimeDelta = SystemClock.elapsedRealtime() - notif.getCreationTime(); long creationTimeWallClock = System.currentTimeMillis() - creationTimeDelta; return Math.min(notifWhenWallClock, creationTimeWallClock); Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java +4 −5 Original line number Diff line number Diff line Loading @@ -548,7 +548,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { } private void onNotificationsInitialized() { mInitializedTimestamp = UseElapsedRealtimeForCreationTime.getCurrentTime(mClock); mInitializedTimestamp = mClock.elapsedRealtime(); } private void postNotification( Loading @@ -558,8 +558,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { if (entry == null) { // A new notification! entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); entry = new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); mEventQueue.add(new InitEntryEvent(entry)); mEventQueue.add(new BindEntryEvent(entry, sbn)); mNotificationSet.put(sbn.getKey(), entry); Loading Loading @@ -888,7 +887,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { // messages from system server. private void crashIfNotInitializing(RuntimeException exception) { final boolean isRecentlyInitialized = mInitializedTimestamp == 0 || UseElapsedRealtimeForCreationTime.getCurrentTime(mClock) - mInitializedTimestamp || mClock.elapsedRealtime() - mInitializedTimestamp < INITIALIZATION_FORGIVENESS_WINDOW; if (isRecentlyInitialized) { Loading Loading
core/java/android/app/notification.aconfig +0 −20 Original line number Diff line number Diff line Loading @@ -154,26 +154,6 @@ flag { bug: "343631648" } flag { name: "expanding_public_view" namespace: "systemui" description: "enables user expanding the public view of a notification" bug: "398853084" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "notif_entry_creation_time_use_elapsed_realtime" namespace: "systemui" description: "makes the notification entry expect its creation time to be elapsedRealtime, not uptimeMillis" bug: "389606876" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "backup_restore_logging" namespace: "systemui" Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryTest.java +4 −9 Original line number Diff line number Diff line Loading @@ -57,7 +57,6 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.res.R; import com.android.systemui.statusbar.RankingBuilder; import com.android.systemui.statusbar.SbnBuilder; import com.android.systemui.statusbar.notification.collection.UseElapsedRealtimeForCreationTime; import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUi; import com.android.systemui.util.time.FakeSystemClock; Loading Loading @@ -151,8 +150,7 @@ public class NotificationEntryTest extends SysuiTestCase { .build(); NotificationEntry entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); assertFalse(entry.isBlockable()); } Loading Loading @@ -252,8 +250,7 @@ public class NotificationEntryTest extends SysuiTestCase { .build(); NotificationEntry entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); assertEquals(systemGeneratedSmartActions, entry.getSmartActions()); assertEquals(NOTIFICATION_CHANNEL, entry.getChannel()); Loading Loading @@ -357,8 +354,7 @@ public class NotificationEntryTest extends SysuiTestCase { .setKey(sbn.getKey()) .build(); NotificationEntry entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); assertFalse(entry.isChannelVisibilityPrivate()); } Loading @@ -371,8 +367,7 @@ public class NotificationEntryTest extends SysuiTestCase { .setKey(sbn.getKey()) .build(); NotificationEntry entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); assertFalse(entry.isChannelVisibilityPrivate()); } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinatorTest.kt +5 −21 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ import com.android.systemui.statusbar.notification.collection.GroupEntry import com.android.systemui.statusbar.notification.collection.GroupEntryBuilder import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder import com.android.systemui.statusbar.notification.collection.UseElapsedRealtimeForCreationTime import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifStabilityManager import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Pluggable.PluggableListener import com.android.systemui.statusbar.notification.collection.notifPipeline Loading Loading @@ -321,10 +320,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa setPulsing(true) // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // THEN group changes aren't allowed assertThat(notifStabilityManager.isParentChangeAllowed(entry)).isFalse() Loading @@ -350,10 +346,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa setPulsing(false) // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // THEN the notification list is invalidated verifyStabilityManagerWasInvalidated(times(1)) Loading @@ -369,10 +362,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa setPulsing(false) // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // THEN invalidate is not called because this entry was never suppressed from reordering verifyStabilityManagerWasInvalidated(never()) Loading @@ -389,10 +379,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa assertThat(notifStabilityManager.isSectionChangeAllowed(entry)).isTrue() // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // THEN invalidate is not called because this entry was never suppressed from // reordering; Loading Loading @@ -425,10 +412,7 @@ class VisualStabilityCoordinatorTest(flags: FlagsParameterization) : SysuiTestCa setPulsing(true) // WHEN we temporarily allow section changes for this notification entry underTest.temporarilyAllowSectionChanges( entry, UseElapsedRealtimeForCreationTime.getCurrentTime(fakeSystemClock), ) underTest.temporarilyAllowSectionChanges(entry, fakeSystemClock.elapsedRealtime()) // can now reorder, so invalidates verifyStabilityManagerWasInvalidated(times(1)) Loading
packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java +2 −3 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.database.ExecutorContentObserver; import android.net.Uri; import android.os.Looper; import android.os.Process; import android.os.SystemClock; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; Loading Loading @@ -75,7 +76,6 @@ import com.android.systemui.scene.shared.flag.SceneContainerFlag; import com.android.systemui.settings.UserTracker; import com.android.systemui.shared.system.SysUiStatsLog; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.UseElapsedRealtimeForCreationTime; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider; import com.android.systemui.statusbar.notification.row.shared.LockscreenOtpRedaction; Loading Loading @@ -830,8 +830,7 @@ public class NotificationLockscreenUserManagerImpl implements // notification's "when" time, or the notification entry creation time private long getEarliestNotificationTime(NotificationEntry notif) { long notifWhenWallClock = notif.getSbn().getNotification().getWhen(); long creationTimeDelta = UseElapsedRealtimeForCreationTime.getCurrentTime() - notif.getCreationTime(); long creationTimeDelta = SystemClock.elapsedRealtime() - notif.getCreationTime(); long creationTimeWallClock = System.currentTimeMillis() - creationTimeDelta; return Math.min(notifWhenWallClock, creationTimeWallClock); Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java +4 −5 Original line number Diff line number Diff line Loading @@ -548,7 +548,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { } private void onNotificationsInitialized() { mInitializedTimestamp = UseElapsedRealtimeForCreationTime.getCurrentTime(mClock); mInitializedTimestamp = mClock.elapsedRealtime(); } private void postNotification( Loading @@ -558,8 +558,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { if (entry == null) { // A new notification! entry = new NotificationEntry(sbn, ranking, UseElapsedRealtimeForCreationTime.getCurrentTime(mClock)); entry = new NotificationEntry(sbn, ranking, mClock.elapsedRealtime()); mEventQueue.add(new InitEntryEvent(entry)); mEventQueue.add(new BindEntryEvent(entry, sbn)); mNotificationSet.put(sbn.getKey(), entry); Loading Loading @@ -888,7 +887,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { // messages from system server. private void crashIfNotInitializing(RuntimeException exception) { final boolean isRecentlyInitialized = mInitializedTimestamp == 0 || UseElapsedRealtimeForCreationTime.getCurrentTime(mClock) - mInitializedTimestamp || mClock.elapsedRealtime() - mInitializedTimestamp < INITIALIZATION_FORGIVENESS_WINDOW; if (isRecentlyInitialized) { Loading