Refactor code to avoid a return statement inside a finally block. Such
constructs interfere with exception propagation in non-obvious ways
and are therefore considered bad practice.
Bug: 32586420
Test: manual code walk
Usecase:
1. Enable multi-hf.
2. Connect to HS1.
3. Connect to HS2.
4. Make a call on AG. Here call audio is present on HS2.
5. Now disconnect HS1 from AG.
Failure:
When HS1 is disconnected, call audio is routed to handset/speaker.
Root cause:
When hs1 disconnection intent is received, SCO path is cleared
and audio is routed to handset/speaker.
Fix:
Check if the device being disconnected is same as the device
call audio is present before clearing SCO path.
Change-Id: If83325679b70b5893e44e8d844000ee028d0246c
- Add non-app window tokens to the display child container based on
their base layer so the highest based layer is z-ordered on-top.
- Separated DisplayContent.mNonAppWindowContainers into
mAboveAppWindowContainer and mBelowAppWindowContainer where the former
contains non-app windows that should be z-ordered on-top of all app
windows and the later contains non-app windows that should be
z-ordered below app windows.
- Change wallpaper base layer to 1 so that it is always below all other
window types.
- Add Ime related windows/tokens to DisplayContent.mImeWindowContainers
so that we can track them together
- Use alternative binder token when adding window TYPE_INPUT_METHOD_DIALOG
so that it can properly be associated as an IME token in WM vs. with
system_server or sys-ui token.
Test: Existing tests pass.
Bug: 30060889
Change-Id: Ib53e09af12545868c3741d83aaccb7311c872b41
Also refactoring the class to make it easier to test and
chaning behavior where the current behavior seemed poorly
defined.
Refactoring:
- Combined all handlers into one.
- Simplified animation to use a ValueAnimator.
- Eliminated ACCESSIBILITY_DISPLAY_MAGNIFICATION_AUTO_UPDATE
setting. Move rest of settings reading into mockable class.
- Move callbacks from WindowManager into the main class.
- Pulled out my instrumented Handler from the
MotionEventInjectorTest into its own class so I can reuse
it.
Behavior changes:
- Always constraining out-of-bounds values rather than
refusing to change them.
- Constraining offsets on bounds changes. We previously
left them alone, even if they were out of bounds.
- Keeping track of the animation starting point. We were
interpolating between the current magnification spec
and the final one. This change means the magnification
animates to a different profile.
Test: This CL adds tests. I've also run a11y CTS.
Bugs: 31855954, 30325691
Change-Id: Ie00e29ae88b75d9fe1016f9d107257c9cf6425bb
Saves about 300us for each AccessibilityEvent sent, which
translates to 1 ms in gfx-avg-frame-time in the
QuickSettingsPull.
Test: Ran a11y cts and unit tests. Ran systrace and the
QuickSettingsPull to measure jank improvement.
Change-Id: I6d219b0e82c21047e50d402d930d8a5cc93fa6ad