- Added uiMode in handled configChanges for QuickstepLauncher, NexusLauncherActivity and RecentsActivity
- This avoids Launcher from being recreated when swithching from an app in driving mode (e.g. Maps), which causes massive jank
- Launcher layout is affected when driving mode changes, so a recreation is ujnnecessary
- Light/dark mode changes still causes Launcher to create as expected
Fix: 339747262
Test: Swtich from driving mode app to another or home in 1p and 3p laucnher
Test: Switch light/dark mode and Launcher is updated correctly
Flag: EXEMPT bugfix
Change-Id: I3d52f0625b580a5b5a1ddbbb487c271a4bb0152b
Unlike normal activity, recents would receive key event from input
consumer instead of go throught ViewRootImpl, so when adapt to
predictive back API, recents should try to handle back key when receive
key event.
Flag: ACONFIG launcher.enable_predictive_back_gesture ENABLED
Bug: 333428882
Test: switch to 3-button mode, go to live tile, verify back key can
dismiss recents.
Change-Id: Ibe6d9b2475a0b89b12dc4b34251a2a92926b5a4e
Grant access hidden profiles permission to Launcher3
to access private profile.
Test: checked permission is granted in adb
Bug: 321988638
Flag: NONE
Change-Id: I70657e7972d184986d4bfd82f51d77ce2a275214
Since shell transition, recents activity will be moved to top for
recents animation if default home is not recents. And because top
activity is able to affect display orientation. Then the appearance
may not look smooth by the orientation change.
Bug: 308639215
Test: Enable auto rotation. Set a 3rd party portrait home.
Enter recents by gesture from home.
The overview should show the same orientation as home.
Change-Id: I36cce1438bef2d2b472b10eebfe00fd3e86eb308
- Changes ProxyActivityStarter theme to draw transparent navigation and status bar
Test: locally
Flag: N/A
Bug: 202485497
Change-Id: I88d14099ec9b1f433fbcdc9184fe5af557bc180b
The lottie animations used for the gesture navigation tutorial are
designed for specific orientations depending on the device. This change
ensures that users are in the correct orientation for their device. For large screen users in portrait mode, we display a prompt to rotate the screen.
Flag: ENABLE_NEW_GESTURE_TUTORIAL
Fix: 277781713
Bug: 276515961
Test: Manually went through the tutorial starting from both
orientations on handheld, foldable, and tablet to ensure that the prompt
was shown and hidden correctly. Also ensured that gestures cannot be
completed in the background while the prompt is being shown.
Change-Id: I86ae566721f240264177ad4ec7fc12e58d1b95cd
This change adds in a new animation and layout to change the existing back tutorial as part of the effort to redesign gesture navigation education for users. This temporarily uses placeholder animations for the overview gesture. Large screen animations are also added for Home and Back tutorial.
Flag: ENABLE_NEW_GESTURE_NAV_TUTORIAL
Bug: 241813570
Bug: 253521922
Bug: 253520701
Test: Manual
Change-Id: Ied18b88a83a3b673a7cf40fd33b6013f24998e44
LauncherActivity uses FLAG_SLIPPERY for certain interactions. For
example, when home screen is shown, and the user pulls down from not the
top of the screen, and notification shade is getting displayed, then the
touch should be getting transferred to the NotificationShade using
FLAG_SLIPPERY.
The newly introduced permission is added to launcher in order for this
flag to be applied to the window.
Bug: 206188649
Bug: 157929241
Test: reviewed logs, ensure that NexusLauncherActivity has FLAG_SLIPPERY
Test: re-ran the performance regression test
Change-Id: I8d05fa3663687b5382a59b0d47cdac404844c3b7
LauncherActivity uses FLAG_SLIPPERY for certain interactions. For
example, when home screen is shown, and the user pulls down from not the
top of the screen, and notification shade is getting displayed, then the
touch should be getting transferred to the NotificationShade using
FLAG_SLIPPERY.
The newly introduced permission is added to launcher in order for this
flag to be applied to the window.
Bug: 206188649
Bug: 157929241
Test: reviewed logs, ensure that NexusLauncherActivity has FLAG_SLIPPERY
Test: re-ran the performance regression test
Change-Id: I8d05fa3663687b5382a59b0d47cdac404844c3b7
We reused a code that handles rotation suggestion button
from SysUI in Launcher. It requires WRITE_SECURE_SETTINGS
permission to write how many times we have shown this button
to show ripple only the first 3 times.
AOSP Launcher didn't have this permission and it was crashing.
Bug: 205491152
Test: tap on rotation suggestion button when in AOSP launcher
Change-Id: I216abb86d43cc505aec1ff581c1f332ae3ad0db4
- Launcher used to restart when density changes before http://ag/14234761, which added smallestScreenSize and density in configChange
- http://ag/14234761 aims to avoid restart when switching display in split dispalys, for which only size changes, therefore density is unnecessary in configChange
- Keeping density in configChange make Launcher acitvity to stay after changing display size, making all buttons stays in old size in previous denstiy, which is a bug
Bug: 204157738
Test: manual
Change-Id: Ib85326078c67c35d90dc5e9ae5c20eeb5286a610
- Updated mock conversation layout to work on large devices.
- Added AnimatedTaskView helper view to animate previous task view.
- Added animation from single previous app to two peaking previous apps.
- Updated app orientation to work with larger screens (forced protrait was causing letterboxing).
Test: manual, tested tutorial on non-foldable device, foldable device (closed, opened in landscape, opened in portait and switching between the three)
Bug: 198434693
Bug: 187701213
Known issue: 200579260
Change-Id: I98cb269f7d25985989cf66e791bf535228ab5293
- No longer forced portrait mode
- Bottom texts are aligned proportionally to the screen height
to avoid overlapping in landscape folded
- Subtitle text width is limited to force wrapping to avoid an
awkward line of text on wider screens
Fix: 189896987
Bug: 187701213
Test: Manually went between portrait/landscape/folded/unfolded.
Change-Id: Ibb2bbe545cf7f154ad77e10d574e72f8d9110a72
> Updating background color
> Updating activity theme to not be transparent
> Updating default accent color
> Adding an accessible target to exit
Bug: 190447132
Bug: 190136972
Bug: 190454597
Test: Manual
Change-Id: Ia8ef67ed429c062a8d1109d7f444343ec4ca09cf
- This is practically a revert to http://ag/c/13687966/5 and refactored to use DisplayController.DisplayInfoChangeListener
- Make Launcher handle size and density change so transition is less janky when screen size changes
- Added fix in RecentsView to update state and TaskView when display profile changes
- Removed 720dp specific resoureces
- Removed unused widget_section_indent
- Removed unnecessary all_apps_background_canvas 600dp override that is not needed in AllApps+
- Moved remaining dp specific into DeviceProfile
- Simplified allowRotation logic to use single variable in DeviceProfile to determine if allow rotation is enabled by default
Fixes: 180803696
Test: manual
Change-Id: Iea0a7d1a0e14dc3613152dd3b3887450a2e1fc2f
Mostly copied from its location in Tips.
Some exceptions:
- Accent color (used for the icon at the top and link text)
is derived from intent extras to match the rest of SUW.
If needed, we could also pass other colors this way;
currently they just use default light/dark mode colors.
- Currently there is no animation in the middle. Not sure
if one is expected, but we can add it later if so.
Bug: 184722307
Test: Manually passing arbitrary colors via adb:
adb shell am start -a com.android.quickstep.action.GESTURE_ONBOARDING_ALL_SET --ei accent_color_dark_mode -2134901760 --ei accent_color_light_mode 2147418112
Change-Id: I1fb8b20b88b7485d28f06afd2b421999ad847266
- Remove smallestScreenSize so Launcher activity restarts when screen size changes to pick up new smallestSize dependent values e.g. R.bool.allow_rotation
Bug: 180803696
Test: Ensure rotation preference is respected when switching between large and small screen
Change-Id: I58f856a97effa8e35236d013300181c5d332b25a
This prevents SystemUI from getting ANR when it's Launcher's fault
Bug: 177556238
Test: Verified apk on device
Change-Id: I101a7e90e43f88f58f715620d71047d5b6a3486c
It uses AM.closeSystemDialogs() and should have the permission. I had
created the protection level in ag/13090697 but forgot to actually
request the permission.
Bug: 177228919
Bug: 159105552
Test: atest CloseSystemDialogsTest
Test: atest android.server.wm.WindowMetricsActivityTests#testMetricsMatchesLayoutOnActivityOnCreate
Change-Id: I661dac17f2160ed36adb1a193e739c200169a37d
- Launcher already dedupes if there are no theme changes
Bug: 148988542
Test: adb shell cmd uimode car yes/no, adb shell cmd uimode night yes/no
Change-Id: Ia83f02d18a0433c8be59d1f488e58b38476ba5ff
We add this for GestureSandboxActivity and
com.android.launcher3.uioverrides.QuickstepLauncher to
reinstate the behavior of go/ag/11746107 which was
incorrectly reverted in go/ag/11963698.
We also add this for HotseatEduActivity which was
newly added in go/ag/11963698.
(Cherry pick from master cadb94983b)
Bug: 159709775
Fixes: 159709775
Test: wembley-userdebug boots and has functioning Launcher
Change-Id: I17904f9ad88abc66364675426545eae423cb3175
Merged-In: I17904f9ad88abc66364675426545eae423cb3175
With b/150232615, we will need an explicit value set for the exported
flag when intent filters are present, as the default behavior is
changing for future versions. This change adds the value reflecting the
previous default to the manifest.
These changes were made using an automated tool, the xml file may be
reformatted slightly creating a larger diff. The only "real" change is
the addition of "android:exported" to activities, services, and
receivers that have one or more intent-filters.
Bug: 150232615
Bug: 158198882
Test: TH
Exempt-From-Owner-Approval: mechanical refactoring
Change-Id: I083a7bcab968c881f7cdff7152a249691ffac316
- If a user has mostly predicted hotseat, show a snack bar. otherwise, show migration option.
- Guard onboarding activity with permission `com.google.android.apps.nexuslauncher.permission.HOTSEAT_EDU`
Bug: 158569583
Test: Manual
Change-Id: Id0c1c812233fcf288a2f49848720199dedd2015d
Instead, adds it to the gesture-exclusion activities
to prevent normal gesture handling.
Bug: 148542211
Change-Id: Ie04d2e71346a0c039e73fcc386cedc1b74fadadb
- This activity would create another task (no longer in the same
stack since we don't have activity type stacks) which was causing
the camera to be occluded sometimes, which then cancels the recents
animation
- Tweaking the animation slightly to match the movement of the closing
the activity back to the lockscreen
Bug: 156514461
Test: Launch camera on the lockscreen and swipe up to dismiss (repeatedly)
Change-Id: I8aaac22767288d7fbf183683276c50acaaf831d2