[TP] Clock carousel view
The view is to h-scroll the clock previews
Test: Manully scroll the clock previews and make sure the clock is set ClockCarouselViewModelTest
Bug: 262924178
Change-Id: I958641377faa95c0fa21b7b78db9820228cb6103
diff --git a/res/xml/carousel_scene.xml b/res/xml/carousel_scene.xml
new file mode 100644
index 0000000..05007f4
--- /dev/null
+++ b/res/xml/carousel_scene.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 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
+
+ http://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:constraintSetStart="@id/start"
+ motion:constraintSetEnd="@+id/next"
+ motion:duration="1000"
+ android:id="@+id/forward">
+ <OnSwipe
+ motion:dragDirection="dragLeft"
+ motion:touchAnchorSide="left" />
+ </Transition>
+
+ <Transition
+ motion:constraintSetStart="@+id/start"
+ motion:constraintSetEnd="@+id/previous"
+ android:id="@+id/backward">
+ <OnSwipe
+ motion:dragDirection="dragRight"
+ motion:touchAnchorSide="right" />
+ </Transition>
+
+ <ConstraintSet android:id="@+id/previous">
+ <Constraint
+ android:id="@+id/item_view_0"
+ android:layout_width="100dp"
+ android:layout_height="100dp"
+ motion:layout_constraintEnd_toStartOf="@id/guideline_start"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginEnd="16dp" />
+ <Constraint
+ android:id="@+id/item_view_1"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ motion:layout_constraintDimensionRatio="1:1"
+ motion:layout_constraintHorizontal_bias="0.5"
+ motion:layout_constraintStart_toStartOf="@id/guideline_start"
+ motion:layout_constraintEnd_toEndOf="@id/guideline_end"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp" />
+ <Constraint
+ android:id="@+id/item_view_2"
+ android:layout_width="100dp"
+ android:layout_height="100dp"
+ motion:layout_constraintStart_toStartOf="@id/guideline_end"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginStart="16dp" />
+ </ConstraintSet>
+
+ <ConstraintSet android:id="@+id/start">
+ <Constraint
+ android:id="@+id/item_view_1"
+ android:layout_width="100dp"
+ android:layout_height="100dp"
+ motion:layout_constraintEnd_toStartOf="@id/guideline_start"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginEnd="16dp" />
+ <Constraint
+ android:id="@+id/item_view_2"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ motion:layout_constraintDimensionRatio="1:1"
+ motion:layout_constraintHorizontal_bias="0.5"
+ motion:layout_constraintStart_toStartOf="@id/guideline_start"
+ motion:layout_constraintEnd_toEndOf="@id/guideline_end"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp" />
+ <Constraint
+ android:id="@+id/item_view_3"
+ android:layout_width="100dp"
+ android:layout_height="100dp"
+ motion:layout_constraintStart_toStartOf="@id/guideline_end"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginStart="16dp" />
+ </ConstraintSet>
+
+ <ConstraintSet android:id="@+id/next">
+ <Constraint
+ android:id="@+id/item_view_2"
+ android:layout_width="100dp"
+ android:layout_height="100dp"
+ motion:layout_constraintEnd_toStartOf="@id/guideline_start"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginEnd="16dp" />
+ <Constraint
+ android:id="@+id/item_view_3"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ motion:layout_constraintDimensionRatio="1:1"
+ motion:layout_constraintHorizontal_bias="0.5"
+ motion:layout_constraintStart_toStartOf="@id/guideline_start"
+ motion:layout_constraintEnd_toEndOf="@id/guideline_end"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp" />
+ <Constraint
+ android:id="@+id/item_view_4"
+ android:layout_width="100dp"
+ android:layout_height="100dp"
+ motion:layout_constraintStart_toStartOf="@id/guideline_end"
+ motion:layout_constraintTop_toTopOf="parent"
+ motion:layout_constraintBottom_toBottomOf="parent"
+ android:layout_marginStart="16dp" />
+ </ConstraintSet>
+
+</MotionScene>
\ No newline at end of file