Commit Graph

32 Commits

Author SHA1 Message Date
Alex Chau 19d43e0511 Skip onSharedPreferenceChanged if mIgnoreAutoRotateSettings is true in RotationHelper
Test: manual with DeviceProfile changed followed by settings change
Bug: 232081262
Change-Id: Ibc02bbc7fc015db9511960b565e860e6cb5b6246
2022-05-13 11:33:21 +01:00
Sunny Goyal 187b16cb91 Updating window manager estimation logic:
> Moving the code from ApiWrapper to Resource overlays for better maintainability
> Accounting for display cutouts in insets estimation
> Using same logic in display controller and view inset dispatching

Test: Verified on device
Bug: 221961069
Change-Id: I78466353563692ce3f7512b0146ef8b61ef14bc0
2022-03-09 11:15:58 -08:00
Alex Chau 2998307cd6 Use only current density to check isTablet
- Removed DeviceProfile.allowRotation and use DeviceProfile.isTablet instead, which only uses current density to calculate its value
- Reverted default allow_rotation preference handling to before ag/14234761

Fix: 203817448
Test: isTablet is set correctly in different screen sizes
Change-Id: Ic6c8dfc774e7787f62d489ad27720a7644c1e8c7
2021-11-19 15:27:01 +00:00
Winson Chung 1c2d522d1b Don't rely on intent to call back from activity tracker
- The intent is not updated in certain cases which means that the
  callback may not be made if Launcher gets recreated. Instead
  have the tracker manage the set of registered callbacks.
- This change allows AbsSwipeUpHandler to continue to receive
  onActivityInit calls even if Launcher restarts, and also to
  handle a case where restarting while waiting for a page-settling
  callback will continue to finish the gesture.

Bug: 183962705
Test: Force recreate at various points in the gesture

Change-Id: Ib5ead8c868e798e26e56776f57bd715c79d087cd
2021-06-14 20:57:40 -07:00
Alex Chau a02eddc144 Handle config changes in Launcher
- 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
2021-05-10 18:50:02 +01:00
Alex Chau 47da250137 Merge "Ensure setRequestedOrientation is called when unfolding the device" 2021-01-20 19:58:24 +00:00
Alex Chau d6bc129231 Ensure setRequestedOrientation is called when unfolding the device
- In RotationHelper, mLastActivityFlags defaults to -1, which is the same value as SCREEN_ORIENTATION_UNSPECIFIED. When the screen is folded, a new instance of RotationHelper is created, which attempts to reset setRequestedOrientation to SCREEN_ORIENTATION_UNSPECIFIED. But SCREEN_ORIENTATION_UNSPECIFIED is equal to mLastActivityFlags, and the call is skipped.
- The simpel fix is to default mLastActivityFlags to something else that is not a a valid value of setRequestedOrientation

Bug: 177320461
Change-Id: I1ca284149598745bfa612ee12e4da3b940b60288
(cherry picked from commit 8aa592f44620a8f57fa104819f8bba57c4360f95)
2021-01-18 12:17:09 +00:00
vadimt 81aaa265f4 Resolving a leak of activity via SharedPreferencesImpl.MemoryCommitResult
Test: presubmit
Bug: 177065099
Change-Id: I751c21d5915d20c1c27dd5f15b5c096e87963103
2021-01-15 18:47:13 -08:00
Sunny Goyal 733e3c609b Moving some initializations to the background thread
HandlerThread.getLooper blocks until the thread is ready. Instead
moving all looper dependency to the new thread itself.

Change-Id: I240e8c56b855a991433a7fe93875059e6dab146b
2020-10-02 10:58:27 -07:00
Sunny Goyal b7833f8193 Moving various orientation related config in RecentsOrientaedState
> Fixing RecentsOrientationState values for fallback recents
> Using proper rotation in task simulator

