Commit Graph

62 Commits

Author SHA1 Message Date
Toni Barzic
83b8cc19ca Support workspace cells with two-line labels
Adds `maxLineCount` attribute to CellSpec. The attribute indicates the max
number of lines of text the cell was speced to support. It's used to:
*   enable two-line labels in `BubbleTextViews` for workspace (including
    folder children) items
*   Update cell dimension calculation to inform cell vertical padding

When calculating cell content size the icon text size will be included
`maxLineCount` times, so the cell content gets centered as if it
contains `maxLineCount` lines of text. That way the icon position will
be consistent between cells with text that fits into one line, and cells
that contain two lines of text.

Adds `maxLineCountMatchesWorkspace` attribute to specify that the cell
should inherit `maxLineCount` from workspace cell spec.

Bug: 30153091
Flag: com.android.launcher3.enable_scalability_for_desktop_experience
Test: Manual

Change-Id: I150a62f427a0ad755a4746a736d9846d3bea4d2e
2025-05-21 22:04:33 +00:00
Federico Baron
e35b9039e8 Remove flag rule to turn off one grid in all image tests
Flag: EXEMPT TEST_ONLY
Bug: 398249160
Test: NexusLauncherImageTests
Change-Id: Ib62eee47b059d283442d9567b9208558b23ad371
2025-03-26 13:15:19 -07:00
Charlie Anderson
24e3132bbd Revert^2 "Update test activities with a non-default icon."
3e7d28e1c7

Change-Id: Ifea50664980a5bb52700e494abb10643d68fbd01
2024-11-20 23:23:01 +00:00
Charlie Anderson
3e7d28e1c7 Revert "Update test activities with a non-default icon."
Revert submission 29570743-fix-default-app-icons

Reason for revert: possible culprit of b/371183869

Reverted changes: /q/submissionid:29570743-fix-default-app-icons

Change-Id: I6be362d03791893f94d3393bf9c9ffc4d9e83ec9
2024-11-11 22:04:33 +00:00
Sunny Goyal
a1cebfa0c0 Updating IconProvider API to use a single API to load icons
Bug: 366237794
Test: atest IconProviderTest
Flag: EXEMPT refactor, changes in underlying API

Change-Id: If8c6a4f13de7e7d262ee0b6d0c6897981f75e639
2024-09-26 22:13:11 -07:00
Charlie Anderson
65c1010029 Update test activities with a non-default icon.
Check against default app icon in FolderIconLoadTest

Bug: 357441807
Bug: 369222239
Bug: 369240511
Flag: EXEMPT bc-triaged bugfix
Test: FolderIconLoadTest
Change-Id: I0e224f5b8bf8c0a8c51d88abd7c562d8e1ff7a55
2024-09-26 03:59:10 +00:00
Uwais Ashraf
eecadb0432 Enable UtilitiesKtTest for multivalent. Remove test resource
Fix: 325088427
Test: UtilitiesKtTest in studio and presubmit
Flag: EXEMPT test-only
Change-Id: I71b77c4633b1075f643ed479f8224f9b80811f54
2024-06-11 22:38:34 +00:00
Willie Koomson
d731ba2ff1 Remove widget education tip dialog
This change removes the widget education tip dialog, and the arrow
tip view. These are no longer needed now that taps are handled by
showing an add button.

Bug: 335318980
Test: `pm clear com.google.android.apps.nexuslauncher` and open widget
 picker
Flag: ACONFIG com.android.launcher3.enable_widget_tap_to_add NEXTFOOD
Change-Id: I9b24a41604880f5f94939c02b94f1a9f6a6c83d5
2024-04-25 22:56:36 +00:00
Willie Koomson
fedc18e9a8 Use generated RemoteViews preview for widget picker if available
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
2024-02-13 18:49:44 +00:00
Jordan Silva
07af3b06ac Merge "Update responsive grid spec cell size remainderSpace logic" into main 2024-01-09 12:52:10 +00:00
Jordan Silva
2de6a277b7 Update responsive grid spec cell size remainderSpace logic
Refactoring the cellSize spec of responsive grid to divide the remainder space in code instead of dividing by cols/rows in the spec definition. For example, instead of using 0.2 in the spec for 5x5 grid (1 / number of rows), it is going to use 1 (100% of the remainder space) and divide the percentage by the number of cols or rows in code.

