Commit Graph

33 Commits

Author SHA1 Message Date
Schneider Victor-tulias
16e04e29d2 Generalize the icon popup menu types.
Generalized popup menu types and logic to allow wider uses outside of launcher.

Bug: 198438631
Test: long pressed launcher icons and pressed menu options
Change-Id: Iadcbb1796496c0061dcee362784e426ff55dc94a
2021-10-19 16:06:16 -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
thiruram
b91480e3c7 Add app launch event for tap on shortcut in shortcut container.
Bug: 157765763
Change-Id: I769eb81ccabc96ad1c6c4c3d53ff89a8a744c3e0
2020-06-01 16:38:36 -07:00
Sunny Goyal
e396abf502 Moving model data structures to a separate file
Change-Id: I77ad7a5219e72d2e0d6c1803de2ac3ed6a65a8f7
2020-04-09 13:20:39 -07:00
Sunny Goyal
18204e4eea Various icon cache fixes
> Multiple instances of LauncherIcon created when
    LauncherIcons refers IconCache which in turn creates new LauncherIcons
> Widget icons are never cached as they were using low res icons
> Shortcut drag icons are not loaded synchronously
    when using PinItemRequest flow
> Wrong lastUpdatedTime is used in iconCache for shortcuts
> IconUpdateHandler does not ignore managedUser promise icons

Change-Id: Ie7eed68a30fad11d1861b6c70c380953a15ae1cf
2020-02-06 14:16:34 -08:00
Sunny Goyal
9c2b96090b Adding SecondaryDisplayLauncher in Launcher using common listener
Bug: 141596722
Change-Id: I480bfadf592f7d0309f17c33a3fe14bb77fb5586
2020-01-30 08:27:27 +00:00
Sunny Goyal
fa39536570 Removing static reference of deep shortcut manager
Bug: 141376165
Change-Id: Ie60b82be63a8926825598c681d8b2a1b2ace6413
2020-01-02 20:13:12 +00:00
Sunny Goyal
3808a69a6c Storing BitmapInfo instead of icon and color directly in itemInfo
This will allow subclassing BitmapInfo to support custom icon/dynamic
icons which can be loaded on the background thread instead of going
through IconFactory which runs on UiThread

Change-Id: Ieced6e91330bdff1b505826d097a8df711dfe967
2019-10-28 11:12:47 -07:00
Sunny Goyal
7c53d355bf Moving some notification binder calls to worker thread
Change-Id: I16c4aded7b709282a9b3d0df64111a9a40366b50
2019-10-21 15:01:10 -07:00
Sunny Goyal
6bbf6004f8 Removing ShortcutInfoCompat and directly using ShortcutInfo
Change-Id: I2842689e192a206c0d31558c8126eae1c7904598
2019-04-22 15:39:40 -07:00
Sunny Goyal
9589916418 ShortcutInfo renamed to WorkspaceItemInfo
Will get rid of ShortcutInfoCompat in a follow up cl

Change-Id: I7d7d9c938635f59b216290ba28bea9d0e0721a7d
2019-04-16 00:08:24 -07:00
Zak Cohen
658c67a609 Deepshortcuts - only keep the per package shortcut count in memory.
Change to only keep the per Activity shortcut count in memory, not
the list of ids.
The full shortcuts are loaded at long press time so saves memory.

Bug:117239104
Test:Manual and ran instrumentation tests
Change-Id: Iee974ecba2c977216be4f078396ceed22b931f5d
2018-10-22 11:38:09 -07:00
Hyunyoung Song
cda96a5b43 Setup make icon-loader library
Bug: 115891474

Test: make -j10 icon-loader
Next step: Launcher will depend on icon-loader in next CL

Change-Id: I797ddb857cf8be79f3be6ca2f174c593ca3713a5
2018-10-19 14:33:46 -07:00
Hyunyoung Song
48cb7bc7a4 Move IconNormalizer/ShadowGenerator/LauncherIcons to icons package
Bug: 115891474

Sending out the package name changing CL first before I make
LauncherIconsHandler and tests around it.

