Commit Graph

138 Commits

Author SHA1 Message Date
Suphon Thanakornpakapong 5586ccb0e0 Ignore partner device profile overrides 2022-05-15 00:11:18 +07:00
Suphon Thanakornpakapong b5c9da2845 Apply db state directly from prefs 2022-05-13 20:54:09 +07:00
Suphon Thanakornpakapong b181ca9355 Reload idp after setting grid size 2022-05-13 20:09:07 +07:00
Suphon Thanakornpakapong b41bc60300 Add option to enable taskbar on phones
Co-authored-by: Danny Lin <danny@kdrag0n.dev>
2022-05-11 09:04:51 +07:00
Suphon Thanakornpakapong 11e1a2fdc8 Merge remote-tracking branch 'aosp/android12L-release' into 12.1-dev 2022-05-08 20:29:17 +07:00
Alex Chau 1c883d861e Add launcher grid spec for tablet
- Introduced device_category to allow grids to be only enabled for certain device types. By default grids are enabled for all device types, so old OEM device_profiles aren't affected
  - Removed device_profiles_split.xml as a result and merged with device_profiles.xml
- Added deviceType in InvariantDeviceProfile to replace isSplitDisplay and centralize the logic
- Only has 6x5 grid with new default layout that works better for tablets

Bug: 198575341
Test: manual
Change-Id: I03f6727ce837ffeee6321b6d7c53942338d0cf30
2021-12-08 18:22:34 +00:00
Thales Lima 6e0005af6b launcher: use same icon size for all apps drawer in foldables
For foldables, no matter the grid size, we use 60dp for icons sizes.
This also fix a bug where the icon size was always the minimum between
default and all apps, which means that for foldables it would always be
default.

Bug: 202708085
Test: visual, using HSV and Window
Change-Id: I315718a8ba7a0aaed2204ad12e6b184dda2be48e
2021-11-26 10:03:43 -03:00
Thales Lima 1de4d55d55 launcher: create a device profile for foldables
This creates a device_profiles_split.xml that will be used when the
device is a foldable. This makes the changes contained for specific
devices and make it possible to use different padding files in the
future if needed.

Bug: 191879424
Test: tested with NexusLauncher and Launcher3, in foldables and
handhelds
Test: check that 4x4 is not scalable anymore on handhelds by using HSV

Change-Id: If6ef14e3611c5252634c080643433545ce186f0d
2021-10-14 22:42:25 +01:00
Alex Chau 238aaee059 Allow 2x2 and 3x3 to be migrated after restore
- Allow disabled grid to be used during restore
- Remove all inactive grid dbFiles to allow grid migration to happen
- Set the proper grid after restore to trigger migration

Bug: 202125760
Test: Restore a 2x2,3x3 grid, icons and widgets are migrated to 4x4 grid
Test: Restore a 4x4 grid, icons and widgetse stays in original position
Change-Id: Ie59e1ca0ca56ed2de52d88cd5f51b980788afa52
2021-10-12 17:36:04 +01:00
Suphon Thanakornpakapong 2730959ed1 New grid preference screen with preview 2021-10-12 15:25:32 +07:00
Suphon Thanakornpakapong 60cc4e9588 Fix grid size migration 2021-10-12 01:18:20 +07:00
Suphon Thanakornpakapong 799f78f836 Fix grid size preference crash 2021-10-09 16:11:26 +07:00
Thales Lima 83bedbfe97 launcher: refactoring variables into arrays
There are a lot of variables that can be merged together into arrays
following some optimizations done in other places.

Bug: 191879424
Test: checking cell size and extra space in dumpsys
Change-Id: I1d73fbb5da2df2345ced7f46df5bae5d75d9d6b1
2021-10-08 13:36:56 +01:00
Suphon Thanakornpakapong a463238dbd Fix more errors 2021-10-07 09:42:24 +07:00
Thales Lima 78d00adcbe launcher: create more space options
The grid doesn't have a constant space between cells anymore, so we need
new attributes for the different spaces in different situations.

