1<?xml version="1.0" encoding="utf-8"?><!-- 2 ~ Copyright (C) 2023 The Android Open Source Project 3 ~ 4 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ you may not use this file except in compliance with the License. 6 ~ You may obtain a copy of the License at 7 ~ 8 ~ http://www.apache.org/licenses/LICENSE-2.0 9 ~ 10 ~ Unless required by applicable law or agreed to in writing, software 11 ~ distributed under the License is distributed on an "AS IS" BASIS, 12 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 ~ See the License for the specific language governing permissions and 14 ~ limitations under the License. 15 ~ 16 --> 17 18<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 19 android:layout_width="match_parent" 20 android:layout_height="match_parent" 21 android:orientation="vertical"> 22 <FrameLayout 23 android:id="@+id/section_header_container" 24 android:layout_width="match_parent" 25 android:layout_height="wrap_content"> 26 27 <include layout="@layout/section_header" /> 28 </FrameLayout> 29 30 <com.android.wallpaper.picker.DisplayAspectRatioFrameLayout 31 android:layout_width="match_parent" 32 android:layout_height="0dp" 33 android:layout_weight="1" 34 android:paddingTop="36dp" 35 android:paddingBottom="40dp"> 36 37 <include 38 android:id="@+id/lock_preview" 39 layout="@layout/wallpaper_preview_card" 40 android:layout_width="match_parent" 41 android:layout_height="match_parent" 42 android:layout_gravity="center" /> 43 44 <FrameLayout 45 android:id="@+id/clock_host_view" 46 android:layout_width="match_parent" 47 android:layout_height="match_parent" 48 android:layout_gravity="center" /> 49 </com.android.wallpaper.picker.DisplayAspectRatioFrameLayout> 50 51 52 <LinearLayout 53 android:layout_width="match_parent" 54 android:layout_height="wrap_content" 55 android:orientation="vertical" 56 android:layout_marginHorizontal="24dp" 57 android:layout_marginBottom="28dp" 58 android:background="@drawable/picker_fragment_background" 59 android:paddingTop="22dp" 60 android:paddingBottom="62dp"> 61 62 <FrameLayout 63 android:layout_width="wrap_content" 64 android:layout_height="wrap_content"> 65 66 <androidx.recyclerview.widget.RecyclerView 67 android:id="@+id/tabs" 68 android:layout_width="wrap_content" 69 android:layout_height="wrap_content" 70 android:clipToPadding="false" 71 android:paddingHorizontal="16dp" 72 android:layout_gravity="center_horizontal" /> 73 74 <!-- 75 This is just an invisible placeholder put in place so that the parent keeps its height 76 stable as the RecyclerView updates from 0 items to N items. Keeping it stable allows the 77 layout logic to keep the size of the preview container stable as well, which bodes well 78 for setting up the SurfaceView for remote rendering without changing its size after the 79 content is loaded into the RecyclerView. 80 81 It's critical for any TextViews inside the included layout to have text. 82 --> 83 <include 84 layout="@layout/picker_fragment_tab" 85 android:layout_width="wrap_content" 86 android:layout_height="wrap_content" 87 android:visibility="invisible" /> 88 </FrameLayout> 89 90 <FrameLayout 91 android:layout_width="match_parent" 92 android:layout_height="wrap_content" 93 android:paddingTop="16dp"> 94 95 <LinearLayout 96 android:id="@+id/color_picker_container" 97 android:layout_width="match_parent" 98 android:layout_height="wrap_content" 99 android:orientation="vertical"> 100 101 <FrameLayout 102 android:layout_width="match_parent" 103 android:layout_height="wrap_content" 104 android:layout_marginBottom="16dp"> 105 106 <androidx.recyclerview.widget.RecyclerView 107 android:id="@+id/color_options" 108 android:layout_width="match_parent" 109 android:layout_height="wrap_content" 110 android:clipToPadding="false" 111 android:paddingHorizontal="16dp" /> 112 113 <!-- 114 This is just an invisible placeholder put in place so that the parent keeps its 115 height stable as the RecyclerView updates from 0 items to N items. Keeping it 116 stable allows the layout logic to keep the size of the preview container stable 117 as well, which bodes well for setting up the SurfaceView for remote rendering 118 without changing its size after the content is loaded into the RecyclerView. 119 --> 120 <include 121 layout="@layout/color_option_with_background" 122 android:layout_width="wrap_content" 123 android:layout_height="wrap_content" 124 android:visibility="invisible" /> 125 </FrameLayout> 126 127 <SeekBar 128 android:id="@+id/slider" 129 android:layout_width="match_parent" 130 android:layout_height="wrap_content" 131 android:layout_gravity="center_vertical" 132 android:minHeight="48dp" 133 android:thumb="@null" 134 android:background="@null" 135 android:paddingHorizontal="16dp" 136 android:progressDrawable="@drawable/saturation_progress_drawable" 137 android:splitTrack="false" /> 138 </LinearLayout> 139 140 <com.android.customization.picker.clock.ui.view.ClockSizeRadioButtonGroup 141 android:id="@+id/clock_size_radio_button_group" 142 android:layout_width="match_parent" 143 android:layout_height="wrap_content" 144 android:paddingHorizontal="16dp" /> 145 </FrameLayout> 146 </LinearLayout> 147</LinearLayout> 148