Fix: 313621277
Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD
Test: NexusLauncherImageTests
Test: CalculatedWorkspaceSpecTest
Test: DeviceProfileDumpTest
Test: DeviceProfileAlternativeDisplaysDumpTest
Change-Id: Ifaec838ac9751562ecedc1fe39b966ee3d092de3
2024-01-08 19:40:01 -03:00
Uwais Ashraf
aa9e98b5d7 Hardcode ActionBar height to avoid changes while emulating
Test: Presubmits passing
Bug: 284210693
Flag: NA
Change-Id: If3fdb74703f57bfc5c7afbb38caa2acd5b7bd189
2024-01-08 14:53:23 +00:00
Jordan Silva
4c09958671 Validate responsive specs using more than 100% of remainder space
Fix: 313463517
Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD
Test: ResponsiveSpecsProviderTest
Change-Id: Ic80846d27dabd8d57f43b35581174bd2f2f3611b
2023-11-28 15:11:27 +00:00
Jordan Silva
999dd2a06f Extract cell size information to responsive grid structure
Bug: 287975993
Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD
Test: ResponsiveCellSpecsProviderTest
Test: DeviceProfileDumpTest
Test: DeviceProfileResponsiveDumpTest
Change-Id: I26a87d9b690fdfcff1599d862c09e97fe9f9f930
2023-11-24 12:39:36 +00:00
Jordan Silva
8f7986abae Responsive grid cleanup
This CL renames some of the variables to keep it consistent across the code. It removes workarounds that were made to facilitate easy code reviews without breaking the tests.
It is a cleanup of the responsive grid feature.

Bug: 299889733
Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD
Test: CalculatedAllAppsSpecTest
Test: CalculatedFolderSpecTest
Test: CalculatedHotseatSpecTest
Test: CalculatedWorkspaceSpecTest
Test: AllAppsSpecsTest
Test: FolderSpecTest
Test: HotseatSpecsTest
Test: WorkspaceSpecsTest
Change-Id: I198fadfbcfc0d1b32a62a3076949b42ee1fbcf33
2023-11-09 22:06:03 +00:00
Jordan Silva
d7c7eaf837 Update Responsive Grid tests with aspect ratio group
Adding aspect ratio group and updating the responsive grid tests to match the refactored classes.

Bug: 299889733
Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD
Test: AllAppsSpecsTest
Test: CalculatedAllAppsSpecTest
Test: HotseatSpecsTest
Test: CalculatedHotseatSpecTest
Test: WorkspaceSpecsTest
Test: CalculatedWorkspaceSpecTest
Test: ResponsiveFolderTest
Test: CalculatedFolderSpecTest
Change-Id: I918f4e28eb310bc9300fc6cc2b5b2af67d758a96
2023-11-07 11:51:28 +00:00
Jordan Silva
e4d7aaa6fd Fix to prevent unsorted breakpoints returning wrong spec
It orders the breakpoint list to guarantee that the smallest breakpoint is always returned for a given availableWidth or availableHeight.

Fix: 301396419
Flag: ENABLE_RESPONSIVE_WORKSPACE
Test: CalculatedWorkspaceSpecTest
Change-Id: Ia545e84150027bd8daa8d0dde58ff6fc579c3b6a
2023-09-21 11:44:56 +01:00
Thales Lima
1f19c95d95 Create new hotseat spec tests
Refactor DeviceProfileDumpTest to use files instead of inline strings.

Fix: 292204436
Test: DeviceProfileDumpTest
Test: CalculatedHotseatSpecTest
Test: HotseatSpecsTest
Flag: ENABLE_RESPONSIVE_WORKSPACE
Change-Id: I5aa2891c4c68033a4dd28f84f9dd5478be17b1d8
2023-09-05 16:31:06 +01:00
Thales Lima
f8bfb036ba Create specs for hotseat
Some attributes of hotseat change depending on the size of the device. In the future more attributes could be moved to the spec, e.g. hotseat icons.

