When user swipes up to home, Launcher will receive a onNewIntent
callwith a bundle-extra gesture_nav_contract_v1. It will contain
the componentName & UserHandle of the closing app & a callback.
Launcher can use the callback to return the final position where
the app should animate to and an optional surface to be used for
crossFade animation. The surface cleanup can be handled in
onEnterAnimationComplete.
Change-Id: I76fdd810fdcb80b71f7d7588ccac8976d9dfe278
The internal implementation of PendingAppWidgetHostView#getDefaultViews
uses the same view across updates which causes the exception in
AppWidgetHostView#applyContent when it tries to call addView() because
the view has already been added to its parent view in previous iteration.
Bug: 151901506
Test: manual
Change-Id: Ieccec814ac514e592d0d4f196b60ba89aec0d661
The fix is to prevent re-arrangement if the views are already unbound.
This is caused when:
- Folder is open
- Item has deep shortcuts
- Long press on deep shortcut to create DragView that could land in the
folder if the folder did not auto close. This is important because it
starts a drag within the folder
The folder unbinds all views as part of the Folder close complete callback.
And then the folder exit alarm gets triggered (because we drag DragView
outside of the folder) which causes the folder items to get
rearranged and added back to the folder's CellLayout.
Bug: 161559911
Change-Id: I142589b2c541dc21c47a67c20a93e627732107ef
Launcher stores ItemInfos for cached predictions in list BgDataModel.cachedPredictedItems on Launcher start (LoaderTask#run). The list reused if launcher has to rebind UI. Hence, the list should be cleared if launcher receives empty predictions.
Bug: 161245294
Test: Manual
Change-Id: I275655d5f52f6a6e5297473dd2f642728c1964a6
With the second swipe, we never complete the swipe to Overview
NoButtonNavbarToOverviewTouchController#maybeSwipeInteractionToOverviewComplete
- mReachedOverview = true
- mDetector.isSettlingState = false
And then the second swipe starts the state transition to Hint but then
it never gets completed because:
1. The animation starts
2. Gets cancelled
3. Starts again
4. Finishes, but is not marked as success since the cancel in #2 was never
set back to false
Bug: 160759508
Change-Id: I8c3972e6209c3d5a4a0bdd9f9b7683de18105d57
Test: swipe up from an app in landscape, seascape, and portrait,
and verify the window tracks with the finger 1:1 until pullback
Bug: 149934536
Change-Id: Ia469877e7152c8135e0b9153f69c191ba86cbd14
(cherry picked from commit f0a1b2ccd8)
After breaking down the time we spend in rendering preview under a different grid setting, I found out that we spend a huge amount of time loading the workspace. It takes a long time in non preview case (launcher workspace init), so to optimize we should try to cut down things that are not necessary for preview. Widget model loading (widget and shortcut updates) takes half of the time, and can be optimized with minimal risks / code changes.
Bug: 160662425
Test: Manual
Change-Id: I89029d0ddf6e2517077a0ba3fbbcfdcd60b268d9
This ensures that the cell contents always fit.
Bug: 160716074
Change-Id: I3d85adec3e7e3652fe4a258bd659382a3e696211
(cherry picked from commit 3535944395)
This happens when you drag an app into a folder when the current page is
already full. The new page has no apps in it until you drop the one you
want to add.
Fixes: 161040039
Change-Id: Iaa857e7a114e859fa7e6a0653028856a3a8a94a6
There's currently a bug prevents Launcher release drag lock for two step
widgets. Supposedly, onDeferredResume should release the drag lock; However,
in 3-button navigation mode, the transition from Overview -> Normal is
triggered in Launcher#onNewIntent, which happens after onDeferredResume.
This issue is not reproducible with gesture navigation because its
transition from Overview -> Normal is handled in NavBarToHomeTouchController
Test: manual verified with following steps
1. Enable 3-button navigation
2. Long press in WorkSpace -> Widgets
3. Drag Settings Widget to WorkSpace
4. When the config activity is shown, press "recents" button to see Overview
5. press "home" button to go back to workspace
6. repeat 2 and 3, verify the widget can be dragged
Bug: 149659788
Change-Id: I396ffa8a7db44bf3872a10de4208340a99a7efe8
(cherry picked from commit 3bf889a02f)
Also fixed another bug where the wrong layout
orientation was being applied when overview rotated
when launcher was in fixed portrait orientation.
Fixes: 160182914
Test: Tested w/ PIP, split screen,
w/o split screen w/ and w/o home rotation
Change-Id: Iccffb637ae5c22d07745f2108facd4de716dc8d3
> Using a separate View as icon, instead of the taskView
> Updating swipe animation logic to abstract out FloatingIconView dependency
Change-Id: Ib466262afead11ebe4ca035d589f0382c37e3e97
=> regressed in ag/10634216 which attemped to use onHoverListener
=> the problem is that onHoverListener is only triggered when the event is passed to the CellLayout, however, as with all dispatching, these events are handled depth first, and so in cases where a child handled the event, it would never bubble back up to the parent.
=> instead we have to continue to override dispatchHover event to always give presecedence to the delegate when it exists
b/155956518
Change-Id: Ic3ecf1b422c1821456328035a66a2fc1277e6746
Rootcause: FolderInfo was persisted into DB only when folder options are updated. Hence when folder was created (Folder option remains suggested) its title was not persisted into DB.
Fix: Persists folderInfo into DB always whenever title is updated
Bug: 159904890
Change-Id: If0d20b0d7fa6966dd7bb40a2c07bcb22bd0893e0
Also remove USE_SURFACE_VIEW_FOR_PREVIEW flag
Fixes: 159755324
Test: manual
Change-Id: I6517c34911e217a69063226b01e4583194902f9c
(cherry picked from commit 633a4bdf57)
While display is in landscape, and the launcher is transformed to
portrait, the display rotation from activity or application context
will get the rotation in portrait.
In order to transform the input event when the orientations are
different, the actual device rotation is still needed. By creating
the display context from application context, the resources of
the new context won't be affected by the activity/application level
display info adjustments. That provides the actual device states.
Additionally, DefaultDisplay#INSTANCE should only be used for the
operations related to physical orientation/size because it won't
contain the override information from activity.
Bug: 157456493
Test: Use a device which may switch refresh rate.
Open Maps and put device in landscape.
Use gesture navigation to swipe up.
The direction of movement should be consistent with UI.
Change-Id: I03108b1ab057e28727b6a6db3629d2c1c069e828
Fixes: 159312066
Test: Have two dup items in a folder under one grid setting. Migrate. Make sure the folder is migrated correctly to the new grid setting.
Change-Id: Ic5aeb30a1c8acb382bccf744d7553913d8a8a320
They were ultimately caused by killing Launcher process from tests.
Now having a test info handler request to clear db.
Bug: 152629799
Change-Id: Ia81ddc3e338718c4cff08c7396b9fda1b7091024
UNLABELED -> title==null and EMPTY_LABEL -> title=="". When adding new items for the folder if the folder is in UNLABELED state, auto-labeling will be enabled.
This change also addresses auto-labeling issue due to false edit from UNLABELED to EMPTY.
Bug: 159164315
Change-Id: Ia17cd27b4afb60420dc15c544f544061fc46ad33