Updates BaseWidgetSheet to check if the last recorded widget cell
to show an add button is still showing an add button before deciding
how to handle the current click.
When a widget is recycled or loses focus, it will reset to the default
state of hiding the add button. However, BaseWidgetSheet still tracks
it. If that cell is clicked again after being reset, we want to show
the add button.
Bug: TODO
Test: manual
Flag: ACONFIG com.android.launcher3.enable_widget_tap_to_add TEAMFOOD
Change-Id: I4614674948a52b8908fabf5c0e5734bf76b9282b
This change introduces an "Add" button that appears when a widget
preview is clicked in the widget picker. This button disappears when the
preview is clicked again, or another preview is clicked. When the button
is pressed, it adds that widget to the picker. The add button is
available in the app-specific widget sheet as well.
Bug: 323886237
Test: Manual
Flag: ACONFIG com.android.launcher3.enable_widget_tap_to_add DEVELOPMENT
Change-Id: I86a8a4c22119960c54a885fd2efeb91916b4f9a0
Ordering changes and some more UI changes in follow-up.
Bug: 318410881
Test: See screenshots
Flag: ACONFIG com.android.launcher3.enable_categorized_widget_recommendations DEVELOPMENT
Change-Id: I77e7f4dcdda32e2921ae56721cddbe261832f0d8
WidgetCell will use the generated RemoteViews preview to display
previews in the widget picker. It will fallback to current preview
methods if not available.
Introduces WidgetManagerHelper.loadGeneratedPreviews as a utility
function. WidgetManagerHelper is passed into the constructor of
WidgetItem to avoid calling
context.getSystemService(AppWidgetManager.class) for each widget.
Bug: 308041327
Test: atest Launcher3Tests:GeneratedPreviewTest
Flag: ACONFIG com.android.launcher3.enable_generated_previews DEVELOPMENT
Change-Id: I37429057cda83a5321884ace2537038e050b9a58
Calculating the preview scale during onMeasure to ensure the
content is never clipped.
Bug: 268715418
Test: Verified on device
Change-Id: Ia0fd5ca3ccaae9644e043d75f810e91909a2aea0
Fix: 268715418
Test: Open widget picker on tablet and verify that very large widgets (eg Youtube music recently played) are not cropped on tablets
Change-Id: I0f4609c8b7af889f39cac304ad4f6a44039f5762
> All previews are generated on demand when the corresponding
header expands
> Using ItemAnimator to animate layout changes when preview loads
Bug: 196238313
Test: Manual
Change-Id: I0cb859c8443c2c536399e4063f58baecfc7416ad
RemoteViews may contain multiple layouts. The best fit layout is
picked after layout. Let's ensure the best fit layout is picked
before scaling a preview
Test: Manual
Fix: 196044656
Change-Id: I41b9f70040befaf96a9af95f9399a816eb0b71cb
WidgetCells are being recycled in WidgetFullSheet. getWidth/getHeight
could be a recycled dimension. There is also no guarantee that measure
has taken placed before the scale down logic. Let's use the targeted
width for the scale down logic instead.
Test: Manual
Fix: 195417705
Change-Id: Idfb3cc485604d19658e210709bebde6f163003cf
wrap_content
If the widget preview has width / height set to wrap_content, we should
set the layout param width / height to the exact dimension after
measurement. Otherwise, we will end up clipping the previews.
Test: manual
Fix: 193144010
Change-Id: I101f7c6d3dbd264fee448b85c54029d5650d6630
This was the same calculation used before http://ag/15177218.
Test: run AddWidgetTest, AddConfigWidgetTest
Bug: 193819550
Change-Id: I1b5e0072a4c05b656de98f8d42667ae99438c005
AddItemActivity is a standalone activity. There is no Launcher activity
instance. Avoid using LauncherAppWidgetHostView in WidgetCell by
replacing it NavigableAppWidgetHostView instead
Test: Check preview layouts are correctly rendered in widgets picker
and pin widget dialog. Also test drag and drop to verify the
local color extraction still works when dragging a preview layout
from widgets picker to home screen.
Fix: 193765783
Change-Id: I3a734a54941257cebcd7b7f6a4c2c9cc764c5c12
This CL covers drag requests initiated from Launcher.java but not from
other activities.
Test: Manual
Bug: 193144010
Change-Id: Ieb862d689afe81a5b35aedeb9a277de08c775230
Shortcut size should be the size of all apps icon + padding
Test: Check shortcuts and widgets are shown without crash in the
following surfaces with display & font set to largest and
display cutout enabled. Repeat the same test with normal
display setting and no cutout.
1. Full widgets picker
2. Bottom widgets picker
3. Pin widget dialog
Fix: 193422438
Change-Id: Ibfebf94e92eed5e9cd1dd4196d98823b0e4dda6b
This fixes a bug which reuses a previous widget item spans to
compute the preview size.
Fix: 193133048
Test: manual
Change-Id: I5459882e258dc010898854dbbe52a6fa8d84796c
(cherry picked from commit 3d27207ff6)
Found all the uses of getWidgetSizePx and replaced them with the
computation of padded sizes (checked it all made sense).
Test: Try the various widget pickers.
Bug: 191612352
Change-Id: Id2a8d12ee7ce6baabef186dbb78d817975ea2212
Test: manual
(1) Upgrading to new DB version is successful (no errors thrown in logcat)
(2) Widgets that were added with the old DB version have CONTAINER_UNKNOWN as their source container
(3) Widgets that are added with the new DB version still log source container after reboot
Bug: 185778648
Change-Id: Iaa38f0be6bc4cb0d29842f9a2ea0d08de000c930
This allows for smooth animations as the items will have their full
height resolved
Bug: 190892517
Test: verified locally
Test: CachingWidgetPreviewLoaderTest
Change-Id: I86afc6951a4cc82ae45e63795791d259a3bb3cda
Also fix 2 bugs in WidgetCell
1. preview layout: padding is added to the AppWidgetHostView rather
than the preview container. We shouldn't add padding to the size
of the preview container.
2. widget_preview_shortcut_padding is a padding added to shortcuts but
not widgets.
Test: Open full widgets picker and observe widgets are rendered
correctly in the widgets recommendation table. Also, observe
the generated bitmap images are correctly rendered.
Run AddWidgetTest.
Bug: 189975670
Change-Id: I00db3200e0b61dc5e82f3c4bfdf34e197ea20314
Test: Sideload Google dev clock and verify the 5x5 widget preview is
rendered correctly.
Verify conversation widget preview is rendered correctly in the
full widgets picker and priority flow (aka pin widget flow).
Bug: 189975670
Change-Id: I4b0212ae347044c970ba40b9b33439448a6aa941
Also, scale down the preview size if it's wider than the target cell.
The intrinsic padding prevents the corners of the preview from being
rounded correctly and can lead to clipping or no rounding, especially at
larger sizes.
Bug: 187141692
Test: verified locally
Change-Id: Ie57ad57ba7c102330324bd0439acc55ff4fd83ff
Test: Check work profile badge no longer shown on work widget in the
full and bottom widgets pickers.
Bug: 177675123
Change-Id: I0e5e32e18df832c1919749404094d68805c30556
Test: Pin a conversation widget from a notification. RemoteViews are
rendered with the default size. Drag-n-drop from the pin widget
dialog works fine.
Bug: 185934141
Change-Id: Idb76cce2807e55e7b42e2e044712519857beb202
1. Before this CL, preview layouts are not rendered in both the
BottomWidgetSheet and SearchPopupSheet because the preview
width & height are not set correctly.
2. Also applies the right padding to preview layouts.
Bug: 185374336
Test: Drag-n-drop preview layout from the full widgets picker,
the bottom widgets picker and the search widgets picker.
Change-Id: I2b6303bfe4eb86a4935a5569f6107e9d46448902
The behavior of the framework when we try to do so is undefined. In our
case, it almost work, but no clipping is applied, which is a problem for
Android S (before that, widget couldn't use clipping in the first
place).
Instead of drawing the view through a drawable, this really add the view
and adds also a badge ImageView for badges instead of drawing them
indirectly.
Note that, temporarily, we have to re-allow drawing the view after it
has been attached, but the underlying framework bug being fixed, this
should be fine (I tested it and it really seems to be).
Bug: 183609936
Test: Using hand designed app (see bug)
Change-Id: I929ef8fc81c98c49406f2d940cd5efc28319886d
This applies to the widget picker and the initial Widget drop.
Bug: 183615331
Test: Manually using top preinstalled widgets
Change-Id: Ib7ce422dc485396c2aceec6f43e83529d642ecc7
Update the tapl test logic to scroll a smaller distance to avoid the
search bar blocking the target touch area.
Test: Open full widgets sheet and observe the widget recommendations
shown at the top.
Run AddConfigWidgetTest
Bug: 179797520
Change-Id: I6d53bbb46e2cb928ed7d015aaac604be17d33178
This is a preliminary work for local color extraction. In order to
apply local colors extracted from wallpaper to AppWidgetHostView
during drag, we need to hold a reference of the dragging
AppWidgetHostView.
In this CL, the following changes are made:
1. Instead of using bitmap image directly for icons, folders, shortcuts,
legacy widget drawable preview, a BitmapDrawable wrapper is
introduced.
2. Introduce a WidgetHostViewDraggableDrawable which draws
LauncherAppWidgetHostView directly to canvas. No more bitmap
generation overhead.
3. Remove drag outline from the drag logic because this will be replaced
by a new grid color hint UI: https://screenshot.googleplex.com/7jBEVeuxFecFKKT.png
Test: Add: add widgets, shortcuts from widgets tray.
add icons from all apps.
create folder.
Drag: drag existing widgets, shortcuts, folders and icons around
Bug: 182282587
Change-Id: Ia45ff756ea5bb80cf0761f0727a9453d50c204c0