Rename favorites widget
This commit is contained in:
@@ -13,17 +13,15 @@ import de.mm20.launcher2.ktx.isAtLeastApiLevel
|
|||||||
import de.mm20.launcher2.preferences.IconShape
|
import de.mm20.launcher2.preferences.IconShape
|
||||||
import de.mm20.launcher2.preferences.MeasurementSystem
|
import de.mm20.launcher2.preferences.MeasurementSystem
|
||||||
import de.mm20.launcher2.preferences.TimeFormat
|
import de.mm20.launcher2.preferences.TimeFormat
|
||||||
import de.mm20.launcher2.preferences.ui.CardStyle
|
|
||||||
import de.mm20.launcher2.preferences.ui.GridSettings
|
import de.mm20.launcher2.preferences.ui.GridSettings
|
||||||
import de.mm20.launcher2.preferences.ui.LocaleSettings
|
import de.mm20.launcher2.preferences.ui.LocaleSettings
|
||||||
import de.mm20.launcher2.preferences.ui.UiSettings
|
import de.mm20.launcher2.preferences.ui.UiSettings
|
||||||
import de.mm20.launcher2.ui.component.ProvideIconShape
|
import de.mm20.launcher2.ui.component.ProvideIconShape
|
||||||
import de.mm20.launcher2.ui.locals.LocalCardStyle
|
|
||||||
import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled
|
import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled
|
||||||
import de.mm20.launcher2.ui.locals.LocalGridSettings
|
import de.mm20.launcher2.ui.locals.LocalGridSettings
|
||||||
import de.mm20.launcher2.ui.locals.LocalMeasurementSystem
|
import de.mm20.launcher2.ui.locals.LocalMeasurementSystem
|
||||||
import de.mm20.launcher2.ui.locals.LocalTimeFormat
|
import de.mm20.launcher2.ui.locals.LocalTimeFormat
|
||||||
import de.mm20.launcher2.widgets.FavoritesWidget
|
import de.mm20.launcher2.widgets.AppsWidget
|
||||||
import de.mm20.launcher2.widgets.WidgetRepository
|
import de.mm20.launcher2.widgets.WidgetRepository
|
||||||
import kotlinx.coroutines.flow.combine
|
import kotlinx.coroutines.flow.combine
|
||||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||||
@@ -46,7 +44,7 @@ fun ProvideSettings(
|
|||||||
|
|
||||||
val favoritesEnabled by remember {
|
val favoritesEnabled by remember {
|
||||||
combine(
|
combine(
|
||||||
widgetRepository.exists(FavoritesWidget.Type),
|
widgetRepository.exists(AppsWidget.Type),
|
||||||
settings.favoritesEnabled,
|
settings.favoritesEnabled,
|
||||||
) { a, b -> a || b }.distinctUntilChanged()
|
) { a, b -> a || b }.distinctUntilChanged()
|
||||||
}.collectAsState(true)
|
}.collectAsState(true)
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ import de.mm20.launcher2.ui.locals.LocalPreferDarkContentOverWallpaper
|
|||||||
import de.mm20.launcher2.ui.settings.SettingsActivity
|
import de.mm20.launcher2.ui.settings.SettingsActivity
|
||||||
import de.mm20.launcher2.widgets.AppWidget
|
import de.mm20.launcher2.widgets.AppWidget
|
||||||
import de.mm20.launcher2.widgets.CalendarWidget
|
import de.mm20.launcher2.widgets.CalendarWidget
|
||||||
import de.mm20.launcher2.widgets.FavoritesWidget
|
import de.mm20.launcher2.widgets.AppsWidget
|
||||||
import de.mm20.launcher2.widgets.MusicWidget
|
import de.mm20.launcher2.widgets.MusicWidget
|
||||||
import de.mm20.launcher2.widgets.NotesWidget
|
import de.mm20.launcher2.widgets.NotesWidget
|
||||||
import de.mm20.launcher2.widgets.WeatherWidget
|
import de.mm20.launcher2.widgets.WeatherWidget
|
||||||
@@ -148,7 +148,7 @@ fun ConfigureWidgetSheet(
|
|||||||
is WeatherWidget -> ConfigureWeatherWidget(widget, onWidgetUpdated)
|
is WeatherWidget -> ConfigureWeatherWidget(widget, onWidgetUpdated)
|
||||||
is AppWidget -> ConfigureAppWidget(widget, onWidgetUpdated)
|
is AppWidget -> ConfigureAppWidget(widget, onWidgetUpdated)
|
||||||
is CalendarWidget -> ConfigureCalendarWidget(widget, onWidgetUpdated)
|
is CalendarWidget -> ConfigureCalendarWidget(widget, onWidgetUpdated)
|
||||||
is FavoritesWidget -> ConfigureFavoritesWidget(widget, onWidgetUpdated)
|
is AppsWidget -> ConfigureFavoritesWidget(widget, onWidgetUpdated)
|
||||||
is MusicWidget -> ConfigureMusicWidget(widget, onWidgetUpdated)
|
is MusicWidget -> ConfigureMusicWidget(widget, onWidgetUpdated)
|
||||||
is NotesWidget -> ConfigureNotesWidget(widget, onWidgetUpdated)
|
is NotesWidget -> ConfigureNotesWidget(widget, onWidgetUpdated)
|
||||||
}
|
}
|
||||||
@@ -212,8 +212,8 @@ fun ColumnScope.ConfigureWeatherWidget(
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ColumnScope.ConfigureFavoritesWidget(
|
fun ColumnScope.ConfigureFavoritesWidget(
|
||||||
widget: FavoritesWidget,
|
widget: AppsWidget,
|
||||||
onWidgetUpdated: (FavoritesWidget) -> Unit,
|
onWidgetUpdated: (AppsWidget) -> Unit,
|
||||||
) {
|
) {
|
||||||
val customAttrRepository = koinInject<CustomAttributesRepository>()
|
val customAttrRepository = koinInject<CustomAttributesRepository>()
|
||||||
|
|
||||||
@@ -662,7 +662,7 @@ fun ColumnScope.ConfigureAppWidget(
|
|||||||
is WeatherWidget -> it.copy(id = widget.id)
|
is WeatherWidget -> it.copy(id = widget.id)
|
||||||
is MusicWidget -> it.copy(id = widget.id)
|
is MusicWidget -> it.copy(id = widget.id)
|
||||||
is CalendarWidget -> it.copy(id = widget.id)
|
is CalendarWidget -> it.copy(id = widget.id)
|
||||||
is FavoritesWidget -> it.copy(id = widget.id)
|
is AppsWidget -> it.copy(id = widget.id)
|
||||||
is NotesWidget -> it.copy(id = widget.id)
|
is NotesWidget -> it.copy(id = widget.id)
|
||||||
}
|
}
|
||||||
onWidgetUpdated(updatedWidget)
|
onWidgetUpdated(updatedWidget)
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ import de.mm20.launcher2.ui.component.BottomSheetDialog
|
|||||||
import de.mm20.launcher2.widgets.AppWidget
|
import de.mm20.launcher2.widgets.AppWidget
|
||||||
import de.mm20.launcher2.widgets.AppWidgetConfig
|
import de.mm20.launcher2.widgets.AppWidgetConfig
|
||||||
import de.mm20.launcher2.widgets.CalendarWidget
|
import de.mm20.launcher2.widgets.CalendarWidget
|
||||||
import de.mm20.launcher2.widgets.FavoritesWidget
|
import de.mm20.launcher2.widgets.AppsWidget
|
||||||
import de.mm20.launcher2.widgets.MusicWidget
|
import de.mm20.launcher2.widgets.MusicWidget
|
||||||
import de.mm20.launcher2.widgets.NotesWidget
|
import de.mm20.launcher2.widgets.NotesWidget
|
||||||
import de.mm20.launcher2.widgets.WeatherWidget
|
import de.mm20.launcher2.widgets.WeatherWidget
|
||||||
@@ -177,6 +177,7 @@ class BindAndConfigureAppWidgetActivity : Activity() {
|
|||||||
cancel()
|
cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
Log.w("MM20", "Unknown request code $requestCode")
|
Log.w("MM20", "Unknown request code $requestCode")
|
||||||
cancel()
|
cancel()
|
||||||
@@ -186,7 +187,10 @@ class BindAndConfigureAppWidgetActivity : Activity() {
|
|||||||
|
|
||||||
private fun finishWithResult(widgetId: Int) {
|
private fun finishWithResult(widgetId: Int) {
|
||||||
val data = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId)
|
val data = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId)
|
||||||
data.putExtra(ExtraAppWidgetProviderInfo, intent.getParcelableExtra<AppWidgetProviderInfo>(ExtraAppWidgetProviderInfo))
|
data.putExtra(
|
||||||
|
ExtraAppWidgetProviderInfo,
|
||||||
|
intent.getParcelableExtra<AppWidgetProviderInfo>(ExtraAppWidgetProviderInfo)
|
||||||
|
)
|
||||||
setResult(RESULT_OK, data)
|
setResult(RESULT_OK, data)
|
||||||
appWidgetId = null
|
appWidgetId = null
|
||||||
finish()
|
finish()
|
||||||
@@ -230,7 +234,10 @@ private class BindAndConfigureAppWidgetContract(
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
Log.e("MM20", "Could not parse widget result: widgetId=$widgetId, widgetProviderInfo=$widgetProviderInfo")
|
Log.e(
|
||||||
|
"MM20",
|
||||||
|
"Could not parse widget result: widgetId=$widgetId, widgetProviderInfo=$widgetProviderInfo"
|
||||||
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e("MM20", "Widget result was not OK")
|
Log.e("MM20", "Widget result was not OK")
|
||||||
@@ -322,7 +329,7 @@ fun WidgetPickerSheet(
|
|||||||
WeatherWidget.Type -> WeatherWidget(id)
|
WeatherWidget.Type -> WeatherWidget(id)
|
||||||
CalendarWidget.Type -> CalendarWidget(id)
|
CalendarWidget.Type -> CalendarWidget(id)
|
||||||
MusicWidget.Type -> MusicWidget(id)
|
MusicWidget.Type -> MusicWidget(id)
|
||||||
FavoritesWidget.Type -> FavoritesWidget(id)
|
AppsWidget.Type -> AppsWidget(id)
|
||||||
NotesWidget.Type -> NotesWidget(id)
|
NotesWidget.Type -> NotesWidget(id)
|
||||||
else -> return@OutlinedCard
|
else -> return@OutlinedCard
|
||||||
}
|
}
|
||||||
@@ -336,14 +343,15 @@ fun WidgetPickerSheet(
|
|||||||
Icon(
|
Icon(
|
||||||
painter =
|
painter =
|
||||||
painterResource(
|
painterResource(
|
||||||
when (it.type) {
|
when (it.type) {
|
||||||
WeatherWidget.Type -> R.drawable.light_mode_24px
|
WeatherWidget.Type -> R.drawable.light_mode_24px
|
||||||
CalendarWidget.Type -> R.drawable.today_24px
|
CalendarWidget.Type -> R.drawable.today_24px
|
||||||
MusicWidget.Type -> R.drawable.music_note_24px
|
MusicWidget.Type -> R.drawable.music_note_24px
|
||||||
FavoritesWidget.Type -> R.drawable.star_24px
|
AppsWidget.Type -> R.drawable.apps_24px
|
||||||
NotesWidget.Type -> R.drawable.sticky_note_2_24px
|
NotesWidget.Type -> R.drawable.sticky_note_2_24px
|
||||||
else -> R.drawable.widgets_24px
|
else -> R.drawable.widgets_24px
|
||||||
}),
|
}
|
||||||
|
),
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier.padding(end = 16.dp)
|
modifier = Modifier.padding(end = 16.dp)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -34,14 +34,14 @@ import de.mm20.launcher2.ui.component.LauncherCard
|
|||||||
import de.mm20.launcher2.ui.launcher.sheets.ConfigureWidgetSheet
|
import de.mm20.launcher2.ui.launcher.sheets.ConfigureWidgetSheet
|
||||||
import de.mm20.launcher2.ui.launcher.widgets.calendar.CalendarWidget
|
import de.mm20.launcher2.ui.launcher.widgets.calendar.CalendarWidget
|
||||||
import de.mm20.launcher2.ui.launcher.widgets.external.AppWidget
|
import de.mm20.launcher2.ui.launcher.widgets.external.AppWidget
|
||||||
import de.mm20.launcher2.ui.launcher.widgets.favorites.FavoritesWidget
|
import de.mm20.launcher2.ui.launcher.widgets.favorites.AppsWidget
|
||||||
import de.mm20.launcher2.ui.launcher.widgets.music.MusicWidget
|
import de.mm20.launcher2.ui.launcher.widgets.music.MusicWidget
|
||||||
import de.mm20.launcher2.ui.launcher.widgets.notes.NotesWidget
|
import de.mm20.launcher2.ui.launcher.widgets.notes.NotesWidget
|
||||||
import de.mm20.launcher2.ui.launcher.widgets.weather.WeatherWidget
|
import de.mm20.launcher2.ui.launcher.widgets.weather.WeatherWidget
|
||||||
import de.mm20.launcher2.ui.theme.transparency.transparency
|
import de.mm20.launcher2.ui.theme.transparency.transparency
|
||||||
import de.mm20.launcher2.widgets.AppWidget
|
import de.mm20.launcher2.widgets.AppWidget
|
||||||
import de.mm20.launcher2.widgets.CalendarWidget
|
import de.mm20.launcher2.widgets.CalendarWidget
|
||||||
import de.mm20.launcher2.widgets.FavoritesWidget
|
import de.mm20.launcher2.widgets.AppsWidget
|
||||||
import de.mm20.launcher2.widgets.MusicWidget
|
import de.mm20.launcher2.widgets.MusicWidget
|
||||||
import de.mm20.launcher2.widgets.NotesWidget
|
import de.mm20.launcher2.widgets.NotesWidget
|
||||||
import de.mm20.launcher2.widgets.WeatherWidget
|
import de.mm20.launcher2.widgets.WeatherWidget
|
||||||
@@ -106,7 +106,7 @@ fun WidgetItem(
|
|||||||
is WeatherWidget -> stringResource(R.string.widget_name_weather)
|
is WeatherWidget -> stringResource(R.string.widget_name_weather)
|
||||||
is MusicWidget -> stringResource(R.string.widget_name_music)
|
is MusicWidget -> stringResource(R.string.widget_name_music)
|
||||||
is CalendarWidget -> stringResource(R.string.widget_name_calendar)
|
is CalendarWidget -> stringResource(R.string.widget_name_calendar)
|
||||||
is FavoritesWidget -> stringResource(R.string.widget_name_favorites)
|
is AppsWidget -> stringResource(R.string.widget_name_apps)
|
||||||
is NotesWidget -> stringResource(R.string.widget_name_notes)
|
is NotesWidget -> stringResource(R.string.widget_name_notes)
|
||||||
is AppWidget -> remember(widget.config.widgetId) {
|
is AppWidget -> remember(widget.config.widgetId) {
|
||||||
appWidget?.loadLabel(
|
appWidget?.loadLabel(
|
||||||
@@ -152,8 +152,8 @@ fun WidgetItem(
|
|||||||
CalendarWidget(widget)
|
CalendarWidget(widget)
|
||||||
}
|
}
|
||||||
|
|
||||||
is FavoritesWidget -> {
|
is AppsWidget -> {
|
||||||
FavoritesWidget(widget)
|
AppsWidget(widget)
|
||||||
}
|
}
|
||||||
|
|
||||||
is NotesWidget -> {
|
is NotesWidget -> {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package de.mm20.launcher2.ui.launcher.widgets.external
|
package de.mm20.launcher2.ui.launcher.widgets.external
|
||||||
|
|
||||||
import android.appwidget.AppWidgetHost
|
|
||||||
import android.appwidget.AppWidgetManager
|
import android.appwidget.AppWidgetManager
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
@@ -21,21 +20,18 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.isUnspecified
|
|
||||||
import de.mm20.launcher2.ui.R
|
import de.mm20.launcher2.ui.R
|
||||||
import de.mm20.launcher2.ui.component.Banner
|
import de.mm20.launcher2.ui.component.Banner
|
||||||
import de.mm20.launcher2.ui.ktx.toPixels
|
|
||||||
import de.mm20.launcher2.ui.launcher.sheets.WidgetPickerSheet
|
import de.mm20.launcher2.ui.launcher.sheets.WidgetPickerSheet
|
||||||
import de.mm20.launcher2.ui.locals.LocalDarkTheme
|
import de.mm20.launcher2.ui.locals.LocalDarkTheme
|
||||||
import de.mm20.launcher2.ui.locals.LocalPreferDarkContentOverWallpaper
|
import de.mm20.launcher2.ui.locals.LocalPreferDarkContentOverWallpaper
|
||||||
import de.mm20.launcher2.widgets.AppWidget
|
import de.mm20.launcher2.widgets.AppWidget
|
||||||
import de.mm20.launcher2.widgets.CalendarWidget
|
import de.mm20.launcher2.widgets.CalendarWidget
|
||||||
import de.mm20.launcher2.widgets.FavoritesWidget
|
import de.mm20.launcher2.widgets.AppsWidget
|
||||||
import de.mm20.launcher2.widgets.MusicWidget
|
import de.mm20.launcher2.widgets.MusicWidget
|
||||||
import de.mm20.launcher2.widgets.NotesWidget
|
import de.mm20.launcher2.widgets.NotesWidget
|
||||||
import de.mm20.launcher2.widgets.WeatherWidget
|
import de.mm20.launcher2.widgets.WeatherWidget
|
||||||
import de.mm20.launcher2.widgets.Widget
|
import de.mm20.launcher2.widgets.Widget
|
||||||
import kotlin.math.roundToInt
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AppWidget(
|
fun AppWidget(
|
||||||
@@ -84,7 +80,7 @@ fun AppWidget(
|
|||||||
is WeatherWidget -> it.copy(id = widget.id)
|
is WeatherWidget -> it.copy(id = widget.id)
|
||||||
is MusicWidget -> it.copy(id = widget.id)
|
is MusicWidget -> it.copy(id = widget.id)
|
||||||
is CalendarWidget -> it.copy(id = widget.id)
|
is CalendarWidget -> it.copy(id = widget.id)
|
||||||
is FavoritesWidget -> it.copy(id = widget.id)
|
is AppsWidget -> it.copy(id = widget.id)
|
||||||
is NotesWidget -> it.copy(id = widget.id)
|
is NotesWidget -> it.copy(id = widget.id)
|
||||||
}
|
}
|
||||||
onWidgetUpdate(updatedWidget)
|
onWidgetUpdate(updatedWidget)
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ import de.mm20.launcher2.ui.R
|
|||||||
import de.mm20.launcher2.ui.common.FavoritesTagSelector
|
import de.mm20.launcher2.ui.common.FavoritesTagSelector
|
||||||
import de.mm20.launcher2.ui.component.Banner
|
import de.mm20.launcher2.ui.component.Banner
|
||||||
import de.mm20.launcher2.ui.launcher.search.common.grid.SearchResultGrid
|
import de.mm20.launcher2.ui.launcher.search.common.grid.SearchResultGrid
|
||||||
import de.mm20.launcher2.widgets.FavoritesWidget
|
import de.mm20.launcher2.widgets.AppsWidget
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun FavoritesWidget(widget: FavoritesWidget) {
|
fun AppsWidget(widget: AppsWidget) {
|
||||||
val viewModel: FavoritesWidgetVM = viewModel(key = "favorites-widget-${widget.id}")
|
val viewModel: AppsWidgetVM = viewModel(key = "favorites-widget-${widget.id}")
|
||||||
val favorites by remember { viewModel.favorites }.collectAsState(emptyList())
|
val favorites by remember { viewModel.favorites }.collectAsState(emptyList())
|
||||||
val pinnedTags by viewModel.pinnedTags.collectAsState(emptyList())
|
val pinnedTags by viewModel.pinnedTags.collectAsState(emptyList())
|
||||||
val selectedTag by viewModel.selectedTag.collectAsState(null)
|
val selectedTag by viewModel.selectedTag.collectAsState(null)
|
||||||
@@ -1,21 +1,18 @@
|
|||||||
package de.mm20.launcher2.ui.launcher.widgets.favorites
|
package de.mm20.launcher2.ui.launcher.widgets.favorites
|
||||||
|
|
||||||
import de.mm20.launcher2.preferences.ui.GridSettings
|
|
||||||
import de.mm20.launcher2.preferences.ui.UiSettings
|
|
||||||
import de.mm20.launcher2.services.widgets.WidgetsService
|
import de.mm20.launcher2.services.widgets.WidgetsService
|
||||||
import de.mm20.launcher2.ui.common.FavoritesVM
|
import de.mm20.launcher2.ui.common.FavoritesVM
|
||||||
import de.mm20.launcher2.widgets.FavoritesWidget
|
import de.mm20.launcher2.widgets.AppsWidget
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.combine
|
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import org.koin.core.component.inject
|
import org.koin.core.component.inject
|
||||||
|
|
||||||
class FavoritesWidgetVM : FavoritesVM() {
|
class AppsWidgetVM : FavoritesVM() {
|
||||||
|
|
||||||
private val widgetsService: WidgetsService by inject()
|
private val widgetsService: WidgetsService by inject()
|
||||||
|
|
||||||
private val widget = MutableStateFlow<FavoritesWidget?>(null)
|
private val widget = MutableStateFlow<AppsWidget?>(null)
|
||||||
override val tagsExpanded = widget.map { it?.config?.tagsMultiline == true }
|
override val tagsExpanded = widget.map { it?.config?.tagsMultiline == true }
|
||||||
override val compactTags: Flow<Boolean> = widget.map { it?.config?.compactTags == true }
|
override val compactTags: Flow<Boolean> = widget.map { it?.config?.compactTags == true }
|
||||||
|
|
||||||
@@ -28,7 +25,7 @@ class FavoritesWidgetVM : FavoritesVM() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateWidget(widget: FavoritesWidget) {
|
fun updateWidget(widget: AppsWidget) {
|
||||||
selectTag(null)
|
selectTag(null)
|
||||||
if (widget.config.customTags) {
|
if (widget.config.customTags) {
|
||||||
selectTag(widget.config.tagList.firstOrNull())
|
selectTag(widget.config.tagList.firstOrNull())
|
||||||
@@ -223,7 +223,7 @@
|
|||||||
<string name="widget_name_weather">Weather</string>
|
<string name="widget_name_weather">Weather</string>
|
||||||
<string name="widget_name_calendar">Calendar</string>
|
<string name="widget_name_calendar">Calendar</string>
|
||||||
<string name="widget_name_music">Media</string>
|
<string name="widget_name_music">Media</string>
|
||||||
<string name="widget_name_favorites">Favorites</string>
|
<string name="widget_name_apps">Apps</string>
|
||||||
<string name="widget_name_notes">Note</string>
|
<string name="widget_name_notes">Note</string>
|
||||||
<string name="widget_name_unknown">Unknown</string>
|
<string name="widget_name_unknown">Unknown</string>
|
||||||
<string name="widget_add_widget">Add widget</string>
|
<string name="widget_add_widget">Add widget</string>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ data class FavoritesWidgetConfig(
|
|||||||
val tagList: List<String> = emptyList()
|
val tagList: List<String> = emptyList()
|
||||||
)
|
)
|
||||||
|
|
||||||
data class FavoritesWidget(
|
data class AppsWidget(
|
||||||
override val id: UUID,
|
override val id: UUID,
|
||||||
val config: FavoritesWidgetConfig = FavoritesWidgetConfig(),
|
val config: FavoritesWidgetConfig = FavoritesWidgetConfig(),
|
||||||
) : Widget() {
|
) : Widget() {
|
||||||
@@ -43,11 +43,11 @@ sealed class Widget {
|
|||||||
?: CalendarWidgetConfig()
|
?: CalendarWidgetConfig()
|
||||||
CalendarWidget(entity.id, config)
|
CalendarWidget(entity.id, config)
|
||||||
}
|
}
|
||||||
FavoritesWidget.Type -> {
|
AppsWidget.Type -> {
|
||||||
val config: FavoritesWidgetConfig =
|
val config: FavoritesWidgetConfig =
|
||||||
Json.decodeFromStringOrNull(entity.config?.takeIf { it.isNotBlank() })
|
Json.decodeFromStringOrNull(entity.config?.takeIf { it.isNotBlank() })
|
||||||
?: FavoritesWidgetConfig()
|
?: FavoritesWidgetConfig()
|
||||||
FavoritesWidget(entity.id, config)
|
AppsWidget(entity.id, config)
|
||||||
}
|
}
|
||||||
AppWidget.Type -> {
|
AppWidget.Type -> {
|
||||||
val config: AppWidgetConfig =
|
val config: AppWidgetConfig =
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import android.content.pm.LauncherApps
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import de.mm20.launcher2.widgets.CalendarWidget
|
import de.mm20.launcher2.widgets.CalendarWidget
|
||||||
import de.mm20.launcher2.widgets.FavoritesWidget
|
import de.mm20.launcher2.widgets.AppsWidget
|
||||||
import de.mm20.launcher2.widgets.MusicWidget
|
import de.mm20.launcher2.widgets.MusicWidget
|
||||||
import de.mm20.launcher2.widgets.NotesWidget
|
import de.mm20.launcher2.widgets.NotesWidget
|
||||||
import de.mm20.launcher2.widgets.WeatherWidget
|
import de.mm20.launcher2.widgets.WeatherWidget
|
||||||
@@ -63,8 +63,8 @@ class WidgetsService(
|
|||||||
label = context.getString(R.string.widget_name_calendar),
|
label = context.getString(R.string.widget_name_calendar),
|
||||||
),
|
),
|
||||||
BuiltInWidgetInfo(
|
BuiltInWidgetInfo(
|
||||||
type = FavoritesWidget.Type,
|
type = AppsWidget.Type,
|
||||||
label = context.getString(R.string.widget_name_favorites),
|
label = context.getString(R.string.widget_name_apps),
|
||||||
),
|
),
|
||||||
BuiltInWidgetInfo(
|
BuiltInWidgetInfo(
|
||||||
type = NotesWidget.Type,
|
type = NotesWidget.Type,
|
||||||
@@ -85,7 +85,7 @@ class WidgetsService(
|
|||||||
|
|
||||||
fun isFavoritesWidgetFirst(): Flow<Boolean> {
|
fun isFavoritesWidgetFirst(): Flow<Boolean> {
|
||||||
return widgetRepository.get(limit = 1).map {
|
return widgetRepository.get(limit = 1).map {
|
||||||
it.firstOrNull() is FavoritesWidget
|
it.firstOrNull() is AppsWidget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user