Commit Graph

77 Commits

Author SHA1 Message Date
Jon Miranda
228877d37c Add border spacing and fixed cell height to grid.
- Border spacing is the spacing between the cells.
- Workspace cell height is now fixed, and we allocate
  all the "extra" space to three different variable height
  areas.

* Built behind ENABLE_FOUR_COLUMNS flag because it hinders the
default grid.

Bug: 175329686
Test: - set border spacing to 0 and confirm matches prior layout
      - test drag and drop still worked
      - test reordering
      - test widgets
      - test folders
      - test multiwindow

Change-Id: Ic6f3dff577d28ff214bda4b0a787ec7fd08c108b
2021-02-10 17:22:37 -05:00
Sunny Goyal
ead22a5257 Removing released features
Bug: 179224463
Test: Presubmit
Change-Id: I6aa989fa8e52398112cca2c7f4bed0ae69881f7b
2021-02-05 11:36:08 -08:00
Alex Chau
417bd72b71 Revert "Use Diplay.getMetrics in DisplayController"
This reverts commit acfac6187d.

Reason for revert: b/176656141

Bug: 176656141
Change-Id: Ic28e50779811d18450000efc2cdfd8184a931bbb
2021-01-26 15:23:20 +00:00
Jon Miranda
73dcc9878d Add FeatureFlag for ENABLE_FOUR_COLUMNS.
Will be paired with new device profile used to dogfood
upcoming grid changes.

Bug: 175329686
Change-Id: Iab08d9ed0dec14fd6a05c4485ac4e066533d2540
2020-12-11 14:19:13 -08:00
Alex Chau
acfac6187d Use Diplay.getMetrics in DisplayController
- This is a workaround of b/163815566, where DisplayMetrics is stale
  when onDisplayChanged is called.
- Instead of relying on stale DisplayConext, get the DisplayMetrics
  from the Display directly.
- Also optimized how DisplayController.Info is created by passing in
  Display only
- Use mDisplayContext.getDisplay directly if availalbe

Bug: 163815566, 160544577
Test: DPI looks correct on device boot
Change-Id: I2a7454bb8cf2073ce592e8662781b87fc998444f
(cherry picked from commit 177c38243dc3bf245d1f7db3c265dfb56522f441)
2020-10-20 20:19:57 +01:00
Sunny Goyal
fd58da6a75 Wrapping display properties in a wrapper class
This would allow us to support gestures on multiple-displays

Change-Id: I8f426bbdf04520f4189cadce2bde6aab4933c8d9
2020-08-12 13:43:56 -07:00
Tony Wickham
9459f3101f Don't reset RecentsView in onIdpChanged()
Resetting unloads visible task data and thus will leave recents
blank if overview state is enabled. Instead, unload and reload
visible task data to take new icon shape into account.

(The reason we're getting onIdpChanged() on nav bar mode change
is because the change in nav bar height causes the computed icon
size to change very slightly.)

Also fix InvariantDeviceProfile copy constructor by copying
iconBitmapSize.

Test:
- Change between 0 button and 3 button nav modes, verify recents
  doesn't appear blank
- Change icon shape in Styles and Wallpapers and go to recents,
  verify icon shape is reflected in task icons

Bug: 156354328
Change-Id: Ife29f51e85814ff483d055005fa2645135d5ec3d
2020-06-15 14:02:12 -05:00
Jon Miranda
7772fcde47 Fix bug where font size (etc.) doesn't change after changing display settings.
The metrics we get from Display#getMetrics does not change regardless of
what the new configuration is (we would expect the scaledDensity to change).

Documentation shows that Display#getMetrics is deprecated in R.

Using guidance from b/154665987#comment14 we get the metrics from the derived
context.

Bug: 156141463
Change-Id: I25e5f2c13f94e0471111f6c895694947998e3222
2020-06-01 14:08:16 -07:00
Tracy Zhou
c6060e6e2a Refactor usage of getting GRID_OPTIONS_PREFERENCE_KEY value into whether GridOptionsProvider is enabled
Bug: 154154093
Test: manual testing of the feature
Change-Id: Ibe78a75b061aad20e8fa0e229589400b65016ff4
2020-04-28 14:02:49 -07:00
Tracy Zhou
ed5f3082b0 Special handling when a db for one grid option is not setup yet
- Init KEY_MIGRATION_SRC_WORKSPACE_SIZE and KEY_MIGRATION_SRC_HOTSEAT_COUNT
- Load default workspace only when default db is created, not when peeking into dbs of other grid options during grid preview / migration

