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
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
... on every boot.
These should never have been set, but we allow settings them via the
shell.
- Also previously a bug set per-pkg app-ops.
- Also set the app-op correctly when a fg/bg permission looses it's bg
permission.
Test: Set per-pkg app-opp. Rebooted and saw log message.
atest --test-mapping frameworks/base/services/core/java/com/android/server/pm/permission/:presubmit
Change-Id: If3b56fc08783ea99b4dba70c5fa275b94411ce94
Fixes: 123177944
Depending on usage move into NetworkStackUtils or shared
Inet4AddressUtils.
Test: atest FrameworksNetTests NetworkStackTests
Bug: 112869080
(Cherry-pick of aosp/881952)
Change-Id: Ie20dcee375b377236004a7689890729493aca857
Includes @SystemApi for Context.NETD_SERVICE so system apps (including
the network stack) can obtain the service.
Test: m
Bug: 112869080
Change-Id: Ida63747cd30abb7b3c19559803353eb0e42e6efa
With this CL, SHOW_IME_WITH_HARD_KEYBOARD will be shared within the
same profile group.
Since AccessibilityManagerService always reads
SHOW_IME_WITH_HARD_KEYBOARD from the profile parent user [1], in
practice sharing SHOW_IME_WITH_HARD_KEYBOARD within the same profile
group would be the easiest and safest way for now to avoid breaking
SHOW_IME_WITH_HARD_KEYBOARD.
Note that with my previous CL [2], InputMethodSettings already adjust
the target user ID by checking CLONE_TO_MANAGED_PROFILE when writing
secure settings. Hence no change in the InputMethodManagerService
side is necessary.
When work profile is not enabled, there should be no behavior change.
[1]: I530481e102ac376a4506b662862ee1ee74815b40
03a65b04d8
[2]: Ieefefb8630ddef3b247ebb865a604e5c72dfb49c
15be5e6f1c
Fix: 123379418
Test: manually verified as follows.
1. Build aosp_taimen-userdebug and flash it.
2. adb root
3. adb shell setprop persist.debug.per_profile_ime 1
4. Install Test DPC.
5. Enable managed profile with Test DPC.
6. Attach a Bluetooth hardware keyboard.
7. make -j EditTextVariations
8. adb install -r \
$ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/EditTextVariations.apk
9. adb shell am start --user 10 -n \
com.android.inputmethod.tools.edittextvariations/.EditTextVariations
10. Focus in the top edit field on the EditTextVariations.
11. Tap the IME switcher icon on the navigation bar.
12. adb shell settings get secure --user 0 show_ime_with_hard_keyboard
-> 0
13. adb shell settings get secure --user 10 show_ime_with_hard_keyboard
-> 0
14. Toggle "Show virtual keyboard" button to enable it.
15. adb shell settings get secure --user 0 show_ime_with_hard_keyboard
-> 1
16. adb shell settings get secure --user 10 show_ime_with_hard_keyboard
-> 1
Change-Id: Iacb79b24d6bd97495ac81a58c1df651cf594a8c2
To help confirm that we're actually testing developer-visible
behaviors, we need to build against public APIs, since there have
been plenty of examples in this suite of "testing" hidden API
behaviors, which are then misleading to developers.
Bug: 120429729
Test: atest cts/tests/tests/provider/
Exempt-From-Owner-Approval: Trivial API annotations
Change-Id: I07fe33e54f611a6060217f0706fb99b809961f4d