<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright 2023 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     https://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
-->
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:motion="http://schemas.android.com/apk/res-auto">

    <Transition
        motion:constraintSetEnd="@+id/end"
        motion:constraintSetStart="@+id/start"
        motion:duration="250"
        motion:motionInterpolator="linear">

        <OnSwipe
            motion:dragDirection="dragUp"
            motion:touchAnchorId="@+id/motionLayout"
            motion:touchAnchorSide="bottom" />

        <KeyFrameSet>
            <!--
            Calls FloatingActionButton.show() when frame position is being increased and
            passes around 10%
            -->
            <KeyTrigger
                motion:framePosition="10"
                motion:motionTarget="@id/fab"
                motion:onPositiveCross="show" />

            <!--
            Calls FloatingActionButton.hide() when frame position is being decreased and
            passes around 20%
            -->
            <KeyTrigger
                motion:framePosition="20"
                motion:motionTarget="@id/fab"
                motion:onNegativeCross="hide" />
        </KeyFrameSet>
    </Transition>

    <ConstraintSet android:id="@+id/start">
        <Constraint
            android:id="@id/motionLayout"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            motion:layout_constraintTop_toTopOf="parent" />

        <Constraint
            android:id="@id/scrollable"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            motion:layout_constraintBottom_toBottomOf="parent"
            motion:layout_constraintTop_toBottomOf="@+id/motionLayout" />
    </ConstraintSet>

    <ConstraintSet android:id="@+id/end">
        <Constraint
            android:id="@id/motionLayout"
            android:layout_width="match_parent"
            android:layout_height="56dp"
            motion:layout_constraintTop_toTopOf="parent"
            motion:motionProgress="1" />

        <Constraint
            android:id="@id/scrollable"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            motion:layout_constraintBottom_toBottomOf="parent"
            motion:layout_constraintTop_toBottomOf="@+id/motionLayout" />
    </ConstraintSet>
</MotionScene>