Fix: 292204436
Test: CalculatedHotseatSpecTest
Test: HotseatSpecsTest
Test: SizeSpecTest
Test: DeviceProfileResponsiveDumpTest
Test: DeviceProfileResponsiveAlternativeDisplaysDumpTest
Flag: ENABLE_RESPONSIVE_WORKSPACE
Change-Id: I6a4e05d75af819dbf1444a5ca45c2080f55dc203
2023-08-10 10:23:23 +00:00
fbaron
e0a3da08ee Update the launcher test app widgets to include a custom icon instead of the default icon
Bug: 292287927
Test: no test
Flag: no flag
Change-Id: I98b87029a7afdcaf85e40accda03a145b213136c
2023-07-31 15:44:00 +00:00
Charlie Anderson
6702ed1e19 adding popup test files and allow for selecting activity to use
Test: manual
Bug: 289228540
Flag: N/A
Change-Id: Ie78cd39d5636d8737b80a809fb22328de574f0c0
2023-07-28 10:07:00 -04:00
Jordan Silva
8bd7af2b3f Improving responsive grid xml parser
Refactors AllAppsSpecs, FolderSpecs and WorkspaceSpecs initialization to use the same code to parse the xml with different map function. This CL improves the readability of the code and remove code duplication.

Fix: 286538013
Flag: ENABLE_RESPONSIVE_WORKSPACE
Test: AllAppsSpecsTes
Test: CalculatedAllAppsSpecTest
Test: CalculatedFolderSpecsTest
Test: CalculatedWorkspaceSpecTest
Test: FolderSpecsTest
Test: WorkspaceSpecsTest
Test: DeviceProfileResponsiveDumpTest
Test: DeviceProfileResponsiveAlternativeDisplaysDumpTest
Change-Id: Iec5863619399efd2e80f3db46b75c4d785e1656f
2023-07-18 18:03:16 +01:00
Federico Baron
827001a1fa Add WidgetPicker screenshot tests
We need screenshot tests for widget picker to prevent unintended UI changes.

Bug: 268219507
Test: n/a
Change-Id: I405401f5c68bb73bcb7bbd097f507abb1d66ff7e
2023-06-27 17:20:11 -07:00
Thales Lima
196e44baec Create AllApps responsive spec
Copy the parser from WorkspaceSpec and modify to use AllApps attributes.

Bug: 284152932
Test: AllAppsSpecsTest
Test: CalculatedAllAppsSpecTest
Flag: ENABLE_RESPONSIVE_WORKSPACE
Change-Id: I9362e126c64cb1a1abdef61894b003f14701b8e3
2023-06-14 15:02:58 +01:00
Jordan Silva
1b336110a4 Update SizeSpec attributes to accept max size threshold
Add maxSize attribute to SizeSpec to limit the cell size up to a max size when matchWorkspace is true. The same validation was added when using fixedSize, ofAvailableSpace and ofRemainderSpace, so they could have a maxSize as a threshold.

Bug: 284155638
Flag: ENABLE_RESPONSIVE_WORKSPACE
Test: SizeSpecTest
Test: WorkspaceSpecsTest
Change-Id: I113657c241e6618eb3e501243412d8c5626fc3d5
2023-06-13 18:09:37 +01:00
Jordan Silva
7ae9e3a6f5 Add FolderSpec for responsive grid support
Adds responsive grid implementation for folders. It follows the same concept as WorkspaceSpecs, so we have a parser similar to WorkspaceSpecs for FolderSpecs.

Bug: 284155638
Flag: ENABLE_RESPONSIVE_WORKSPACE
Test: FolderSpecsTest
Test: CalculatedFolderSpecsTest
Change-Id: Iea6d7d88ef42d1273aed7cf2ed5b397035518a52
2023-06-13 15:01:39 +01:00
Jordan Silva
2b8556ce1a Adding match workspace to SizeSpec for responsive grid support
Added matchWorkspace property to support responsive grid implementation for AllApps and Folders. This property indicates whether the attribute value will be used from the workspace instead of defining a fixed value in the AllApps and Folders XML. The class was updated to be a data class and added a auxiliar constructor new make it more flexible for testing and to add other initializers to support AllApps and Folders.

Bug: 284155638
Flag: ENABLE_RESPONSIVE_WORKSPACE
Test: WorkspaceSpecsTest
Test: SizeSpecTest
Change-Id: I65b71e66be7b8236a1dee62b56a487b87881d991
2023-06-09 17:05:22 +00:00
TreeHugger Robot
e607fdb2a2 Merge "Removing support for lagacy shortcuts" into udc-qpr-dev 2023-05-17 19:25:45 +00:00
Sunny Goyal
e274d97fe5 Removing support for lagacy shortcuts
> Addition/removal of  shortcus is already removed. This just
  cleans up the unused code path

