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

Commit 3cd1f298 authored by Selim Cinek's avatar Selim Cinek Committed by Automerger Merge Worker
Browse files

Fixed an issue where scrolling didn't work anymore after going to landscape...

Fixed an issue where scrolling didn't work anymore after going to landscape am: f629b618 am: e3a958a4

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12013417

Change-Id: I215b33cc379c773b899dc6f5b32c6fbbac98e840
parents ca309fe8 e3a958a4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -464,7 +464,7 @@ class MediaCarouselController @Inject constructor(
        val width = desiredHostState?.measurementInput?.width ?: 0
        val height = desiredHostState?.measurementInput?.height ?: 0
        if (width != carouselMeasureWidth && width != 0 ||
                height != carouselMeasureWidth && height != 0) {
                height != carouselMeasureHeight && height != 0) {
            carouselMeasureWidth = width
            carouselMeasureHeight = height
            val playerWidthPlusPadding = carouselMeasureWidth +
+1 −1
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@ class MediaCarouselScrollHandler(
            }
            val rotation = (1.0f - settingsOffset) * 50
            settingsButton.rotation = rotation * -Math.signum(contentTranslation)
            val alpha = MathUtils.map(0.5f, 1.0f, 0.0f, 1.0f, settingsOffset)
            val alpha = MathUtils.saturate(MathUtils.map(0.5f, 1.0f, 0.0f, 1.0f, settingsOffset))
            settingsButton.alpha = alpha
            settingsButton.visibility = if (alpha != 0.0f) View.VISIBLE else View.INVISIBLE
            settingsButton.translationX = newTranslationX
+18 −1
Original line number Diff line number Diff line
@@ -47,12 +47,29 @@ class TransitionLayout @JvmOverloads constructor(
    private var currentState: TransitionViewState = TransitionViewState()
    private var updateScheduled = false

    private var desiredMeasureWidth = 0
    private var desiredMeasureHeight = 0
    /**
     * The measured state of this view which is the one we will lay ourselves out with. This
     * may differ from the currentState if there is an external animation or transition running.
     * This state will not be used to measure the widgets, where the current state is preferred.
     */
    var measureState: TransitionViewState = TransitionViewState()
        set(value) {
            val newWidth = value.width
            val newHeight = value.height
            if (newWidth != desiredMeasureWidth || newHeight != desiredMeasureHeight) {
                desiredMeasureWidth = newWidth
                desiredMeasureHeight = newHeight
                // We need to make sure next time we're measured that our onMeasure will be called.
                // Otherwise our parent thinks we still have the same height
                if (isInLayout()) {
                    forceLayout()
                } else {
                    requestLayout()
                }
            }
        }
    private val preDrawApplicator = object : ViewTreeObserver.OnPreDrawListener {
        override fun onPreDraw(): Boolean {
            updateScheduled = false
@@ -158,7 +175,7 @@ class TransitionLayout @JvmOverloads constructor(
                        MeasureSpec.EXACTLY)
                child.measure(measureWidthSpec, measureHeightSpec)
            }
            setMeasuredDimension(measureState.width, measureState.height)
            setMeasuredDimension(desiredMeasureWidth, desiredMeasureHeight)
        }
    }