Commit Graph

1095 Commits

Author SHA1 Message Date
alexmang
6c666fb196 Add a feature flag to expand smartspace to three rows
In order to experiment with presenting more predicted content to the
workspace I have added a flag to expand smartspace to two rows.

This CL does not include any app relocation. If an app lives in a space
the expanded smartspace will occupy, it will be removed from workspace.

Change-Id: I38354dc81a34a495828cf7a69ddb04cc137e2e4e
2020-10-20 09:32:29 -07: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
Tony Wickham
ca23b981d9 Allow touches on Workspace during transition from Overview
Previously we only allowed touches on the hotseat (due to it being
in the shelf in Overview); now we allow touches anywhere if we are
not in an overview state.

Test: enter overview, swipe up to home and scroll workspace or tap
a workspace icon during the transition

Bug: 169052350
Change-Id: I59ee695ba9cb6f5fddd8e41c5796cdba6b3d2112
2020-09-21 11:56:04 -07:00
Andy Wickham
1ca1d6343f Merge "Delays removal of extra screen when dropping an app." into ub-launcher3-master 2020-08-28 23:24:24 +00:00
Andy Wickham
0f12b6013d Delays removal of extra screen when dropping an app.
This prevents a conflict between the scroll animation
and layout transition caused by removing the screen.
Since the extra screen is at the end of the workspace,
this most commonly (only?) causes issues in RTL, as
everything shifts to the left to fill the void of the
empty screen. See bug for example video of the issue.

With this change, the removal of the empty screen
happens after Launcher finishes transitioning back
to NORMAL state after dropping an icon/widget,
rather than in onDragEnd.

Note: There is a similar issue when placing a widget
in RTL (even if not switching screens), but it's not
made worse by this CL. Filed b/166531479.

Demo:
https://drive.google.com/file/d/1JTP81syjoBFe3_N2SOZHP5r5_RoCUWan/view?usp=sharing

Fixes: 163382092
Change-Id: I55ed5af8e1d80dcc0d1b6502c3c5b068dc6f8722
2020-08-27 17:26:02 -07:00
Hyunyoung Song
516da83f62 Merge "Good riddance UserEventDispatcher [1/n]" into ub-launcher3-master 2020-08-25 09:25:55 +00:00
Hyunyoung Song
6b670d62df Good riddance UserEventDispatcher [1/n]
Bug: 165675920
Change-Id: I237ed4243e1724b3c370c5660673bb3966bf4811
2020-08-24 21:19:09 -07:00
TreeHugger Robot
3cc22175e9 Merge "Moving hotseat predictions to ModelDelegate" into ub-launcher3-master 2020-08-24 18:42:01 +00:00
Tony Wickham
1fbab3ad2c Update worksace page indicator during HINT_STATE transition
Test: Scroll to workspace page 2, then swipe up from the nav bar;
ensure that the page indicator fades in and scrolls to page 1

Change-Id: Ie0157c8e67b94509d3817f7e160d26f505185bbb
2020-08-18 15:12:56 -07:00
Sunny Goyal
0fc3d1275a Moving hotseat predictions to ModelDelegate
Bug: 160748731

Change-Id: I8db7856a17e0b6ca45b4d5ec3513f788f22db11a
2020-08-17 08:43:07 -07:00
Sunny Goyal
52e2545a66 Removing arrow indicator from homescreen and
adding a separate view for various accessibility actions

Bug: 159247871
Change-Id: I14536844929e03d36a6a5f294d4f5daad8c82d15
2020-07-28 14:21:31 -07:00
Sunny Goyal
28f5075eb0 Adding support for storing container based item list in the model
These items get updated automatically during various model tasks.
Also simplifying the pinned shortcut state, by calculating the
list of ppined shortcut on demand, instead of storing a refCount.

