Merge "Add disbled background for the apply button (1/2)" into main
diff --git a/res/drawable/ic_clock_filled_24px.xml b/res/drawable/ic_clock_filled_24px.xml
new file mode 100644
index 0000000..0d587d7
--- /dev/null
+++ b/res/drawable/ic_clock_filled_24px.xml
@@ -0,0 +1,18 @@
+<!--
+ Copyright (C) 2024 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="960" android:viewportHeight="960" android:tint="?attr/colorControlNormal">
+ <path android:fillColor="@android:color/white" android:pathData="M612,668L668,612L520,464L520,280L440,280L440,496L612,668ZM480,880Q397,880 324,848.5Q251,817 197,763Q143,709 111.5,636Q80,563 80,480Q80,397 111.5,324Q143,251 197,197Q251,143 324,111.5Q397,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,563 848.5,636Q817,709 763,763Q709,817 636,848.5Q563,880 480,880Z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_style_filled_24px.xml b/res/drawable/ic_style_filled_24px.xml
deleted file mode 100644
index 0b9ec32..0000000
--- a/res/drawable/ic_style_filled_24px.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
- ~ Copyright (C) 2024 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.
- ~
- -->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="960" android:viewportHeight="960" android:tint="?attr/colorControlNormal">
- <path android:fillColor="@android:color/white" android:pathData="M159,792L125,778Q94,765 83.5,733Q73,701 87,670L159,514L159,792ZM319,880Q286,880 262.5,856.5Q239,833 239,800L239,560L345,854Q348,861 351,867.5Q354,874 359,880L319,880ZM525,876Q493,888 463,873Q433,858 421,826L243,338Q231,306 245,275.5Q259,245 291,234L593,124Q625,112 655,127Q685,142 697,174L875,662Q887,694 873,724.5Q859,755 827,766L525,876ZM439,400Q456,400 467.5,388.5Q479,377 479,360Q479,343 467.5,331.5Q456,320 439,320Q422,320 410.5,331.5Q399,343 399,360Q399,377 410.5,388.5Q422,400 439,400Z"/>
-</vector>
\ No newline at end of file
diff --git a/res/layout/clock_style_option.xml b/res/layout/clock_style_option.xml
index 27fe597..e251c4a 100644
--- a/res/layout/clock_style_option.xml
+++ b/res/layout/clock_style_option.xml
@@ -14,47 +14,43 @@
limitations under the License.
-->
<!-- Content description is set programmatically on the parent FrameLayout -->
-<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="@dimen/floating_sheet_clock_style_option_size"
- android:layout_height="@dimen/floating_sheet_clock_style_option_size"
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="@dimen/floating_sheet_clock_style_option_width"
+ android:layout_height="@dimen/floating_sheet_clock_style_option_height"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:clipToPadding="false"
android:clipChildren="false">
- <ImageView
- android:id="@id/selection_border"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/option_item_border"
- android:alpha="0"
- android:importantForAccessibility="no" />
-
- <ImageView
+ <com.android.wallpaper.picker.option.ui.view.OptionItemBackground
android:id="@id/background"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/option_item_background"
- android:importantForAccessibility="no" />
+ android:layout_width="@dimen/floating_sheet_clock_style_option_background_size"
+ android:layout_height="@dimen/floating_sheet_clock_style_option_background_size"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ android:importantForAccessibility="no"
+ android:layout_gravity="bottom" />
- <FrameLayout
+
+ <ImageView
android:id="@+id/foreground"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_width="@dimen/floating_sheet_clock_style_option_thumbnail_size"
+ android:layout_height="@dimen/floating_sheet_clock_style_option_thumbnail_size"
+ android:layout_marginBottom="@dimen/floating_sheet_clock_style_thumbnail_margin_bottom"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ android:src="@drawable/ic_clock_24px" />
- <ImageView
- android:id="@+id/clock_icon"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_margin="@dimen/floating_sheet_clock_style_thumbnail_margin"
- android:src="@drawable/ic_clock_24px" />
-
- <ImageView
- android:id="@+id/edit_icon"
- android:layout_width="@dimen/floating_sheet_clock_edit_icon_size"
- android:layout_height="@dimen/floating_sheet_clock_edit_icon_size"
- android:layout_marginTop="-16dp"
- android:layout_marginLeft="50dp"
- android:src="@drawable/edit_icon"/>
-
- </FrameLayout>
-</FrameLayout>
+ <ImageView
+ android:id="@+id/edit_icon"
+ android:layout_width="@dimen/floating_sheet_clock_edit_icon_size"
+ android:layout_height="@dimen/floating_sheet_clock_edit_icon_size"
+ android:layout_marginTop="@dimen/floating_sheet_clock_edit_icon_margin"
+ android:layout_marginEnd="@dimen/floating_sheet_clock_edit_icon_margin"
+ android:src="@drawable/edit_icon"
+ app:layout_constraintEnd_toEndOf="@+id/background"
+ app:layout_constraintTop_toTopOf="@+id/background"
+ android:importantForAccessibility="no" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/clock_style_option2.xml b/res/layout/clock_style_option2.xml
deleted file mode 100644
index 8bb60d1..0000000
--- a/res/layout/clock_style_option2.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
- Copyright (C) 2024 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.
--->
-<!-- Content description is set programmatically on the parent FrameLayout -->
-<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="80dp"
- android:layout_height="80dp"
- android:clipToPadding="false"
- android:clipChildren="false">
-
- <com.android.wallpaper.picker.option.ui.view.OptionItemBackground
- android:id="@id/background"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:importantForAccessibility="no" />
-
- <ImageView
- android:id="@+id/foreground"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_margin="@dimen/floating_sheet_clock_style_thumbnail_margin"
- android:src="@drawable/ic_clock_24px" />
-
- <ImageView
- android:id="@+id/edit_icon"
- android:layout_width="@dimen/floating_sheet_clock_edit_icon_size"
- android:layout_height="@dimen/floating_sheet_clock_edit_icon_size"
- android:layout_marginTop="-16dp"
- android:layout_marginStart="50dp"
- android:src="@drawable/edit_icon"
- android:importantForAccessibility="no" />
-</FrameLayout>
-
diff --git a/res/layout/customization_option_entry_clock.xml b/res/layout/customization_option_entry_clock.xml
index c302965..f677a1e 100644
--- a/res/layout/customization_option_entry_clock.xml
+++ b/res/layout/customization_option_entry_clock.xml
@@ -30,18 +30,24 @@
android:text="@string/clock_title"
android:layout_marginEnd="@dimen/customization_option_entry_text_margin_end"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintEnd_toStartOf="@+id/option_entry_clock_icon"
+ app:layout_constraintEnd_toStartOf="@+id/option_entry_clock_icon_container"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<FrameLayout
- android:id="@+id/option_entry_clock_icon"
+ android:id="@+id/option_entry_clock_icon_container"
android:layout_width="@dimen/customization_option_entry_icon_size"
android:layout_height="@dimen/customization_option_entry_icon_size"
- android:orientation="horizontal"
android:background="@drawable/customization_option_entry_icon_background"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent" />
+ app:layout_constraintBottom_toBottomOf="parent">
+
+ <ImageView
+ android:id="@+id/option_entry_clock_icon"
+ android:layout_width="@dimen/customization_option_entry_clock_icon_size"
+ android:layout_height="@dimen/customization_option_entry_clock_icon_size"
+ android:layout_gravity="center"/>
+ </FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/floating_sheet_clock.xml b/res/layout/floating_sheet_clock.xml
index 338cbf2..93cf24b 100644
--- a/res/layout/floating_sheet_clock.xml
+++ b/res/layout/floating_sheet_clock.xml
@@ -24,7 +24,6 @@
android:id="@+id/clock_floating_sheet_content_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingVertical="@dimen/floating_sheet_content_vertical_padding"
android:background="@drawable/floating_sheet_content_background"
android:clipToPadding="false"
android:clipChildren="false">
diff --git a/res/layout/floating_sheet_clock_color_content.xml b/res/layout/floating_sheet_clock_color_content.xml
index 3f1ec8c..fd218c6 100644
--- a/res/layout/floating_sheet_clock_color_content.xml
+++ b/res/layout/floating_sheet_clock_color_content.xml
@@ -18,6 +18,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:paddingVertical="@dimen/floating_sheet_content_vertical_padding"
android:orientation="vertical"
android:clipToPadding="false"
android:clipChildren="false">
diff --git a/res/layout/floating_sheet_clock_font_content.xml b/res/layout/floating_sheet_clock_font_content.xml
index 9c223a5..3ce65e4 100644
--- a/res/layout/floating_sheet_clock_font_content.xml
+++ b/res/layout/floating_sheet_clock_font_content.xml
@@ -20,9 +20,10 @@
android:id="@+id/clock_floating_sheet_font_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:paddingVertical="@dimen/floating_sheet_content_vertical_padding"
+ android:paddingHorizontal="@dimen/floating_sheet_content_horizontal_padding"
android:clipChildren="false"
- android:clipToPadding="false"
- android:paddingHorizontal="@dimen/floating_sheet_content_horizontal_padding">
+ android:clipToPadding="false">
<TextView
android:id="@+id/clock_axis_slider_name1"
diff --git a/res/layout/floating_sheet_clock_style_content.xml b/res/layout/floating_sheet_clock_style_content.xml
index 9054ec3..5b39776 100644
--- a/res/layout/floating_sheet_clock_style_content.xml
+++ b/res/layout/floating_sheet_clock_style_content.xml
@@ -19,6 +19,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:paddingTop="@dimen/floating_sheet_clock_style_content_top_padding"
+ android:paddingBottom="@dimen/floating_sheet_clock_style_content_bottom_padding"
android:clipToPadding="false"
android:clipChildren="false">
@@ -45,19 +47,14 @@
-->
<include
layout="@layout/clock_style_option"
- android:layout_width="@dimen/floating_sheet_clock_style_option_size"
- android:layout_height="@dimen/floating_sheet_clock_style_option_size"
+ android:layout_width="@dimen/floating_sheet_clock_style_option_width"
+ android:layout_height="@dimen/floating_sheet_clock_style_option_height"
android:visibility="invisible" />
- <!--
- TODO (b/377528523): We intentionally disable over scroll mode since it will clip the
- edit icon when in over scroll.
- -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/clock_style_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:overScrollMode="never"
android:clipChildren="false"
android:clipToPadding="false"/>
</FrameLayout>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 229815e..fab8357 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -181,6 +181,8 @@
<!-- Floating sheet dimensions -->
<dimen name="floating_sheet_content_vertical_padding">20dp</dimen>
<dimen name="floating_sheet_content_horizontal_padding">20dp</dimen>
+ <dimen name="floating_sheet_clock_style_content_top_padding">2dp</dimen>
+ <dimen name="floating_sheet_clock_style_content_bottom_padding">20dp</dimen>
<dimen name="floating_sheet_horizontal_padding">16dp</dimen>
<dimen name="floating_sheet_tab_toolbar_vertical_margin">8dp</dimen>
<dimen name="floating_sheet_tab_clock_font_toolbar_top_margin">16dp</dimen>
@@ -188,14 +190,19 @@
<dimen name="floating_sheet_list_item_horizontal_space">4dp</dimen>
<dimen name="floating_sheet_list_item_vertical_space">4dp</dimen>
<dimen name="floating_sheet_clock_style_option_list_margin_bottom">8dp</dimen>
- <dimen name="floating_sheet_clock_style_option_size">82dp</dimen>
+ <dimen name="floating_sheet_clock_style_option_width">80dp</dimen>
+ <dimen name="floating_sheet_clock_style_option_height">98dp</dimen>
+ <dimen name="floating_sheet_clock_style_option_background_size">80dp</dimen>
+ <dimen name="floating_sheet_clock_style_option_thumbnail_size">56dp</dimen>
<dimen name="floating_sheet_clock_edit_icon_size">48dp</dimen>
- <dimen name="floating_sheet_clock_style_thumbnail_margin">12dp</dimen>
+ <dimen name="floating_sheet_clock_edit_icon_margin">-18dp</dimen>
+ <dimen name="floating_sheet_clock_style_thumbnail_margin_bottom">12dp</dimen>
<dimen name="floating_sheet_clock_style_clock_size_text_margin_end">16dp</dimen>
<dimen name="floating_sheet_clock_color_option_list_bottom_margin">12dp</dimen>
<dimen name="floating_sheet_color_option_size">54dp</dimen>
<dimen name="floating_sheet_color_option_stroke_width">3dp</dimen>
<dimen name="customization_option_entry_shortcut_icon_size">20dp</dimen>
+ <dimen name="customization_option_entry_clock_icon_size">44dp</dimen>
<!-- Clock font control dimensions -->
<dimen name="clock_font_axis_name_width">64dp</dimen>
diff --git a/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
index e2b6217..86b2d78 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
@@ -214,10 +214,7 @@
Tab.STYLE -> clockStyleContentHeight
Tab.COLOR -> clockColorContentHeight
Tab.FONT -> clockFontContentHeight
- } +
- view.resources.getDimensionPixelSize(
- R.dimen.floating_sheet_content_vertical_padding
- ) * 2
+ }
// Start to animate the content height
ValueAnimator.ofInt(fromHeight, toHeight)
.apply {
@@ -402,7 +399,7 @@
lifecycleOwner: LifecycleOwner
): OptionItemAdapter2<ClockStyleModel> =
OptionItemAdapter2(
- layoutResourceId = R.layout.clock_style_option2,
+ layoutResourceId = R.layout.clock_style_option,
lifecycleOwner = lifecycleOwner,
bindPayload = { view: View, styleModel: ClockStyleModel ->
view
diff --git a/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
index c3d1b83..2936b1c 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
@@ -85,6 +85,7 @@
lockScreenCustomizationOptionEntries
.find { it.first == ThemePickerLockCustomizationOption.CLOCK }
?.second
+ val optionClockIcon = optionClock?.findViewById<ImageView>(R.id.option_entry_clock_icon)
val optionShortcut =
lockScreenCustomizationOptionEntries
@@ -128,6 +129,12 @@
}
launch {
+ optionsViewModel.clockPickerViewModel.selectedClock.collect {
+ optionClockIcon?.setImageDrawable(it.thumbnail)
+ }
+ }
+
+ launch {
optionsViewModel.onCustomizeShortcutClicked.collect {
optionShortcut?.setOnClickListener { _ -> it?.invoke() }
}
diff --git a/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt b/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt
index f415fa8..6ca773b 100644
--- a/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt
+++ b/src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt
@@ -88,7 +88,7 @@
listOf(
FloatingToolbarTabViewModel(
Icon.Resource(
- res = R.drawable.ic_style_filled_24px,
+ res = R.drawable.ic_clock_filled_24px,
contentDescription = Text.Resource(R.string.clock_style),
),
context.getString(R.string.clock_style),
@@ -117,10 +117,9 @@
selectedClock ->
overridingClock != null && overridingClock.clockId != selectedClock.clockId
}
+ val selectedClock = clockPickerInteractor.selectedClock
val previewingClock =
- combine(overridingClock, clockPickerInteractor.selectedClock) {
- overridingClock,
- selectedClock ->
+ combine(overridingClock, selectedClock) { overridingClock, selectedClock ->
overridingClock ?: selectedClock
}