diff --git a/app/src/main/java/com/elementary/tasks/config/DayOfMonth.kt b/app/src/main/java/com/elementary/tasks/config/DayOfMonth.kt new file mode 100644 index 000000000..b9c8127ac --- /dev/null +++ b/app/src/main/java/com/elementary/tasks/config/DayOfMonth.kt @@ -0,0 +1,5 @@ +package com.elementary.tasks.config + +object DayOfMonth { + const val LastDayOfMonth = 0 +} diff --git a/app/src/main/java/com/elementary/tasks/core/data/AppDb.kt b/app/src/main/java/com/elementary/tasks/core/data/AppDb.kt index cc633bfc3..fc70cf68e 100644 --- a/app/src/main/java/com/elementary/tasks/core/data/AppDb.kt +++ b/app/src/main/java/com/elementary/tasks/core/data/AppDb.kt @@ -19,6 +19,7 @@ import com.elementary.tasks.core.data.migrations.MIGRATION_10_11 import com.elementary.tasks.core.data.migrations.MIGRATION_11_12 import com.elementary.tasks.core.data.migrations.MIGRATION_12_13 import com.elementary.tasks.core.data.migrations.MIGRATION_13_14 +import com.elementary.tasks.core.data.migrations.MIGRATION_14_15 import com.elementary.tasks.core.data.migrations.MIGRATION_1_2 import com.elementary.tasks.core.data.migrations.MIGRATION_2_3 import com.elementary.tasks.core.data.migrations.MIGRATION_3_4 @@ -56,7 +57,7 @@ import com.elementary.tasks.core.data.models.UsedTime RecurPreset::class, RecentQuery::class ], - version = 14, + version = 15, exportSchema = false ) abstract class AppDb : RoomDatabase() { @@ -94,7 +95,8 @@ abstract class AppDb : RoomDatabase() { MIGRATION_10_11, MIGRATION_11_12, MIGRATION_12_13, - MIGRATION_13_14 + MIGRATION_13_14, + MIGRATION_14_15 ) .allowMainThreadQueries() .build() diff --git a/app/src/main/java/com/elementary/tasks/core/data/adapter/preset/UiPresetListAdapter.kt b/app/src/main/java/com/elementary/tasks/core/data/adapter/preset/UiPresetListAdapter.kt index a8827dfe4..716fc2074 100644 --- a/app/src/main/java/com/elementary/tasks/core/data/adapter/preset/UiPresetListAdapter.kt +++ b/app/src/main/java/com/elementary/tasks/core/data/adapter/preset/UiPresetListAdapter.kt @@ -14,15 +14,15 @@ class UiPresetListAdapter( return UiPresetList( id = data.id, name = data.name, - description = getDescription(data.recurObject) + description = getDescription(data) ) } - private fun getDescription(recurObject: String): String { - val rrule = runCatching { recurrenceManager.parseObject(recurObject) } + private fun getDescription(data: RecurPreset): String { + val rrule = runCatching { recurrenceManager.parseObject(data.recurObject) } .getOrNull() ?.map?.values?.firstOrNull { it.tagType == TagType.RRULE } ?.buildString() - return rrule ?: "" + return rrule ?: data.description ?: "" } } diff --git a/app/src/main/java/com/elementary/tasks/core/data/migrations/Migration14To15.kt b/app/src/main/java/com/elementary/tasks/core/data/migrations/Migration14To15.kt new file mode 100644 index 000000000..3383a4fa2 --- /dev/null +++ b/app/src/main/java/com/elementary/tasks/core/data/migrations/Migration14To15.kt @@ -0,0 +1,12 @@ +package com.elementary.tasks.core.data.migrations + +import androidx.room.migration.Migration +import androidx.sqlite.db.SupportSQLiteDatabase + +val MIGRATION_14_15: Migration = object : Migration(14, 15) { + override fun migrate(db: SupportSQLiteDatabase) { + runCatching { + db.execSQL("ALTER TABLE RecurPreset ADD COLUMN description TEXT") + } + } +} diff --git a/app/src/main/java/com/elementary/tasks/core/data/models/RecurPreset.kt b/app/src/main/java/com/elementary/tasks/core/data/models/RecurPreset.kt index fa958bb0b..67b3bfc9f 100644 --- a/app/src/main/java/com/elementary/tasks/core/data/models/RecurPreset.kt +++ b/app/src/main/java/com/elementary/tasks/core/data/models/RecurPreset.kt @@ -37,7 +37,9 @@ data class RecurPreset( @SerializedName("builderScheme") val builderScheme: List = emptyList(), @SerializedName("useCount") - val useCount: Int + val useCount: Int, + @SerializedName("description") + val description: String? ) : Parcelable enum class PresetType { diff --git a/app/src/main/java/com/elementary/tasks/core/utils/DI.kt b/app/src/main/java/com/elementary/tasks/core/utils/DI.kt index 9c9e5ba4c..1030231d9 100644 --- a/app/src/main/java/com/elementary/tasks/core/utils/DI.kt +++ b/app/src/main/java/com/elementary/tasks/core/utils/DI.kt @@ -206,7 +206,7 @@ fun dbModule(context: Context): Module { val utilModule = module { single { Prefs(get()) } - factory { PresetInitProcessor(get(), get(), get(), get(), get()) } + factory { PresetInitProcessor(get(), get(), get(), get(), get(), get()) } single { ReminderExplanationVisibility(get()) } single { GTasks(get(), get(), get(), get(), get(), get(), get()) } single { ThemeProvider(get(), get()) } diff --git a/app/src/main/java/com/elementary/tasks/core/utils/PresetInitProcessor.kt b/app/src/main/java/com/elementary/tasks/core/utils/PresetInitProcessor.kt index f1f33c39c..ad768653c 100644 --- a/app/src/main/java/com/elementary/tasks/core/utils/PresetInitProcessor.kt +++ b/app/src/main/java/com/elementary/tasks/core/utils/PresetInitProcessor.kt @@ -6,7 +6,8 @@ import com.elementary.tasks.core.data.models.RecurPreset import com.elementary.tasks.core.data.repository.RecurPresetRepository import com.elementary.tasks.core.os.PackageManagerWrapper import com.elementary.tasks.core.utils.params.Prefs -import com.elementary.tasks.reminder.build.preset.BuilderPresetInitializer +import com.elementary.tasks.reminder.build.preset.BuilderPresetsGenerateUseCase +import com.elementary.tasks.reminder.build.preset.DefaultPresetsGenerateUseCase import org.threeten.bp.LocalDateTime class PresetInitProcessor( @@ -14,7 +15,8 @@ class PresetInitProcessor( private val prefs: Prefs, private val textProvider: TextProvider, private val packageManagerWrapper: PackageManagerWrapper, - private val builderPresetInitializer: BuilderPresetInitializer + private val builderPresetsGenerateUseCase: BuilderPresetsGenerateUseCase, + private val builderDefaultPresetsGenerateUseCase: DefaultPresetsGenerateUseCase ) { fun run() { @@ -22,7 +24,11 @@ class PresetInitProcessor( prefs.initPresets = false setBuilderSettings() createRecurPresets().forEach { savePreset(it) } - builderPresetInitializer().forEach { savePreset(it) } + builderPresetsGenerateUseCase().forEach { savePreset(it) } + } + if (prefs.initDefaultPresets) { + prefs.initDefaultPresets = false + builderDefaultPresetsGenerateUseCase().forEach { savePreset(it) } } } @@ -191,7 +197,8 @@ class PresetInitProcessor( recurObject = rule, type = PresetType.RECUR, createdAt = LocalDateTime.now(), - useCount = 0 + useCount = 0, + description = null ) } diff --git a/app/src/main/java/com/elementary/tasks/core/utils/params/Prefs.kt b/app/src/main/java/com/elementary/tasks/core/utils/params/Prefs.kt index e83174b4f..008faa46a 100644 --- a/app/src/main/java/com/elementary/tasks/core/utils/params/Prefs.kt +++ b/app/src/main/java/com/elementary/tasks/core/utils/params/Prefs.kt @@ -83,6 +83,10 @@ class Prefs( get() = getBoolean(PrefsConstants.IS_PRESET_INIT, def = true) set(value) = putBoolean(PrefsConstants.IS_PRESET_INIT, value) + var initDefaultPresets: Boolean + get() = getBoolean(PrefsConstants.IS_DEFAULT_PRESET_INIT, def = true) + set(value) = putBoolean(PrefsConstants.IS_DEFAULT_PRESET_INIT, value) + var showAdvancedDayDialog: Boolean get() = getBoolean(PrefsConstants.RECUR_SHOW_ADVANCED_DAY_DIALOG, def = false) set(value) = putBoolean(PrefsConstants.RECUR_SHOW_ADVANCED_DAY_DIALOG, value) diff --git a/app/src/main/java/com/elementary/tasks/core/utils/params/PrefsConstants.kt b/app/src/main/java/com/elementary/tasks/core/utils/params/PrefsConstants.kt index 21af02671..9bcfec498 100644 --- a/app/src/main/java/com/elementary/tasks/core/utils/params/PrefsConstants.kt +++ b/app/src/main/java/com/elementary/tasks/core/utils/params/PrefsConstants.kt @@ -123,6 +123,7 @@ object PrefsConstants { const val BIRTHDAY_REMINDER_TIME = "reminder_hour" const val IS_PRESET_INIT = "preset_init" + const val IS_DEFAULT_PRESET_INIT = "preset_init_default" const val PRIVACY_POLICY_URL = "privacy_url" const val TERMS_URL = "terms_url" diff --git a/app/src/main/java/com/elementary/tasks/reminder/KoinModule.kt b/app/src/main/java/com/elementary/tasks/reminder/KoinModule.kt index 24adb07fb..d5aa686bf 100644 --- a/app/src/main/java/com/elementary/tasks/reminder/KoinModule.kt +++ b/app/src/main/java/com/elementary/tasks/reminder/KoinModule.kt @@ -25,8 +25,9 @@ import com.elementary.tasks.reminder.build.logic.builderstate.BuilderStateCalcul import com.elementary.tasks.reminder.build.logic.builderstate.ReminderPredictionCalculator import com.elementary.tasks.reminder.build.preset.BiValueToBuilderSchemeValue import com.elementary.tasks.reminder.build.preset.BuilderItemsToBuilderPresetAdapter -import com.elementary.tasks.reminder.build.preset.BuilderPresetInitializer +import com.elementary.tasks.reminder.build.preset.BuilderPresetsGenerateUseCase import com.elementary.tasks.reminder.build.preset.BuilderPresetToBiAdapter +import com.elementary.tasks.reminder.build.preset.DefaultPresetsGenerateUseCase import com.elementary.tasks.reminder.build.preset.ManagePresetsViewModel import com.elementary.tasks.reminder.build.preset.RecurParamsToBiAdapter import com.elementary.tasks.reminder.build.preset.primitive.PrimitiveProtocol @@ -276,7 +277,9 @@ val reminderModule = module { factory { ReminderPredictionCalculator(get(), get()) } - factory { BuilderPresetInitializer(get(), get(), get(), get()) } + factory { BuilderPresetsGenerateUseCase(get(), get(), get(), get()) } + + factory { DefaultPresetsGenerateUseCase(get(), get(), get(), get()) } single { ReminderBuilderLauncher(get()) } diff --git a/app/src/main/java/com/elementary/tasks/reminder/build/BuildReminderViewModel.kt b/app/src/main/java/com/elementary/tasks/reminder/build/BuildReminderViewModel.kt index d4c748696..78db91c77 100644 --- a/app/src/main/java/com/elementary/tasks/reminder/build/BuildReminderViewModel.kt +++ b/app/src/main/java/com/elementary/tasks/reminder/build/BuildReminderViewModel.kt @@ -662,7 +662,8 @@ class BuildReminderViewModel( type = PresetType.BUILDER, createdAt = dateTimeManager.getCurrentDateTime(), useCount = 1, - builderScheme = builderItemsToBuilderPresetAdapter(items) + builderScheme = builderItemsToBuilderPresetAdapter(items), + description = null ) recurPresetRepository.save(preset) analyticsEventSender.send(PresetUsed(PresetAction.CREATE)) diff --git a/app/src/main/java/com/elementary/tasks/reminder/build/formatter/datetime/DayOfMonthFormatter.kt b/app/src/main/java/com/elementary/tasks/reminder/build/formatter/datetime/DayOfMonthFormatter.kt index 133d5d92b..6366e1227 100644 --- a/app/src/main/java/com/elementary/tasks/reminder/build/formatter/datetime/DayOfMonthFormatter.kt +++ b/app/src/main/java/com/elementary/tasks/reminder/build/formatter/datetime/DayOfMonthFormatter.kt @@ -2,6 +2,7 @@ package com.elementary.tasks.reminder.build.formatter.datetime import android.content.Context import com.elementary.tasks.R +import com.elementary.tasks.config.DayOfMonth import com.elementary.tasks.reminder.build.formatter.Formatter @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE") @@ -9,7 +10,7 @@ class DayOfMonthFormatter( private val context: Context ) : Formatter() { override fun format(dayOfMonth: Int): String { - return if (dayOfMonth == 0) { + return if (dayOfMonth == DayOfMonth.LastDayOfMonth) { context.getString(R.string.builder_last_day_of_month) } else { "$dayOfMonth" diff --git a/app/src/main/java/com/elementary/tasks/reminder/build/preset/BuilderPresetInitializer.kt b/app/src/main/java/com/elementary/tasks/reminder/build/preset/BuilderPresetsGenerateUseCase.kt similarity index 98% rename from app/src/main/java/com/elementary/tasks/reminder/build/preset/BuilderPresetInitializer.kt rename to app/src/main/java/com/elementary/tasks/reminder/build/preset/BuilderPresetsGenerateUseCase.kt index 045f75964..7338388b3 100644 --- a/app/src/main/java/com/elementary/tasks/reminder/build/preset/BuilderPresetInitializer.kt +++ b/app/src/main/java/com/elementary/tasks/reminder/build/preset/BuilderPresetsGenerateUseCase.kt @@ -27,7 +27,7 @@ import org.threeten.bp.LocalDate import org.threeten.bp.LocalDateTime import org.threeten.bp.LocalTime -class BuilderPresetInitializer( +class BuilderPresetsGenerateUseCase( private val contextProvider: ContextProvider, private val builderItemsToBuilderPresetAdapter: BuilderItemsToBuilderPresetAdapter, private val biFactory: BiFactory, @@ -163,7 +163,8 @@ class BuilderPresetInitializer( type = PresetType.BUILDER, createdAt = LocalDateTime.now(), useCount = 0, - builderScheme = scheme + builderScheme = scheme, + description = null ) } diff --git a/app/src/main/java/com/elementary/tasks/reminder/build/preset/DefaultPresetsGenerateUseCase.kt b/app/src/main/java/com/elementary/tasks/reminder/build/preset/DefaultPresetsGenerateUseCase.kt new file mode 100644 index 000000000..3ae80d1d2 --- /dev/null +++ b/app/src/main/java/com/elementary/tasks/reminder/build/preset/DefaultPresetsGenerateUseCase.kt @@ -0,0 +1,267 @@ +package com.elementary.tasks.reminder.build.preset + +import android.app.AlarmManager +import com.elementary.tasks.R +import com.elementary.tasks.config.DayOfMonth +import com.elementary.tasks.core.data.models.PresetBuilderScheme +import com.elementary.tasks.core.data.models.PresetType +import com.elementary.tasks.core.data.models.RecurPreset +import com.elementary.tasks.core.data.models.ShopItem +import com.elementary.tasks.core.protocol.WeekDaysProtocol +import com.elementary.tasks.core.utils.TextProvider +import com.elementary.tasks.core.utils.datetime.DateTimeManager +import com.elementary.tasks.reminder.build.ApplicationBuilderItem +import com.elementary.tasks.reminder.build.ArrivingCoordinatesBuilderItem +import com.elementary.tasks.reminder.build.BuilderItem +import com.elementary.tasks.reminder.build.DateBuilderItem +import com.elementary.tasks.reminder.build.DayOfMonthBuilderItem +import com.elementary.tasks.reminder.build.DayOfYearBuilderItem +import com.elementary.tasks.reminder.build.DaysOfWeekBuilderItem +import com.elementary.tasks.reminder.build.EmailBuilderItem +import com.elementary.tasks.reminder.build.EmailSubjectBuilderItem +import com.elementary.tasks.reminder.build.LeavingCoordinatesBuilderItem +import com.elementary.tasks.reminder.build.RepeatTimeBuilderItem +import com.elementary.tasks.reminder.build.SubTasksBuilderItem +import com.elementary.tasks.reminder.build.SummaryBuilderItem +import com.elementary.tasks.reminder.build.TimeBuilderItem +import com.elementary.tasks.reminder.build.TimerBuilderItem +import com.elementary.tasks.reminder.build.WebAddressBuilderItem +import com.elementary.tasks.reminder.build.bi.BiFactory +import com.elementary.tasks.reminder.build.bi.BiType +import org.threeten.bp.LocalDate +import org.threeten.bp.LocalDateTime +import org.threeten.bp.LocalTime + +class DefaultPresetsGenerateUseCase( + private val builderItemsToBuilderPresetAdapter: BuilderItemsToBuilderPresetAdapter, + private val biFactory: BiFactory, + private val dateTimeManager: DateTimeManager, + private val textProvider: TextProvider +) { + + operator fun invoke(): List { + return listOf( + createPreset( + name = textProvider.getText(R.string.by_date), + description = textProvider.getText(R.string.reminder_by_date_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue(BiType.DATE, LocalDate.now(), DateBuilderItem::class.java), + biFactory.createWithValue(BiType.TIME, LocalTime.now(), TimeBuilderItem::class.java), + biFactory.createWithValue( + biType = BiType.REPEAT_TIME, + value = 0L, + clazz = RepeatTimeBuilderItem::class.java + ) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.timer), + description = textProvider.getText(R.string.reminder_by_timer_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue( + BiType.COUNTDOWN_TIMER, + AlarmManager.INTERVAL_HOUR, + TimerBuilderItem::class.java + ) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.alarm), + description = textProvider.getText(R.string.reminder_by_weekday_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue(BiType.TIME, LocalTime.now(), TimeBuilderItem::class.java), + biFactory.createWithValue( + BiType.DAYS_OF_WEEK, + WeekDaysProtocol.getWorkDays(), + DaysOfWeekBuilderItem::class.java + ) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.e_mail), + description = textProvider.getText(R.string.reminder_email_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue(BiType.DATE, LocalDate.now(), DateBuilderItem::class.java), + biFactory.createWithValue(BiType.TIME, LocalTime.now(), TimeBuilderItem::class.java), + biFactory.createWithValue(BiType.EMAIL, "", EmailBuilderItem::class.java), + biFactory.createWithValue( + biType = BiType.EMAIL_SUBJECT, + value = "", + clazz = EmailSubjectBuilderItem::class.java + ) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.application), + description = textProvider.getText(R.string.launch_application), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue(BiType.DATE, LocalDate.now(), DateBuilderItem::class.java), + biFactory.createWithValue(BiType.TIME, LocalTime.now(), TimeBuilderItem::class.java), + biFactory.createWithValue( + biType = BiType.APPLICATION, + value = "", + clazz = ApplicationBuilderItem::class.java + ) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.builder_web_address), + description = textProvider.getText(R.string.open_link), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue(BiType.DATE, LocalDate.now(), DateBuilderItem::class.java), + biFactory.createWithValue(BiType.TIME, LocalTime.now(), TimeBuilderItem::class.java), + biFactory.createWithValue( + biType = BiType.LINK, + value = "", + clazz = WebAddressBuilderItem::class.java + ) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.day_of_month), + description = textProvider.getText(R.string.reminder_by_month_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue( + biType = BiType.DAY_OF_MONTH, + value = LocalDate.now().dayOfMonth, + clazz = DayOfMonthBuilderItem::class.java + ), + biFactory.createWithValue(BiType.TIME, LocalTime.now(), TimeBuilderItem::class.java) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.builder_last_day_of_month), + description = textProvider.getText(R.string.reminder_by_month_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue( + biType = BiType.DAY_OF_MONTH, + value = DayOfMonth.LastDayOfMonth, + clazz = DayOfMonthBuilderItem::class.java + ), + biFactory.createWithValue(BiType.TIME, LocalTime.now(), TimeBuilderItem::class.java) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.yearly), + description = textProvider.getText(R.string.reminder_by_year_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue( + biType = BiType.DAY_OF_YEAR, + value = LocalDate.now().dayOfYear, + clazz = DayOfYearBuilderItem::class.java + ), + biFactory.createWithValue(BiType.TIME, LocalTime.now(), TimeBuilderItem::class.java) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.shopping_list), + description = textProvider.getText(R.string.reminder_shopping_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue( + biType = BiType.SUMMARY, + value = "Buy groceries", + clazz = SummaryBuilderItem::class.java + ), + biFactory.createWithValue( + biType = BiType.SUB_TASKS, + value = listOf( + ShopItem( + summary = "Bread", + position = 0, + createTime = dateTimeManager.getNowGmtDateTime() + ), + ShopItem( + summary = "Juice", + position = 1, + createTime = dateTimeManager.getNowGmtDateTime() + ), + ShopItem( + summary = "Cookies", + position = 2, + createTime = dateTimeManager.getNowGmtDateTime() + ) + ), + clazz = SubTasksBuilderItem::class.java + ) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.builder_arriving_destination), + description = textProvider.getText(R.string.reminder_by_location_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue( + biType = BiType.ARRIVING_COORDINATES, + value = null, + clazz = ArrivingCoordinatesBuilderItem::class.java + ) + ) + ) + ), + createPreset( + name = textProvider.getText(R.string.builder_leaving_place), + description = textProvider.getText(R.string.reminder_by_location_explanations), + scheme = createScheme( + listOfNotNull( + biFactory.createWithValue(BiType.SUMMARY, "", SummaryBuilderItem::class.java), + biFactory.createWithValue( + biType = BiType.LEAVING_COORDINATES, + value = null, + clazz = LeavingCoordinatesBuilderItem::class.java + ) + ) + ) + ) + ) + } + + private fun createPreset( + name: String, + description: String?, + scheme: List + ): RecurPreset { + return RecurPreset( + name = name, + recurObject = "", + type = PresetType.BUILDER, + createdAt = LocalDateTime.now(), + useCount = 0, + builderScheme = scheme, + description = description + ) + } + + private fun createScheme(items: List>): List { + return builderItemsToBuilderPresetAdapter(items) + } +} diff --git a/app/src/main/java/com/elementary/tasks/reminder/create/fragments/recur/RecurBuilderViewModel.kt b/app/src/main/java/com/elementary/tasks/reminder/create/fragments/recur/RecurBuilderViewModel.kt index 792c2628a..7f751113f 100644 --- a/app/src/main/java/com/elementary/tasks/reminder/create/fragments/recur/RecurBuilderViewModel.kt +++ b/app/src/main/java/com/elementary/tasks/reminder/create/fragments/recur/RecurBuilderViewModel.kt @@ -146,7 +146,8 @@ class RecurBuilderViewModel( name = name, type = PresetType.RECUR, createdAt = dateTimeManager.getCurrentDateTime(), - useCount = 1 + useCount = 1, + description = null ) recurPresetRepository.save(preset) analyticsEventSender.send(PresetUsed(PresetAction.CREATE))