Merge "Move enum class Screen (1/3)" into main
diff --git a/res/drawable/customization_option_entry_icon_background.xml b/res/drawable/customization_option_entry_icon_background.xml
new file mode 100644
index 0000000..b92fa0e
--- /dev/null
+++ b/res/drawable/customization_option_entry_icon_background.xml
@@ -0,0 +1,21 @@
+<?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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/picker_section_icon_background" />
+ <corners android:radius="18dp" />
+</shape>
\ No newline at end of file
diff --git a/res/layout/customization_option_entry_clock.xml b/res/layout/customization_option_entry_clock.xml
new file mode 100644
index 0000000..0abc41a
--- /dev/null
+++ b/res/layout/customization_option_entry_clock.xml
@@ -0,0 +1,45 @@
+<?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.
+ -->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="true">
+
+ <TextView
+ style="@style/SectionTitleTextStyle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/clock_title"
+ android:layout_marginEnd="8dp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/option_entry_clock_icon"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_chainStyle="packed" />
+
+ <FrameLayout
+ android:id="@+id/option_entry_clock_icon"
+ android:layout_width="60dp"
+ android:layout_height="60dp"
+ 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" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/customization_option_entry_keyguard_quick_affordance.xml b/res/layout/customization_option_entry_keyguard_quick_affordance.xml
new file mode 100644
index 0000000..2cfa747
--- /dev/null
+++ b/res/layout/customization_option_entry_keyguard_quick_affordance.xml
@@ -0,0 +1,79 @@
+<?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.
+ -->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="true">
+
+ <TextView
+ android:id="@+id/option_entry_keyguard_quick_affordance_title"
+ style="@style/SectionTitleTextStyle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/keyguard_quick_affordance_title"
+ android:layout_marginEnd="8dp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/option_entry_keyguard_quick_affordance_icon"
+ app:layout_constraintBottom_toTopOf="@+id/option_entry_keyguard_quick_affordance_description"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_chainStyle="packed" />
+
+ <TextView
+ android:id="@+id/option_entry_keyguard_quick_affordance_description"
+ style="@style/SectionSubtitleTextStyle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="8dp"
+ android:text="None"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/option_entry_keyguard_quick_affordance_icon"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/option_entry_keyguard_quick_affordance_title"
+ tools:text="Wallet, Nest" />
+
+ <LinearLayout
+ android:id="@+id/option_entry_keyguard_quick_affordance_icon"
+ android:layout_width="60dp"
+ android:layout_height="60dp"
+ android:orientation="horizontal"
+ android:background="@drawable/customization_option_entry_icon_background"
+ android:divider="@drawable/horizontal_divider_14dp"
+ android:layout_gravity="center"
+ android:showDividers="middle"
+ android:importantForAccessibility="noHideDescendants"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent">
+
+ <ImageView
+ android:id="@+id/option_entry_keyguard_quick_affordance_icon_1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ android:tint="@color/system_on_surface" />
+
+ <ImageView
+ android:id="@+id/option_entry_keyguard_quick_affordance_icon_2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ android:tint="@color/system_on_surface" />
+ </LinearLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/customization_option_entry_more_lock_settings.xml b/res/layout/customization_option_entry_more_lock_settings.xml
new file mode 100644
index 0000000..e6f2d3c
--- /dev/null
+++ b/res/layout/customization_option_entry_more_lock_settings.xml
@@ -0,0 +1,46 @@
+<?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.
+ -->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="true">
+
+ <TextView
+ android:id="@+id/option_entry_more_lock_settings_title"
+ style="@style/SectionTitleTextStyle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/more_settings_section_title"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toTopOf="@+id/option_entry_more_lock_settings_description"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_chainStyle="packed" />
+
+ <TextView
+ android:id="@+id/option_entry_more_lock_settings_description"
+ style="@style/SectionSubtitleTextStyle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/more_settings_section_description"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/option_entry_more_lock_settings_title" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/res/layout/customization_option_entry_show_notifications.xml b/res/layout/customization_option_entry_show_notifications.xml
new file mode 100644
index 0000000..c00d428
--- /dev/null
+++ b/res/layout/customization_option_entry_show_notifications.xml
@@ -0,0 +1,48 @@
+<?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.
+ -->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="true">
+
+ <TextView
+ style="@style/SectionTitleTextStyle"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/show_notifications_on_lock_screen"
+ android:layout_marginEnd="8dp"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/option_entry_show_notifications_switch"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_chainStyle="packed" />
+
+ <Switch
+ android:id="@+id/option_entry_show_notifications_switch"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:focusable="false"
+ android:clickable="false"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ style="@style/Switch.SettingsLib"
+ tools:ignore="UseSwitchCompatOrMaterialXml" />
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 8e664ea..9a941cc 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -128,7 +128,7 @@
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"पूरा भयो"</string>
<string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"सर्टकटहरू"</string>
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"सर्टकटहरू"</string>
- <string name="color_contrast_section_title" msgid="7194809124718896091">"रङको कन्ट्रास्ट"</string>
+ <string name="color_contrast_section_title" msgid="7194809124718896091">"कलर कन्ट्रास्ट"</string>
<string name="color_contrast_default_title" msgid="7954235103549276978">"डिफल्ट"</string>
<string name="color_contrast_medium_title" msgid="8071574793250090215">"मध्यम"</string>
<string name="color_contrast_high_title" msgid="5554685752479470200">"उच्च"</string>
diff --git a/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
index 28acc43..0bab82e 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
@@ -17,15 +17,15 @@
package com.android.wallpaper.customization.ui.binder
import android.view.View
-import android.widget.TextView
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
-import com.android.wallpaper.R
+import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerLockCustomizationOption
import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel
import com.android.wallpaper.picker.customization.ui.binder.CustomizationOptionsBinder
import com.android.wallpaper.picker.customization.ui.binder.DefaultCustomizationOptionsBinder
+import com.android.wallpaper.picker.customization.ui.util.CustomizationOptionUtil.CustomizationOption
import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationOptionsViewModel
import javax.inject.Inject
import javax.inject.Singleton
@@ -39,26 +39,38 @@
override fun bind(
view: View,
+ lockScreenCustomizationOptionEntries: List<Pair<CustomizationOption, View>>,
viewModel: CustomizationOptionsViewModel,
lifecycleOwner: LifecycleOwner
) {
- defaultCustomizationOptionsBinder.bind(view, viewModel, lifecycleOwner)
+ defaultCustomizationOptionsBinder.bind(
+ view,
+ lockScreenCustomizationOptionEntries,
+ viewModel,
+ lifecycleOwner
+ )
- val optionClock = view.requireViewById<TextView>(R.id.option_clock)
- val optionShortcut = view.requireViewById<TextView>(R.id.option_shortcut)
+ val optionClock =
+ lockScreenCustomizationOptionEntries
+ .find { it.first == ThemePickerLockCustomizationOption.CLOCK }
+ ?.second
+ val optionShortcut =
+ lockScreenCustomizationOptionEntries
+ .find { it.first == ThemePickerLockCustomizationOption.SHORTCUTS }
+ ?.second
viewModel as ThemePickerCustomizationOptionsViewModel
lifecycleOwner.lifecycleScope.launch {
lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
launch {
viewModel.onCustomizeClockClicked.collect {
- optionClock.setOnClickListener { _ -> it?.invoke() }
+ optionClock?.setOnClickListener { _ -> it?.invoke() }
}
}
launch {
viewModel.onCustomizeShortcutClicked.collect {
- optionShortcut.setOnClickListener { _ -> it?.invoke() }
+ optionShortcut?.setOnClickListener { _ -> it?.invoke() }
}
}
}
diff --git a/src/com/android/wallpaper/customization/ui/util/ThemePickerCustomizationOptionUtil.kt b/src/com/android/wallpaper/customization/ui/util/ThemePickerCustomizationOptionUtil.kt
index 5340f52..5891f93 100644
--- a/src/com/android/wallpaper/customization/ui/util/ThemePickerCustomizationOptionUtil.kt
+++ b/src/com/android/wallpaper/customization/ui/util/ThemePickerCustomizationOptionUtil.kt
@@ -19,7 +19,8 @@
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
-import com.android.wallpaper.R
+import android.widget.LinearLayout
+import com.android.themepicker.R
import com.android.wallpaper.picker.customization.ui.util.CustomizationOptionUtil
import com.android.wallpaper.picker.customization.ui.util.DefaultCustomizationOptionUtil
import dagger.hilt.android.scopes.ActivityScoped
@@ -47,6 +48,52 @@
private var viewMap: Map<CustomizationOptionUtil.CustomizationOption, View>? = null
+ override fun getLockOptionEntryViews(
+ optionContainer: LinearLayout,
+ layoutInflater: LayoutInflater
+ ): List<Pair<CustomizationOptionUtil.CustomizationOption, View>> {
+ return buildList {
+ addAll(
+ defaultCustomizationOptionUtil.getLockOptionEntryViews(
+ optionContainer,
+ layoutInflater
+ )
+ )
+ add(
+ ThemePickerLockCustomizationOption.CLOCK to
+ layoutInflater.inflate(
+ R.layout.customization_option_entry_clock,
+ optionContainer,
+ false
+ )
+ )
+ add(
+ ThemePickerLockCustomizationOption.SHORTCUTS to
+ layoutInflater.inflate(
+ R.layout.customization_option_entry_keyguard_quick_affordance,
+ optionContainer,
+ false
+ )
+ )
+ add(
+ ThemePickerLockCustomizationOption.SHOW_NOTIFICATIONS to
+ layoutInflater.inflate(
+ R.layout.customization_option_entry_show_notifications,
+ optionContainer,
+ false
+ )
+ )
+ add(
+ ThemePickerLockCustomizationOption.MORE_LOCK_SCREEN_SETTINGS to
+ layoutInflater.inflate(
+ R.layout.customization_option_entry_more_lock_settings,
+ optionContainer,
+ false
+ )
+ )
+ }
+ }
+
override fun initBottomSheetContent(
bottomSheetContainer: FrameLayout,
layoutInflater: LayoutInflater