Change-Id: I770e7c8850e469f5dc0ce6f89889672f2decdc0d
2020-04-22 10:49:02 -07:00
Vinit Nayak 326d93bd56 Re-enable home screen rotation
Launcher home screen rotation now works with fixed
transform. When using Quickstep while holding
the phone from an orientation different than
the orientation of the touch, the overview
shown will be that of the phone orientation,
not the touch orientation.
Easier to see this be quickswitching from
portrait to landscape app, turning phone, then
going to overview from the original region you
swiped.

Fixes: 150214193
Test: Created test apps and fixed them
to various rotations to test.

Change-Id: Ic6565cd0ed33c951f45ccb97278045c6070e438e
2020-04-17 14:38:12 -07:00
Sunny Goyal acd17dfc18 Removing some new object creation during touch handling
> Motion various transformation methods to Orientation Handler
> Moving orientation handler to quickstep package

Bug: 150300347
Bug: 151269990
Bug: 149610456
Change-Id: I28434c1d1f62a3b85f3583740f0a8f827513fab3
2020-04-07 00:27:16 -07:00
Sunny Goyal c4d3201538 Removing support for fake landscape
Bug: 111068105
Change-Id: If31d2f700ddee1d21541735de3a8006ee2a53c5c
2020-04-03 17:11:35 -07:00
Sunny Goyal b681ebe3d2 Fixing Search box placement in Launcher3
Bug: 152372445
Change-Id: Ifabcc73f33f18de48b737d3e325b14fba75d0d96
2020-03-30 15:25:29 -07:00
Hongwei Wang 3b99a6c7d6 Revert "Default fixed_rotation to off"
This reverts commit c0b289c93e.

Reason for revert: fixed in ag/10826395

Bug: 151727009
Change-Id: I0c71d5d47a6825c2445bf8dc9d8a9a1ca23f9e64
(cherry picked from commit 08c4d99237)
2020-03-26 23:48:26 +00:00
Vinit Nayak 28cb71ba18 Default fixed_rotation to off
Change-Id: I83f9f58acb1718ee4fc19530a3e8b25badefda0e
2020-03-17 14:15:32 -07:00
Vinit Nayak b9ec9319c5 Add fixed_rotation_transform to home settings
This sets the feature flag on launcher side
and also updates the setting in Settings.Global
Launcher DOES NOT listen to the Settings.Global
change from adb anymore. This should take
preference over setting it from command line.

Also fix a related swipe to home animation bug
that happened w/ merge conflict.

Fixes: 150260456
Test: Set and unset, visually verified behavior.
Tested w/ autorotate on and off.
Checked Settings.Global value correctly updated
via "adb shell settings get global
fixed_rotation_transform"
TODO: Update tests to reflect this new
default-on fixed rotation behavior.

Change-Id: Id95f006eb1e92a59e24b05567298fd21b1409b13
2020-03-11 19:38:33 -07:00
Vinit Nayak 5fcf061cb9 Set default launcher orientation to portrait
Also stop OrientationTouchTransformer from
spamming logs
b/150214193 should track properly handling
this in the future

Fixes: 146176182
Test: New vertical layout showed up when
swiping to Overview w/ landscape app.
Works for both autorotate on and off.

Change-Id: I3707cf7b5693be0fcf4d63491901f4ec00793f4f
2020-03-03 16:54:08 -08:00
Vinit Nayak f9328198e1 Rotate touch events for land/seascape navbars
Previous change removed checking for navbar
location to transpose touch event.

fixes: 150700927
Test: Quickstep TAPL test passes.
Change-Id: I47683f8a75f24c8bfc46437e0eef9172c23cc452
2020-03-03 15:03:04 -08:00
Vinit Nayak acaf0749b3 Adjust target and src rects for swipe to home animation
Floating icon animation runs entirely in portrait
since that's what orienation launcher starts in.
Current app window target rects are in landscape to
be able animate to Overview correctly (which is not
in portrait since the leash from WM is in the same
orientation as that of foreground app).
Invert that rect as the animation from app window
to floating icon progresses.