Change-Id: Ic10479a06333e1435b392a7072cd08782e710cbd
2018-09-26 11:57:37 -07:00
Sunny Goyal
d230307a95 Migrating to android-x
Change-Id: I9a774152d13a541e8496dd84f2469bfed407f86d
2018-08-14 15:22:12 -07:00
Sunny Goyal
18a4e5aefb Making LauncherIcons thread safe
Creating a pool of LauncherIcons so that they can be used from multiple threads

Change-Id: Idc7b5ddb47b6e338a5389f3c4faa6f63de108c72
2018-01-09 17:30:52 -08:00
Sunny Goyal
179249d804 Dominant color is part of icon cache
> Calculating extracted color during icon generation and storing it in model and DB
> Removing unused logic avoid various types of badge rendering
> Icons are badged with extracted colors, while folder is badged with theme color

Bug: 35428783
Change-Id: I93e30c52fbded7515c3ae1778422e84672eafb56
2018-01-03 16:55:58 -08:00
Sunny Goyal
00ac920241 Simplifying app icon popup
> Using a single linearLayout instead of multiple nested views
> Using clipToOutline for rounded corners instead of using canvas.saveLayer
> Removing nested view elevations and overdraw
> Using LayoutTransition for animating layout changes, instead of manually creating animators

Change-Id: I8e57092f52ca5a032a2756594fdd39788acc5a0d
2017-11-15 16:43:20 -08:00
Tony
887bd1fe1a Show more shortcuts when last notification is dimissed
We currently only show 2 shortcuts when notifications are
present, but support up to 4 otherwise. With this change,
the hidden shortcuts are added back after dismissing the
notifications, instead of only after closing and reopening
the container.

To ensure the transition is as elegant as possible, we also
separated the shortcuts header from the rest of the shortcuts.
That way we can reveal the new shortcuts without removing the
header (the shortcuts come out from behind the header).

Bug: 38036250
Change-Id: Ie9ab35f9be57cec1d5345e9e70e84e09ea52c9fc
2017-06-15 16:21:34 -07:00
Tony Wickham
623daea93b resolve merge conflicts of 6f725f283 to ub-launcher3-master
Test: I solemnly swear I tested this conflict resolution.
Change-Id: I3559969b62a9a4b1ec04697109636e8cb0fd9fc8
2017-04-20 16:24:09 -07:00
Tony Wickham
a7e1c1c088 Only add widgets system shortcut if widgets exist
Before we were adding it in a disabled state, and then enabling it once
widgets were bound (if widgets existed for that app). Now we load all
widgets when launcher starts so that we can use the values for the
purpose of animating the popup container. Then, as the container opens,
we reload widgets/shortcuts for that particular app and add/remove the
widgets shortcut if necessary.

Bug: 34940468
Change-Id: I64bd009442d10d3d1f9a977bdedfdb639a7dd193
2017-04-20 15:10:38 -07:00
Tony Wickham
c66c3e2ba4 Fix build - move system shortcut icon colors to theme
Change-Id: Iae248e5fdd57310adeb898305deee4c0eaee5318
2017-04-13 12:24:42 -07:00
Tony Wickham
25e8f6d83e Merge "Add app info icon with no shadow for popup" into ub-launcher3-dorval 2017-04-12 22:35:51 +00:00
Tony Wickham
d690d68f97 Add app info icon with no shadow for popup
- Also changed opacities of the system shortcut icons to match spec
  (38% black in header, 54% when expanded view is shown)

Bug: 35766387
Change-Id: I73881bf1c72c98d78a38d82c632c4954b02eff4e
2017-04-12 14:38:37 -07:00
Tony Wickham
ce44516dd8 Update popup to match redlines
- Update specs in dimens.xml and colors.xml
- Move notification count to top right, and keep "Notifications" in left
    - Also removed NotificationHeaderView and instead use FrameLayout
- Limit to 2 shortcuts instead of 3 if there are notifications
- Use SP instead of DP for text (b/35869307)

