Commit Graph

130 Commits

Author SHA1 Message Date
Sunny Goyal bee13b6305 Catch SecurityException from NoMan to workaround possible race condition
Bug: 63636581
Bug: 227445069
Test: n/a issue not reproducible
Change-Id: Ib3dcf013ba9220d3d2d59032163191f0aef5d062
2022-04-15 10:20:19 -07:00
Brian Isganitis 84da9622d7 Close taskbar all apps on popup notification and app info shortcut tap.
Test: Manual
Fix: 223659756
Change-Id: I84fd8cd84ccdce5f51874d7356cafac9bfa92004
2022-03-10 15:27:14 -08:00
Schneider Victor-tulias 5173fd8090 Add notification dots and popup menu notification support to the taskbar.
- Added support for notification dots
- Added support for notifications in popup menu
- Added support for dismissing notifications from the popup menu

Bug: 198438631
Test: long pressed launcher and taskbar icons, clicked notifications, clicked shortcuts
Change-Id: I7c981e60a82b4d6ce28332d804bbbfb5eb89c6a8
2021-11-15 14:47:36 -08:00
Jon Miranda f3bbd98bf8 Allow users to dismiss notifications in popup view.
Bug: 193014051
Test: - dismiss notifications (left/right)
      - open popup, dismiss notification from shade
        and ensure popup gets updates
      - open popup, trigger new notification
        and ensure popup gets updated

Change-Id: Iea4d458218cbf5cb22f5f89aa0a4cc1bee18cc73
2021-08-30 20:38:16 +00:00
Jon Miranda 313b2c2d28 Update notification popup UI.
- Update UI to match specs.
- Only shows one notification (removed footer, animation code)

Bug: 175329686
Bug: 190402054
Test: open popup, dismiss notification from shade,
      open popup, click on notification
      checked RTL

Change-Id: I92672f94233d986ae5b5c54979980967308cb156
2021-06-18 22:42:44 +00:00
Jon Miranda 32ff76cb4e Adding color back to popup container.
For Color exctraction now occurs in groups:
- System shortcuts
- Deep shortcuts
- Notifications

For home setting popup, each DeepShortcutView will have its own
extracted color.

Bug: 188095443
Test: manual
Change-Id: I7e209f863ff180b8f017aeb2a73c6f1a51842e68
2021-06-10 19:15:24 +00:00
Jon Miranda 35c5477d5c Remove color extraction from popup arrow, add shadows.
Bug: 175329686
Bug: 187014675
Test: manual

Change-Id: I84a3f23b7a9ceef004a2b1b66e5f8a10585bd113
2021-05-11 17:35:01 -07:00
Sunny Goyal 58530bd64b Fixing notification dots settings not updated properly
Also avoiding settings cache reset whenever someone registers
a new listener

Bug: 184200027
Test: Manual
Change-Id: I0c8b7084b6b4656102e9041b779b80a98624ddd8
2021-03-31 15:57:49 -07:00
Sunny Goyal 940c27ef1a Using an independent drawable for rounded corners
Bug: 183641907
Test: Manual
Change-Id: I3114d43d07c03884348e1c33805545f19bb8d540
2021-03-30 14:47:44 -07:00
Jon Miranda 2a58d13b9b Add separate background colors to each popup container child.
- Colors interpolate between the primary and secondary popup colors
- Removed condensed height and icon scale

Bug: 175329686
Test: visual, manual checking apps with different shortcut options
Change-Id: I064c329dc8ad3ae6f408056c74372cca3ce20b68
2021-03-19 13:41:07 -04:00
Jon Miranda c79316740b Update deep shortcut to new ui.
- Removed divider views, using margin to separate views
- Removed elevations
- Added a ViewGroup to hold all notification views, and applied an outline

Bug: 175329686
Test: visual
Change-Id: Iad70dcfdaeba6050c2b17c07f76bb7bfb728e544
2021-03-18 11:09:34 -04:00
Vinit Nayak a34af18b0e Update System settings content observer to cache values.
Existing ContentObserver will cache values and overwrite
them when the value itself is modified or caller force
updates.

Bug: 149571513
Test: Wrote unit tests, mostly for caching logic.
Not meant to test ContentObserver contract for registering an
observer.

Change-Id: I12835f6c2be27ce17f65a55c51c4ef85c63b4487
2021-02-16 20:58:53 -08:00
Winson Chung f99351888c Revert "Revert "Merge commit '8d14dbe041199d611839140f1c9285fd4174e9f4' ...""
This reverts commit 087a9e39b6.

