Target the two biggest offenders:
- Coalesce keyguard setHidden(false) calls during unlock.
- Make sysui->WM call async.
Found during investigation into b/
11221659.
Bug:
11221659
Change-Id: Icab48376bc356a933e0f9940bc2f924e2e77ab22
/**
* Called by the status bar to notify Views of changes to System UI visiblity.
*/
- void statusBarVisibilityChanged(int visibility);
+ oneway void statusBarVisibilityChanged(int visibility);
/**
* Block until the given window has been drawn to the screen.
}
private final IKeyguardService.Stub mBinder = new IKeyguardService.Stub() {
+ private boolean mSetHiddenCalled;
+ private boolean mIsHidden;
public boolean isShowing() {
return mKeyguardViewMediator.isShowing();
}
}
public void setHidden(boolean isHidden) {
checkPermission();
+ if (mSetHiddenCalled && mIsHidden == isHidden) return;
mKeyguardViewMediator.setHidden(isHidden);
+ mSetHiddenCalled = true;
+ mIsHidden = isHidden;
}
public void dismiss() {
mKeyguardViewMediator.dismiss();