Home was incorrectly treating apps launches as subactivties launched to obtain results.
This resulted in a protective flag being set when it should not have been.
Dismisses the popup window upon configuration change and correctly restores the
window after the new activity is created. This change also saves/restores the
current gesture and its match. This change also fixes the handling of the back
key when creating a new gesture-based shortcut: the gestures pad is not dismissed
anymore when pressing back in one of the shortcuts dialogs.
Previously, pressing back in a dialog on top of the gestures panel would
always dismiss the gestures panel. This is because the UP event for the
BACK key is sent to the underlying window after dismissing a dialog.
This fix simply checks for DOWN events only.
The GesturesActivity was crashing when changing the orientation while
renaming a gesture. This was due to unimplemented support for orientation
changes.
Instead of waiting for Xms after a finger up event to start the recognition process,
do it right away on a finger up event. This provides immediate feedback.
A dialog can be dismissed without being cancelled. This change simply
adds a dismiss listener to the Add dialog in Home to make sure the
workspace is properly unlocked when the dialog is dismissed.
Moving the trackball up or down on a screen in Home could send the focus
to the left/right, which can be confusing. This issue was introduced by
a change in the way addFocusables() work and Home did not respect the
new behavior.
Remove shortcuts from folders (closed and opened) whenever the user
uninstalls an application. Home was removing shortcuts from the
workspace and the database but was not updating the UI correctly
when running.
Dragging an icon out of a folder was showing a gray background. This was due to the icon's drawing cache background color. This fix simply temporarily resets that color when capturing the view into a Bitmap.
Forcing the soft keyboard open is done at a specific time when animating the
search widget to the top of the screen in order to time the two animations well,
but we were doing it anyway even if the search widget was already at the top of
the screen and didn't need to animate.
Okay, so git does kinda rock when you're on a plane. :)
When dragging between workspaces in rapid succession, the canceling of the
original long-press timer wasn't being triggered correctly. (When the timer
fires, it might read an invalid Workspace.allowLongPress() value.)
This patchset correctly cancels any pending long-press timers once a desktop
scroll begins, and we don't need to rely on the allowLongPress() value.
* changes:
Fixes#1596240. Optimize invalidate/draw passes by marking opaque views and avoiding drawing them. Whenever a View requests an invalidate its parent check whether the view is opaque or not. When the view is not opaque, the framework behaves as it used to. However, when a view is opaque, the parent marks itself as being dirty because of an opaque view. Its parent then does the same, and so on. When the framework then starts drawing the views, it does not draw views marked as dirty opaque. If a view is dirty opaque and receives an invalidate request from a non-opaque view, it then clears the dirty opaque flag and behaves as before.
Merge commit 'c4c1f32159cf125f60c6057e5099aa3e0dc439cf' into donut
* commit 'c4c1f32159cf125f60c6057e5099aa3e0dc439cf':
AI 148592: Fix wallpaperchooser from previewing the default_wallpaper to wallpaper_lake. This issue is exposed