Commit Graph

39 Commits

Author SHA1 Message Date
Brandon Dayauon
e16a2725d2 Create a bug fix flag for the FloatingMaskView.
Need to create a bug-fix flag since feature flags can't reach nextfood in time for V. We do this by renaming
the current flag.

According to https://g3doc.corp.google.com/company/teams/android-core-experiments/trunk-stable/gantry-stages/bug-fix.md?cl=head

After a flag declaration has been merged, it's no longer possible to change its purpose. If the purpose of a flag changes over time, simply rename the flag; this will create a new workflow and invalidate the previous workflow.
In cases where renaming is not possible, please file a bug for the ACE oncall. Even when re-using the name of a flag for a new purpose, please note that all the progress in the pre-existing workflow will be lost; the new bug-fix workflow will start from scratch.

bug: 339850589
Test: Presubmit/locally adb shell device_config put launcher_search com.android.launcher3.private_space_add_floating_mask_view true
Flag: ACONFIG com.android.launcher3.private_space_add_floating_mask_view STAGING
Change-Id: Iffbc6a93c4ef6bbe121e0c8fb83250174f367b9d
2024-05-28 15:49:58 -07:00
Brandon Dayauon
e369bd6502 Merge changes I7c303e66,Idc03b9d3 into main
* changes:
  Add floatingMaskView when animating to mimic bottom container.
  Add private_space_floating_mask_view flag.
2024-05-14 23:15:40 +00:00
Brandon Dayauon
1d3ddb877d Add floatingMaskView when animating to mimic bottom container.
- On expand, we add the floating mask view and translate it out at the end.
- On collapse, we translate off the mask view in the beginning once the floating mask view is added
so that we can translate it in before the actual collapsing part of the animation

bug:339850589
Test manually:
https://drive.google.com/file/d/1YNc3vq9Cb5BcbcPOHp8H3lhe6KmYBdLI/view?usp=sharing
Flag:ACONFIG com.android.launcher3.private_space_floating_mask_view STAGING

Change-Id: I7c303e6629d83408bd314886fe10113246e44dcb
2024-05-13 11:08:05 -07:00
Anna Zhuravleva
9f3bca37e6 Merge "Log animation jank" into main 2024-05-08 08:22:57 +00:00
Brandon Dayauon
c2ce6254c3 Use ValueAnimator instead of property setter
Referencing the view by ID animates correctly. Passed in views are supposedly not the same
and therefore, not animating the correct thing. (fixes on the device that can repro issue).

Bug:339179262
Bug:299294792
Test manually verified on device that can repro:https://drive.google.com/file/d/16L4wEroGEDsp_BIkmoARg9vR43upF6_8/view?usp=sharing
Flag: aconfig com.android.launcher3.enable_private_space nextfood

Change-Id: I20b06cc50928c35afa3dc1e8800b3a5bff0769be
2024-05-07 10:30:18 -07:00
Brandon Dayauon
ecc04b9f39 Update private space animation timings
The entire animation is 800ms where there are differences between lock/unlock.
Unlock 1.0:
   app Opacity: time = 400 -> 800ms Linear
   text opacity: time = 500 -> 800ms Linear
   settingsAndLockGroup "size": time = 400 -> 800ms Standard
   settingsGear: time = 400 -> 800ms Linear
Lock 2.0:
   app Opacity: time = 0 -> 400ms Linear
   text opacity: time = 0 -> 50ms Linear
   settingsAndLockGroup "size": time = 0 -> 400ms Standard
   settingsGear: time = 0 -> 400 Linear

bug:299294792
Test manually video:
after: https://drive.google.com/file/d/1_Y5I7vQhDHPX8DLM_rSM3mV9DrVN0v-q/view?usp=sharing
after 10x: https://drive.google.com/file/d/1_WLz2ijLs19qE1vYA9zdXF9YZB_CqMns/view?usp=sharing

Flag: aconfig com.android.launcher3.enable_private_space nextfood
Change-Id: I8a578e70bb834f403075824785fa9b4d8825858c
2024-05-01 11:48:50 -07:00
Himanshu Gupta
42e3196011 Fix Accessbility bugs for PS.
This Cl contains:
1. Alt text for Lock/Unlock button as per state.
2. Alt text for Header when Locked.
3. Removing Header from accessibility target when unlocked.