Bug: 275875209
Test: Updated tests
Flag: N/A
Change-Id: I8ab7f57b693f996920e50e8beecafcffab5167e9
2023-05-17 09:20:45 -07:00
Thales Lima
c98b7815c6 Calculate sizes for responsive grid
This shouldn't change anything in the grids, only calculate the sizes of the grid.

Bug: 277064708
Test: CalculatedWorkspaceSpecTest
Test: WorkspaceSpecsTest
Flag: ENABLE_RESPONSIVE_WORKSPACE
Change-Id: Id1f90ef44f5b869113d063bad17589e7e88d1d20
2023-05-17 10:33:36 +00:00
Sebastian Franco
e7c3d3d4ce Parsing test boards from text files to be able to add more and bigger tests
It also adds an assets folder inside of Launcher3 tests.

It also fixes a bug in fullReorder.

Test: atest ReorderWidgets
Flag: none
Bug: 229292911
Change-Id: I7dadd42a3057d353326691163bb7db71a2e9dcc4
2023-04-13 17:14:51 +00:00
Sunny Goyal
076e04bcc2 Removing unnecessary device sumaltion code
Bug: 276774148
Test: Verified on device
Change-Id: Icb8c2e7649e5b0e107af184b63f7e30f2df717bd
2023-04-03 12:38:52 -07:00
Thales Lima
1a2d4bd6f4 Create an XML parser for WorkspaceSpecs
Extract DeviceProfileTest to Launcher3 so it can be used in other tests as well, and change name of previous base test to be more descriptive.

Bug: 241386436
Test: WorkspaceSpecsTest
Change-Id: I64613bb5a23c374ed15fb6d936192236a541ab9b
2023-02-08 11:20:14 +00:00
Sunny Goyal
62ea1f1cb7 Re-enabling testShortcutIconWithTheme
> Updating shortcut id incache the icon cache was the culprit

Bug: 260722220
Test: Verified locally
Change-Id: I0e6bc9b06d1b99e33cb9b1a248647d54bf47dea4
2023-01-04 13:05:42 -08:00
Sunny Goyal
ce4896cff5 Fixing shortcuts not getting theme icons
Bug: 238650110
Test: Updated ThemeIconsTest
Change-Id: I803cd6eefa4e393bf19901a44712622adac7f4b1
2022-11-28 09:48:50 -08:00
Sunny Goyal
39b07fd66c Fixing background jump when closing a widget
We do not add background animation when opening target is translucent
Added additional check to not animate background if launcher is not
closing (which is already a subset of all-targets-translucent)

Also removing reverse background animation from widgets, similar
to app-icons as it is never added for launcherNotClosing path

Bug: 242379946
Test: Added translucent activtiy and widget and verified manually
      that the behavior does not change
Change-Id: Icda8007c0063295bf8431c00a0f0b665ecdef109
2022-11-02 19:17:18 +00:00
Sebastian Franco
00aff95ac0 Give the tests the ability to emulate other devices screens
This code contains utility clases that can change the display
of a device and make it look like another device.
The function DisplayEmulator#emulate receives a DeviceEmulationData
a certain grid to emulate and a callback, everyting that happens
inside of the callback will happen when the device is being emulated
and can be used by other tests.

Example test:
package com.android.launcher3.deviceemulator;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.MediumTest;
import com.android.launcher3.deviceemulator.models.DeviceEmulationData;
import com.android.launcher3.ui.AbstractLauncherUiTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.concurrent.TimeUnit;

@MediumTest
@RunWith(AndroidJUnit4.class)
public class TestTest extends AbstractLauncherUiTest {
    @Test
    public void testEmulation() throws Exception {
        String deviceCode = "pixel6pro";
        DeviceEmulationData deviceData = DeviceEmulationData.getDevice(deviceCode);
        String grid = "normal";
        DisplayEmulator displayEmulator = new DisplayEmulator(mTargetContext);

        displayEmulator.emulate(deviceData, grid, () ->{
            TimeUnit.SECONDS.sleep(10);
            return true;
        });
    }
}

Test: You could use the test above to make your device look like a
Pixel6 pro for 10 secons.
Fix: 229028257