Change-Id: I05b17a6e4aaaef6de3c2fa26aad45a39eb2833f9
2020-10-23 09:27:48 -07:00
Alistair Delva 087a9e39b6 Revert "Merge commit '8d14dbe041199d611839140f1c9285fd4174e9f4' ..."
Revert "Merging from ub-launcher3-master @ build 6877130"

Revert "Merging from ub-launcher3-master @ build 6877130"

Revert "Merging from ub-launcher3-master @ build 6877130"

Revert submission 12738409-merge_ub-launcher3-master_6877130

Reason for revert: Introduced crashes to global presubmit

Reverted Changes:
I624658ce6:Merge commit '8d14dbe041199d611839140f1c9285fd4174...
Iccd2f1e3a:Merging from ub-launcher3-master @ build 6877130
I791d64951:Merging from ub-launcher3-master @ build 6877130
Icdd32ab01:Merging from ub-launcher3-master @ build 6877130

Bug: 169963211
Change-Id: I77a4ae59e823147beae8dd7cb9b54ccdace2c7f4
2020-10-05 14:46:26 +00:00
Hyunyoung Song 95786e077d Good riddance UserEventDispatcher
Bug: 165675920
Bug: 161381246

TL;DR;;
- nano -> lite proto
- add all the missing logs to WW
- pin item related logging fix
- Removed logging for assistant

sgrep "com.android.launcher3.userevent.nano." | cut -f1 -d: | xargs sed -i -e 's/userevent\.nano\./userevent\./g'

Change-Id: Ie2a49fdd891cacbd7ef40a1dc9e41ff0574c7517
2020-09-27 13:41:49 -07:00
Hyunyoung Song 6b670d62df Good riddance UserEventDispatcher [1/n]
Bug: 165675920
Change-Id: I237ed4243e1724b3c370c5660673bb3966bf4811
2020-08-24 21:19:09 -07:00
Raman Tenneti ab98166c36 AOSP/Launcher3 - Update language to comply with Android's inclusive language guidance.
See https://source.android.com/setup/contribute/respectful-code for reference

BUG=161896447

Test: make and Presubmit verify.

Change-Id: I44e903046dd4cd9c7c07872fc56a8d552eb09522
2020-08-04 00:35:03 +00:00
thiruram c6a38ba5d8 Replaces StatsLogManager.log with StatsLogManager.logger()
Bug: 159170445
Change-Id: Ice6c8a9ae30d8e6b3843bfe42926053849bf9fe0
2020-06-17 17:32:54 +00:00
Hyunyoung Song 13c2bc7303 LAUNCHER_APP_LAUNCH_TAP should log correctly for icons inside folder
Bug: 137777105

Change-Id: I5c1552481fc1b788ba41c57bfe97f126f55e5b16
2020-06-11 23:51:17 -07:00
thiruram 3cb5592c84 Log tap on dot-notifications on both app icon and deep shortcuts.
Bug: 157765763
Sample Log: https://paste.googleplex.com/6354213825150976
Screencast: http://go/recall/-/fuZYA4w9pUEvRlF811dY61/ecVIR0vyJ2thQwLbUL64Ar

Change-Id: I6e1ed381d551044a1ad94b72b3f431223a888a72
2020-06-05 17:19:29 +00:00
Sunny Goyal e396abf502 Moving model data structures to a separate file
Change-Id: I77ad7a5219e72d2e0d6c1803de2ac3ed6a65a8f7
2020-04-09 13:20:39 -07:00
Vinit Nayak a406f727ad Add vertical layout support for Overview in portrait
WM is making changes which allows apps to maintain
their orientation independent of the orientation of
the foreground app. This allows recents to always start
in portrait even when the app currently running is in
landscape. This means we have to give the illusion of
a landscape oriented overview when user swipes up in
gesterual nav when launcher is started in portrait
configuration.

PagedOrientationHandler abstracts all coordinate specific
logic from Paged/RecentsView primarily, but also all
other dynamic calculations throughout launcher.
PagedViewOrientationState is the single point of exposure
to other classes that depend on those changes. The goal
is to also minimize holding state to allow for default
implementations of PagedOrientationHandler for all the
3p/Fallback classes. PagedViewOrientationState also
holds other data around rotation that isn't
specifically tied to view logic.

The fake landscape overview can be toggled with:
adb shell settings put global forced_rotation [0/1]

