Loading packages/SystemUI/src/com/android/keyguard/KeyguardClockFrame.kt +18 −5 Original line number Diff line number Diff line Loading @@ -18,14 +18,24 @@ class KeyguardClockFrame( } protected override fun dispatchDraw(canvas: Canvas) { val restoreTo = saveCanvasAlpha(this, canvas, drawAlpha) super.dispatchDraw(canvas) canvas.restoreToCount(restoreTo) saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(it) } } companion object { @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) = run { val locationOnScreen = IntArray(2) Loading @@ -33,7 +43,10 @@ class KeyguardClockFrame( 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 Diff line number Diff line Loading @@ -130,9 +130,12 @@ public class KeyguardClockSwitch extends RelativeLayout { @Override protected void dispatchDraw(Canvas canvas) { int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha); super.dispatchDraw(canvas); canvas.restoreToCount(restoreTo); KeyguardClockFrame.saveCanvasAlpha( this, canvas, mDrawAlpha, c -> { super.dispatchDraw(c); return kotlin.Unit.INSTANCE; }); } public void setLogBuffer(LogBuffer logBuffer) { Loading packages/SystemUI/src/com/android/keyguard/KeyguardStatusContainer.kt +1 −3 Original line number Diff line number Diff line Loading @@ -17,8 +17,6 @@ class KeyguardStatusContainer( } protected override fun dispatchDraw(canvas: Canvas) { val restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha) super.dispatchDraw(canvas) canvas.restoreToCount(restoreTo) KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(canvas) } } } packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +6 −3 Original line number Diff line number Diff line Loading @@ -146,8 +146,11 @@ public class KeyguardStatusView extends GridLayout { @Override protected void dispatchDraw(Canvas canvas) { int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha); super.dispatchDraw(canvas); canvas.restoreToCount(restoreTo); KeyguardClockFrame.saveCanvasAlpha( this, canvas, mDrawAlpha, c -> { super.dispatchDraw(c); return kotlin.Unit.INSTANCE; }); } } Loading
packages/SystemUI/src/com/android/keyguard/KeyguardClockFrame.kt +18 −5 Original line number Diff line number Diff line Loading @@ -18,14 +18,24 @@ class KeyguardClockFrame( } protected override fun dispatchDraw(canvas: Canvas) { val restoreTo = saveCanvasAlpha(this, canvas, drawAlpha) super.dispatchDraw(canvas) canvas.restoreToCount(restoreTo) saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(it) } } companion object { @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) = run { val locationOnScreen = IntArray(2) Loading @@ -33,7 +43,10 @@ class KeyguardClockFrame( 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 Diff line number Diff line Loading @@ -130,9 +130,12 @@ public class KeyguardClockSwitch extends RelativeLayout { @Override protected void dispatchDraw(Canvas canvas) { int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha); super.dispatchDraw(canvas); canvas.restoreToCount(restoreTo); KeyguardClockFrame.saveCanvasAlpha( this, canvas, mDrawAlpha, c -> { super.dispatchDraw(c); return kotlin.Unit.INSTANCE; }); } public void setLogBuffer(LogBuffer logBuffer) { Loading
packages/SystemUI/src/com/android/keyguard/KeyguardStatusContainer.kt +1 −3 Original line number Diff line number Diff line Loading @@ -17,8 +17,6 @@ class KeyguardStatusContainer( } protected override fun dispatchDraw(canvas: Canvas) { val restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha) super.dispatchDraw(canvas) canvas.restoreToCount(restoreTo) KeyguardClockFrame.saveCanvasAlpha(this, canvas, drawAlpha) { super.dispatchDraw(canvas) } } }
packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +6 −3 Original line number Diff line number Diff line Loading @@ -146,8 +146,11 @@ public class KeyguardStatusView extends GridLayout { @Override protected void dispatchDraw(Canvas canvas) { int restoreTo = KeyguardClockFrame.saveCanvasAlpha(this, canvas, mDrawAlpha); super.dispatchDraw(canvas); canvas.restoreToCount(restoreTo); KeyguardClockFrame.saveCanvasAlpha( this, canvas, mDrawAlpha, c -> { super.dispatchDraw(c); return kotlin.Unit.INSTANCE; }); } }