Change-Id: Icd79be405a2e14dda0bc5f555b0e46149e16f912
2022-04-25 11:57:58 -05:00
Sunny Goyal
bcec90b081 Adding tests for themed icons support in Launcher
Bug: 205772453
Test: Presubmit
Change-Id: I2fc8cade8e103e5a7b3aa7349c870e613929464c
2022-02-25 13:35:18 -08:00
Sunny Goyal
777d49062f Revert "Revert "Migrating all model tests to Instrumentation tests""
This reverts commit 7a4a30d86d.

Test: Presubmit
Reason for revert: Fixing original bug

Bug: 196825541
Change-Id: Id4b1eb24a89564d264266d305aebea52917dfcd9
2021-08-31 10:51:52 +00:00
Alex Chau
7a4a30d86d Revert "Migrating all model tests to Instrumentation tests"
This reverts commit 455ba62b5d.

Reason for revert: Breaks tests on all targets

Bug: 196825541
Bug: 197570389
Change-Id: Ida6792a09c54dee46105b6b914a0dd1545bdf48d
2021-08-24 17:27:52 +00:00
Sunny Goyal
455ba62b5d Migrating all model tests to Instrumentation tests
Bug: 196825541
Test: Presubmit
Change-Id: Iebd46eb41eb46c187d569197f4b97b4fddc0f6f7
2021-08-23 12:34:44 -07:00
Pierre Barbier de Reuille
46fbb5c702 Update the test appwidget for dynamic colors
Fix: 184924547
Test: Installed widget locally
Change-Id: Icb50cfd5cec053c3cbe9b25fe317ad71e0b16bf6
2021-04-09 10:55:05 +01:00
Lucas Dupin
554a1bee39 Apply new color scheme
Bug: 173553055
Test: manual
Test: atest SystemPalette
Test: atest ThemeOverlayControllerTest
Test: atest DeviceDefaultThemeTest
Change-Id: Ie06160ed322ceac2e1078c24db287dd1f26a0a65
2021-03-20 11:00:13 -07:00
Pierre Barbier de Reuille
ab33b76dce Launcher changes to support dynamic coloring on static widgets.
Bug: 179783721
Test: By hand using the AppWidgetDynamicColors widget
Change-Id: I27863cac31f2f6c29f5a717ff8d4492325f936fb
2021-03-10 22:04:35 +00:00
Jon Miranda
1d7ed30dba Remove widgets that no longer fit the workspace in their current spans.
This can happen when display size changes.
We compare span sizes of widget in the db to the min sizes of the widget
in the current display size. If the widget can no longer fit in its existing
spans, we remove it.

Also update test widgets to have minWidth/minHeight of 1dp. This ensures that
the spanX, spanY, min* values remain consistent between different test devices.

Bug: 168818961
Change-Id: I723372e4582658f78b2f23ced9073cb77977a6b8
2020-09-30 16:19:21 -07:00
Sunny Goyal
8f90d5da8a Adding test to check view inflation during swipe up
Bug: 137851409
Change-Id: Ic8e6f0b3c667051b921d1d4fad03c94122ee92e9
2019-09-20 15:36:02 -07:00
vadimt
8296c6132d Enabling tests for pausing apps
Bug: 123892607
Change-Id: I1fa90f6dd4312b9311b8e706b2119dc04e3e2389
2019-05-29 12:07:55 -07:00
vadimt
b96898a025 Not using Settings app as a source of shortcuts
Bug: 126587956
Change-Id: I13ef4298a8133ff5773eef8658a04094d5d154da
(cherry picked from commit 476a511ca5)
2019-04-12 19:22:09 +00:00
Sunny Goyal
c5939393a9 Bye bye workspace screens table
Removing a separate table for workspace screens. List of screens are
automatically parsed using the items in the favorites DB. Order of the
screen based on the screen id and rearranging screens is no longer
supported. In case the screens need to be rearranged, all the items
in the favorites db will need to be updated with new screen ids.

This makes backing up the DB (in the same database) easier as only
one table needs to be duplicates.

Change-Id: I8ba947a898f637d780e2f49925e78604263126e8
2018-12-10 11:43:35 -08:00
Sunny Goyal
06a07e9748 Moving come tests to Roboelectric
> Fixing resource loading in robo tests

Change-Id: Id5b8a0e4916a2a200da7a41b03f19846834beb1f
2018-11-12 10:49:59 -08:00