am e3238e53: am b774e554: Optimize fp touch to wake: Shortcut for report next draw

* commit 'e3238e53ded59d360447d94f4d52d3b20de906c2':
  Optimize fp touch to wake: Shortcut for report next draw
This commit is contained in:
Jorim Jaggi
2015-08-28 20:27:35 +00:00
committed by Android Git Automerger
3 changed files with 27 additions and 3 deletions

View File

@@ -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) {

View File

@@ -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);
}
}
}

View File

@@ -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();
}
}