| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes an issue where negative counts could be injected
via the Parcel constructor. The writeToParcel method
in that case would write data that a subsequent read would
not consume.
Fixes: 277916797
Fixes: 354682735
Test: atest InputMethodSubtypeArrayTest
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b9a097e28be9b87566ce0194b7525caf462daf2f)
Merged-In: I7e881d82415051179c59bf5df97f8ba0a41e693e
Change-Id: I7e881d82415051179c59bf5df97f8ba0a41e693e
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When displaying keyboard shortcuts provided by an app, clear
any icon that may have been set (this is only possible via
reflection, and is not a intended for usage outside of the system).
Bug: 331180422
Test: Verify on device
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:dbc02ea629b0ea503b2f1accb062bb5ec249aa58)
Merged-In: If7e291eb2254c3cbec23673c65e7477e6ad45b09
Change-Id: If7e291eb2254c3cbec23673c65e7477e6ad45b09
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Partly includes:
commit fbbe5de6640ac0b8a52e948d246b19b4487ce521
Author: ezio84 <brabus84@gmail.com>
Date: Sat Oct 21 14:46:24 2017 +0200
Slim Recents 3.0 [1/3]
Refactored/improved everything.
Slim Recents won't never die.
http://i.imgur.com/PO3RSeg.gif
[SpiritCroc]
Bring to P
Change-Id: I9deb0412e2421df2ac2755f2111a3cec70a7d2c4
commit c14325728a9d87d35e2137bb6f0dba77769592df
Author: SpiritCroc <dev@spiritcroc.de>
Date: Tue Apr 2 11:06:14 2019 +0200
Slim recents old enter/exit animation [1/3]
Change-Id: Ib10f54d56de9c4dc6cab827c21cca9363ffaa820
Change-Id: I3c3486fa94a35f17e48c7a2943cad7fea5c69e78
|
| |\
| |
| |
| |
| |
| |
| | |
https://android.googlesource.com/platform/frameworks/base into t13.0
Android 13.0.0 Release 52 (TQ3A.230605.012)
Change-Id: Ic80f318636f1f70bbd009504352ddde511d0dead
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Rename property from
PROPERTY_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED to
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED.
Bug: 277269510
Test: atest WmTests:LetterboxUiControllerTest
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d96dee092dc85c4978e1d8fef2eb9a96e2720c15)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e63c8093ecbc2195d81cf4c42f71e5ca86bb8e22)
Merged-In: Ib73d0fc254cef90fee694cd6c5c00c0eb85a3ca1
Change-Id: Ib73d0fc254cef90fee694cd6c5c00c0eb85a3ca1
|
| | |
| |
| |
| |
| |
| | |
Fix: 274925661
Test: atest WmTests:LetterboxUiControllerTest
Change-Id: Ia24d9de88243ad0fa1eec0e9632570fb58ff6c3f
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This can mitigate the IPC spam by half, since the view tree appearing
event always comes with a view tree appeared event, and we just need to
flush at the view tree appeared time.
BYPASS_INCLUSIVE_LANGUAGE_REASON=existing API
Bug: 269435271
Change-Id: I0ba3f7df7d6b511d155ac9509826d39633b668f6
Merged-in: I0ba3f7df7d6b511d155ac9509826d39633b668f6
Test: some unit tests & I've manually tested it locally.
(cherry picked from commit 624070c95db4ca427a053a5430fac857c51d04f8)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds the committed state to the display.
The `state` is used to set the correct power state (e.g. turning display on/off), however there was no way to know when this power state change finished. This new "committedState" aims to fulfill this gap.
DisplayListeners receives a `onDisplayChanged` callback whenever the power state change is fully committed, and can get this information from DisplayInfo.
This will be used in a follow up cl to improve unfold latency performances.
Bug: 223808403
Bug: 220690092
Bug: 197515205
Bug: 273204503
Test: atest LocalDisplayAdapterTest && manual
Change-Id: Ia2fbab768b696c59578d974c88157ee3c8f3ddde
Merged-In: Ia2fbab768b696c59578d974c88157ee3c8f3ddde
(cherry picked from commit 07c6ebdd97ea3e9e3640fa5165b24249a52dd7e5)
|
| | |\ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some applications assume that they occupy the whole screen and therefore
use the display coordinates in their calculations. This can lead to
shifted or out of bounds UI elements in case the activity is Letterboxed
or is in split-screen mode.
OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS change id forces the packages it is
applied to sandbox View API to Activity bounds for:
android.view.View#getBoundsOnScreen
android.view.View#getLocationOnScreen
android.view.View#getWindowVisibleDisplayFrame
android.view.View#getWindowDisplayFrame
This sandboxing is happening indirectly in android.view.ViewRootImpl through
android.view.ViewRootImpl#getWindowVisibleDisplayFrame,
android.view.ViewRootImpl#getDisplayFrame respectively.
Application developers can opt-out of this treatment by using the
following configuration in their manifest:
<application>
<property
android:name=
"android.window.PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS"
android:value="false"/>
</application>
The difference between this CL and the previous attempt in
commit:Ia064d26b46402a04056f498a1ed5c090a6d1b965 is that in the current
CL the window bounds are found with windowConfiguration.getBounds(),
which is subtracted from displayFrame to make the latter appear as
occupying the whole screen without letterbox or multi-window mode.
getBounds also takes compatScale and overrideScale into account so no
additional scaling is needed.
This compat change is taking effect only in non-system
processes, this important because all compat changes are enabled for
the system process. For example this compat change may impact ANR dialog
created within the system process, but it does not require this compat
change to be enabled.
Test: atest CtsWindowManagerDeviceTestCases:CompatChangeTests
Bug: 234799838
Change-Id: If69772bea750380e9f127cea31141a5f953c4e30
Merged-In: If69772bea750380e9f127cea31141a5f953c4e30
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Remove binder call from running each time with clicking on volume up
and down keys. Replace it with listener instead.
Bug: 240705522
Test: Manual using Signal App / Youtube and Sample MediaRouter App.
Change-Id: I842133770a583217940ebc929d8d929f4cd27a51
|
| | |/
| |
| |
| |
| |
| | |
Bug: 270446029
Test: Just extending the logging
Change-Id: I7212ca245dad6c77a51797f07e1587edbf6af475
|
| | |\
| | |
| | |
| | | |
into tm-qpr-dev
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before window attached to view, the parent of root view would be null
cause the unbuffered request can't be updated to the `ViewRootImpl`.
This will update the unbuffered request when the root view set to its
`ViewRootImpl`, so we could make sure the unbuffered request could be
consistent in root view and its ViewRootImpl.
Bug: 268105812
Test: manual
Change-Id: Ifd9cf0969229daeac73f8fb95c6a9fe8c81a985f
|
| | |\ \
| | |/
| |/|
| | | |
re-created" into tm-qpr-dev
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When recreating the Activity, if the window is preserved, we would set
the actual dispatcher from the preserved window to the new Activiy's
proxy dispatcher, and expect the new callback could be re-registered
in the recreating flow.
This CL clears the old callbacks of the preserved dispatcher before it
attach to the new proxy dispatcher, this could prevent it access the
wrong top callback after other new callbacks have been unregistered.
Also provide dump log for WindowOnBackInvokedDispatcher.
Bug: 259500250
Test: atest BackNavigationTests
Change-Id: Idc9a6a95f5669a009762570d7bc9acc2c538e4cb
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 1fa3b3821e158574570330f28ee25a4d7fd37f61.
Reason for revert: b/267507947
Change-Id: Ie8924e59b04b3044391c6929380a1db212c871b0
Merged-In: I460488c6307cae25abeee6045b712a1af453834a
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some applications assume that they occupy the whole screen and therefore
use the display coordinates in their calculations. This can lead to
shifted or out of bounds UI elements in case the activity is Letterboxed
or is in split-screen mode.
OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS change id forces the packages it is
applied to sandbox View API to Activity bounds for:
android.view.View#getBoundsOnScreen
android.view.View#getLocationOnScreen
android.view.View#getWindowVisibleDisplayFrame
android.view.View#getWindowDisplayFrame
This sandboxing is happening indirectly in android.view.ViewRootImpl through
android.view.ViewRootImpl#getWindowVisibleDisplayFrame,
android.view.ViewRootImpl#getDisplayFrame respectively.
Application developers can opt-out of this treatment by using the
following configuration in their manifest:
<application>
<property
android:name=
"android.window.PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS"
android:value="false"/>
</application>
Test: atest CtsWindowManagerDeviceTestCases:CompatChangeTests
Bug: 234799838
Change-Id: Ia064d26b46402a04056f498a1ed5c090a6d1b965
Merged-In: Ia064d26b46402a04056f498a1ed5c090a6d1b965
|
| | |\ \ |
|
| | | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge PROPERTY_COMPAT_FAKE_FOCUS_OPT_IN/OUT properties into PROPERTY_COMPAT_ENABLE_FAKE_FOCUS and move to WindowManager class to be consistent with other existing properties in WindowManager and also in anticipation of us making those public APIs in Android U.
Fix: 263987615
Test: atest WmTests:LetterboxUiControllerTest
atest WmTests:LetterboxConfigurationTest
atest WmTests:SizeCompatTests#testShouldSendFakeFocus_compatFakeFocusEnabled
atest WmTests:SizeCompatTests#testShouldSendFakeFocus_compatFakeFocusDisabled
Change-Id: Ic10b3a25e3a8bcef25be27b549148d36a2192fbc
|
| | |\ \ |
|
| | | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In case any logic depends on ActivityRecord#startRelaunching
~ WindowState#finishDrawing can receive paired invocation.
Bug: 264634241
Bug: 263066320
Test: An activity calls recreate().
There will be a log "finishDrawing of relaunch: Window".
Change-Id: I9406ab5cbca5b3c9c407a136bf4fcb97111d78b8
(cherry picked from commit 5b49c7fbbf14de2f691bc9001685ae8e9c3cfdd8)
|
| | |\ \
| | | |
| | | |
| | | | |
tm-qpr-dev
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This cl introduces a way to debug 2 different but related things:
(1) Which classes suffer from long measure and layout pass
(2) What caused those classes to be re-measured/re-layout
In the current form, only sysui sets the flags to enable the above based on some sysprop.
(1) is enabled by `adb shell setprop persist.debug.trace_layouts 1` for all classes in sysui process (note: the process needs to restart). The ideal workflow is to first enable this to spot which are the main classes have long measure/layout slices. Once those are identified (e.g. class X)
(2) `adb shell setprop persist.debug.trace_request_layout_class X` enables requestLayout tracing for class X. At this point, every time requestLayout is called on that class, both an instant event (visible in perfetto) and the stacktrace (in logcat) is output.
After recording at perfetto trace with (2) enabled, it's possible to aggregate data with an SQL query in ui.perfetto.dev: For example, with the following we can have the most common relayout reasons:
```
SELECT count(*) cnt, msg
FROM android_logs
WHERE msg LIKE "requestLayout %"
GROUP BY msg
ORDER BY cnt DESC
```
The following helper bash function makes the above more efficient:
trace_class_layouts() {
adb shell setprop persist.debug.trace_layouts 1
adb shell setprop persist.debug.trace_request_layout_class $1
adb shell am force-stop com.google.android.apps.nexuslauncher
adb shell am force-stop com.android.systemui
}
Then, use `trace_class_layouts X` and record a perfetto trace.
To reduce the overhead, several strings are cached when the view is attached to the window. However, it should be noted that enabling this can have an impact on performance and should only be used for debugging purposes.
Test: record a trace after enabling options
Bug: 266090955
Merged-In: I89a518d4f3c69c13cdced0f70d8a1e2793bc923a
Change-Id: I89a518d4f3c69c13cdced0f70d8a1e2793bc923a
|
| | |\ \ \
| | |_|/
| |/| |
| | | | |
tm-qpr-dev
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When the shell side resize/reposition happens, the relayout won't happen
until the next traversal happens. However, the mWinFrame will be updated
directly before the relayout happens. When that's happening, the
relayout may miss the actual resize/reposition from the shell.
Test: See b/266582561. Check the unfold compat mode.
Bug: 266582561
Change-Id: I059db87e0bb61ddc4efcc8e1f67e4fa532c4e5a9
|
| | | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
Update documentation to correctly indicate that properties are applied on the app level rather than the activity level. Applying properties on the app level maintains consistency with the level on which per-app overrides are applied by device manufacturers. Also, this allows to easily opt-out/in the whole app from per-app overrides.
Fix: 267082980
Test: builds
Change-Id: Icb2b4394b73216c0af762db07dca42796eb4d49a
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
OVERRIDE_USE_DISPLAY_LANDSCAPE_NATURAL_ORIENTATION fixes display orientation to landscape natural orientation when the following conditions are met:
- Task is in fullscreen
- Opt-out component property PROPERTY_COMPAT_ALLOW_DISPLAY_ORIENTATION_OVERRIDE isn't enabled
- ignoreOrientationRequest isn’t enabled for the display
- Natural orientation of the display is landscape
Main use case for this override are camera-using activities that are portrait-only and assume alignment with natural device orientation. Such activities can automatically be rotated with DisplayRotationCompatPolicy but not all of them can handle dynamic rotation and thus can benefit from this override.
Also, start caching other overrides in LetterboxUiController
Test: atest WmTests:LetterboxUiControllerTest
Fix: 255940284
Change-Id: I2a8688e7a033b30ea83db827679c729feaac1c9c
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Overrides for device manufacturers:
- OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT override orientation to SCREEN_ORIENTATION_PORTRAIT
- OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR override orientation to SCREEN_ORIENTATION_NOSENSOR
- OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE override orientation to SCREEN_ORIENTATION_REVERSE_LANDSCAPE
- OVERRIDE_ANY_ORIENTATION allows OVERRIDE_*_ORIENTATION_TO_* to override any orientation.
PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE allows app developers to opt-out from per-app overrides above.
Test: atest WmTests:LetterboxUiControllerTest
Fix: 255940284, 265452344, 265451093, 265464455, 266124927
Merged-In: I6d83170632a04e3d60461f37f13acc1de5b6a6cb
Change-Id: I6d83170632a04e3d60461f37f13acc1de5b6a6cb
|
| | |\ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
So other windows can be optimized by applying the flag.
Bug: 259095271
Bug: 265150323
Test: presubmit
Change-Id: Ibedced2843d13698a0ae1101bd4e34ee2fdb84a3
|
| | |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
919fd6e0a1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20514486
Change-Id: Ie12bf16c61d1655b95f0252d8692fe634200f1f9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
| | | |\ \ |
|
| | | | |\ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Bug:259849956
Merge ab/9299233
Merged-In: I5af32f68652d5854e6a99b59f2f56fcaac575588
Change-Id: If468ab64f0c311aa9c886e02174f9d672e884226
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Check window view is not null in reportKeepClearAreasChanged
Bug: 254586205
Test: CtsAutoFillServiceTestCases
Change-Id: I0db582c6f73e2a0602bfb2968e2b10536b5242d5
|
| | | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Bug: 260135164
Test: Verified the code flow as the cause of bug
Change-Id: Ie168b7cb772f6ec89063a42a7b15e7d5342f5bd3
Merged-in: Ie168b7cb772f6ec89063a42a7b15e7d5342f5bd3
|
| | |\| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20835757
Change-Id: I94c3e3a7a9944f148eadae629537b6bc335453e2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
| | | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The CommonTypos linter complained about the typo "for for". While I had
the file open, also changed the first sentence to be a proper summary
fragment, per http://go/java-style#s7.2-summary-fragment.
No code changes, just docs.
Bug: 263824202
Change-Id: Iea27f1d2a91918a253e099365ebbd2daa9bcb3cd
Test: [go/abtd docs build]
|
| | |\ \ \
| | | | |
| | | | |
| | | | | |
into tm-qpr-dev
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add the following per-app controls using overrides and component properties:
- Way to disable force rotation with OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION and PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION
- Way to disable activity refresh after force rotation with OVERRIDE_CAMERA_COMPAT_DISABLE_REFRESH and PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH
- Way to switch to activity refresh via "onPause -> onResume" with OVERRIDE_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE and PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE
Test: atest WmTests:LetterboxUiControllerTest WmTests:DisplayRotationCompatPolicyTests
Fix: 263959004
Fix: 264304459
Fix: 264301586
Change-Id: I41698c577057a74ef5c3b6afda1b78f1d98bde77
Signed-off-by: Mariia Sandrikova <mariiasand@google.com>
|
| | |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
into tm-qpr-dev
|
| | | |/ / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Also catch RuntimeException for addToDisplayAsUser in case the throwing
type was not RemoteException.
Bug: 253200800
Bug: 263078961
Test: Simulate to throw a runtime exception in WMS#addWindow, and verify
VRI#setView should catch that exception, and clear resources without
crash.
Change-Id: Ia113b836e4a18c656093f9db7f63e9c50c427e6c
Merged-In: Ia113b836e4a18c656093f9db7f63e9c50c427e6c
(cherry picked from commit f1a574074ac81906be3a2a500aae96f8da330733)
|
| |\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
https://android.googlesource.com/platform/frameworks/base into t13.0
Android 13.0.0 release 35
Change-Id: I709958b2f015d1774b2ece25894467c3a279f93c
|
| | |\ \ \ \
| | |/ / /
| |/| | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
WAKE_REASON_GESTURE previously used to include both WAKE_REASON_LIFT,
WAKE_REASON_TAP and WAKE_REASON_BIOMETRIC. Since ag/20794573, these
gestures are not not all encompassed by WAKE_REASON_GESTURE. This CL
ensures the power suppression logic is still used for wake reason lift
and biometric.
We intetionally include biometric in case biometrics are related
to the power button.
We intentionally leave out tap to wake since it's not
necessary to gate a power button press due to a wake up from a tap
on the screen.
Test: Press the power button while performing lift to wake gesture,
observe that the device does not go back to sleep
Fixes: 264553999
Change-Id: Ia74d30fd808d0a49937f483575b53533b0f1fce7
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Per-package controls introduced in this change:
- OVERRIDE_ENABLE_COMPAT_IGNORE_REQUESTED_ORIENTATION for device manufactures to opt in a package into the treatment.
- android.window.PROPERTY_COMPAT_IGNORE_REQUESTED_ORIENTATION for app developers to opt in/out from the treatment via a component property.
When enabled for the package and on the devices, treatment ignores app requested orientation in response to an app calling Activity#setRequestedOrientation if app is currently relaunching or has an active Camera Compat treatment.
This is needed to avoid getting into Activity#setRequestedOrientation loop when ignoreOrientationRequest is enabled. For example, the loop can look like this:
1) App sets default orientation to "unspecified" at runtime
2) App requests to "portrait" after checking some condition (e.g. display rotation).
3) (2) leads to fullscreen -> letterboxed bounds change and activity relaunch because app can't handle the corresponding config changes.
4) Loop goes back to (1)
Fix: 254631730
Test: atest WmTests:LetterboxUiControllerTest
Change-Id: I3dc88db4193d08215c36d9a69ef2cc53155b60c7
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is needed because some game engines wait until they get focus before drawing the content of the app so they are blacked out when they are resumed and do not have focus yet.
Bug: 203398248
Test: atest FrameworksCoreTests:ViewRootImplTest#whenDispatchFakeFocus_noFocusAfterwards
Change-Id: I5675b32fbb9f60a7373fadbce379d571168436e7
Merged-In: I5675b32fbb9f60a7373fadbce379d571168436e7
|
| | |\ \ \ |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If the content of activity is changed, may fill dialog be requested
to show up again. Tracks all fillable views to know the content is
changed, and then reset all flags for the fill dialog.
Bug: 236237955
Test: atest CtsAutoFillServiceTestCases
Merged-in: I58503dd4021021d4bdc8d5114ff7255178fe5408
Change-Id: I58503dd4021021d4bdc8d5114ff7255178fe5408
(cherry picked from commit 2db6d6767c0e708eb73b32d8a3de1bc39562c449)
|
| | |\ \ \ \ |
|