Bug: 191879424
Test: checking cell size and extra space in dumpsys
Change-Id: I4b6aae5b3fea281490c00cd13d0cd3a25372f21b
2021-10-05 12:26:05 +01:00
Suphon Thanakornpakapong cc2bd15873 Merge remote-tracking branch 'aosp/android12-release' into 12-dev 2021-10-05 14:13:08 +07:00
Thales Lima d90faab655 launcher: create attrs for more horizontal margin options
According to new specs, margins are different depending on orientation
and fold/unfolded. Also change the name of the variable to
horizontalMargin, since it applies the same padding to both sides.

Bug: 191879424
Test: manual and checking paddings in HSV
Change-Id: I8990c02b928a22b9f3b0cf3cbc3abf08df4daa9d
2021-09-30 14:06:56 +01:00
Samuel Fufa abb827b376 Merge "[Foldable] Apply max width to AllApps in unfolded state." into sc-v2-dev 2021-09-29 22:07:42 +00:00
sfufa@google.com de0132939b [Foldable] Apply max width to AllApps in unfolded state.
Since we are applying the same iconWidth in AllApps as Workspace in unfolded state, this change restricts AllApps to span only the area required to display AllApps contents and not span full available width. Unfolded/phone behavior remains the same.

Bug: 199959857
Bug: 194259694
Test: visual
Change-Id: Ie5658d566f20e825e666ef17db79a87b07dc2936
2021-09-24 15:18:01 -07:00
Tracy Zhou c8beebf5a3 Consolidate isTablet logic across Launcher and SysUI
Fixes: 197960261
Test: Change display size; no nav bar and task bar showing at the same time
Change-Id: I56753e9389a49ca3ee455b248a041b3c1569f153
2021-09-23 15:06:53 -07:00
Thales Lima d1df5fcaac launcher: use scalable grid in 4x4
Many changes are required to make scalable displays work correctly on
foldables. This first one is making sure that the correct number of
columns is used when calculating the used width for scalable grid. The
spaces around the workspace are not final yet.

Bug: 191879424
Test: manual
Change-Id: Idc41ed004580f1f86d8f9595d005abc72301b1e3
2021-09-17 10:43:42 +01:00
Sunny Goyal 3e9a29c4d6 Moving roboelectic tests to instrumentation tests
Bug: 196825541
Test: Presubmit
Change-Id: I197bc47181308bb0b79f3815a892b733abbcd1fd
2021-09-08 10:23:30 -04:00
Suphon Thanakornpakapong 9ea62e4d13 Calculate icon bitmap size after preference override 2021-09-04 23:21:07 +07:00
Sunny Goyal 6e6f79933e Do not reload launcher when changing active display
> Updating IDP to use fixed bitmap sizes, so that the cache
  stays valid
> Caching last known windowMetrices for non-active displays and
  using estimation only when the cache is not available
> Only reloading model if IDP change could have affected the model
> Remove unnecessary listeners from IDP which are already controlled by
  model lifecycle

Bug: 191657065
Test: Manual
Change-Id: Ia8e6dfafd0977e62aa3fcf367ad79f7a49b2df51
2021-08-26 15:55:21 -07:00
Alex Chau 1e4484669d Remove widget panel
- Remove all usage of LEFT_PANEL_ID and fixed left panel code
- For preview renderer, load screen 0 + screen 1 instead
- Added a split display specific default workspace layout, with a placeholder app to pass test before we implement page pairing(b/196376162)
- Known issue: If screenId 1 is deleted, right panel will disappear from Wallpaepr & Style because there is no screenId 1. Will be resovled after page pairing(b/196376162)

Bug: 175939730
Test: manual and TaplTestsLauncher3#testWorkSpace
Change-Id: Icac1c94165c14a49c17897c45355b6cdc4d87e91
2021-08-13 21:48:35 +01:00
Thales Lima 7ec8382044 launcher: hide grid options for foldables
Some grid options are too dense for foldables (those with 5 icons), so
we are hiding them on those devices.

This also move the parsing to be done on InvariantDeviceProfile only.