Bug: 160748731
Change-Id: I3169d293552b05b4f4d6c529397fbc761887a282
2020-07-23 15:27:50 -07:00
Sunny Goyal
faea66fe88 Ensuring workspace pages are offset properly in waterfall cutout
Bug: 149224750
Change-Id: I523b09aa4cbe7710e3fd89bc716bacbafd4eadc8
2020-07-08 18:39:42 +00:00
Hyunyoung Song
801f81fba5 Log Launcher transitions to WW
- ONRESUME / ONSTOP
- HOME_GESTURE
- OVERVIEW_GESTURE
- QUICKSWITCH
- SWIPELEFT/SWIPERIGHT

Bug: 156875719
Bug: 148822714
Bug: 137777105

Debug log: go/launcher-log-parity

Change-Id: I64a0deab4996b5be36320fbe0339f320891c53e0
2020-06-22 12:09:06 -07:00
thiruram
b53764bd4b Fixes folder logging.
Only LAUNCHER_FOLDER_LABEL_UPDATED events will have FromState, ToState
and FolderLabelInfo. Other folder events such as OPEN, DRAG etc will have
basic fields only populated.

Sample Log: https://paste.googleplex.com/5468394805526528
Screencast: http://rcll/hSUQjtQXfQM5i9DjjAQTf2/Zn5FeiVDONaQj0mK1JNjg

Bug: 159164315
Change-Id: I903fc7b62bcee748aa3ef695453be3e14d388712
2020-06-19 17:06:46 -07: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
Tony Wickham
fe54c36822 Apply PendingAnimation#mDuration to all added anims
Doing this at the root instead of individually for all added
animators ensures none fall through the cracks.

Fixes: shelf moving too quickly in 2 button mode
Change-Id: I0de1ba9cee3fb8f1d6161371625d97e4b2305129
2020-06-09 18:35:07 -05:00
thiruram
62c7b5c8f7 Adds WW logging for QSB search results & all-apps predicted row.
SearchResultContainer represents apps rows displayed within QSB search results for both default scenario(without search term) and actual search result(with search term).

SearchResultContainer is used for both homescreen QSB and all-apps QSB.

Follow up CLs will add searchOrigin and queryLength in SearchResultContainer

Bug: 152978018
Change-Id: Id5f96490686c4141e3e6b2516907ac0505a777e6
2020-05-27 20:29:40 -07:00
thiruram
6bf6848951 Introduces CONTAINER_WIDGETS_TRAY to LauncherSettings.Favorites.
This would log LAUNCHER_ITEM_DRAG_STARTED event when an item is dragged from widgets tray. This also fixes empty component with widget logs.

Sample Log: https://docs.google.com/document/d/1CBP2yTcXdFhPdNG5ZmWFKSgd8mDbMevY-akVlUXPLDo/edit#bookmark=id.bk5w3n8uwhcl

Bug: 152978018
Change-Id: I51d16edae13973d5e62adda0e4efa861fa10dc1b
2020-05-18 16:44:46 -07:00
Sunny Goyal
35e7d38681 Abstracting out state handler logic into base classes so that it can
also be used in different activity

Change-Id: Ic5e60b21e1429c71f1cd4e7041e70bf4fc9761b7
2020-05-11 16:38:26 -07:00
Adam Cohen
c77bc45fa5 Fix issues with drag and drop from All Apps in non-default grids
=> Also fix the widget tray in these non-default grids, and the external shortcut addition flow. The layout was broken as it was scaling with the icon size. Instead keep it fixed which looks much better, similar to how we maintain all apps.
=> This also fixes a small jump when dragging shortcuts external to Launcher.

issue 154169001

Change-Id: Iad1e3859dd6fedccce9b5c6633e64426a4630c31
2020-05-08 16:00:08 -07:00
thiruram
5a01f0ec51 Implements LAUNCHER_ITEM_DROP_FOLDER_CREATED event.
When item is dropped on a existing item resulting in new folder creation, triggers LAUNCHER_ITEM_DROP_FOLDER_CREATED event with details of the destination package.
This change also introduces new FolderIcon item to launcher_atom.proto to represent folder icon.

