diff --git a/lawnchair/res/values/config.xml b/lawnchair/res/values/config.xml index cb5827a882..530955f4e8 100644 --- a/lawnchair/res/values/config.xml +++ b/lawnchair/res/values/config.xml @@ -57,6 +57,7 @@ true false true + true true false true diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml index f92c759b49..7b11917c33 100644 --- a/lawnchair/res/values/strings.xml +++ b/lawnchair/res/values/strings.xml @@ -216,6 +216,8 @@ May cause Lawnchair to freeze. Font Customization Some text remains unchanged. + At a Glance Calendar Customization + Allow showing date in non-Gregorian calendar systems. App Search Google Google Go diff --git a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt index b84e97d2b9..883ff2c03e 100644 --- a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt +++ b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt @@ -155,6 +155,11 @@ class PreferenceManager2(private val context: Context) : PreferenceManager { }, ) + val enableSmartspaceCalendarSelection = preference( + key = booleanPreferencesKey(name = "enable_smartspace_calendar_selection"), + defaultValue = context.resources.getBoolean(R.bool.config_default_enable_smartspace_calendar_selection), + ) + val dt2s = preference( key = booleanPreferencesKey(name = "dt2s"), defaultValue = context.resources.getBoolean(R.bool.config_default_dts2), diff --git a/lawnchair/src/app/lawnchair/smartspace/IcuDateTextView.kt b/lawnchair/src/app/lawnchair/smartspace/IcuDateTextView.kt index 9d446e853f..07c029edcb 100644 --- a/lawnchair/src/app/lawnchair/smartspace/IcuDateTextView.kt +++ b/lawnchair/src/app/lawnchair/smartspace/IcuDateTextView.kt @@ -8,11 +8,14 @@ import android.icu.text.DateFormat import android.icu.text.DisplayContext import android.os.SystemClock import android.util.AttributeSet +import app.lawnchair.preferences.getAdapter import app.lawnchair.preferences2.PreferenceManager2 import app.lawnchair.preferences2.subscribeBlocking import app.lawnchair.smartspace.model.SmartspaceCalendar import app.lawnchair.util.viewAttachedScope import com.android.launcher3.R +import com.patrykmichalik.preferencemanager.first +import com.patrykmichalik.preferencemanager.firstBlocking import saman.zamani.persiandate.PersianDate import saman.zamani.persiandate.PersianDateFormat import java.util.* @@ -87,8 +90,14 @@ class IcuDateTextView @JvmOverloads constructor( override fun onFinishInflate() { super.onFinishInflate() preferenceManager2 = PreferenceManager2.getInstance(context) - preferenceManager2.smartspaceCalendar.subscribeBlocking(scope = viewAttachedScope) { - calendar = it + val calendarSelectionEnabled = + preferenceManager2.enableSmartspaceCalendarSelection.firstBlocking() + if (calendarSelectionEnabled) { + preferenceManager2.smartspaceCalendar.subscribeBlocking(scope = viewAttachedScope) { + calendar = it + } + } else { + calendar = preferenceManager2.smartspaceCalendar.defaultValue } } diff --git a/lawnchair/src/app/lawnchair/ui/preferences/ExperimentalFeaturesPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/ExperimentalFeaturesPreferences.kt index d36aaedf75..cb8e7c9b63 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/ExperimentalFeaturesPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/ExperimentalFeaturesPreferences.kt @@ -24,6 +24,11 @@ fun ExperimentalFeaturesPreferences() { label = stringResource(id = R.string.font_picker_label), description = stringResource(id = R.string.font_picker_description), ) + SwitchPreference( + adapter = prefs.enableSmartspaceCalendarSelection.getAdapter(), + label = stringResource(id = R.string.smartspace_calendar_label), + description = stringResource(id = R.string.smartspace_calendar_description), + ) } } } diff --git a/lawnchair/src/app/lawnchair/ui/preferences/SmartspacePreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/SmartspacePreferences.kt index 4a9630bfd0..ced93cef90 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/SmartspacePreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/SmartspacePreferences.kt @@ -62,7 +62,11 @@ fun SmartspacePreferences(fromWidget: Boolean) { heading = stringResource(id = R.string.what_to_show), modifier = Modifier.padding(top = 8.dp), ) { - SmartspaceCalendarPreference() + val calendarSelectionEnabled = + preferenceManager2.enableSmartspaceCalendarSelection.getAdapter() + if (calendarSelectionEnabled.state.value) { + SmartspaceCalendarPreference() + } smartspaceProvider.dataSources .filter { it.isAvailable } .forEach {