Fixes: 183140646
Test: open Wallpaper & style and change app grid options
Change-Id: I771571db02709db5d0f814236060c57ce0180cd1
2021-08-13 16:07:05 +00:00
Andras Kloczl 30fe9152d5 Update two panel specific launcher home icon sizing
Test: manual
Bug: 191879424
Change-Id: I4f51616004d78036ad801298bb5ba72af8de3f30
2021-08-12 18:46:01 +01:00
Sunny Goyal 68031ca3f9 Storing form factor as part of backup and disabling restore if form-factor is different
Bug: 195301649
Test: Manual
Change-Id: I9a9c4bc9246f40af2209cb914b3966319bc78bff
2021-08-04 09:51:04 -07:00
TreeHugger Robot 853186578d Merge "Prevents a ConcurrentModificationException in Widget" into sc-dev am: 3a37543fb9
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15001812

Change-Id: I6aa3f859df6a706716081d4258200eafeafcada3
2021-06-17 01:09:54 +00:00
Pinyao Ting 9cd63c97ce Prevents a ConcurrentModificationException in Widget
InvariantDeviceProfile.supportedProfiles can be modified in respect to
configuration changes. This CL ensures the list was cloned before access
to prevent ConcurrentModificationException

Bug: 191231591
Test: manual
Change-Id: I123458dcfe99af4babca2cf73733e3d2af0fad3c
2021-06-16 21:02:48 +00:00
Suphon Thanakornpakapong 44bd593acd Fix grid resetting when changing size 2021-06-07 22:09:30 +07:00
Suphon Thanakornpakapong 516dd1eaa0 Override idp before initializing profiles
Also refactored override logic to a separate class
2021-06-07 20:33:20 +07:00
Suphon Thanakornpakapong b48e538aa2 Move preferences package 2021-06-06 14:56:10 +07:00
Pat Manning 67094bfdfb Prevent clearing home between display size changes.
Split display support was previously based on the sizes of supported device profiles. If a device supporting split display increased display size too much, it could trigger a grid migration (due to number of hotseat icons displayed vs in the DB changing as it was no longer seen as split display). The migration would not run however, as the grid had not actually changed, but would still have cleard the DB in preparation of the migration.

By counting the number of supported profiles instead, we can estimate the number of screens invariant of display size changes and avoid undesired grid migrations.

Test: manual
Fix: 187689871
Bug: 187689871
Change-Id: If740c501cab0e80ef6144356ec5618ee30134ed7
2021-06-02 16:18:55 +00:00
Winson Chung 35226124e3 Removing some unused logs
Fixes: 185820525
Fixes: 177316094
Fixes: 158017601
Fixes: 180915942
Change-Id: I8ce5bde08e1728d3209762c5f061245386408825
2021-05-07 20:52:33 -07:00
Sunny Goyal b47172bc4e Linking various settings that control icon cache to icon state
Also separating icon provider for recents from Launcher as it used a fixed size

Bug: 183641907
Test: Verified on device
Change-Id: I6ea3caa0066d1483bfb8a81f0e8aaa472c813afe
2021-05-05 23:05:38 -07:00
Sunny Goyal 19ff728b92 Adding support for determining split layout for launcher.
> Simulating the windo wmanager API to get available device
  profiles until final API
> When a device has multiple internal displays, and with both
  tablet and phone possibilities, it uses a split workspace layout

Bug: 186160341
Bug: 175782275
Test: Manual
Change-Id: Ieff2329acac7cdd6b9abe6f96cd459cd45bd0efe
2021-05-03 14:48:28 -07:00
Suphon Thanakornpakapong 397d4aa243 Major preference refactor
- Migrate all preference logic to PreferenceManager
- Make preference UI directly hook to PreferenceManager
2021-04-28 21:07:32 +07:00
Patryk Michalik aab6b80fa0 Relicense to and fix compliance with Apache 2.0
[skip ci]
2021-04-24 09:48:35 +02:00
Alex Chau fd6d942220 Pass WindowContext to DisplayInfoChangeListener
- WindowContext (or updated DisplayContext for Pre-S) contains updated Resources to be used for the listener

