As previously InputMethodManager#toggleSoftInput is designed to tell
InputMethodService directly through IInputMethodSession to toggle
soft-keyboard visibility, this could be happened some unexpected IME
visibility issues that when the app calling this method in the wrong
state like the app toggling IME visibility when the app is off-screen
but unexpectedly it ends up showing soft-keyboard when the IME is in
invisible state.
To minimize the app compatibility without changing the public API
surface and reducing unexpected IME visibilty been toggled behavior
especially happens when switching the apps, changed the internal IPC
protocols to call IMMS#showSoftInput or IMMS#hideSoftInput directly
according the previous IME consumer requested visibility state,
so that in IMMS side can validate to see if the token user is
still focused and ready to toggle the IME visibility to show or hide.
As the result, we deprecated toggleSoftInput and
toggleSoftInputFromWindow to state the reason as the above, and
recommand to use showSoftInput or hideSoftInputFromWindow instead,
so that framework side no longer has to call {InputMethodSessionWrapper,
InputMethodSessionImpl}#toggleSoftInput.
Bug: 182071625
Test: m checkapi doc-comment-check-docs
Test: atest KeyboardVisibilityControlTest#testToggleSoftInput
Change-Id: I390dc029e7bcc30c200926a9bfbbbd0268a1f714
Note: The CL which introduced this bug was Ic9cd89e899a03010a523bee4f1ef72fbfbd8b43f
Test: visual, manual
Test: Use TalkBack to validate that the size of the touch target is still >48dp tall.
Test: Use an app (e.g. LINE) which only posts the most recent message in an update to send 2+ messages to the device (to make the unread number visible), and validate that 1) the text is visible, and 2) there are not thousands of View errors spamming adb.
Fixes: 182474419
Change-Id: Ia23113f5903fe2c508fc2dbad99160471dcec5fd
We ignore the result if startInputReason is
WINDOW_FOCUS_GAIN_REPORT_WITH_CONNECTION or
WINDOW_FOCUS_GAIN_REPORT_WITHOUT_CONNECTION
in startInputOrWindowGainedFocus.
Introduce USE_REPORT_WINDOW_GAINED_FOCUS_ASYNC
flag to control following behavior:
-. Don't wait the result if it only report the
focus gain. Have another IPC for this case
to prevent the UI thread be blocked.
-. Throw the exception to the client side if it
happened.
Bug: 185928120
Test: atest CtsInputMethodTestCases
Change-Id: Ic584203c1221fbae17f5e2d8f09e3992df061646
Add FLAG to registerDisplayListener method to receive
brightness-specific changes.
getBrightnessInfo() method added to
android.view.Display to get brightness value, min, max
and highBrightnessMode status.
Bug: 168210311
Bug: 171023136
Test: atest com.android.server.display
Change-Id: I581e86e039cc7cf1bbca4cf7af03daa41dbddfe0
In order to match tracing markers with the metrics, we should start
the tracing marker at the beginning of the next frame, as this is
also the point in time where we start counting janky frames.
Test: Take trace, inspect
Bug: 185902609
Change-Id: I2ec70b3fc2d3236bc24891ef698fdd7ac2917b01
The corresponding functions already has a boolean return value in the
reboot escrow manager. So expose the return value to the recovery
system.
Test: build, check return value of request
Change-Id: I056956075868ab62ba6a43259242c4521c1c1bfe
This is the second attempt at Ibb68bb2ee62678db5f3b30c4f2ef607006ccc81b, which
broke a test
Bug: 185534915
Test: mp :BatteryStatsViewer && adb shell am start -n com.android.frameworks.core.batterystatsviewer/.BatteryStatsViewerActivity
and check that custom component is displayed as "GPU", not "CUSTOM_10000"
Test: atest FrameworksServicesTests:com.android.server.am.MeasuredEnergySnapshotTest
Change-Id: I9f65488a682233c49d47d73fc9426b76aab07627
Create a dedicated api in the sensor privacy service to check if the
toggle is supported.
Also address some other api feedback and also rename the older mute
feature to all-sensors so that there are no longer overloaded methods
with different functions.
Test: Checkbuild, CtsSensorPrivacyTestCases, Manual
Fixes: 181681375
Change-Id: I655544846310e864ec8479ce8f93aee2860824f7
-. Remove VoidResultCallback of reportFullscreenMode
and let it be truly asynchronous.
-. Rename this method to reportFullscreenModeAsync.
Bug: 183587528
Test: atest CtsInputMethodTestCases
Test: Manually verified as follows.
1. Build flame-userdebug and flash it.
2. Make sure that the screen rotation is enabled.
3. make -j SoftKeyboard
4. adb install -r $OUT/system/app/SoftKeyboard/SoftKeyboard.apk
5. adb shell ime enable com.example.android.softkeyboard/.SoftKeyboard
6. adb shell ime set com.example.android.softkeyboard/.SoftKeyboard
7. make -j EditTextVariations
8. adb install -r $ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/arm64/EditTextVariations.apk
9. adb shell am start -n com.android.inputmethod.tools.edittextvariations/.EditTextVariations
10. Make sure that the device is in the landscape mode,
and the SoftKeyboard sample IME is not yet shown.
11. adb shell dumpsys input_method | grep mFullscreenMode
Then make sure the mFullscreenMode is "false"
12. Tap the first edit field then make sure that SoftKeyboard
sample IME becomes visible in the fullscreen mode.
13. adb shell dumpsys input_method | grep mFullscreenMode
Then make sure the mFullscreenMode is "true"
14. Tap the down button on the navbar to hide the SoftKeyboard
sample IME.
15. adb shell dumpsys input_method | grep mFullscreenMode
Then make sure the mFullscreenMode is "false"
Change-Id: I92e8b0d420be3dd16cc4f3ba29e0bde5f12ab2ce
There was confusion as to whether updateBluetoothStateLocked
took an ActivityInfo representing a cumulative total or a delta.
It is confirmed that it is now a cumulative total. (It had been
a delta in the past, but no longer.)
Bug: 174818545
Test: N/A (just comments)
Change-Id: I62130f22250eb496164f94c0668d1ff65fed7710
Bug: 185534915
Test: mp :BatteryStatsViewer && adb shell am start -n com.android.frameworks.core.batterystatsviewer/.BatteryStatsViewerActivity
and check that custom component is displayed as "GPU", not "CUSTOM_10000"
Test: atest FrameworksServicesTests:com.android.server.am.MeasuredEnergySnapshotTest
Change-Id: Ibb68bb2ee62678db5f3b30c4f2ef607006ccc81b
Since libbinder is used in many places, lightening it up (vtables in
these classes contribute to private dirty memory).
Bug: 183654927
Test: boot
Change-Id: I73328013bfb701257eb88339f7da2cb92db6809e