Screencast and sample logs: https://docs.google.com/document/d/1CBP2yTcXdFhPdNG5ZmWFKSgd8mDbMevY-akVlUXPLDo/edit#bookmark=id.tmbucd1f44qp

Bug: 152978018

Change-Id: Ib4d343ba9075aa8853652f128457c4638541ec59
2020-05-06 17:24:09 -07:00
thiruram
59c5f399a6 Duplicating InstanceId and InstanceIdSequence classes from framework internal package to launcher3.
com.android.internal.logging package is not directly accessible from launcher codebase hence making a duplicate classes until they are moved to common package.

Change-Id: I7c8a9bd89a322fc330b58460e6468ccff933ea44
2020-05-05 21:06:58 +00:00
thiruram
740e2ab12e Implements LAUNCHER_ITEM_DROP_COMPLETED event.
Assigns InstanceId to match LAUNCHER_ITEM_DROP_COMPLETED, LAUNCHER_ITEM_DRAG_STARTED events.

Sample Log:
2020-05-01 14:07:53.158 18369-18369/com.google.android.apps.nexuslauncher D/StatsLogManager: LAUNCHER_ITEM_DRAG_STARTED(InstanceId:282)
    # com.android.launcher3.logger.LauncherAtom$ItemInfo@c0711fbd
    application {
      component_name: "com.google.android.apps.maps/com.google.android.maps.MapsActivity"
      package_name: "com.google.android.apps.maps"
    }
    container_info {
      workspace {
        grid_x: 2
        grid_y: 1
        page_index: 0
      }
    }
    is_work: false
2020-05-01 14:07:54.308 18369-18369/com.google.android.apps.nexuslauncher D/StatsLogManager: LAUNCHER_ITEM_DROP_COMPLETED(InstanceId:282)
    # com.android.launcher3.logger.LauncherAtom$ItemInfo@90000206
    application {
      component_name: "com.google.android.apps.maps/com.google.android.maps.MapsActivity"
      package_name: "com.google.android.apps.maps"
    }
    container_info {
      workspace {
        grid_x: 0
        grid_y: 4
        page_index: 0
      }
    }
    is_work: false

Bug: 152978018

Change-Id: Ib4fc860e8080edd407ed15b93f7d55ac31328d11
2020-05-04 18:00:07 -07:00
thiruram
f81e8b002a Implement LAUNCHER_ITEM_DRAG_STARTED event.
* Fixes null component issue when ItemInfo object copiedFrom.
* Fixes missing container when item is dragged from hybrid hotseat.

Sample Logs:
2020-04-30 14:09:45.499 30472-30472/com.google.android.apps.nexuslauncher D/StatsLogManager: LAUNCHER_ITEM_DRAG_STARTED
    # com.android.launcher3.logger.LauncherAtom$ItemInfo@260f31f8
    application {
      component_name: "com.android.chrome/com.google.android.apps.chrome.Main"
      package_name: "com.android.chrome"
    }
    container_info {
      workspace {
        grid_x: 2
        grid_y: 2
        page_index: 2
      }
    }
    is_work: false

2020-04-30 14:23:15.230 31320-31320/com.google.android.apps.nexuslauncher D/StatsLogManager: LAUNCHER_ITEM_DRAG_STARTED
    # com.android.launcher3.logger.LauncherAtom$ItemInfo@608f101
    application {
      component_name: "com.google.android.gm/.ConversationListActivityGmail"
      package_name: "com.google.android.gm"
    }
    container_info {
      hotseat {
        index: 1
      }
    }
    is_work: false

Bug: 152978018

Change-Id: I3d3ce213fd2fc6eb5ffb239e048ceb7c0fa88b53
2020-04-30 15:03:43 -07:00
Sunny Goyal
8f96546e79 Generalizing LauncherState definition so that it can be used in RecentsActivity
> Removing 'Launcher' as parameter from state methods called by StateManager
> Converting state properties to methods for easier abstraction
> Moving state handling drom state definition to activity class