Bug: 328024119
Test: Manual
Flag: NA
Change-Id: I791176afdae4fc6eb9387080aa036c1aed2a03a9
2024-04-25 11:57:53 +01:00
Anna Zhuravleva
fefb36b9dc Log animation jank
Log jank for lock/unlock private space animation.

Bug: 328613852
Test: https://buganizer.corp.google.com/issues/328613852#comment4
Flag: ACONFIG com.android.launcher3.private_space_animation TRUNKFOOD
Change-Id: Ib8d78d9aa63554ce6ac132530f3ac45b94f92d47
2024-04-24 13:33:20 +00:00
Himanshu Gupta
ae4631e6a3 Move PreInstalled App List to UserCache.
Bug: 333543006
Test: atest PrivateSpaceHeaderViewTest, AlphabeticalAppsListTest
Flag: NA
Change-Id: I84233c5a6406325d9e641b72ea8455911b46f65f
2024-04-23 15:28:01 +01:00
Brandon Dayauon
715059a1e3 Merge "Make settings cog animate back to original button" into main 2024-04-19 10:07:36 +00:00
Brandon Dayauon
120838b04d Make settings cog animate back to original button
Provide the appropriate itemInfo so that launcherBackAnimation would play correctly.

bug:324569690
Test manual video: https://drive.google.com/file/d/1GfjL4PhdGOxs2KfDpieTNiFiKQ61aCgh/view?usp=sharing
Flag: ACONFIG com.android.launcher3.Flags.enable_private_space trunkfood

Change-Id: I1a9458643e932b279bf4ba4ea33e3dc0a2c121c2
2024-04-18 14:32:33 -07:00
Brandon Dayauon
fe791d11aa Fix install apps button
- Setting the button's user via iteminfo to the privateprofile user
doesn't let the user to go into the play store. This was initially done so that
we can check the itemInfo to see if item is private space instead of just checking
if the item has a decorationInfo for collapse animation.
- The itemInfo change is reverted and we can check that case by checking with instanceOf PrivateSpaceInstallAppButtonInfo

bug:335600922
Test manually video: https://drive.google.com/file/d/1N2zOHvPmBptBaBf8SCqjBAM6UhV0lQBI/view?usp=sharing
Flag: ACONFIG com.android.launcher3.enable_private_space TRUNKFOOD

Change-Id: I09f22c9df5b4f9408eea6995eafea83e30c93a0d
2024-04-18 16:59:49 +00:00
Brandon Dayauon
14ec21748b Fix views being visible after closing private space.
Its possible views are still being binded before the app list is refreshed.
So instead make the views gone in that case (by making sure private profile is disabled).

Fixes:
- install app icon still showing because it is not identified as a private space item
- Divider still containing a decorator when collapsing before app list is refreshed.

bug: 334868779
Test video manualy:
before:https://drive.google.com/file/d/1IWdGsTSq7-xRZKOJso-5p9g-j7RTEkas/view?usp=sharing
after:https://drive.google.com/file/d/1IVNTksryFi5o4uHzZtzNC0Yz7-rxrje3/view?usp=sharing
Flag: ACONFIG com.android.launcher3.Flags.private_space_animation trunkfood

Change-Id: If93e39753352741fb6f0728f717a67b7f9315d0b
2024-04-15 14:40:58 -07:00
Brandon Dayauon
a271511240 Set attach consumer after animation finished
Its possible after the animation that attached view's alpha can still be stuck at 0 and never change.
This only happens when the view isn't in range to animate and after onBind() is already called.

Also added flag guarding to the animation as it seems to be forgotten since the big CL change moving
everything to privateProfileManager.

bug: 333506236
Test locally: https://screenshot.googleplex.com/8Kk6rLaczMPwr49 and https://screenshot.googleplex.com/9wXHeNuiCVFEMp6
manually: before https://drive.google.com/file/d/15hSqaUVjwE-lLp6IIv_mqwYbn_ITzR7s/view?usp=sharing
after: https://drive.google.com/file/d/15m7Al5H3vldFgIaQfFyulm1h92_Mgd0H/view?usp=sharing
Flag: ACONFIG com.android.launcher3.Flags.private_space_animation trunkfood

