Loading packages/SystemUI/src/com/android/keyguard/KeyguardClockFrame.kt +18 −5 Original line number Original line Diff line number Diff line Loading @@ -18,14 +18,24 @@ class KeyguardClockFrame( } } protected override fun dispatchDraw(canvas: Canvas) { protected override fun dispatchDraw(canvas: Canvas) { val restoreTo = saveCanvasAlpha(this, canvas, drawAlpha) saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(it) } super.dispatchDraw(canvas) canvas.restoreToCount(restoreTo) } } companion object { companion object { @JvmStatic @JvmStatic fun saveCanvasAlpha(view: View, canvas: Canvas, alpha: Int): Int { fun saveCanvasAlpha(view: View, canvas: Canvas, alpha: Int, drawFunc: (Canvas) -> Unit) { if (alpha <= 0) { // Zero Alpha -> skip drawing phase return } if (alpha >= 255) { // Max alpha -> no need for layer drawFunc(canvas) return } // Find x & y of view on screen var (x, y) = var (x, y) = run { run { val locationOnScreen = IntArray(2) val locationOnScreen = IntArray(2) Loading @@ -33,7 +43,10 @@ class KeyguardClockFrame( Pair(locationOnScreen[0].toFloat(), locationOnScreen[1].toFloat()) Pair(locationOnScreen[0].toFloat(), locationOnScreen[1].toFloat()) } } return canvas.saveLayerAlpha(-1f * x, -1f * y, x + view.width, y + view.height, alpha) val restoreTo = canvas.saveLayerAlpha(-1f * x, -1f * y, x + view.width, y + view.height, alpha) drawFunc(canvas) canvas.restoreToCount(restoreTo) } } } } } } packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -130,9 +130,12 @@ public class KeyguardClockSwitch extends RelativeLayout { @Override @Override protected void dispatchDraw(Canvas canvas) { protected void dispatchDraw(Canvas canvas) { int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha); KeyguardClockFrame.saveCanvasAlpha( super.dispatchDraw(canvas); this, canvas, mDrawAlpha, canvas.restoreToCount(restoreTo); c -> { super.dispatchDraw(c); return kotlin.Unit.INSTANCE; }); } } public void setLogBuffer(LogBuffer logBuffer) { public void setLogBuffer(LogBuffer logBuffer) { Loading packages/SystemUI/src/com/android/keyguard/KeyguardStatusContainer.kt +1 −3 Original line number Original line Diff line number Diff line Loading @@ -17,8 +17,6 @@ class KeyguardStatusContainer( } } protected override fun dispatchDraw(canvas: Canvas) { protected override fun dispatchDraw(canvas: Canvas) { val restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha) KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(canvas) } super.dispatchDraw(canvas) canvas.restoreToCount(restoreTo) } } } } packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -146,8 +146,11 @@ public class KeyguardStatusView extends GridLayout { @Override @Override protected void dispatchDraw(Canvas canvas) { protected void dispatchDraw(Canvas canvas) { int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha); KeyguardClockFrame.saveCanvasAlpha( super.dispatchDraw(canvas); this, canvas, mDrawAlpha, canvas.restoreToCount(restoreTo); c -> { super.dispatchDraw(c); return kotlin.Unit.INSTANCE; }); } } } } Loading
packages/SystemUI/src/com/android/keyguard/KeyguardClockFrame.kt +18 −5 Original line number Original line Diff line number Diff line Loading @@ -18,14 +18,24 @@ class KeyguardClockFrame( } } protected override fun dispatchDraw(canvas: Canvas) { protected override fun dispatchDraw(canvas: Canvas) { val restoreTo = saveCanvasAlpha(this, canvas, drawAlpha) saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(it) } super.dispatchDraw(canvas) canvas.restoreToCount(restoreTo) } } companion object { companion object { @JvmStatic @JvmStatic fun saveCanvasAlpha(view: View, canvas: Canvas, alpha: Int): Int { fun saveCanvasAlpha(view: View, canvas: Canvas, alpha: Int, drawFunc: (Canvas) -> Unit) { if (alpha <= 0) { // Zero Alpha -> skip drawing phase return } if (alpha >= 255) { // Max alpha -> no need for layer drawFunc(canvas) return } // Find x & y of view on screen var (x, y) = var (x, y) = run { run { val locationOnScreen = IntArray(2) val locationOnScreen = IntArray(2) Loading @@ -33,7 +43,10 @@ class KeyguardClockFrame( Pair(locationOnScreen[0].toFloat(), locationOnScreen[1].toFloat()) Pair(locationOnScreen[0].toFloat(), locationOnScreen[1].toFloat()) } } return canvas.saveLayerAlpha(-1f * x, -1f * y, x + view.width, y + view.height, alpha) val restoreTo = canvas.saveLayerAlpha(-1f * x, -1f * y, x + view.width, y + view.height, alpha) drawFunc(canvas) canvas.restoreToCount(restoreTo) } } } } } }
packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -130,9 +130,12 @@ public class KeyguardClockSwitch extends RelativeLayout { @Override @Override protected void dispatchDraw(Canvas canvas) { protected void dispatchDraw(Canvas canvas) { int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha); KeyguardClockFrame.saveCanvasAlpha( super.dispatchDraw(canvas); this, canvas, mDrawAlpha, canvas.restoreToCount(restoreTo); c -> { super.dispatchDraw(c); return kotlin.Unit.INSTANCE; }); } } public void setLogBuffer(LogBuffer logBuffer) { public void setLogBuffer(LogBuffer logBuffer) { Loading
packages/SystemUI/src/com/android/keyguard/KeyguardStatusContainer.kt +1 −3 Original line number Original line Diff line number Diff line Loading @@ -17,8 +17,6 @@ class KeyguardStatusContainer( } } protected override fun dispatchDraw(canvas: Canvas) { protected override fun dispatchDraw(canvas: Canvas) { val restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha) KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(canvas) } super.dispatchDraw(canvas) canvas.restoreToCount(restoreTo) } } } }
packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -146,8 +146,11 @@ public class KeyguardStatusView extends GridLayout { @Override @Override protected void dispatchDraw(Canvas canvas) { protected void dispatchDraw(Canvas canvas) { int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha); KeyguardClockFrame.saveCanvasAlpha( super.dispatchDraw(canvas); this, canvas, mDrawAlpha, canvas.restoreToCount(restoreTo); c -> { super.dispatchDraw(c); return kotlin.Unit.INSTANCE; }); } } } }