This CL aims to simplify logic recently added to IMMS to support
multiple displays (Bug 111364446).
With my previous CLs [1][2], now we can simply review what
InputMethodManagerService#startInputUncheckedLocked() is actually
doing. Things we found and this CL does address are:
1. Redundant if conditions against null IMMS#mCurMethodId.
2. Timing to check IMMS#mSystemReady.
3. Timing to check display id access
4. Timing to update IMMS#mCurTokenDisplayId.
5. Unnecessary complexity due to IMMS#mCurFocusedWindowClient, which
is now guaranteed to equal to |cs| in that method.
Although this CL is not a mechanical safe refactroing, the new
behavior should be more efficient, solid and easier to maintain.
[1]: I52f6c4cd1e02be3a59e9a87e33b0a44f4ba8d80b
f91a2b102b
[2]: I71e259fa447dd06ff02b9ef8c958dc70bbce86ea
caaa1d3d2d
Bug: 117730713
Test: atest ActivityManagerMultiDisplayTests
Test: atest CtsInputMethodTestCases CtsInputMethodServiceHostTestCases
Test: atest FrameworksCoreTests:android.view.inputmethod.InputMethodManagerTest
Change-Id: Ic9232d9c3ec9802101df5f0bc511c55465b5bbe6
With my previous CL [1], IMMS#startInputInnerLocked() is called only
from IMMS#startInputUncheckedLocked(). By unextracting
IMMS#startInputInnerLocked() again, it would be much easier for us to
understand what IMMS#startInputUncheckedLocked() is actually doing.
To decouple actual behavior change from cosmetic code refactorings,
this CL does nothing except for merging IMMS#startInputInnerLocked()
into IMMS#startInputUncheckedLocked().
There should be no behavior change. Non trivial behavior
simplifications will be done in subsequent CLs.
[1]: I52f6c4cd1e02be3a59e9a87e33b0a44f4ba8d80b
f91a2b102b
Bug: 117730713
Test: atest ActivityManagerMultiDisplayTests
Test: atest CtsInputMethodTestCases CtsInputMethodServiceHostTestCases
Test: atest FrameworksCoreTests:android.view.inputmethod.InputMethodManagerTest
Change-Id: I71e259fa447dd06ff02b9ef8c958dc70bbce86ea
In case of fast (< 1 second) A2DP disconnect/connect sequence, there
is a potential race condition where the delayed disconnection message
(due to becoming noisy intent) is received after the not delayed
connection message.
- Make sure all messages related to device connection/disconnection
(including MSG_A2DP_DEVICE_CONFIG_CHANGE and MSG_BTA2DP_DOCK_TIMEOUT)
are handled by queueMsgUnderWakeLock().
- Make sure messages are processed in the same order as API calls.
- Add check for null address in makeA2dpDeviceUnavailableNow().
Bug: 109903807
Bug: 78837311
Test: repro steps in bugs. A2DP connection and playback
Change-Id: Ib81b3805f945f7206b1a60de74e9bbeeef89bdd0
(cherry picked from commit 3c4636c712)
Merged-In: Ib81b3805f945f7206b1a60de74e9bbeeef89bdd0
1. new System API for getRadioPowerState with permision check
2. new System API for onRadioPowerStateChanged in PhoneStateListener
3. replace radioState enum in CommandsInterface to telephonyMgr defined
int.
Bug: 117349311
Test: telephony unit test
Change-Id: I502568280fbf9213ca6bf1f7fb204d0d4ce86580
Split screen primary stack is behind home (though visible to user), and
needs to respond to user tapping when out of touch region.
This doesn't cover the case where split screen stacks and freeform
stacks both exist in the display, but that's not a very common case on
any form factor.
Bug: 117777954
Bug: 117824834
Test: IME is brought up when Gmail is in split screen primary stack.
Tapping on home won't focus on home stack.
atest android.autofillservice.cts.MultiWindowLoginActivityTest#testSplitWindow
Change-Id: I44e17d9a0eba3ab6669ef75223c982ae0e811fc6