Fixes: 148528795
Change-Id: Ie1149a1a8904afc80bd1986f8d67b6f2d88c49f2
2020-03-02 18:02:52 -08:00
Vinit Nayak a406f727ad Add vertical layout support for Overview in portrait
WM is making changes which allows apps to maintain
their orientation independent of the orientation of
the foreground app. This allows recents to always start
in portrait even when the app currently running is in
landscape. This means we have to give the illusion of
a landscape oriented overview when user swipes up in
gesterual nav when launcher is started in portrait
configuration.

PagedOrientationHandler abstracts all coordinate specific
logic from Paged/RecentsView primarily, but also all
other dynamic calculations throughout launcher.
PagedViewOrientationState is the single point of exposure
to other classes that depend on those changes. The goal
is to also minimize holding state to allow for default
implementations of PagedOrientationHandler for all the
3p/Fallback classes. PagedViewOrientationState also
holds other data around rotation that isn't
specifically tied to view logic.

The fake landscape overview can be toggled with:
adb shell settings put global forced_rotation [0/1]

Fixes: 146176182
Change-Id: I65d8d4e9f92b93931cbe0053ccaf0cda8d2ffd6c
2020-03-02 18:02:35 -08:00
Sunny Goyal e84c5b82be Unifying activity tracker callback
> Using a common class for both Launcher and RecentsActivity
> Removing static refenrece to LauncherModel and using a common pattern for
  tracking activities

Bug: 141376165
Bug: 137568159
Change-Id: Ic1897abe6913ec78e25725118eedf5b468d5ec70
2019-10-01 13:54:26 -07:00
Sunny Goyal 0b1cb75ee8 Disable seamless rotation for 3 and 2 button mode
Bug: 134095068
Change-Id: I8603e49a85b5524a02c9085485a180b022e3f91e
2019-06-06 15:35:45 -07:00
Sunny Goyal da14cf8b9f Disabling seamless rotation in multiwindow mode
Bug: 133765491
Change-Id: If68c709fa5b8216d63fc516f16f03bf2aa83172a
2019-05-30 10:32:11 -07:00
Sunny Goyal be8c34077c Lock launcher rotation during activity transition to allow
proper seamless transition at the end

Bug: 131360075
Change-Id: I2b76d4b3e0528e56b7b4709fd3708bc858bf1612
2019-05-22 15:21:56 -07:00
Sunny Goyal 41d51a0a15 Enabling fake rotation by default
Fake rotation is only enabled if homescreen rotation is not enabled

Bug: 131360075
Change-Id: Ie56fc4b46b38d3a599ec6da3d506a971e73b0394
2019-05-15 11:21:34 -07:00
Sunny Goyal 8c48d8bea6 Changing min sdk to 25
Change-Id: I0d28069967854357ca755bf25dec19d4979bdecf
2019-01-29 11:29:52 -08:00
Sunny Goyal d6d503827b Moving some system calls off the main thread
Bug: 122345781
Change-Id: I7ab364ac62ea56b7355b86cae3d8d731cc9b2506
2019-01-08 11:01:51 -08:00
Vadim Tryshev 802a28946c Add support for testing in portrait mode
Bug: 110103162
Test: TaplTests
Change-Id: I7f633405c04984ea8f04acdc6dd4ad21019d3409
2018-09-21 14:53:11 -07:00
Sunny Goyal e43d00db40 Adding some activity state information in dump
Bug: 79216829
Change-Id: I3e1a5f5508f09b9ce2737c13d917fbab531c2572
2018-05-14 14:23:42 -07:00
Sunny Goyal 40253329c5 Bringing back auto-rotate settings
Bug: 77654352
Change-Id: I0910fc8afe2fb7e125d57912abc35bbbd5df9d74
2018-04-19 09:27:56 -07:00
Sunny Goyal 623eddd7e8 Updating Launcher rotation logic
When auto-rotate is on, launcher allways allows rotation. This allows uses to use
locked rotation feature is available on the device
When auto-rotate is off, workspace does not allow rotation, but overview in quickstep
will allow rotation

Bug: 73872056
Change-Id: Ie12365c268fd5e4958634ed97b5a33dcadc691e2
2018-03-03 00:41:09 -08:00