Fix Date & Time pref group being blank in some scenarios (#2651)

Co-authored-by: Daria Hamrah Paytakht <info@dariarnd.ir>

Co-authored-by: Daria Hamrah Paytakht <info@dariarnd.ir>
This commit is contained in:
YASAN
2022-05-25 17:30:49 +04:30
committed by GitHub
parent 7f193766f2
commit 4fc76c3639
2 changed files with 12 additions and 4 deletions
@@ -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"
}
@@ -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,