Change-Id: I997627df606a7e0bb3bf32688d045a942a47fc94
2020-04-30 01:01:51 -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
5626583228 Fixing insets not getting applied to workspace
Change-Id: I7512849efd91d4aa2b9da6aba0602c65422c606d
2020-04-06 18:21:02 -07:00
TreeHugger Robot
839d0d712c Merge changes from topic "all-apps-arrow" into ub-launcher3-master
* changes:
  Add all apps education bounce animation
  Update vertical drag handle (all apps arrow)
2020-04-06 20:09:45 +00:00
Tony Wickham
490a8ab7c7 Add all apps education bounce animation
- Update existing arrow bounce animation to repeat 3 times,
  and play it when swiping up from nav bar on first home
  screen as well as when tapping the arrow.

Bug: 151768994
Change-Id: Ib120764fdeab6cd932018b6fed8b1093dda20641
2020-04-06 11:28:50 -07:00
Sunny Goyal
c4d3201538 Removing support for fake landscape
Bug: 111068105
Change-Id: If31d2f700ddee1d21541735de3a8006ee2a53c5c
2020-04-03 17:11:35 -07:00
Hyunyoung Song
7ac0ef1cb1 ItemInfo supports lite proto builder (1/n)
Bug: 144953948
Bug: 137777105

The new lite proto builder is used to send two types of logging to statsd
1) Snapshot logging
2) App launch, task launch, task dismiss

Statsd will be connected once platform CL is submitted

Change-Id: If606cee5288fe4bd6c522605ae84eb0f24174f5b
2020-03-31 20:52:36 -07:00
Sunny Goyal
3e94faa5de Merge "Removing animation when stripping empty pages, as the animation is run by LayoutAnimation already" into ub-launcher3-master 2020-03-25 22:06:40 +00:00
Sunny Goyal
deb91c46eb Decoupling some dragController methods
Change-Id: I7c4ab5f1504c49eaa0566afe643d7672faa80205
2020-03-24 17:27:58 -07:00
Sunny Goyal
6e379fc784 Removing animation when stripping empty pages, as the animation is
run by LayoutAnimation already

Bug: 151978739
Change-Id: I75b9055c3e862a6813164cce6c1ba7b2fe1f870a
2020-03-23 01:50:55 -07:00
Adam Cohen
f946e0a5ee Merge "Refactor / Cleanup / Simplify a bunch of dnd related rendering / animation" into ub-launcher3-master 2020-03-21 01:27:08 +00:00
Adam Cohen
650869973a Refactor / Cleanup / Simplify a bunch of dnd related rendering / animation
Addresses:
=> Fix folder icon drop location mapping (was very far off)
=> Fix BubbleTextView drop animation shifted by a few pixels
=> Get rid multiple unnecessary calls to setDragMode(none), was breaking
   some of the reorder flow; still some issues to address here.
