am b774e554: Optimize fp touch to wake: Shortcut for report next draw
* commit 'b774e554f32fd65cac30b43d1cf679403ef4af82': Optimize fp touch to wake: Shortcut for report next draw
This commit is contained in:
@@ -6621,6 +6621,19 @@ public final class ViewRootImpl implements ViewParent,
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Force the window to report its next draw.
|
||||
* <p>
|
||||
* This method is only supposed to be used to speed up the interaction from SystemUI and window
|
||||
* manager when waiting for the first frame to be drawn when turning on the screen. DO NOT USE
|
||||
* unless you fully understand this interaction.
|
||||
* @hide
|
||||
*/
|
||||
public void setReportNextDraw() {
|
||||
mReportNextDraw = true;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
void changeCanvasOpacity(boolean opaque) {
|
||||
Log.d(TAG, "changeCanvasOpacity: opaque=" + opaque);
|
||||
if (mAttachInfo.mHardwareRenderer != null) {
|
||||
|
||||
@@ -1445,6 +1445,15 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
}
|
||||
mHiding = false;
|
||||
|
||||
if (mWakeAndUnlocking && mDrawnCallback != null) {
|
||||
|
||||
// Hack level over 9000: To speed up wake-and-unlock sequence, force it to report
|
||||
// the next draw from here so we don't have to wait for window manager to signal
|
||||
// this to our ViewRootImpl.
|
||||
mStatusBarKeyguardViewManager.getViewRootImpl().setReportNextDraw();
|
||||
notifyDrawn(mDrawnCallback);
|
||||
}
|
||||
|
||||
// only play "unlock" noises if not on a call (since the incall UI
|
||||
// disables the keyguard)
|
||||
if (TelephonyManager.EXTRA_STATE_IDLE.equals(mPhoneState)) {
|
||||
@@ -1458,9 +1467,6 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
updateActivityLockScreenState();
|
||||
adjustStatusBarLocked();
|
||||
sendUserPresentBroadcast();
|
||||
if (mWakeAndUnlocking && mDrawnCallback != null) {
|
||||
notifyDrawn(mDrawnCallback);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.os.Trace;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewRootImpl;
|
||||
import android.view.WindowManagerGlobal;
|
||||
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
@@ -533,4 +534,8 @@ public class StatusBarKeyguardViewManager {
|
||||
public void showBouncerMessage(String message, int color) {
|
||||
mBouncer.showMessage(message, color);
|
||||
}
|
||||
|
||||
public ViewRootImpl getViewRootImpl() {
|
||||
return mPhoneStatusBar.getStatusBarView().getViewRootImpl();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user