Fixes: 146176182
Change-Id: I65d8d4e9f92b93931cbe0053ccaf0cda8d2ffd6c
2020-03-02 18:02:35 -08:00
Samuel Fufa a18eb686d0 Add dismiss option for hotseat items
Bug: 145556909
Test:Manual
Change-Id: Ia40d22226b5cf9482f19f82ef08e399d294be6da
2020-01-06 16:40:24 -08:00
Sunny Goyal 73b5a27b14 Updating some non-final static objects
Updating various static objects to use a standard pattern so that
it is easier to track and cleanup those objects

Bug: 141376165
Change-Id: Ia539cbfa338d544dddad771c5027b6748762768b
2019-12-11 13:22:58 -08:00
Sunny Goyal cac41df9ad Fixing inverted filtering logic for notifications
Bug: 144290150
Change-Id: I52e54148069b4ba7ccd318ad47920b45a53300f1
2019-11-11 14:03:44 -08:00
TreeHugger Robot 7744b8251a Merge "Moving some notification binder calls to worker thread" into ub-launcher3-master 2019-10-25 22:56:44 +00:00
Tony Wickham 5aeb3b84b8 Refactor SwipeDetector to track both axes
Existing clients now use the SingleAxisSwipeDetector subclass. A
followup CL will add BothAxesSwipeDetector, whose first client will be
the quick switch from home controller.

Bug: 126596417
Change-Id: I54c71088cfe99ff28cdc719a1eb7a7d06ac95d2d
2019-10-24 10:38:17 -07:00
Sunny Goyal 7c53d355bf Moving some notification binder calls to worker thread
Change-Id: I16c4aded7b709282a9b3d0df64111a9a40366b50
2019-10-21 15:01:10 -07:00
Andy Wickham 769c795edf Some cleanup for SwipeDetector.
It is now organized as follows:
 - private constants
 - public constants
 - private final fields
 - private variable fields
 - constructors
 - public methods
 - private methods
 - public interface/abstract class

This is intended to be a functional no-op.

Bug: 141939911
Change-Id: Iad5a9b3b73b35641f8a4f1d52ada6adef3825c47
Tested: Built and sanity checked manually.
2019-10-01 14:38:56 -07:00
Sunny Goyal 6fe3eec95c Moving various common executors to a single location
Change-Id: I44bca49b8adb6fa22c3b48d10f674e42c28d792c
2019-08-20 14:36:17 -07:00
Samuel Fufa 8628eb9353 Sorting people by key crashes launcher
Approch: approach: filter out people with null getKey before sorting.

Bug:139436782
Change-Id: I6510a12374ff4fec02c879ff76ba42b1fcdb8281
2019-08-14 15:12:43 -07:00
Pinyao Ting 49a3e699f9 show dot in deep shortcuts when notification contains exactly identical
set of person

Bug: 132336512
Change-Id: I975524e28168c10a186cdc24b188c161faf433cf
2019-08-05 20:41:58 -07:00
Tony Wickham c70f2fd5f1 Remove some obsolete notification badging code
Now that we only show dots instead of badges, we can simplify some logic
and remove a couple unused methods.

Change-Id: I72056eeb12e8968ec67b4c5b3a450d2ed5d4ee84
2018-12-04 15:58:56 -08:00
Tony Wickham f34bee819c Rename "badges" to "dots" where appropriate
This will reduce confusion with the other "badging" concept we use for,
e.g. work profiles. It is also consistent with the external name
"notification dots".

Change-Id: I2a2c9d96dc0d6284eb0c48adc78a856271caad4d
2018-12-04 10:46:40 -08:00
Sunny Goyal 420d54544e Using a common class for observing secure settings
Bug: 117519297
Change-Id: Ie9d948130aea50bf10c9fc625fdb16f4cfc4712e
2018-10-17 12:07:13 -07:00
Sunny Goyal efb7e84242 Converting long item IDs to int
> Items ids were already being typecasted to int when being bound on the UI
> Using a consistent type allow better use of platform data-structures
> Adding IntArray and IntSet as a replacement for various Collection classes

Change-Id: Id3c650ed2420c2bfca3bd7671d2b705b56112371
2018-10-08 14:52:39 -07:00
Sunny Goyal 4d8ec15fb5 Using velocity tracker for computing the velocity of motion events
Change-Id: I14f2f970825a2936f4bb285834405d67daf8667c
2018-09-13 09:50:47 -07:00
TreeHugger Robot e1c4a90635 Merge "Migrating to android-x" into ub-launcher3-master 2018-08-14 22:53:40 +00:00
Sunny Goyal d230307a95 Migrating to android-x
Change-Id: I9a774152d13a541e8496dd84f2469bfed407f86d
2018-08-14 15:22:12 -07:00
Sunny Goyal f0b6db7fa8 Removing static launcher activity dependency from FirstFrameAnimationHelper
Static dependency does not work in the presence of multiple activities and
when the main activity is not Launcher (eg in fallback recents). Instead
creating FirstFrameAnimatorHelper on demand for individual animations.

