When the current user is switching to a user who requires password to
unlock, there is a chance that InputMethodManagerService has not
completed InputMethodManagerService#onSwitchUser() when the keyguard is
calling InputMethodManager#getEnabledInputMethodList() to detemine
whether the IME switcher icon should be shown or not. If this occurs,
and if the previous user enables only one IME but the new user enables
multiple IMEs, it's possible that the IME switcher icon is not shown
when it should be. Although the user is still able to work around this
by switch back to the previous user then the current user again until
the icon shows up, or can rely on a way to switch to next
IME (e.g. globe key) if it's available, the lack of the IME switcher
is still concerning since it can prevent the user from unlocking the
device.
As a quick workaround for this situation, this CL introduces a delayed
task to re-evaluate if we need to show the IME switcher icon on the
keyguard or not (currently the delay is set to 500msec) until this race
condition is fundamentally fixed.
Bug: 30640917
Change-Id: I93ea71d73540c31fbbe1cc4bd6747871f957dcc6
Changing the service side to accept descriptions of
motion events, not motion events themselves, so we can
control their creation.
Bug: 30647115
Change-Id: Ia6772a1fc05df91818e3f88959d1e2b4a35fe0cc
(cherry picked from commit a8918f23c7)
Adding reason code and disconnect causes for:
1. disconnects due to user disabling data.
2. disconnects due to data limit being reached.
Bug: 30702393
Change-Id: Id6ea5ee4f5aac1a8602094315f893e2f7b3cc8d6
Just because a child window has a surface doesn't necessarily
mean the parent window will have a surface. destroySurfaceLocked()
only takes care of setting mAttachedHidden so the child surface
will be invisible, but it may not be destroyed until a later point.
Bug: 30813094
Change-Id: Idb1b03fd61a7537ebfe33bafc93f278c0e6751f4
In Android N, View#isTemporarilyDetached() returns true if it is called
when the same View instance is handling View#onFinishTemporaryDetach().
Returning true there is, however, sometimes confusing, especially
scenarios like the following case:
@Override
public void onFinishTemporaryDetach() {
doSomeRestoringWorks();
}
private void doSomeRestoringWorks() {
doSomething();
}
private doSomething() {
if (isTemporarilyDetached()) {
// As of N, we hit here if this is called as a result of
// View#onFinishTemporaryDetach().
} else {
// but is the logic here is more likely to be appropriate
// when handling View#onFinishTemporaryDetach()?
}
}
What this CL aims to do is to let View#isTemporarilyDetached() return
false when it is called while handling View#onFinishTemporaryDetach(),
because it should make View#onFinishTemporaryDetach() more useful.
Regarding the app compatibility, View#isTemporarilyDetached() was added
in API 24 hence the impact on this change is still limited.
Bug: 30791718
Change-Id: If384da9f9e6ff849598896901626fd021bae5cda
We call AppWindowToken.clearAnimatingFlags() when an app token is
no longer considered exiting since it is now part of the opening
app transition. To the same effect we should no longer consider
its windows destroying so they can be factored in when decided
what to do during the transition like picking the right wallpaper
target.
Bug: 30790402
Change-Id: Ide94af72a38bd4a955abb122b47f921fd3f70652
- Request wallpaper adjust after we clear mDestroying or
mAnimatingExit flags, as these could affect wallpaper
target selection result.
- Adjust wallpaper before we check lower/upper target. As
there could be pending operations that requested a wall-
paper update. Lower/upper target is needed to correctly
decide if the opening or closing apps had wallpaper.
- Make sure lower/upper targets are set even when current
target is clientHidden, in which case we should set
wallpaper target to old target but the lower/upper
still needs to be set up.
Bug: 30790402
Bug: 30255354
Change-Id: Ie2c94439142cbb91660c5aa4164cc660831486d5
(cherry picked from commit ec8299ca45)
Easier for debugging or testing bad exit animations.
Bug: 30790402
Bug: 30255354
Change-Id: I8097195bfc918baf66ecc99b55f4845aba2eaff4
(cherry picked from commit 1c93f6de2d)