open calendar app and weather app in new task

fix #1963
This commit is contained in:
MM20
2026-08-30 16:14:23 +02:00
parent 5bd8b832f4
commit 9b8b083515
2 changed files with 9 additions and 3 deletions

View File

@@ -9,12 +9,12 @@ import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import de.mm20.launcher2.calendar.CalendarRepository import de.mm20.launcher2.calendar.CalendarRepository
import de.mm20.launcher2.searchable.SavableSearchableRepository
import de.mm20.launcher2.ktx.tryStartActivity import de.mm20.launcher2.ktx.tryStartActivity
import de.mm20.launcher2.permissions.PermissionGroup import de.mm20.launcher2.permissions.PermissionGroup
import de.mm20.launcher2.permissions.PermissionsManager import de.mm20.launcher2.permissions.PermissionsManager
import de.mm20.launcher2.search.CalendarEvent import de.mm20.launcher2.search.CalendarEvent
import de.mm20.launcher2.searchable.PinnedLevel import de.mm20.launcher2.searchable.PinnedLevel
import de.mm20.launcher2.searchable.SavableSearchableRepository
import de.mm20.launcher2.searchable.VisibilityLevel import de.mm20.launcher2.searchable.VisibilityLevel
import de.mm20.launcher2.services.favorites.FavoritesService import de.mm20.launcher2.services.favorites.FavoritesService
import de.mm20.launcher2.widgets.CalendarWidget import de.mm20.launcher2.widgets.CalendarWidget
@@ -69,7 +69,9 @@ class CalendarWidgetVM : ViewModel(), KoinComponent {
field = value field = value
val dates = value.flatMap { val dates = value.flatMap {
val startDate = val startDate =
it.startTime?.let { Instant.ofEpochMilli(it).atZone(ZoneId.systemDefault()).toLocalDate() } it.startTime?.let {
Instant.ofEpochMilli(it).atZone(ZoneId.systemDefault()).toLocalDate()
}
val endDate = val endDate =
Instant.ofEpochMilli(it.endTime).atZone(ZoneId.systemDefault()).toLocalDate() Instant.ofEpochMilli(it.endTime).atZone(ZoneId.systemDefault()).toLocalDate()
return@flatMap listOfNotNull( return@flatMap listOfNotNull(
@@ -129,6 +131,7 @@ class CalendarWidgetVM : ViewModel(), KoinComponent {
val endTime = selectedDate.value.atTime(13, 0).toInstant(zoneOffset).toEpochMilli() val endTime = selectedDate.value.atTime(13, 0).toInstant(zoneOffset).toEpochMilli()
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime) intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime)
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime) intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.tryStartActivity(intent) context.tryStartActivity(intent)
} }
@@ -139,6 +142,7 @@ class CalendarWidgetVM : ViewModel(), KoinComponent {
builder.appendPath("time") builder.appendPath("time")
ContentUris.appendId(builder, startMillis) ContentUris.appendId(builder, startMillis)
val intent = Intent(Intent.ACTION_VIEW) val intent = Intent(Intent.ACTION_VIEW)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.setData(builder.build()) .setData(builder.build())
context.tryStartActivity(intent) context.tryStartActivity(intent)
} }
@@ -207,7 +211,8 @@ class CalendarWidgetVM : ViewModel(), KoinComponent {
from = System.currentTimeMillis(), from = System.currentTimeMillis(),
to = System.currentTimeMillis() + 14 * 24 * 60 * 60 * 1000L, to = System.currentTimeMillis() + 14 * 24 * 60 * 60 * 1000L,
excludeAllDayEvents = !config.allDayEvents, excludeAllDayEvents = !config.allDayEvents,
excludeCalendars = config.excludedCalendarIds ?: config.legacyExcludedCalendarIds?.map { "local:$it" } ?: emptyList(), excludeCalendars = config.excludedCalendarIds
?: config.legacyExcludedCalendarIds?.map { "local:$it" } ?: emptyList(),
).collectLatest { events -> ).collectLatest { events ->
searchableRepository.getKeys( searchableRepository.getKeys(
includeTypes = listOf("calendar", "tasks.org", "plugin.calendar"), includeTypes = listOf("calendar", "tasks.org", "plugin.calendar"),

View File

@@ -252,6 +252,7 @@ fun CurrentWeather(
context.packageManager.resolveActivity( context.packageManager.resolveActivity(
Intent(Intent.ACTION_MAIN).also { Intent(Intent.ACTION_MAIN).also {
it.addCategory(Intent.CATEGORY_APP_WEATHER) it.addCategory(Intent.CATEGORY_APP_WEATHER)
it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}, 0 }, 0
) )
} }