* changes:
Atom: initPortInfo when receive hotplug from tx for audiosystem device[1/3]
handle manual port switching
Claim Active Source during System Audio Mode init by AVR when the device also has playback type and can't get Active Source.
Switch away from ARC input when ARC is terminated.
Request Active Source when ARC is enabled in ArcInitiationActionFromAvr.
Refactor the Active Source updating logic in CEC devices.
Fix tests failure on com.android.server.hdmi
Making functions visible for testing com.android.server.hdmi
Back out unneeded ag/4808863. Standby has been handled in ag/4881453.
This change is the main check in for the historical app op feature.
The idea is to store a historical data about past app op rejections,
accesses, and durations per op for any UID state indefinitely.
Keeping all operations on record is not practical as app ops are
very frequently performed. To address this we are storing aggregated
data as snapshots where we store for every UID and its packages
how many times each op was accessed, rejected, lasted as an aggregate.
To allow history scaling indefinitely we are taking a logarithmic
approach with only the most recent state stored in memory and all
preceding state stored on disk. State on disk is stored in separate
files where each preceding file, i.e. for an older period, would
cover X times longer period with X number of snapshots covering
X times longer period. Initially X is ten but can be tweaked. For
example, the first file could contain data for ten days with daily
snapshots, while the file for older period would have data
for a hundred days with snapshots every ten days, etc.
The implementation is optimized for fast history update and no impact
on system runtime performance and minimizing memory footprint. We
are lazily persisting state to disk on a dedicated thread as this is
slow. We are also reading the relevant historical files on a query
as this is very rare as opposed to state updates.
The base snapshot interval, i.e. snapshot time span, in the initial
iteration and the logarithmic step are configurable. These can be
changed dynamically and the history would be rewriten to take this
into account.
Test: atest CtsAppOpsTestCases
bug:111061782
Change-Id: I55c32c79911ba12b2ace58d2a782b8df1e6bff60
This CL introduces sequence number to activity configurations and use
that to compare their staleness. Always use the last reported activity
configs for Activity#onConfigurationChanged() and drop all requests
that are older than the processed one.
Fixes: 120189873
Test: Manually verify that number of configuration changes drops during
drag-resizing with a crafted app that needs 250ms to perform one
configuration change. go/wm-smoke too.
atest FrameworksCoreTests:ActivityThreadTest
atest WmTests:ActivityRecordTests
Change-Id: Ie0fd15458517470542a689b51283f4d1ed2ad4cc
Also fixed AssistStructure.ViewNodeBuilder.setVisibility() so it doesn't mess
up with the flags when it receives an invalid value.
Test: atest FrameworksCoreTests:android.view.contentcapture.ViewNodeTest
Test: atest CtsContentCaptureServiceTestCases
Fixes: 121135096
Change-Id: I2280c6922ca5a02aa4ed16ba3e8b39b9cb2f4b55
Binder.getCallingUidOrThrow is a pure java method which uses
Binder.isHandlingTransaction @CriticalNative method.
Binder.isHandlingTransaction itself is not exposed a public API.
Bug: 62253865
Fix: 62253865
Test: Added a testcase to BinderTest.java to verify ISE is thrown
Change-Id: I93a1b6c24a4747b8b70c32d291b4706b6159a3d0
TextLine is using wordSpcing for justification. And previously,
TextLine will overwrite wordSpcing even justification is not on.
This CL make sure that TextLine only changes wordSpcing when
justification is on.
Bug: 122471618
Test: atest TextLineTest
Change-Id: I6f1e2f6c17b65f92d7a5bb064fdafbf5df9ef8f7
Implement WindowInsets.get(Max)Insets(int typeMask) to allow the
developer to query the inset by inset type.
Also rework InsetsState.calculateInsets to actually construct the
WindowInsets instance that contains this information.
Test: InsetStateTests
Bug: 118118435
Change-Id: Ie316e074c020bdb9808c11608812dea572c8de5d
WindowInsets now keeps track of all insets per type. Insets are
non-additive, i.e. every inset starts out relative to the window
edge, so the IME inset would include the navigation bar inset, but
not vice-versa.
We remove decorWindowInsets because it wasn't used at all.
For compatibility, we map the constructor where we pass in a Rect
to TOP_BAR. This is fine as every query to systemWindowInsets
stableInsets will include this type, so we don't need the
information where it came from.
Test: WindowInsetTest
Bug: 118118435
Change-Id: I1cb37d328060293f9a876e61d4a09e6675fa7197
1. SelectionEvent will be still logged via SelectionSessionLogger
to make sure we don't break existing logs.
2. New features including language detection and conversation actions
are logged via TextClassifierEventTronLogger.
3. Added TYPE_ACTIONS_GENERATED to log when actions are generated.
This is used to calcuate the recall, i.e. among all the requests,
how many of them TextClassifier returns something.
Test: atest TextClassifierEventTronLoggerTest
Test: Turn on the DEBUG flag and observe the logging.
BUG: 120803809
BUG: 120828422
Change-Id: I33f2ce58885d90bc35316f54abcd42b137b42a13
cherrypick ag/4808863
Bug: 112553298
When press power key on soundbar, CEC type is 5(audio system),
it will send command to tx and rx devices to let them go to standby mode
Test: Tested with a TV
Change-Id: I242fb1028b5ae003e6054fe9b54e10d1f433374c
We updated the development opt in mechanism for GUP. Now we have
GUP_DEV_OPT_IN_APPS for applications selected to use GUP and
GUP_DEV_OPT_OUT_APPS for applications selected not to use GUP.
Bug: 119221883
Test: Build, flash and boot, verify with prototype
Change-Id: I52869ecf9e411a8dbdc1146f00c82023ba41bebf
We have rebranded this project to Game Update Package, and GUP for short.
BUG: 119221883
Test: Build, flash and boot. Verify by going to developer options.
Change-Id: If284bd3e0b29cb025833be29fa33179011c151d7
Mirror state back to server
In case the client does some local visibility modification to the
leash, the server needs to be informed for a couple of reasons:
- Dispatching state to other apps
- Updating accessibility services
- Updating SystemUI/IME system
For that we send the state back whenever we modified it and send
it via IWindowSession.insetsModified. The server ensures that
visibility state is only updated if we have a match for the
controlling app, and then updates the visibility state and
dispatches it to other apps.
We also invert mHidden to mVisible in InsetsSourceConsumer as it
was really really confusing.
Bug: 118118435
Change-Id: I92f187bf892a5f26b8b007ed7e6fbf4d2c7b13e6
Implement controlWindowInsetsAnimation
Based on the leashes we have on the client, and the insets the
client has requested, we are able to move the surfaces around
such that the resulting insets will match what the client
requested.
Bug: 118118435
Change-Id: I0616e53455a6544aaf374c1b0eb10e258aced21d
Fix checkstyle warnings related to the overlay manager, i.e. in the Java
files under
- core/java/android/content/om
- core/tests/overlaytests
- services/core/java/com/android/server/om
Test: prebuilts/checkstyle/checkstyle.py -f $path
Change-Id: I5078629240da2ceb1fd710d2e79e3114bafdd5bb
O_RDONLY, O_WRONLY, and O_RDWR are not flags. Rather, they are the
integer values 0, 1, and 2, respectively.
#define O_RDONLY 00000000
#define O_WRONLY 00000001
#define O_RDWR 00000002
Quoting "man 2 open"
* File access mode *
Unlike the other values that can be specified in flags,
the access mode values O_RDONLY, O_WRONLY, and O_RDWR do not
specify individual bits. Rather, they define the low order
two bits of flags, and are defined respectively as 0, 1, and
2. In other words, the combination O_RDONLY | O_WRONLY is a
logical error, and certainly does not have the same meaning
as O_RDWR.
Linux reserves the special, nonstandard access mode 3
(binary 11) in flags to mean: check for read and write
permission on the file and return a file descriptor that
can't be used for reading or writing. This nonstandard access
mode is used by some Linux drivers to return a file
descriptor that is to be used only for device-specific
ioctl(2) operations.
Rather than treat these values like flags, use O_ACCMODE to extract the
values and then perform the comparisons.
Introduced in 63280e06fc.
Test: android compiles and boots.
Change-Id: I4d3185e835615ffba3a7854d3d58351e124599d0