Bug: 35766387
Change-Id: I892640933ad6351946af3df6c805b98bb4e7cb50
2017-04-11 16:44:38 -07:00
Tony Wickham
86222d23e2 Add support for getting widgets/shortucts for a particular package/user
Bug: 34940468
Bug: 33553066
Change-Id: I5d0131df206c6a13d4227ad28c5b094bbf1343df
2017-04-04 14:36:52 -07:00
Tony Wickham
2f54a1625a Small UI fix for widgets/app info shortcuts
- Switch order of widgets & more and app info.
- Start binding widgets after starting to update these shortcuts on the
  UI thread, so that they will show up without waiting for the bind
  logic, which can take a while. We already have a callback mechanism
  for enabling widgets & more after widgets are bound, so this was how
  it was supposed to work already.

Change-Id: I5f702f9c0814d30acf6298be309c6dc30727316e
2017-04-03 15:58:50 -07:00
Tony Wickham
26b1746593 Add support for system shortcuts in popup container
- Currently the system shortcuts are just widgets and app info
- As shortcuts, they live in ShortcutsItemView
- They are populated either as icons only (if there are deep
  shortcuts) or as icons + text
- Widgets are disabled until binding them is complete (we request for
  them to be bound on long-press now). We should revisit this.

Bug: 34940468
Change-Id: Ia51d002c3b3ede87658bdab57abfc3eeca1ed242
2017-03-30 16:35:56 -07:00
Tony Wickham
2f5bb16915 De-dupe shortcuts with the same id as the main notification.
- Pass NotificationKeyData, which includes the shortcut id, instead of
  just the notification key from NotificationListener
- Remove the shortcut with the same shortcut id as the first
  notification, if it has one, in PopupPopulator#sortAndFilterShorcuts()
- Add some unit tests

Bug: 36571718
Change-Id: I308941b34c525b34686583476e3f82ccb8b7e2d8
2017-03-24 14:18:53 -07:00
Tony Wickham
51889b0be8 Merge deep shortcuts in rounded rect
- DeepShortcutViews are added to ShortcutsItemView, which
  is in PopupContainerWithArrow
- Moved some shortcut-specific logic to ShortcutsItemView
  (namely, touch/long-click handling for draggin shortcuts)
- Moved round-rect clipping to PopupItemView
- Removed collapseToIcon() logic, including
  PillWidthRevealOutlineProvider, which was only used for
  that purpose. It isn't necessary now that the deep
  shortcuts have no background themselves.
- Replaced focus pill drawable with ripple effect on
  shortcuts and notification view.

Bug: 35766387
Change-Id: I6bc09f1851cfbb806df4bf75a6e435b0f1900c9c
2017-03-01 10:16:16 -08:00
Tony Wickham
c6b79e307f Add logging for notifications.
- Log notification launches
- Log notification swipes
- Fix logDragNDrop() to only log if the pre-drag ends (so it doesn't
  log a long-press that only shows shortcuts without dragging).
- Add shortcut rank to logs when launching deep shortcuts, where 0
  is the shortcut closest to the app icon (highest rank).

Bug: 34770729
Bug: 32410600
Change-Id: I99dcef9b6a71da2ef58e32397702bb137407b10f
2017-02-07 10:16:52 -08:00
Tony Wickham
9438ed414f Add swipe-to-dismiss notifications in popup menu.
- Next secondary icon animates up to replace dismissed main notification
- Add padding around main notification so it always aligns with the
  straight edges of the view (not the rounded corners); looks more
  dismissable
- Notification view collapses as notifications are dismissed
- To mimic system notification behavior, we copy SwipeHelper,
  FlingAnimationUtils, and Interpolators. We also apply elevation
  to notifications and reveal a darker color beneath when dismissing.

Bug: 32410600
Change-Id: I9fbf10e73bb4996f17ef061c856efb013967d972
2017-01-25 17:36:31 -08:00
Tony Wickham
540913eadf Refactor DeepShortcutsContainer to PopupContainerWithArrow
- Also added PopupItemView, which takes animation logic from
  DeepShortcutView, and which DeepShortcutView now extends.
- Renamed ShortcutFilter to PopupPopulator, which has support
  for new item types (not yet used). Also moved populating
  logic (e.g. UpdateShortcutChild Runnable) to PopupPopulator.

Bug: 32410600
Change-Id: Ib6e444ac7ca99c80ba438801c26e62d9542e0ad9
2017-01-25 11:21:47 -08:00