Change-Id: Ifed45f065b536bca5e8878b1bb95d16caf136ed6
2024-04-15 10:12:08 -07:00
Brandon Dayauon
c1de065650 Merge "Fix stale header height being used in scroll to header calculation" into main 2024-04-12 17:00:40 +00:00
Brandon Dayauon
5da04b231f Fix stale header height being used in scroll to header calculation
- This fixes the inconsistency of how far down is needed to scroll to since
the values used to calculate the header during drawOnScrimWithScaleAndBottomOffset() is faulty.
- Tweaked the row to scroll to when there are tabs vs no tabs. When there are no tabs, its possible the
header gets cut off most of the time hence subtracting by 1 will help this problem.

bug:332543940
Test locally: https://screenshot.googleplex.com/5y4vYiQcnSMKcA6
manual - before: https://drive.google.com/file/d/14Zj_FyO-3bVfXwuxaqgG_DXMELYS5bQn/view?usp=sharing
after with tabs:
after 5x5: https://drive.google.com/file/d/16rjaut6VqBMxG6uLQSnVTLRhUQnAANZ5/view?usp=sharing
after 4x5: https://drive.google.com/file/d/16jCPN8BewwuIQobt0t6tdVouUKpp1CdI/view?usp=sharing
after 4x4: https://drive.google.com/file/d/16VFQb5s6IfrpjRU9PmLlAJWjh1zIo77o/view?usp=sharing
after 3x3: https://drive.google.com/file/d/16VFQb5s6IfrpjRU9PmLlAJWjh1zIo77o/view?usp=sharing
after 2x2: https://drive.google.com/file/d/16N6Myuv9VtXgI1p4sIuV23iupea7jYLQ/view?usp=sharing

after no tabs:
after 5x5: https://drive.google.com/file/d/17H1oF_9fJnrtSqmJJqQyyn4upuM2CsoG/view?usp=sharing
after 4x5: https://drive.google.com/file/d/178Vu3SvnvSPODIfaR0oz6-jPVYDDNMaA/view?usp=sharing
after 4x4: https://drive.google.com/file/d/16yt_5ePPR7kwSrZlo5Sj3x0DqHoQKqYP/view?usp=sharing
after 3x3: https://drive.google.com/file/d/17HqebtHWcEHg-i9AfqHEVdl4YnQhX06P/view?usp=sharing
after 2x2: https://drive.google.com/file/d/17HqebtHWcEHg-i9AfqHEVdl4YnQhX06P/view?usp=sharing

after tablet:
landscape: https://drive.google.com/file/d/16JQGs0A3ifKpgqrpQwIzssrXbH-OC0Ej/view?usp=sharing
portrait: https://drive.google.com/file/d/16LmLnOEB6XkuAkAcgvP2mKHe5QQqG1oh/view?usp=sharing

Flag: ACONFIG com.android.launcher3.Flags.private_space_animation TRUNKFOOD

Change-Id: If8a70cc71e9cff4a7f8d3b648e3e59c414e40ee5
2024-04-11 16:22:11 -07:00
Sunny Goyal
11117d9b2a Using resource override instead of code-swap for ApiWrapper
Bug: 330920490
Flag: None
Test: Presubmit
Change-Id: Iac19f32e64d2c76ed5b4f8592943ee4ae7af51b5
2024-04-09 11:14:44 -07:00
Brandon Dayauon
c752dd032c Merge "Ripple to header and button when click happens" into main 2024-04-05 04:20:49 +00:00
Brandon Dayauon
5cbe7605f6 Apply icon alpha animation to expand/collapse private space.
This change is more so to the Alt 3 motion spec:
https://docs.google.com/presentation/d/1zRwJ8cZbwMleXHfC2hX4CJJMGSI954FK0V3ksXl7fyE/edit#slide=id.g2baced0bfd0_1_25

bug: 299294792
bug: 325455879
Test: locally: https://screenshot.googleplex.com/BYCwSH3yRvkkZ3v and https://screenshot.googleplex.com/44byrRx5GUQkncw
manual video:
expand and collapse from header: https://drive.google.com/file/d/1-qRdcbo6lNvUPOx4QWL6wVhTRzl2TVtE/view?usp=sharing
from toast and close container after locking: https://drive.google.com/file/d/1-ix4CcOIzMhsJH3uZdJA1vcV8BvY91T9/view?usp=sharing
Flag: ACONFIG com.android.launcher3.Flags.private_space_animation TRUNKFOOD