Fixes: 154184711
Test: run grid preview and migration right after a cleared cache Pixel Launcher
Change-Id: I86c7072b8c4a9da76e289c55ab440071f192fc38
2020-04-22 18:13:42 -07:00
Sunny Goyal
0e7a338e8b Fixing SecondaryDisplay Launcher
> All apps layout broken in landscpae UI
> Crash when manager profile is added
> Wrong icon size on low resolution

Change-Id: If01dacf9f62a0384ebd8b31b62500178416d3ab4
2020-04-21 23:19:11 -07:00
Sunny Goyal
ae190ff807 Revert "Have consistent All Apps UI between grid size changes."
Revert submission 557031-1571265377317-631e3e5

Reason for revert: Breaks multiwindow and secondary display layout
Reverted Changes:
Idee087e31:Remove numAllAppsColumns, allAppsIconSize, allApps...
I6235862c9:Have consistent All Apps UI between grid size chan...

Change-Id: I64156123a8fbaba1a7d2b64cddd5376671123aa2
2020-04-14 17:19:47 -07:00
Tracy Zhou
42255d22a7 Set default value of gridName to current grid name in GridOptionsProvider
With grid preview, a grid name is passed in when requesting preview under different grid setting. With wallpaper preview, no such grid name will be passed in, and it should be set to the current.

Bug: 145242344
Test: N/A
Change-Id: I282cb5341b7f3756d41c4abd8d97f986abaa6d27
2020-03-18 16:52:28 -07:00
Tracy Zhou
be13d109b7 Render user's actual workspace in ThemePicker preview (Part 3)
go/grid-migration-preview

With this change, we can see actual grid migration in wallpaper preview.

The approach here: we use a tmp table (favorites_preview) here specifically for this preview (to write off the migration results), and load from this tmp table workspace items if migration is necessary and successful. Otherwise, we load from the current workspace.

UPDATED: this change should be completely compatible with the new multi-db grid migration algorithm. Here is why
1. In LauncherPreviewRender#renderScreenShot, I added a check to decide which grid migration preview method we should call. Once v2 preview method is implemented, it should be integrated with other parts of this change perfectly (the reason will be mentioned below).
2. While we have multiple DBs, mOpenHelper in LauncherProvider always points to the current db we are using. Queries using CONTENT_URI is routed to whatever DB mOpenHelper points to, so it works perfectly to directly operate on CONTENT_URI even when we use multi-db underneath the hood.
3. With 1 and 2 mentioned, I believe in order for this preview change to support multi-db, we only need to implement the V2 grid migration algorithm. Because most of what we are doing in this change is wrapped in GridSizeMigrationTask, it's perfectly safeguarded.

Bug: 144052839
Change-Id: Ie6d6048d77326f96546c8a180a7cd8f15b47e4c4
2020-02-21 15:49:00 -08:00
Tracy Zhou
7df93d28d4 Setup infrastructure (multi-db support) for the new grid migration algorithm
We'll have a db for each grid option and a db for back up / restore.

TODO(pinyaoting): support back up / restore using the new infrastructure, particularly calls to GridBackupTable should use different DBs when the feature flag (NEW_GRID_MIGRATION_ALGORITHM) is on.

Bug: 144052802
Test: N/A

Change-Id: I644a3e70148bd78204a747a337446a3c038f616f
2020-02-05 19:55:05 -08:00
Sunny Goyal
9c2b96090b Adding SecondaryDisplayLauncher in Launcher using common listener
Bug: 141596722
Change-Id: I480bfadf592f7d0309f17c33a3fe14bb77fb5586
2020-01-30 08:27:27 +00:00
Jon Miranda
2bdd24340d Cleaning up unused allAppsIconSize/allAppsIconTextSize variables.
Change-Id: Ifb77458ca0febdf97a806c34e6d1c16f41789d35
2019-10-25 12:01:45 -07:00
Jon Miranda
64d7481597 Have consistent All Apps UI between grid size changes.
We build an IDP with no grid size override values. This
allows us to reference the profile measurements so that we can have a
consistent UI for areas that the grid size change should not affect.

Bug: 124967099
Change-Id: I6235862c95800d8f31dbf2de1d12b1fcf4dbd850
2019-10-16 11:21:36 -07:00
Jon Miranda
6f7e9702e3 Support defining X column layout for all apps as a display option.
Bug: 124967099
Change-Id: I7bf576759b3fa4f6ca617fbbd660541c12fd09ac
2019-09-16 16:24:59 -07:00
Winson Chung
13c1c2cd65 Migrate to using DefaultDisplay
- Remove extra binder calls to get the default display