Change-Id: I17bb69bbaaca92f0db994fb56fd784302c57d543
2018-08-13 16:10:18 -07:00
Sunny Goyal 849c6a2b18 Removing Launcher activity dependency on various animations
(This cl reverts change-Id: I455edcd17bda83ab51c2c04fa40e66097a4d6975)

Various animations were marked for cancellation when launcher activity is
destroyed. This this does not work with multiple activities (Launcher,
fallback recents, shortcut confirmation). Also since launcher activity
handles configuration changes, the activity is not destroyed often.

Instead associating a target with various animations which automatically
cancels the animations when that target goes away.

Change-Id: I64cd095a28075561a9e20c9dcdeb9f90c18e1047
2018-08-10 13:31:46 -07:00
Sunny Goyal db6cdb07e8 Exposing some private methods to easily customize widgets popup
Change-Id: Ie7bd879200b1f14d472ff03fd64429930651a39f
2018-08-02 14:41:08 -07:00
Sunny Goyal 7edf3d3f9a Only call requestUnbind if we are connected.
Somethimes onSettingChanged can come after the connected has disconnected because
of posting message on the different thread.

Bug: 110929527
Change-Id: I09f503c2f2f437c8656d491a7fdec3ce4e82257b
2018-07-09 15:09:43 -07:00
Tony c97d846372 Report when a notification is shown in the popup
Change-Id: I5c06b18f731e2dc8e47bacba59746fc4cc02c42c
2018-05-29 17:05:02 +00:00
Tony 7aa922c912 Make sure notification listener stays unbound on reboot when badging disabled
We were requesting unbind in onCreate(), but the NotificationListenerService
documentation for requestUnbind() clearly states "The service should wait for the
{@link #onListenerConnected()} event before performing this operation. I know it's
tempting, but you must wait." I was tempted, and I did not wait. :(

The fact that the notification listener was binding even though the setting was off
was not only inefficient, but also had at least one user-visible bug: because
secure settings are set per user, the global badging setting actually only applies
canShowBadge = false for user 0; other users such as work profile still show badges.

Repro steps:
1. Have a work profile
2. Get a notification on work profile app and normal app
3. Turn off global badging setting ("Allow notification dots" from home settings)
4. Reboot the device

In this case, we get onCreate, call requestUnbind() which is ignored since we aren't
bound, then get onBind() and onListenerConnected() etc. Thus the work profile app has
a notification dot and other apps don't.

Bug: 71545493
Change-Id: I7f7dc219b25c28257f8b98fba7e362b99d3cba45
2018-04-17 18:54:10 -07:00
Tony Wickham a6f5869d8f Ignore null notifications
There seems to be an edge case where we can get a null notification in
onNotificationRemoved(); there's nothing actionable about that, so just
ignore it to prevent NPE. Also add null check to onNotificationPosted()
for good measure.

Bug: 69140873
Change-Id: I3586bf435d05aee38b99dffd3d01315b433e8476
2018-04-13 10:57:09 -07:00
Sunny Goyal 2fd7a8bc59 Updating the UI of the options popup to make it look similar to icon popup
Bug: 77327164
Change-Id: I3580df8bf8a43cb44123f203ffed9a85fa33aea7
2018-04-02 12:28:47 -07:00
Tony 0f3d892a87 Only cancel the group notification if launcher canceled last child
Bug: 74429562
Change-Id: I82329b84d4d50f89218b431440dccb9ef33b1ba5
2018-03-13 16:20:45 +00:00
Tony Wickham 80e4191392 Update notification group mapping when group key changes
Tested by running:
"runtest -x cts/tests/app/src/android/app/cts/NotificationManagerTest.java
-m testAutogrouping_autogroupStaysUntilAllNotificationsCanceled"

The test fails before this change, and passes afterwards.

Also manually verified that the original bug that introduced this
regression (b/65100024) remains fixed.

Bug: 68215987
Change-Id: I4af198fd5257ad1dfab5e052c11f58ea84b5095a
2018-02-21 11:45:49 -08:00
George Hodulik fc1c96bde8 Added StatusBarNotificationsListener interface.
Change-Id: I62da2da4169835edf043bc085583adfb027bebbe
2018-01-16 11:56:13 -08:00