This is a follow-up to my previous CL [1] for Bug 15922840 so that we
can clear the following variables in a more reliable way.
- PhoneWindowManager#mLastInputMethodWindow
- PhoneWindowManager#mLastInputMethodTargetWindow
The idea behind CL [2] is that when InputMethodManagerService (IMMS) is
switching from an IME to another IME, IMMS can send a signal to
WindowManagerService (WMS) to remember the current IME's inset so that
the system can continue using it to reduce jank until the new inset is
specified by the next IME. As summarized in Bug 28781358, however, if
the next IME does not show the window after the IME switch, WMS (or
PhoneWindowManager to be precise) keeps using the previous IME's inset
unexpectedly until the new IME shows its window. All we have seen in
Bug 15922840 and Bug 26663589 fall into this category.
The idea of this CL is just adding a hidden API to InputMethodManager so
that InputMethodService#clearInsetOfPreviousIme() can surely terminate
the IME transition state managed in PhoneWindowManager, rather than
relying on a hack of calling SoftInputWindow#show() and
SoftInputWindow#hide(), which actually does not work for Bug 26663589.
[1]: Ib04967f39b2529251e4835c42e9f99dba2cf43f2
2977eb7b6c
[2]: I5723f627ce323b0d12bd7b93f5b35fc4d342b50c
792faa2c16
Note that addressing all the corner cases in [2] still requires lots of
non-trivial change. Hence this CL focuses only on Bug 26663589 (and
the case we handled in Bug 15922840).
Bug: 26663589
Change-Id: Ib567daa009c1139858dccadcfc6a04465ebecf36
This change fixes the issue where
getChildVisibleRect(View, Rect, Point, boolean) call isn't recursive.
The method was introduced in I49550ed4082bcbdcfe4643b962b50f3308092525
Bug: 28514727
Change-Id: Ib6b0fb67ca6c700b44f645319c23b1213a2742d4
am: 49f7135fef
* commit '49f7135fef3a982edd04a292a8c46afff4d6ef86':
Close leaked windows when trying to preserve main one
Change-Id: Ic83f1f4a07bed89bf77e96ae16a273c859624948
am: 4ef107bb7a
* commit '4ef107bb7ad0c1f28db710374bb118e6658d3238':
Close leaked windows when trying to preserve main one
Change-Id: I20b5d6ab8adbb97cffca52e1daf66ed939d508b8
Currently every focus change causes a freeform window to jump
for a few frames. The size of the jump is equal to the difference
in inset size (which is derived directly from the window elevation).
This problem goes away for most real use cases if the insets are
not allowed to decrease.
Bug: 28318973
Bug: 22668382
Change-Id: I77ca440a7d9c89cc4d45e6667bf37da94a5c8a9a
This CL fixes 2 bugs in View's addFocusables implementations.
1) addFocusables(list, dir) method was always returning focusables in
touch mode even if the device is not in touch mode.
2) addFocusables(list, dir, mode) was not respecting the provided mod.
Bug: 28745577
Change-Id: I9b9e5af27f8f5b1bb3cc601584fdad7c73e54a5d
Don't save matrix if we just need clip saved
Early-reject the easy-to-reject cases in Canvas
before hitting JNI
Change-Id: I385ef90a31efbda31ce37837152f626aad553ee7
When app has several windows and activity is relaunched + we try to preserve
main window - other windows just stayed around until removed by timeout or
replaced by app. There was a problem when one of the windows registered
broadcast receiver and set its own timer to remove it. In this case all
receivers were removed by framework because windows were considered leaked
and apps' timer caused crash when trying to remove registered receiver.
This CL removes all windows expect the main one, which we're trying to
preserve in this case.
Bug: 28337135
Change-Id: Ib8790cc8c61801f11d871ba3803bb0ebc3d3be01
ThreadedRenderer was never the right place for this anyway, and
ApplicationLoaders can provide both the full library search path (not
just the extracted native library dir) as well as the application loader
namespace.
Bug: 28213888
Change-Id: Ibcc0a9178da4dba6f3f3105932fdac1a1d0261af
* commit '68fffa5': (23 commits)
Fix smallest width configuration calculation
docs: DoDS, wearable reference docs
Switch the default text selection handles to Material style.
docs: Noted minor API changes in release notes
docs: added "billions" doc in Distribute>Essentials
Remove wear design pages redirecting to design/wear
correct the support library redirects to redirect whole path
Stop saving ActionMenuItemView state.
Fix iterator double-advance in ContentObserverController
TIF: Remove the uniqueness check for track ID from notifyTracksChanged
Update and add attributes to the JavaDoc for VectorDrawable
Use Q=100 JPEG instead of PNG for wallpaper display
Fix issue #28400000: Settings memory UI still showing z-ram...
docs: Updated support library revision history for 23.4.0
docs: Updates to notifications for DP3
docs: Added emoji section to api overview.
Fixed a bug where the QS was animating wrong when closing
Fix KeyguardManager.isSecure() to observe work profile
cherrypick from mnc-docs docs: Updated APK Signature Scheme v2 doc.
Docs: Added new Whitelist feature to Data Saver for DP3
...
The fix passes the calling userId instead of the current userId to
allow apps running as managed profiles to work.
Fixes bug 28666104
Change-Id: I9f8676ab11bd581d9e67b2b9f385036d4d3576ee
It's certainly not needed for two up, so remove the staging aspect.
Freeform resizing is currently broken because of another bug so this
can't be tested, but because we are not "shipping" it in any case
fixing the 2-up bug is more important, but it shouldn't break freeform
anyways.
Bug: 28618501
Change-Id: I6f285a714281fde50fd7328a3f8999cfa8dfb2c5
am: 45c6eb2164
* commit '45c6eb21648f9977057471d1f41beb275512a449':
Prepare to replace windows across recreate().
Change-Id: I08c6f599d36fabb4f52ba23e9794c28203cc65b5
am: ea162c3c79
* commit 'ea162c3c7992b01d8d56766a94e56a0cee3fe3b2':
Prepare to replace windows across recreate().
Change-Id: I3f78aa81d76e0a71f616037c531e7755760b41cf
am: c96a245e1a
* commit 'c96a245e1a771a2a9b020c14fee90aa60b832318':
Force second measure pass when there is a configuration change
Change-Id: Ic81ffd3b7ea102f8e4e72a3a6c5d779dfb1b009e
am: 26a4627102
* commit '26a4627102e466e3e7831e84e459d95f0ff7778a':
Force second measure pass when there is a configuration change
Change-Id: Icbc841e1641bbe2fabac589a3c60fc3404cda0c2
am: c381c4e8e7
* commit 'c381c4e8e7b7dfc2aed0a662bf56e3d6e512df5d':
Force second measure pass when there is a configuration change
Change-Id: I2586fe3605461b2e6e4d9678afd6436078dab21c