=> Fix folder icon parallax (didn't work when the folder had a dot)

Test: manual

Change-Id: I5959cf341996f75d30212353ec096ed25bf40ea5
2020-03-21 01:26:09 +00:00
Sunny Goyal
9b18010990 Decoupling some drag and drop code handling
> Removing some special checks around accessibility drag
> Unifying folder alarm code path for accessible and normal DnD
> Maintaining mDragStartTime inside the dragDriver instead of the callers
> Simplifying some accessibility callbacks

Future cl will create a Accessibility DragDriver and unify it with
other DnD flow

Change-Id: I1919ef218de0174678110f271b450bcb9aaf4a5c
2020-03-18 12:41:42 -07:00
Sunny Goyal
f3ac703256 Moving animation config so a separate class
Using PendingAnimation for animation builder.
This will allow us to easily add SpringAnimation to stateAnimation

Change-Id: I8d88489a5da6fc85747ef9be7c13858b441cd28a
2020-03-16 19:36:36 -07:00
Samuel Fufa
a579ddc9c8 Refactor logging to capture Target hierarchy
Instead of creating a fixed number of targets, we now pass an ArrayList
of targets to. Any class implementing
LogContainerProviders#fillInLogContainerData can setup it's own target
and add it to the ArrayList, It can also pass the ArrayList to other
LogContainerProvider to capture full Target hierarchy.

Bug: 147305863
Change-Id: I0063c692120fb9e1cff2d8902c5da972d0623418
2020-03-06 13:49:19 -08: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
Zak Cohen
3eeb41de9a Rename flag IS_DOGFOOD to IS_STUDIO.
The flag is only set when building from Android Studio... and is never
used for dogfood.

Test: local
Change-Id: I898d585f4558c2437f0152ef102bea59c351f80b
2020-02-14 14:19:59 -08:00
Samuel Fufa
28c3e4553a Sync prediction client and folders
- Notifies prediction client when a folder is converted into workspace
item as a result of losing all items but one.
- Notifies predction client when a folder is created from an item in the
workspace with no duplicates.

Bug: 148749638
Test: Manual
Change-Id: Ifd51a6fe2a40c8baf4d88e2dba1e5bdc925e1608
2020-02-08 16:19:53 -08:00
TreeHugger Robot
61d639d756 Merge "Make LauncherState transitionDuration overridable at runtime" into ub-launcher3-master 2020-02-06 20:01:49 +00:00
Tony Wickham
c7203ad541 Make LauncherState transitionDuration overridable at runtime
This follows the pattern of most of the other state properties, and
allows us, for example, to extend the overview transition in 0-button
mode, but keep it shorter for other modes that don't travel as far.

Bug: 143361609
Change-Id: Ibf8142bf3f57bb73be826adb6f4a32c136ff56dc
2020-02-05 11:16:58 -08:00
Samuel Fufa
746d420f76 Notify predictor on appIcon convert to folder
Bug:148749638
Test:Manual
Change-Id: I7eed1f309197479f708a23029c04106af0ac536f
2020-02-03 15:42:43 -08:00
Hyunyoung Song
1ae42423ca Load folder names during LoaderTask
Bug: 147359653

Change-Id: I4d1b53c3a72d0773d4bc8819ee8118fc719944ad
2020-01-28 22:06:05 -08:00
TreeHugger Robot
0618d689e8 Merge changes from topic "state-supplier" into ub-launcher3-master
* changes:
  Translate recents slightly while dragging after pausing
  Two-zone model: swipe up from nav bar vs above it
  Change LauncherState to Supplier<LauncherState> in tests
2020-01-29 03:06:04 +00:00
Tony Wickham
4fdba14cfb Two-zone model: swipe up from nav bar vs above it
When ENABLE_OVERVIEW_ACTIONS flag is enabled, swiping up from the nav
bar goes to overview if you hold, or the first home screen if you don't.

- Added NoButtonNavBarToOverviewTouchController, which extends
  FlingAndHoldTouchController but only works if you start from the nav
  bar. Otherwise it falls back to PortraitStatesTouchController to
  handle normal state transition to all apps.
- Added HintState. This is where the workspace/hotseat/qsb scale down
  when you swipe up from the nav bar, to hint that you're about to
  either go to overview or the first home screen.
  - Added getQsbScaleAndTranslation() to allow Overview and Hint states
    to treat it as part of the hotseat.
  - Since Overview needs to show above the QSB as it's animating, bring
    Overview to the front and update OverviewScrim to handle the case
    where there's no view above Overview to draw the scrim beneath.
- ENABLE_OVERVIEW_ACTIONS is always false in 2-button mode, since the
  shelf is crucial to that mode.

Bug: 143361609
Change-Id: I743481bb239dc77f7024dc98ba68a43534da2637
2020-01-28 18:31:10 -08:00