Change-Id: I4cde4b8626cf3271880fee697f2fb6bc780eab60
2024-04-04 14:54:28 -07:00
Brandon Dayauon
c3281ee18a Ripple to header and button when click happens
bug:320701510
Test: manual video: https://drive.google.com/file/d/11X7vUetuMN1J34Now4zlQZ0WaOnryLpA/view?usp=sharing
Flag: None

Change-Id: Ibe22d02b59da5b1133f02ebd936520b97a63e44a
2024-04-04 14:08:41 -07:00
Brandon Dayauon
136f9d6f8a Move adding views logic to privateProfileManager
- Have the animation happen according to the state of private space.
- Have the transition happen only once by setting the current transition to null at the end of transition and by ensuring
where the transitions are allowed.
- Removing controller class.

- The onClick controls the enablement of the profile. On reset (when getting the transition) is what controls the animation
during expand.

tldr- In the collapse case:  execute() is called -> animation happens  -> addPsHeader
tldr- Expand case: post() is called -> addPsHeader -> animation happens.

Collapse:
onClick() -> AACV.onAppsUpdated() that resets & apply/RUNS runnable because EXECUTE
-> AAList.onAppsUpdated() (which is called at the same time animating happens which we should cancel and do at end callback)
-> AAList.onAppsUpdated() gets called again

Expand:
onCLick() -> AACV.onAppsUpdated() that resets & apply runnable
-> AAList.onAppsUpdated() (no animation running)
-> AAList.onAppsUpdated() (no animation running)
-> addPrivateSpaceHeader
-> then unlockAction() runnable because its posted at this point

bug: 326206132
bug: 330444548
bug: 299294792
Test: manually locally and presubmit: https://screenshot.googleplex.com/9wavvwKQ8hY6oUw & https://screenshot.googleplex.com/BiqmidLFjPwS28j
video: https://drive.google.com/file/d/1XGhmTncdUFtJj188_l7alGyyNz_fhXNw/view?usp=sharing

Scrolling fix before: https://drive.google.com/file/d/1XykDm4UELoCvcwZdj8ZlJ6TszptB8W0W/view?usp=sharing
scrolling fix after when not a lot of apps: https://drive.google.com/file/d/1Y4VY1eX7WE8ShSLXRrT56ieBdAuJo_zn/view?usp=sharing
scrolling fix after with a lot of apps: https://drive.google.com/file/d/1Y58c-Z9xnU1GILp0Ih-oLORXYkMB-jWn/view?usp=sharing
Flag: ACONFIG com.android.launcher3.Flags.private_space_animation

Change-Id: I8d03ae60e2c9fe0ec145c4b0a2e9604b9e6e9017
2024-03-28 17:39:42 -07:00
Holly Jiuyu Sun
5beb2498ac Merge "[PS] Do not use AppInfo and use PrivateSpaceInstallAppButtonInfo instead." into main 2024-03-13 03:48:37 +00:00
Himanshu Gupta
616a1b828d Using LauncherApps API for PS Settings and Setup Flow.
Bug: 310027945
Test: Launcher3 tests
Flag: ACONFIG com.android.launcher3.enable_private_space TRUNKFOOD
Change-Id: I6e04a4b0c33d4526d83b51e512e1e4372ce1cca4
2024-03-11 16:13:08 -07:00
Holly Sun
20c30c9cdc [PS] Do not use AppInfo and use PrivateSpaceInstallAppButtonInfo instead.
BaseAllAppsAdapter.AdapterItem's itemInfo needs to be an AppInfo. Create PrivateSpaceInstallAppButtonInfo extending from AppInfo and use different itemType (AppInfo has default itemType ITEM_TYPE_APPLICATION). In this case, shortcuts is disabled in ShortcutUtil#supportsShortcuts because `isApp` is false (https://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:packages/apps/Launcher3/src/com/android/launcher3/util/ShortcutUtil.java;l=30?q=shortcututil&sq=repo:googleplex-android%2Fplatform%2Fsuperproject%2Fmain%20b:main).

After the fix, long click on Install button quits Toast, which is the same with drag action on the button.

Since we have a specific itemType for PS install button now, the previous `FLAG_PRIVATE_SPACE_INSTALL_APP` is no longer needed. Remove it.

Bug: 324211283
Test: manual
Flag: aconfig com.google.android.apps.nexuslauncher.private_space_app_installer_button trunkfood
Change-Id: Ic5d4284afb93cef77f2ad8f0c1588523e0ed3ae3
2024-03-05 17:13:35 -08:00
Himanshu Gupta
b12ff142a8 Making Settings Cog open PS Settings page.
Settings Cog action should direct to PS Settings page
instead of PS entry point page in Privacy&Security Center

