diff --git a/app/src/main/java/org/tasks/preferences/DefaultFilterProvider.kt b/app/src/main/java/org/tasks/preferences/DefaultFilterProvider.kt index 7c703f6d7..2f4ff5575 100644 --- a/app/src/main/java/org/tasks/preferences/DefaultFilterProvider.kt +++ b/app/src/main/java/org/tasks/preferences/DefaultFilterProvider.kt @@ -11,6 +11,7 @@ import org.tasks.data.dao.TagDataDao import org.tasks.data.entity.CaldavCalendar.Companion.ACCESS_READ_ONLY import org.tasks.data.entity.CaldavTask import org.tasks.data.entity.Task +import org.tasks.data.getLocalAccount import org.tasks.data.getLocalList import org.tasks.filters.CaldavFilter import org.tasks.filters.CustomFilter @@ -85,8 +86,13 @@ class DefaultFilterProvider @Inject constructor( val filter = caldavDao .getCalendars() .filterNot { it.access == ACCESS_READ_ONLY } - .getOrElse(0) { caldavDao.getLocalList() } - .let { CaldavFilter(calendar = it, account = caldavDao.getAccountByUuid(it.account!!)!!) } + .getOrNull(0) + ?.let { list -> + list.account + ?.let { caldavDao.getAccountByUuid(it) } + ?.let { account -> CaldavFilter(calendar = list, account = account) } + } + ?: CaldavFilter(calendar = caldavDao.getLocalList(), account = caldavDao.getLocalAccount()) defaultList = filter return filter } diff --git a/kmp/src/commonMain/kotlin/org/tasks/data/CaldavDaoExtensions.kt b/kmp/src/commonMain/kotlin/org/tasks/data/CaldavDaoExtensions.kt index 2dc37a54e..e59d05564 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/data/CaldavDaoExtensions.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/data/CaldavDaoExtensions.kt @@ -21,12 +21,13 @@ suspend fun CaldavDao.getLocalList() = mutex.withLock { getLocalList(getLocalAccount()) } -private suspend fun CaldavDao.getLocalAccount() = getAccountByUuid(CaldavDao.LOCAL) ?: CaldavAccount( - accountType = CaldavAccount.TYPE_LOCAL, - uuid = CaldavDao.LOCAL, -).let { - it.copy(id = insert(it)) -} +suspend fun CaldavDao.getLocalAccount() = + getAccountByUuid(CaldavDao.LOCAL) + ?: CaldavAccount( + accountType = CaldavAccount.TYPE_LOCAL, + uuid = CaldavDao.LOCAL, + ) + .let { it.copy(id = insert(it)) } private suspend fun CaldavDao.getLocalList(account: CaldavAccount): CaldavCalendar = getCalendarsByAccount(account.uuid!!).getOrNull(0)