Fixes: 181215299
Fixes: 176656141
Test: Swap between large/small screen, large sreen UI is seen
Test: Swap between font size, launcher icon text is updated
Test: Start secondary home
Test: Repeat the above tests with Utilities.ATLEAST_S hardcoded to false
Change-Id: Ib33025ac0276c84fe2b3213e9946721e5988e3da
2021-04-23 19:14:20 +01:00
TreeHugger Robot 70938389d6 Merge "Remove temp logic added to migrate users to new 4x5 grid." into sc-dev 2021-04-23 01:56:17 +00:00
Sunny Goyal 35c7b19fa8 Using WindowContext for listening to configuration changes
Pre-S: Continue to use config-changed broadcast for configuration changes
and display-changed event for rotation changes
S+: Use WindowContext#componentCallbacks for config and rotation changes, and
continue to use display listener for frame-rate changes

Bug: 179308296
Test: Manual and presubmit
Change-Id: I533e69068b5fa6c052a02759ef309dd075ee6a4b
2021-04-22 00:23:02 -07:00
Winson Chung dc0f3978e7 Logging config changes as well
Reduce some logging from previous CL

Bug: 185820525
Test: Presubmit
Change-Id: I69baed7b819b529db30a65cb39a80fb310d76243
2021-04-20 18:18:51 -07:00
Winson Chung 0bba6a79fc Reduce some logging from previous CL
Bug: 185820525
Test: Presubmit
Change-Id: I38a1da163eedf5f07bd507674ecb8661e8649d23
2021-04-20 15:42:43 -07:00
Winson Chung 8e64bba9cf Add some logging for transposed mode in landscape
Bug: 185820525
Test: Presubmit
Change-Id: Id4cf605fd5c3277273025ac1a73f25add0608412
2021-04-20 20:38:04 +00:00
Tony Wickham b87f3cdc1c Add support for having more hotseat icons in the DB than we show
Split InvariantDeviceProfile#numHotseatIcons into two variables:
numDatabaseHotseatIcons and numShownHotseatIcons. These are generally
the same, but different DisplayOptions within the same GridOption
can choose to show different numbers of hotseat icons while sharing
the same database.

numDatabaseHotseatIcons is used for all reading/writing/migrating
purposes, while numShownHotseatIcons determines how many Hotseat
icons to show in the UI.

Test: Existing tests pass, added two new migration tests
Bug: 184789479
Bug: 171917176

Change-Id: I54583504f61a47a4444b6a637ebb7e3ab31528b7
2021-04-12 16:08:15 -07:00
Jon Miranda 5eff0bbe13 Remove temp logic added to migrate users to new 4x5 grid.
Related changes:
- I81a91b8415effbe0bf7ba722f11ab44a4169e3df
- Ia7ae129048bf5878b216f31f949e10c71e608818

Bug: 183965808
Bug: 175329686
Test: manual
Change-Id: If9ae69d746f1c86db98275f0c00ae054e146b67e
2021-04-09 14:58:46 +00:00
Andras Kloczl 6057cb9fe6 Update icon and text size for two panel home screen
Adding new field for landscape icon text size and changing
the logic for when to use landscape sizes.

Test: manual
Bug: 182796672
Change-Id: I89833e8fd90f2606937c3b95ac10229a042213ec
2021-04-08 15:27:27 +02:00
Jon Miranda ec1277eec1 Migrate existing 4x5 and 4x4 grid users to a new 4x5 grid.
Due to the dogfood 4x5 grid using the wrong db, there may
be some rearranging of items.

The goal is to completely remove the old 4x4 and 4x5 grid,
but first we need to silently migrate users to the new grid.

We still  need to keep the old grids in the device profile
so we hide them from the Styles & Wallpaper app.

We also need to reset and remove the ENABLE_FOUR_COLUMN feature
flag from the UI.

- Added TODO to remove this logic in the tracking doc

Bug: 183965808
Bug: 175329686
Test: have old 4x4 or 4x5 grid set up
      install apk with these changes
      confirm that we are now using the new grid and the
      other grid options are inaccessible to the user
Change-Id: I81a91b8415effbe0bf7ba722f11ab44a4169e3df
2021-03-30 13:17:37 +00:00
Alex Chau 06452a427d Merge "Move numAllAppsColumns to displayOptions" into sc-dev 2021-03-25 11:16:00 +00:00