Bug: 322484516
Flag: ACONFIG com.android.launcher3.Flags.enable_private_space TRUNKFOOD
Flag: ACONFIG com.google.android.apps.nexuslauncher.Flags.enable_inject_private_space_tile TRUNKFOOD
Test: Launcher3 test.
Change-Id: I2bc7a95d591ccedb343909c159c3cbda2814e6bf
2024-02-09 19:38:45 +00:00
Himanshu Gupta
3ec66fb333 Preventing DragAndDrop for PS apps.
This Cl restricts item dragging for PS apps from
all launcher surfaces such as AllApps, AppPredictionRow, etc.

Video: https://photos.app.goo.gl/PKGw8n23hJVJMyUk7

Flag: ACONFIG com.android.launcher3.Flags.private_space_restrict_item_drag DEVELOPMENT
Bug: 289223923
Test: Ran Launcher3 tests
Change-Id: I2c5dbaa325095ec63aedf39b6b2c269f745d58ca
2024-02-01 06:46:25 +00:00
Himanshu Gupta
eaeb666e43 Merge "Separating system and user-installed apps in PS container." into main 2024-01-26 14:22:19 +00:00
Himanshu Gupta
0cc11dbcac Separating system and user-installed apps in PS container.
We add a horizontal line separator in PS container which demarcates
user-installed vs system installed apps in private space.
User-installed are shown above the separator, system ones below.

UX Mock: https://www.figma.com/file/K6bIIcG882EiJNjxvSWsFT/V%E2%80%A2-Private-Space?node-id=11546%3A310574&mode=dev
Mock Image: https://photos.app.goo.gl/Wj8sJkS7P7bRbovg8
Demo video: https://photos.app.goo.gl/MBw6HpDnf6PJqUfs8

Bug: 308054233
Flag: ACONFIG com.android.launcher3.Flags.private_space_sys_apps_separation DEVELOPMENT
Test: AlphabeticalAppsListTest
Change-Id: Iad8e289c49a05ac7ef1978bd8e4ebe7aa0add0ca
2024-01-26 11:04:13 +05:30
Holly Sun
70d8ecbcfe [PS] Log event for private space add button click.
Bug: 320702146
Test: manual
Flag: ACONFIG com.android.launcher3.private_space_app_installer_button teamfood
Change-Id: I2ea6b215d4bce93e682c260242a6c3a7cb31922f
2024-01-17 16:09:08 -08:00
Himanshu Gupta
ce495f13e3 Adding suport for Private Space QsTile fulfillment.
Adding logic to unlock private space and
scroll to the container after unlock event
is received by Launcher.

This change also moves pieces of Private Space
Animation to different classes, in order to make
it more robust.

Bug: 289024009
Test: atest PrivateProfileManagerTest
Flag: ACONFIG com.google.android.apps.nexuslauncher.inject_private_space_tile TEAMFOOD
Change-Id: Ica2fbc00ff3516ed5aca7fbbfc0bd2aa036a4cee
2024-01-15 18:43:27 +05:30
Holly Sun
97b1bba413 Implement Install Apps button in Private Space.
UX mock: https://www.figma.com/file/K6bIIcG882EiJNjxvSWsFT/V%E2%80%A2-Private-Space?node-id=7246%3A83750&mode=dev
UX icon spec: https://www.figma.com/file/K6bIIcG882EiJNjxvSWsFT/V%E2%80%A2-Private-Space?type=design&node-id=19979-224329&mode=design&t=50SDFdomAtonNU4V-0

Video: https://drive.google.com/file/d/1VtTzxR46dLiaozOo6sOHADv1qTcBOwDP/view?usp=sharing
Screenshot:
https://screenshot.googleplex.com/3ShcUozVrkGMHbc
https://screenshot.googleplex.com/3F4c3yzJ7RUpma7

Reason to use PrivateSpaceInstallAppButtonInfo: reuse `VIEW_TYPE_ICON`, which needs an AppInfo.

Bug: 308064949
Test: manual
Flag: ACONFIG com.android.launcher3.private_space_app_installer_button development
Change-Id: I3fb27fae8324d4b276816b17f9b0a2d9b6f33ed2
2024-01-10 14:28:33 -08:00
Brandon Dayauon
553a2c8775 Merge "Apply the expand animation on Private Space" into main 2023-12-13 00:02:56 +00:00
Brandon Dayauon
98bf9f7532 Apply the expand animation on Private Space
- Using the refactoring that took place in ag/25414154