Bug: 140633033
Change-Id: I532645deac101a6065d90484b87a67b67aa717f5
2019-09-09 10:21:28 -07:00
Sunny Goyal
6fe3eec95c Moving various common executors to a single location
Change-Id: I44bca49b8adb6fa22c3b48d10f674e42c28d792c
2019-08-20 14:36:17 -07:00
Jon Miranda
c0f1f4f3af Fix bug where changing the display size does not update the launcher grid.
The bug is caused by launcher saving the grid name and using that grid name
to look for matching display options. This makes sense when changing the grid
size, but doesn't work well when changing the display size.

Example: Initial Pixel display size is set to Default, so we save "normal" as
the KEY_IDP_GRID_NAME. When we change display size to Largest, the
KEY_IDP_GRID_NAME is still "normal" and so we only look at display options
under "normal". Before this, Pixel with display size set to Largest would be
set to "reasonable".

This should be safe change for Q, and we can have a proper fix when we
officially support changing grid size.

Bug: 131867841
Change-Id: If5f3b0a13b90069973e929024b26bd9b9c45a7d8
2019-05-28 16:05:09 -07:00
vadimt
1b383af652 Not using magic constants for navbar height
Change-Id: I6783b8a2ebb059ce35748d8c3e818cbe732ff40d
2019-05-08 17:20:34 -07:00
Sunny Goyal
905262c1a7 Adding utility method to get adaptive icon scale
Change-Id: I5ff190c3b794bb13309375782ccd420e85b59091
2019-05-03 21:31:46 -07:00
Ryan Mitchell
01b8b68db7 Rename launcher:iconSize attribute to prevent overriding material
A previous change [1] introduced the material library as a static library
for the SecondaryDisplayLauncher. The material library defines a
resource "attr/iconSize" with format="dimension" while Launcher3 defines
a resource of the same name with format="float". The material resource
is being overriden by the Launcher3 resource and is preventing aapt2
from disallowing multiple definitions of the same attribute with
different formats.

This change renames the Launcher3 iconSize so it will not collide with
the material resource.

[1] If183dd35a1d197c4a9a8225a021e36c4f1662587

Bug: 129146717
Test: build success and inspection of generated apk
Change-Id: I5eb54ea606ddcfb47d5150b44906a8707203e905
2019-04-24 16:22:51 +00:00
Sunny Goyal
8b0cb4113f Listening only for "android" package for overlay changes
Bug: 130917995
Change-Id: I37160a886a0afdc02dca8f7da6e8aa54c795882d
2019-04-22 09:02:08 -07:00
Sunny Goyal
58fa4b66ea Removing some redundant resource definitions
Change-Id: I68ae602116e6eb334dfce2a013fcc42068c464bf
2019-03-22 16:24:16 -07:00
Hyunyoung Song
e11eb47c4e Move overlay monitoring logic out of config monitor
Bug: 126417894

Change-Id: I5b474a2a41bbd951fa0a99673fa8bf4342adade5
2019-03-19 15:46:09 -07:00
Sunny Goyal
90e3fbca62 Updating folder shape when icon shape changes
> Removing unnecessary threading logic and the code was running on main thread anyway

Bug: 118757840
Change-Id: I7a012db5a0dbe2c23bd6ff2cd39679a803731ee8
2019-01-23 16:43:26 -08:00
Sunny Goyal
7d892ff198 Adding API to set the current grid
Bug: 122262084
Change-Id: Ie356d4a90cf1e5a3715fde62cd3502384856e8b5
2019-01-11 15:09:06 -08:00
Sunny Goyal
eff44f331c Adding content provider for exposing launcher grid settings
Bug: 122262084
Change-Id: I3e89e0a9400fb3e81f932af3606eb49c36d34894
2019-01-09 17:47:24 -08:00
TreeHugger Robot
238f324ebf Merge "Adding support for putting arbitary attributes in InvariantDeviceProfile" into ub-launcher3-master 2019-01-09 20:21:03 +00:00
Hyunyoung Song
b4d1ca4902 Refresh icon cache for recents when rro overrides the adaptive icon path
Bug: 122472687
Change-Id: I646c3918480740ea322e60252e3ceb006964567f
2019-01-09 11:37:12 -08:00
Sunny Goyal
5bc1846375 Adding support for putting arbitary attributes in InvariantDeviceProfile
This would allow derivative projects to profile profile specific
customization options

Change-Id: Id4703dc54d649a8d8a930f72c836c4ec23ffc45d
2019-01-07 15:26:21 -08:00
Hyunyoung Song
c55a350da8 Refresh icon cache when icon shape path has changed
Bug: 120505990

