Loading res/layout/customization_option_entry_clock.xml +10 −4 Original line number Diff line number Diff line Loading @@ -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> res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -202,6 +202,7 @@ <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> Loading src/com/android/customization/module/ThemePickerInjector.kt +3 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.module.CustomizationSections import com.android.wallpaper.module.FragmentFactory import com.android.wallpaper.module.NetworkStatusNotifier import com.android.wallpaper.module.PackageStatusNotifier import com.android.wallpaper.module.PartnerProvider import com.android.wallpaper.module.WallpaperPicker2Injector import com.android.wallpaper.module.WallpaperPreferences Loading Loading @@ -118,6 +119,7 @@ constructor( prefs: Lazy<WallpaperPreferences>, wallpaperColorsRepository: Lazy<WallpaperColorsRepository>, defaultWallpaperCategoryWrapper: Lazy<WallpaperCategoryWrapper>, packageNotifier: Lazy<PackageStatusNotifier>, ) : WallpaperPicker2Injector( mainScope, Loading @@ -132,6 +134,7 @@ constructor( prefs, wallpaperColorsRepository, defaultWallpaperCategoryWrapper, packageNotifier, ), CustomizationInjector { private var customizationSections: CustomizationSections? = null Loading src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +7 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO lockScreenCustomizationOptionEntries .find { it.first == ThemePickerLockCustomizationOption.CLOCK } ?.second val optionClockIcon = optionClock?.findViewById<ImageView>(R.id.option_entry_clock_icon) val optionShortcut = lockScreenCustomizationOptionEntries Loading Loading @@ -127,6 +128,12 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } } launch { optionsViewModel.clockPickerViewModel.selectedClock.collect { optionClockIcon?.setImageDrawable(it.thumbnail) } } launch { optionsViewModel.onCustomizeShortcutClicked.collect { optionShortcut?.setOnClickListener { _ -> it?.invoke() } Loading src/com/android/wallpaper/customization/ui/binder/ThemePickerToolbarBinder.kt +21 −2 Original line number Diff line number Diff line Loading @@ -21,11 +21,13 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener import android.widget.Button import android.widget.FrameLayout import android.widget.Toolbar import androidx.core.graphics.ColorUtils import androidx.core.view.isInvisible 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.viewmodel.ThemePickerCustomizationOptionsViewModel import com.android.wallpaper.customization.ui.viewmodel.ToolbarHeightsViewModel import com.android.wallpaper.picker.customization.ui.binder.DefaultToolbarBinder Loading Loading @@ -109,6 +111,14 @@ constructor(private val defaultToolbarBinder: DefaultToolbarBinder) : ToolbarBin } ) val applyButtonTextColorEnabled = applyButton.resources.getColor(R.color.system_on_primary, null) val applyButtonTextColorDisabled = ColorUtils.setAlphaComponent( applyButton.resources.getColor(R.color.system_on_surface, null), 97, ) // 97 for 38% transparent lifecycleOwner.lifecycleScope.launch { lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { launch { Loading @@ -117,9 +127,18 @@ constructor(private val defaultToolbarBinder: DefaultToolbarBinder) : ToolbarBin } } launch { viewModel.isOnApplyVisible.collect { applyButton.isInvisible = !it } } launch { viewModel.isApplyButtonVisible.collect { applyButton.isInvisible = !it } } launch { viewModel.isOnApplyEnabled.collect { applyButton.isEnabled = it } } launch { viewModel.isApplyButtonEnabled.collect { applyButton.isEnabled = it applyButton.background.alpha = if (it) 255 else 31 // 255 for 100%, 31 for 12% transparent, applyButton.setTextColor( if (it) applyButtonTextColorEnabled else applyButtonTextColorDisabled ) } } launch { combine(toolbarHeights, viewModel.isToolbarCollapsed, ::Pair).collect { Loading Loading
res/layout/customization_option_entry_clock.xml +10 −4 Original line number Diff line number Diff line Loading @@ -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>
res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -202,6 +202,7 @@ <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> Loading
src/com/android/customization/module/ThemePickerInjector.kt +3 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.module.CustomizationSections import com.android.wallpaper.module.FragmentFactory import com.android.wallpaper.module.NetworkStatusNotifier import com.android.wallpaper.module.PackageStatusNotifier import com.android.wallpaper.module.PartnerProvider import com.android.wallpaper.module.WallpaperPicker2Injector import com.android.wallpaper.module.WallpaperPreferences Loading Loading @@ -118,6 +119,7 @@ constructor( prefs: Lazy<WallpaperPreferences>, wallpaperColorsRepository: Lazy<WallpaperColorsRepository>, defaultWallpaperCategoryWrapper: Lazy<WallpaperCategoryWrapper>, packageNotifier: Lazy<PackageStatusNotifier>, ) : WallpaperPicker2Injector( mainScope, Loading @@ -132,6 +134,7 @@ constructor( prefs, wallpaperColorsRepository, defaultWallpaperCategoryWrapper, packageNotifier, ), CustomizationInjector { private var customizationSections: CustomizationSections? = null Loading
src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +7 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO lockScreenCustomizationOptionEntries .find { it.first == ThemePickerLockCustomizationOption.CLOCK } ?.second val optionClockIcon = optionClock?.findViewById<ImageView>(R.id.option_entry_clock_icon) val optionShortcut = lockScreenCustomizationOptionEntries Loading Loading @@ -127,6 +128,12 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } } launch { optionsViewModel.clockPickerViewModel.selectedClock.collect { optionClockIcon?.setImageDrawable(it.thumbnail) } } launch { optionsViewModel.onCustomizeShortcutClicked.collect { optionShortcut?.setOnClickListener { _ -> it?.invoke() } Loading
src/com/android/wallpaper/customization/ui/binder/ThemePickerToolbarBinder.kt +21 −2 Original line number Diff line number Diff line Loading @@ -21,11 +21,13 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener import android.widget.Button import android.widget.FrameLayout import android.widget.Toolbar import androidx.core.graphics.ColorUtils import androidx.core.view.isInvisible 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.viewmodel.ThemePickerCustomizationOptionsViewModel import com.android.wallpaper.customization.ui.viewmodel.ToolbarHeightsViewModel import com.android.wallpaper.picker.customization.ui.binder.DefaultToolbarBinder Loading Loading @@ -109,6 +111,14 @@ constructor(private val defaultToolbarBinder: DefaultToolbarBinder) : ToolbarBin } ) val applyButtonTextColorEnabled = applyButton.resources.getColor(R.color.system_on_primary, null) val applyButtonTextColorDisabled = ColorUtils.setAlphaComponent( applyButton.resources.getColor(R.color.system_on_surface, null), 97, ) // 97 for 38% transparent lifecycleOwner.lifecycleScope.launch { lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { launch { Loading @@ -117,9 +127,18 @@ constructor(private val defaultToolbarBinder: DefaultToolbarBinder) : ToolbarBin } } launch { viewModel.isOnApplyVisible.collect { applyButton.isInvisible = !it } } launch { viewModel.isApplyButtonVisible.collect { applyButton.isInvisible = !it } } launch { viewModel.isOnApplyEnabled.collect { applyButton.isEnabled = it } } launch { viewModel.isApplyButtonEnabled.collect { applyButton.isEnabled = it applyButton.background.alpha = if (it) 255 else 31 // 255 for 100%, 31 for 12% transparent, applyButton.setTextColor( if (it) applyButtonTextColorEnabled else applyButtonTextColorDisabled ) } } launch { combine(toolbarHeights, viewModel.isToolbarCollapsed, ::Pair).collect { Loading