Bug: 299294792
Test: Verified SearchTransitionController didn't regress by turning off BACKGROUND_DRAWABLES flag.
- Verified QL highlight still works
- video: https://drive.google.com/file/d/15yjBWofebn6m7VgEnLK6kEYqhC_adJQ3/view?usp=sharing

Flag: ACONFIG com.android.launcher3.Flags.private_space_animation DEVELOPMENT

Change-Id: Ib6229b404b48616966f3e6ab6884099b6e4b4023
2023-12-11 11:27:31 -08:00
Anna Zhuravleva
63d9cee7b8 Merge "Log taps on PS container buttons" into main 2023-12-07 09:56:10 +00:00
Anna Zhuravleva
2ef6704e61 Log taps on PS container buttons
Log taps on space locked/unlocked, settings
buttons

PDD: https://eldar.corp.google.com/assessments/873128385/revisions/1

Test: logcat StatsLog, output
https://paste.googleplex.com/6250774946906112
Bug: 314933661
Flag: ACONFIG com.android.launcher3.Flags.enable_private_space TEAMFOOD
Change-Id: I528443ba56a0db144ce613ea8d41426b6ede434d
2023-12-05 13:40:00 +00:00
Himanshu Gupta
b6ebbb019c Fixing dangling PS container on profile addition.
When Work profile state is changed, the all apps container is redrawn
Eventually `PrivateProfileManager.reset()` is also called but PS decorator
is not added as there is no change in PS state.
https://photos.app.goo.gl/V2bmZWfzBzcRP97C8
To fix this, we allow decorator addition on reset, but only
apply the same when its not already present in the recycler view.

Flag: ACONFIG com.android.launcher3.Flags.enable_private_space DEVELOPMENT
Bug: 313498792
Test: PrivateProfileManagerTest
Change-Id: I4c9a89d84e670ed45bf53a2d2e2c4922b165463e
2023-12-03 23:34:19 +00:00
Himanshu Gupta
2b5620b295 Fixing Launcher crases due to methods being called on Ui Threads.
This CL fixes the following two issues:
1. Launcher crashing while calling `addPrivateSpaceSettingsButton` from
   BaseAllAppsAdapter as the thread is UI
2. Decorator is not removed from Private Space Header during reset to
   paused state. https://screenshot.googleplex.com/BZdLqaZQwdDApfV

Flag: ACONFIG com.android.launcher3.Flags.enable_private_space DEVELOPMENT
Bug: 311337961, 311342946
Test: Ran Launcher3 tests
Change-Id: I2763338ebf0f5468ad38f61a781e8a8334194c5c
2023-11-20 18:59:13 +00:00
Himanshu Gupta
739b3c9f22 Enabling Private Space Container in Launcher.
This CL adds the following:
1. Adds filtering and addition of Private Profile apps in main user
all apps recycler view
2. Enables decoration of Private Profile apps
3. Enables hiding Private Space container based upon a settings entry.

Flag: ACONFIG com.android.launcher3.Flags.enable_private_space DEVELOPMENT
Bug: 289223923
Test: Ran Launcher3 tests
Change-Id: I33dc55a3a39e75d3fc336ca6a488b282e2dd322c
2023-11-15 15:08:59 +00:00
Himanshu Gupta
08badb3f6f Adding Private Space views to Launcher.
This CL adds the following:
* Static View Elements to be added to AllApps recycler View
* View Controller to load the above elements dynamically
* Private Space Section Decorator
* PrivateProfile Manager containing the logic related to Private Space
* Abstract UserProfileManager as the super class of Work/Private
ProfileManager

Private Space Views Figma
[link](https://www.figma.com/file/K6bIIcG882EiJNjxvSWsFT/V%E2%80%A2-Private-Space?type=design&node-id=14535-111985&mode=design&t=JLz9W0O551TpzQYH-0)

Flag: ACONFIG com.android.launcher3.Flags.enable_private_space DEVELOPMENT
Bug: 289223923
Test: Ran Launcher3 tests
Change-Id: I8aa4247c78064a551e5e0d0b46d3fc033873f99d
2023-11-14 11:58:16 +00:00