summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java
Commit message (Collapse)AuthorAgeFilesLines
* Migrate Bubbles to wm-shell (5/n)Tony Huang2020-11-041-825/+0
| | | | | | | | | | Move bubbles package and related resources to shell package, also copied some used codes and resources. Bug: 161980186 Test: atest SystemUITests Test: atest WMShellUnitTests Change-Id: Ia108bd4149b3c3bf86631ba1a7a6bce0e76af78f
* Migrate Bubbles to wm-shell (4/n)Tony Huang2020-10-281-21/+22
| | | | | | | | | | | | Move BubbleController sysui dependent code to new class BubblesManager and remove using of Dependency of Bubbles. TODO: Tests still need to be remain on sysui, find suitable method to test both classes independently. Bug: 161980186 Test: atest SystemUITests Change-Id: I7be1dfb81f7ddfb5fc20b180fc5affb7a1d8e93c
* Bubbles & TaskOrganizerMady Mellor2020-10-131-16/+0
| | | | | | | | | | | | | | | | | | | | | | Move bubbles off of ActivityView & onto TaskOrganizer. This mostly impacts BubbleExpandedView, there are a couple of differences spawning from that: * taskId is the new thing, displayId's are old news * No longer need to send back events to the bubble (we can set the bubble'd task to intercept now). * Now we have to subtract the touch region of the activity content * IME insets don't work the "normal" way (?) instead we're now using PinnedStackListener for all our IME needs BubbleTaskView is the ActivityView replacement & it uses BubbleTaskManager internally to deal with the tasks. Test: atest BubbleControllerTest BubbleDataTest (existing) Test: atest MultiWindowTaskListenerTest TaskViewTest Bug: 148977538 Change-Id: Id6e3bf4950218036b1626481c846ffe57b9ef857
* Migrate Bubbles to wm-shell (3/n)Tony Huang2020-10-131-7/+6
| | | | | | | | Remove more sysui dependency in bubbles class. Bug: 161980186 Test: atest SystemUITests Change-Id: I73b60a387dfc85f1c477e4a5cea2484a80992367
* Migrate Bubbles to wm-shell (2/n)Tony Huang2020-10-061-30/+11
| | | | | | | | Remove sysui dependency and dagger in Bubble and BubbleData class. Bug: 161980186 Test: atest SystemUITests Change-Id: Ic66787e194414e5a4b8c98226598bbf274a285a9
* Merge "Handle non-visually-interruptive updates better in bubbles" into ↵TreeHugger Robot2020-09-241-3/+4
|\ | | | | | | | | | | | | | | rvc-qpr-dev am: abeb577396 am: 7c0b511fbc Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12663888 Change-Id: If352174bc05a314492a1e68c02b02eb135d786b4
| * Handle non-visually-interruptive updates better in bubblesMady Mellor2020-09-241-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | 1) If its a non-visual update to an existing bubble don't alter the bubble order or show a flyout 2) If its a non-visual update to a bubble in the overflow don't promote that content out of the overflow Test: BubbleControllerTest Bug: 162975422 Bug: 163608157 Change-Id: I6d8e67028a5aacf1a23acdbfaeb0fa8a50f829a6
* | Log persisted bubblesLyn Han2020-09-141-1/+10
| | | | | | | | | | | | Bug: 167729787 Test: adb shell cmd stats print-logs Change-Id: I07b470212684e1d186f9f4da9d5e6ee3291cfef5
* | Per-bubble updates for overflowLyn Han2020-09-081-3/+18
| | | | | | | | | | | | | | Fixes: 149801848 Test: no regressions Change-Id: Ica3f3988dbba932f8b6805b64ea100b0e2abc88f
* | 6/N Move everything into SysUIComponent.Dave Mankoff2020-08-161-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is far easier to move _everything_ into SysUIComponent, and then selectively promote things back to GlobalScope and/or WMScope than it is to try to do it one at a time. With this change, though lots of files are touched, very little actually changes structurally. After this change goes in, folks should stop using @Singleton quite so freely. Most things should live in @SysuiSingleton. @Singleton is due to quickly be replaced by @GlobalScope. Bug: 162923491 Test: atest SystemUITests && manual Change-Id: Idc31d3d83b030581fb1fa869f7fafc4f2d3a8828
* | Decouple logging from BubbleViewProviderLyn Han2020-07-141-1/+26
|/ | | | | | | | Log UI events in one place (BubbleLoggerImpl) Bug: 123543171 Test: treehugger Change-Id: Id19850801ffb6e5eff1d4dadf898850de1933c35
* Make sure PendingIntent cancel listener is unregisteredMady Mellor2020-06-301-2/+8
| | | | | | | Test: manual Fixes: 160177818 Fixes: 149918957 Change-Id: I429fc3bcd409cf57276617bd8c9aab26194d3af9
* Call stopInflation() on bubbles we're removing.Josh Tsuji2020-06-281-0/+4
| | | | | | | | | | Bubbles that cancel themselves in onCreate (and less frequently, onResume) are sometimes removed before inflation finishes. Then, when inflation does finish, we call notificationEntryUpdated in the callback at BubbleController#1106 which re-adds the bubble while it's being removed. This resulted in unpredictably inconsistent states between BubbleData and BubbleStackView, causing a variety of pretty bad issues. Test: modified bubble test app to cancel its own notifications in onCreate/onResume Bug: 159861400 Change-Id: I9716dc60bd664b612437906af1d5c76f9f0755ff
* Fix invalid bubble predicate once and for allMady Mellor2020-06-241-0/+4
| | | | | | | | | | | | | | | | | | Predicate to remove a bubble was returning true for pending intent based bubbles & removing them accidentally. Test: manual - 1) Use test app with pending intent based bubbles 2) Add a bubble from the app, leave the app 3) Open the app (causes shortcut change) => bubble sticks around 1) Use test app with shortcut based bubbles 2) Add a bubble from the app, leave the app 3) Open the app 4) removeLongLivedShortcuts => bubble removed Bug: 159719877 Change-Id: Id17423718669f5b829988c43204941f5535980cd
* Only remove bubbles with null shortcutinfo if they have a shortcut ID.Josh Tsuji2020-06-241-5/+9
| | | | | | Test: manual Bug: 159719877 Change-Id: Ia46240884b0c8824e03fbcc5c24e0aa8dbb94301
* Remove bubbles if their shortcuts are removed or if the app is uninstalled.Joshua Tsuji2020-06-191-5/+65
| | | | | | Bug: 157755828 Test: modded bubble test app to remove shortcuts Change-Id: I19acce432013a86695eb3b28c8fe59ab23a4fa88
* decouple Bubble from NotificationEntryPinyao Ting2020-06-161-23/+15
| | | | | | | | | | | | | | | | | | 1. decouple Bubble from NotificationEntry 2. save title from Bubble into BubbleEntity 3. copied boolean values from NotificationEntry into Bubble for UI variants (e.g. isVisuallyInterruptive, isClearable, shouldSuppressNotificationDot... e.t.c) Bug: 151474524, 159061670 Change-Id: I606c6ff93b3dc3867b4d0a6129d7117d9999c170 Test: atest android.app.cts.NotificationManagerTest This reverts commit 2e73117c0e71554de126c75ee4135c89852bdb90. Reason for revert: issue fixed, rolling forward again Change-Id: I1180954a76bee9782df46de0f202c614f05d560f
* Revert "decouple Bubble from NotificationEntry"Pinyao Ting2020-06-151-15/+23
| | | | | | | | | This reverts commit d07c2deaf035e8aae86fa5f0b11ef36d237d653a. Reason for revert: debug test failure in b/158986168 Bug: 158986168 Change-Id: I10cb613e4f160561c06944aebccaf16c090bcd9e
* decouple Bubble from NotificationEntryPinyao Ting2020-06-121-23/+15
| | | | | | | | | | | | 1. decouple Bubble from NotificationEntry 2. save title from Bubble into BubbleEntity 3. copied boolean values from NotificationEntry into Bubble for UI variants (e.g. isVisuallyInterruptive, isClearable, shouldSuppressNotificationDot... e.t.c) Bug: 151474524 Change-Id: I606c6ff93b3dc3867b4d0a6129d7117d9999c170 Test: manual
* Prevent NPE when dragging last bubble from expanded stateMady Mellor2020-06-111-1/+2
| | | | | | | | | | | | | | - We null out stackview when it's removed from the window, this happens when the last bubble is removed from the view - When the last bubble is dragged out, we trigger some other updates these get applied *after* the remove step so stackview is null at that time. These updates are to set selected bubble to null & collapse the stack. These don't technically need to tell stackView about them. - I don't think this is an ideal solution Test: drag out last bubble while stack is expanded Fixes: 157778325 Change-Id: Ia55bf3ba315599ed8afb390ad481e0d3700b1b97
* Fix some things with overflow, persistence, & visibilityMady Mellor2020-06-081-52/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) Bubbles that are persisted no longer have an entry in some cases this wasn't being handled correctly (i.e. persisted bubbles would never autoexpand) 2) Removed the custom work to promote something from the overflow -- in most cases we should be able to update flagBubble & rely on the subsequent notification update which minimizes the # of code paths 3) mPendingBubbles makes more sense as a HashMap 4) The visibility fix: If the bubble switched from a shortcut to a pending intent, we would skip making the view visible Fixes: 158480978 Fixes: 157755108 Test: atest BubbleControllerTest Test: manual - create a shortcut bubble - reboot the device - promote that bubble from the overflow => ensure that it auto-expands - collapse the stack - receive an update for that bubble but now it's a pendingIntent - open the stack => ensure that the view is visible Change-Id: I37dc780e9a66b9e2f2ae46b5386dcd291dc0e0ab
* Merge "Log overflow events" into rvc-devLyn Han2020-05-291-0/+6
|\
| * Log overflow eventsLyn Han2020-05-271-0/+6
| | | | | | | | | | | | | | Bug: 149133814 Test: adb shell cmd stats print-logs Change-Id: Ife2aac90ae9ad0f8eb5ed7de5169a7bfb0818c33
* | Persists bubbles to disk (part 4)Pinyao Ting2020-05-271-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Decouple Bubble from NotificationEntry 2. Convert ShortcutInfo into Bubbles 3. Load overflow bubbles into memory Test: follow the following steps 1. add a few bubbles from test app 2. restart the device 3. add a bubble from test app 4. click the plus sign to expand overview bubbles 5. verify overflow bubbles is displayed properly This reverts commit b28e0568a062e779816a7b5bf0e5e1eac7ca005d. Reason for revert: Rolling-forward with fixed unit test Bug: 156697897 Bug: 149713060 Change-Id: I21e4b17ee53ee7b6698115e1b497253bb54b355f
* | Always open bubble for bubble notifs + fix issueMady Mellor2020-05-261-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clicking on the notification will only redirect to the bubble if the notification has FLAG_BUBBLE. This changes the logic so that it will happen if the notification is allowed to bubble. This also includes a fix for an issue where we would remove the bubble (and notification) incorrectly on updates: Previously we'd always remove a bubble if the notif was updated & no longer had FLAG_BUBBLE. There are some situations where a notif might not have the flag but also shouldn't be removed (e.g. bubble dismissed). This CL alters it so that the bubble is removed when canBubble is false instead of FLAG_BUBBLE being removed. Test: atest SystemUITests Bug: 149033291 Bug: 152883583 Change-Id: If9c61295d09dfa9f36360b02bcd66967bcb7d667
* | Removing groups & ongoing from bubble orderingMady Mellor2020-05-261-143/+17
|/ | | | | | | | | | | * We don't allow ongoing bubbles so remove logic * We were still grouping bubbles by app and this is something we're no longer supposed to do as per ux so removed this code Bug: 155515999 Test: atest BubbleDataTest Change-Id: I5de5dec6d8be70f638c0cc6121e859a51e44c563
* Revert "Persists bubbles to disk (part 4)"Neil Fuller2020-05-151-16/+8
| | | | | | | | This reverts commit 293b83d81ee2b537d2a8b5a1f81fce6270bd0d0c. Reason for revert: May have caused http://b/156697897 Bug: 156697897 Change-Id: I9ce37a54abd25cc6a6dde2c7728d2da1076654c5
* Persists bubbles to disk (part 4)Pinyao Ting2020-05-121-8/+16
| | | | | | | | | | | | | | | | 1. Decouple Bubble from NotificationEntry 2. Convert ShortcutInfo into Bubbles 3. Load overflow bubbles into memory Test: follow the following steps 1. add a few bubbles from test app 2. restart the device 3. add a bubble from test app 4. click the plus sign to expand overview bubbles 5. verify overflow bubbles is displayed properly Bug: 149713060 Change-Id: I6905d93fe409f4401f7d5d2d08597c36c028b5de
* Merge "Revert "Atomic updates, icon cleanup for overflow"" into rvc-devMady Mellor2020-05-121-11/+3
|\
| * Revert "Atomic updates, icon cleanup for overflow"Mady Mellor2020-05-121-11/+3
| | | | | | | | | | | | | | | | This reverts commit e4274beadbad39dea3c9807ca0d8e10baf352fbe. Reason for revert: causes b/156276800 -- lets revert in beta Bug: 156115497 Change-Id: Ie3c8c5f0599ac4e2119553611ffd2f2cf9cf58f2
* | Handle PendingIntent cancellation v2Lyn Han2020-04-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On cancel: - Remove unopened bubble - Mark opened bubble as canceled to skip overflowing later Fixes: 152889099 Test: manual 1) Expand bubble with FLAG_ONE_SHOT PendingIntent => bubble NOT removed 2) Overflow bubble => bubble removed Test: manual 1) Overflow bubble with FLAG_ONE_SHOT PendingIntent without expanding it 2) Promote bubble from overflow 3) Expand bubble => bubble NOT removed 4) Overflow bubble => bubble removed Change-Id: I1657e84985ff1535205f8e32d1ace9dd3a3cc7ef
* | Merge "Atomic updates, icon cleanup for overflow" into rvc-devLyn Han2020-04-291-3/+11
|\|
| * Atomic updates, icon cleanup for overflowLyn Han2020-04-291-3/+11
| | | | | | | | | | | | | | | | | | Bug: 149918957 Fixes: 149801848 Test: manual - overflow has smoother animations Test: manual - overflowing bubbles out of overflow works as intended Change-Id: I9c0c5ea37c5638b5d4a8d979f280cd426f18c0c6
* | Fix a11y issues.Joshua Tsuji2020-04-281-1/+2
|/ | | | | | | | Test: use talkback w bubbles Fixes: 129522932 Fixes: 140367439 Fixes: 149539297 Change-Id: I8ca58df861a23365fdd3a2b7155161538f194d5c
* Notification removal with overflow bubblesLyn Han2020-04-221-31/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | Intercept dismissal for overflow bubbles. Remove notifications for inactive (not in stack and overflow) bubbles cancelled or suppressed from shade. Set "isBubble" SysUI flag - false for inactive bubbles still in shade, - true for bubbles promoted from overflow. Account for overflow bubbles in event handling - onEntryUpdated: remove overflow bubble if no longer a bubble - onRankingUpdated: remove overflow bubble if blocked - expandStackAndSelectBubble: promote overflow bubble then expand - isBubbleNotificationSuppressedFromShade: check overflow bubbles Update tests Enable overflow flag ---------------- Fixes: 151104690 Test: manual: cancel oldest bubble => oldest overflow bubble removed Test: atest SystemUITests Change-Id: I44bb623f99f9473055787cf10693f7a3bfd1c768
* Show last selected bubble when stack expandsLyn Han2020-04-101-1/+12
| | | | | | | | | | | | | | | | | | | Fixes: 152888262 Test: manual 1. Have 5 bubbles, select -middle- bubble, select overflow 2. Collapse stack, reopen stack -> See that middle bubble is now first in stack and selected Test: manual 1. Have 5 bubbles, select -first- bubble, select overflow 2. Collapse stack, reopen stack -> See that first bubble is selected again Test: manual (overflow disabled) -> Previously selected bubble shows first in stack on expand Change-Id: I8749306be247be3136d2b8a36852e796a5195ef7
* Delete BubbleTouchHandler in favor of more traditional touch handling.Joshua Tsuji2020-04-081-0/+13
| | | | | | | | | This will scale better as we add more views and gestures. Test: manual (fixing test suite now, just getting out for review!) Bug: 152877243 Merged-In: I46001c24f4de58c3d70b7629a22b930fa791b77a Change-Id: I46001c24f4de58c3d70b7629a22b930fa791b77a
* Show selected bubble first, after stack expandsLyn Han2020-04-021-1/+2
| | | | | | | | | | | | | | | | | | | When the stack collapses, BubbleData moves the selected bubble to first in stack, but marks accessed time instead of updated time. Sorting uses updated time (in repackAll) and moves the selected bubble back to where it was, when the stack expands later. Fixed by marking updated time in addition to accessed time. Fixes: 152883409 Test: manual: select bubble in middle of stack, collapse stack, expand stack -> see that bubble first in stack Test: manual: select bubble in middle of stack, collapse stack, add new bubble, expand stack -> see that new bubble is first in stack and previously selected bubble is repacked Change-Id: I8042549708ba3ace13d94e9cd3397af229af2dc9
* Assorted dot-wrangling.Joshua Tsuji2020-03-261-1/+1
| | | | | | | | | | | | | - Fixes issue with dots showing up on the wrong side, because code assumed the stack starts on the right when it actually starts on the left now. - Animates dots out when they're behind the stack/when collapsing from expanded state. - Animates dots out when expanding. Remaining issues include: hiding the app badge (deceptively hard), updating state for DND as soon as it changes (vs. when a new bubble is posted, also hard). Test: manual Bug: 145245204 Bug: 137213469 Change-Id: I9e2ff29c62ba8c8d0f052e42386b5d517952984e
* Auto-expand overflow bubbles on promoteLyn Han2020-03-251-1/+12
| | | | | | | | Fixes: 151766943 Test: manual - promoted bubble auto-expands Test: atest BubbleControllerTest Change-Id: I1b2dff17f1853ce9a3fa04bb09f2152a9eb4d578
* Don't update the bubble on ranking changes if it's already in the stackMady Mellor2020-03-241-0/+2
| | | | | | | | | | | | | | | The only reason we should update/add a bubble in response to a ranking change is if that notification wasn't a bubble before and should be now. Also set the entry when retrieving from pending / overflow. Bug: 152322244 Test: manual - 1) add some bubbles, add one that auto expanded 2) collapse stack 3) trigger some notification in shade (e.g. start a timer) => notice the stack does not auto expand in the background Change-Id: I15877fabf07a402dade76904dc1481ab669776ff
* Remove bubble from stack by key instead of iconLyn Han2020-03-231-3/+5
| | | | | | | Fixes: 152251180 Test: manual - bubbles trimmed on overflow Test: manual - normal bubble removal still works fine Change-Id: I19b8fa54f28ae6c959354f4a3a7f4d0e8ed70d44
* Stop inflate on overflow and null check viewsLyn Han2020-03-191-6/+10
| | | | | | | | | Fixes: 151833548 Fixes: 151879831 Test - manual: bugs fixed with overflow flag on/off Test: atest SystemUITests Change-Id: Id2e222354764a8f54c81cadb4e79bfffe0471717
* Merge "Include bubble changes in ranking & move flagging to BubbleExtractor" ↵Mady Mellor2020-03-161-26/+0
|\ | | | | | | into rvc-dev
| * Include bubble changes in ranking & move flagging to BubbleExtractorMady Mellor2020-03-161-26/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, only changes to the "allowBubbles" on the channel or package would trigger a ranking change. This bit only indicates that the notification is allowed to bubble -- it doesn't indicate that the notification *is* a bubble. To allow active notifications to become bubbles if the user changes the setting, we need to flag them in response to ranking changes. This CL moves the bubble flagging code into BubbleExtractor that way the flag is always updated during ranking changes. BubbleController listens to ranking changes and adds / removes bubbles based on the ranking. The ranking needs to have an isBubble bit on it because ranking changes won't pipe flag updates through. SysUI uses this bit to flag the entry on SysUI's side. Moves the shortcut getting / validating code into a helper class. Also removes the inline reply requirement. Test: NotificationManagerTest NotificationManagerServiceTest BubbleExtractorTest ShortcutHelperTest BubbleCheckerTest Bug: 149736441 Change-Id: Ib5b62923c123187ae5f7073ec7ca50d7e20c04b1 Merged-In: Ib5b62923c123187ae5f7073ec7ca50d7e20c04b1
* | Merge "Move overflow bubble to stack on update" into rvc-devTreeHugger Robot2020-03-141-0/+8
|\ \
| * | Move overflow bubble to stack on updateLyn Han2020-03-131-0/+8
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BubbleData#getOrCreateBubble is called per update, pre-inflation - If bubble overflowed, remove it from overflow list, - add it to pending bubbles, where it will be removed on notificationEntryUpdated, post inflation - return this bubble instead of creating a new one Fixes: 150396294 Test: atest SystemUITests Test: manual 1. Add people bubbles 2. Add more bubbles to get people in overflow 3. Add bubbles for same people, so that they are "active" in stack 4. Go to overflow => overflow no longer shows people "active" in stack Change-Id: I79c1ba92533169da0e82414f2ad507cbf20d8561
* / Fix blank activity after promoting overflow bubbleLyn Han2020-03-131-4/+5
|/ | | | | | | | Select bubble after inflation. Fixes: 150397228 Test: manual - promote bubble from overflow, activity shows Change-Id: Icf7085a290e0c3163e9f65a639305a3eb64d1138
* Dismiss bubbles into overflowLyn Han2020-02-181-15/+19
| | | | | | | | | Fixes: 149716471 Test: manual -> dismiss single bubble -> bubble in overflow Test: manual -> dismiss stack -> create bubble -> expand stack -> previous bubbles in stack now in overflow Change-Id: I6897a369f734af18029872c65b6f104eb701b202
* Inflate bubble promoted from overflowLyn Han2020-02-121-6/+15
| | | | | | | | | | | | | | BubbleData#promoteBubbleFromOverflow - inflate bubble; when done, go through notificationEntryUpdated (doAdd) Fixes: 148247568 Fixes: 148878180 Bug: 148878788 Test: atest SystemUITests Test: manual - tap bubble to promote it from overflow -> bubble shows up left of row, gone from overflow; oldest bubble in row overflows when count > 5, shows up left of first row in overflow Change-Id: If33a0e0f5d9a5e4e042ad965f2b55a44e8b508dd