When an app takes a long time to handle broadcasts, we start deferring
further broadcasts to it to make sure that other broadcast traffic in
the system can continue to make progress. Global delivery order is
technically rearranged, but delivery order from the point of view of any
given app remains consistent with issuance order.
When alarm broadcasts are issued, we prioritize delivery of deferred
alarms to the alarm recipients (i.e. we suspend the deferral policy and
catch up as promptly as possible) in order to minimize wake time spent
waiting for the alarm broadcast to be delivered. Once an app with a
deferred broadcast backlog is no longer the target of an in-flight
alarm, we re-impose deferral policy on it.
This policy intentionally trades off increased broadcast delivery
latency to apps that take a "long" time to handle broadcasts, in
exchange for lowering delivery latency to all other apps in the system
that would previously have had to wait behind the slow app.
In addition, broadcast dispatch policy parameters can now be overlaid
via the usual global Settings mechanism. In particular, configuring the
"bcast_slow_time" parameter to a value in milliseconds higher than the
queue's broadcast timeout period will disable the new slow-receiver
policies.
Bug: 111404343
Test: device boots & runs
Test: tests/ActivityTests
Change-Id: I76ac79bdf41ca3cfcc48515bca779ea0f5744c0b
It should be infered on the server side..
Bug: 123516968
Test: atest CtsContentCaptureServiceTestCases
Change-Id: If6ccf2fa86adb55f43c4b3ffa8b58661ef16dabb
With this CL, per-profile IME will be enabled by default.
Note that on debuggable builds (Build.IS_DEBUGGABLE == true),
developers can still disable per-profile IME mode as follows.
adb root
adb shell setprop persist.debug.per_profile_ime 0
adb reboot
Note that multi-client IME [1] is a completely different story,
because it was designed to be fully multi-user / multi-profile aware
since its begging. Enabling multi-client mode means that per-profile
mode is always enabled, because that's the only mode that
MultiClientInputMethodManagerService supports.
[1]: I41dfe854557b178d8af740bc2869c936fc88608b
bae5bea23c
Fix: 63907246
Fix: 111083076
Test: atest CtsAdminTestCases CtsDevicePolicyManagerTestCases
Test: atest CtsInputMethodTestCases CtsInputMethodServiceHostTestCases
Test: Did multiple manual tests.
* OTA scenario from older builds
* Unlocking devices by typing password
* App focus changes between personal apps and work apps
* Direct-reply notifications from personal / work users
* IME whitelist is only enforced to work IME settings
Change-Id: I854ce92b2bf3aab49f14f6cde444acf2182b9ad0
Bug: 123377860
Test: Checked logs that the shortcutIds and ComponentNames
match in convertToChooserTargets and sendClickToAppPredictor.
Change-Id: I25ae43d1c26ef41ba1076a7648be35ecc04b664d
Add a IME state changes callback that pipes IME state into the Inset
consumer.
Bug: 118599175
Bug: 118118435
Test: atest InsetControllerTest
Test: atest InsetSourceConsumerTest
Test: atest ImeInsetsSourceConsumerTest
Change-Id: Id878226418e19cdf0499a0094f1d5c47fea33125
Otherwise we create the leash with visibility=shown before the
client can update it, creating a flicker.
Test: Open IME, go home, observe no flicker
Bug: 111084606
Change-Id: I38eadaef79c27036edf5a86b773f6695d463db5c
To make it clear that the system only pays attention to the provided
rollback ID when committing a rollback.
Also, rename executeRollback to commitRollback in IRollbackManager.aidl,
now that we are touching the code anyway.
Bug: 112431924
Test: atest RollbackTest
Change-Id: I315e75c39019536fb2f090a0c84ed4cf7c03ce8c
Required for feature tuning and experiments
Also
- Updates Javadoc as per API review request
- Updates TextClassificationConstants test
Bug: 120794314
Bug: 118296637
Bug: 34780395
Test: atest core/tests/coretests/src/android/view/textclassifier/TextClassificationConstantsTest.java
Test: (MANUAL)
1. Install an app that handles Intent.ACTION_TRANSLATE
2. Run adb shell settings put global text_classifier_constants system_textclassifier_enabled=false,lang_id_threshold_override=0
3. Select foreign text
4. Observe that a "Translate" option is shown in the selection toolbar
1. Install an app that handles Intent.ACTION_TRANSLATE
2. Run adb shell settings put global text_classifier_constants system_textclassifier_enabled=false,lang_id_threshold_override=2
3. Select foreign text
4. Observe that a "Translate" option is not shown in the selection toolbar
Change-Id: I02b6ca48669e66a24150b04bba2ebfcf9ebe6bfd
The CL renames the setZoom method for Magnifier.Builder to
setInitialZoom, since the zoom can be changed after the instance is
created using the Magnifier.setZoom method.
Bug: 120609112
Test: atest CtsWidgetTestCases:android.widget.cts.MagnifierTest
Change-Id: Ide2508ab49e3f3660aa089876029e351b4cef603