Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b713bb69 authored by Grace Han's avatar Grace Han
Browse files

Fix Region Sampling Bounds

This change updates the sampling bounds used for region sampling.

Bug: 202758428
Test: Manual
Change-Id: I7a33bb6ce27fdbd8891434c627a3b10545086272
parent 51d289b7
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ open class RegionSamplingInstance(
) {
    private var isDark = RegionDarkness.DEFAULT
    private var samplingBounds = Rect()
    private val tmpScreenLocation = IntArray(2)
    @VisibleForTesting var regionSampler: RegionSamplingHelper? = null

    /**
@@ -99,10 +100,21 @@ open class RegionSamplingInstance(
                            isDark = convertToClockDarkness(isRegionDark)
                            updateFun.updateColors()
                        }

                        /**
                        * The method getLocationOnScreen is used to obtain the view coordinates
                        * relative to its left and top edges on the device screen.
                        * Directly accessing the X and Y coordinates of the view returns the
                        * location relative to its parent view instead.
                        */
                        override fun getSampledRegion(sampledView: View): Rect {
                            samplingBounds = Rect(sampledView.left, sampledView.top,
                                    sampledView.right, sampledView.bottom)
                            val screenLocation = tmpScreenLocation
                            sampledView.getLocationOnScreen(screenLocation)
                            val left = screenLocation[0]
                            val top = screenLocation[1]
                            samplingBounds.left = left
                            samplingBounds.top = top
                            samplingBounds.right = left + sampledView.width
                            samplingBounds.bottom = top + sampledView.height
                            return samplingBounds
                        }