$ adb shell cmd overlay enable --user 0 com.android.theme.icon.roundedrect
$ adb shell cmd overlay disable --user 0 com.android.theme.icon.roundedrect
$ adb shell cmd overlay enable --user 0 com.android.theme.icon.teardrop
$ adb shell cmd overlay disable --user 0 com.android.theme.icon.teardrop

Change-Id: I06663b9727f7434aae737d39977f1e6cf09bffbf
2019-01-04 11:57:52 -08:00
Sunny Goyal
6d55f66e13 Fixing use of new API available only on API 24
Change-Id: Iaf29d46925c45eeda485f882c1f59841fc3cfcea
2019-01-02 12:14:03 -08:00
Sunny Goyal
415f173331 Changing the format for device profile definition
Device profiles are defined such that the grid size is fixed
and only the icon and text sizes change. For every grid size option
there are multiple display configurations.

Bug: 118758696
Change-Id: I54aac9106c576324b02530913c447e849b4ae1da
2018-12-07 00:06:25 -08:00
Sunny Goyal
87dc48b7bf Handling configuration changes at runtime instead of killing the process
Change-Id: I0c7f7e58ddb690f371c257b6142a4e918e9acb7f
2018-10-19 12:52:17 -07:00
Sunny Goyal
d230307a95 Migrating to android-x
Change-Id: I9a774152d13a541e8496dd84f2469bfed407f86d
2018-08-14 15:22:12 -07:00
Sunny Goyal
36b54228fc Retiring some feature flags
Change-Id: I80a00ecaec0785ce2ba6a5f14a54c8a76f555d43
2018-07-10 13:52:17 -07:00
Sunny Goyal
d0e360a858 Lazy loading LauncherAppState
Separating InvarantDeviceProfile out of LauncherAppState and creating
LauncherAppState only when it is actually used

Change-Id: I2ee55f53cae01f11203f94675bb5f70c65ad2b9d
2018-07-03 14:39:21 -07:00
Sunny Goyal
f633ef5f43 Adding fallback recents activity
> Refactoring RecentsView to a common base class
> Moving some dependency form Launcher to BaseActivity
> Using the Recents view in RecentsActivity

Change-Id: Ie0e6741d356291e77420798c140c999121de3a0d
2018-03-13 17:22:52 -07:00
Sunny Goyal
d70e75a514 Removing launcher dependency when logging quickstep interaction
as Launcher may not be ready when the touch gesture completes.

Change-Id: Ia69eb7bfb0340f7b7ce9b6c67be8851e5429f867
2018-02-22 10:21:41 -08:00
Sunny Goyal
b1d222e9a7 Removing support for app prediction from Launcher3
Derivative projects can extend the FloatingHeader to add support
to custom content in all-apps screen.

Change-Id: I4e29221a72e5a077a756713a6774cda7ecde8f1b
2018-01-30 20:53:11 -08:00
Adam Cohen
2782449da6 Demo mode default layout support
67062454

Change-Id: Ic060d3d7dba4fffe688dddf7cd04c48e4baaf813
2017-09-29 15:49:34 +00:00
Jon Miranda
b28c4fcf35 Landscape grid changes for Workspace/All Apps.
This is the just first CL to get eyes on the changes.
Next CL will update the All Apps to be full width.

Bug: 37015359
Change-Id: I2d7ec6851fdc13b8fa654e7e2be3152330243ccc
2017-06-23 11:47:48 -07:00
Sunny Goyal
66d91e51d4 resolve merge conflicts of 40dfa3bf6 to ub-launcher3-master
Test: I solemnly swear I tested this conflict resolution.
Change-Id: Iee500631827ebc48c63c203fdcd0de888adcb135
2017-03-27 10:40:52 -07:00
Sunny Goyal
4610324261 Revert "Adding some logging around launcher grid when device profile changes"
Bug: 35425060
This reverts commit c29de85780.

Change-Id: I4320be3473f914289f88c8cbb376a68af006d7de
2017-03-20 16:08:17 -07:00
Justin Cui
6d00d97704 Merge "Make landscapeProfile and protraitProfile public." into ub-launcher3-dorval
am: b00fcd4e49

Change-Id: Ie62cdf16f27edf46e5b2bbec81873b99f124bb48
2017-03-20 17:41:58 +00:00
cuijiaxing
abda8d79b4 Make landscapeProfile and protraitProfile public.
This is needed to make prediction sticky: b/21654652

Change-Id: Ie8cb77ed9cbf1bf5b164828d0c4335111039e7c5
2017-03-20 17:14:11 +00:00