diff --git a/lawnchair/src/app/lawnchair/smartspace/model/SmartspaceCalendar.kt b/lawnchair/src/app/lawnchair/smartspace/model/SmartspaceCalendar.kt index 3b67e1e0fb..efd6dda7e7 100644 --- a/lawnchair/src/app/lawnchair/smartspace/model/SmartspaceCalendar.kt +++ b/lawnchair/src/app/lawnchair/smartspace/model/SmartspaceCalendar.kt @@ -5,8 +5,10 @@ import com.android.launcher3.R /** * Contains the data of a single calendar system for smartspace. + * + * @param formatCustomizationSupport If the calendar system supports date & time format customization. */ -open class SmartspaceCalendar(@StringRes val nameResourceId: Int) { +open class SmartspaceCalendar(@StringRes val nameResourceId: Int, val formatCustomizationSupport: Boolean = true) { companion object { @@ -24,7 +26,7 @@ open class SmartspaceCalendar(@StringRes val nameResourceId: Int) { object Gregorian : SmartspaceCalendar(nameResourceId = R.string.smartspace_calendar_gregorian) { override fun toString() = "gregorian" } - object Persian : SmartspaceCalendar(nameResourceId = R.string.smartspace_calendar_persian) { + object Persian : SmartspaceCalendar(nameResourceId = R.string.smartspace_calendar_persian, formatCustomizationSupport = false) { override fun toString() = "persian" } diff --git a/lawnchair/src/app/lawnchair/ui/preferences/SmartspacePreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/SmartspacePreferences.kt index c11dbd9e13..c9da4ac3c4 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/SmartspacePreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/SmartspacePreferences.kt @@ -119,15 +119,21 @@ fun SmartspaceDateAndTimePreferences() { ) { val preferenceManager2 = preferenceManager2() + val calendarSelectionAdapter = preferenceManager2.enableSmartspaceCalendarSelection.getAdapter() val calendarAdapter = preferenceManager2.smartspaceCalendar.getAdapter() val showDateAdapter = preferenceManager2.smartspaceShowDate.getAdapter() val showTimeAdapter = preferenceManager2.smartspaceShowTime.getAdapter() val use24HourFormatAdapter = preferenceManager2.smartspace24HourFormat.getAdapter() val calendarHasMinimumContent = !showDateAdapter.state.value || !showTimeAdapter.state.value - val isGregorian = calendarAdapter.state.value != SmartspaceCalendar.Persian - ExpandAndShrink(visible = isGregorian) { + val calendar = if (calendarSelectionAdapter.state.value) { + calendarAdapter.state.value + } else { + preferenceManager2.smartspaceCalendar.defaultValue + } + + ExpandAndShrink(visible = calendar.formatCustomizationSupport) { DividerColumn { SwitchPreference( adapter = showDateAdapter,