diff --git a/.gitignore b/.gitignore index 90ec73986..dc6d3ced4 100644 --- a/.gitignore +++ b/.gitignore @@ -260,6 +260,7 @@ obj/ .idea/sqlDataSources.xml .idea/dynamic.xml .idea/uiDesigner.xml +.idea/runConfigurations.xml # OS-specific files .DS_Store? diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/base/ProvideSettings.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/base/ProvideSettings.kt index f973ac6d3..bce0eb644 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/base/ProvideSettings.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/base/ProvideSettings.kt @@ -2,7 +2,6 @@ package de.mm20.launcher2.ui.base import androidx.compose.runtime.* import de.mm20.launcher2.preferences.IconShape -import de.mm20.launcher2.preferences.LegacySettings import de.mm20.launcher2.preferences.ui.CardStyle import de.mm20.launcher2.preferences.ui.GridSettings import de.mm20.launcher2.preferences.ui.UiSettings diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/FailedGestureSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/FailedGestureSheet.kt index f119e7e89..62dad4617 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/FailedGestureSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/FailedGestureSheet.kt @@ -15,7 +15,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import de.mm20.launcher2.preferences.GestureAction -import de.mm20.launcher2.preferences.LegacySettings import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.BottomSheetDialog import de.mm20.launcher2.ui.component.MissingPermissionBanner diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/cards/CardsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/cards/CardsSettingsScreen.kt index d7be6d344..1d8b9f11b 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/cards/CardsSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/cards/CardsSettingsScreen.kt @@ -15,7 +15,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import de.mm20.launcher2.preferences.LegacySettings import de.mm20.launcher2.preferences.SurfaceShape import de.mm20.launcher2.preferences.ui.CardStyle import de.mm20.launcher2.ui.R diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/gestures/GestureSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/gestures/GestureSettingsScreen.kt index 0c5152c09..0e897a6b9 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/gestures/GestureSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/gestures/GestureSettingsScreen.kt @@ -29,7 +29,6 @@ import de.mm20.launcher2.icons.LauncherIcon import de.mm20.launcher2.ktx.isAtLeastApiLevel import de.mm20.launcher2.preferences.BaseLayout import de.mm20.launcher2.preferences.GestureAction -import de.mm20.launcher2.preferences.LegacySettings.LayoutSettings.Layout import de.mm20.launcher2.search.SavableSearchable import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.common.SearchablePicker diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreen.kt index a73d44d6e..c85003231 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreen.kt @@ -26,7 +26,6 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import com.google.accompanist.pager.HorizontalPagerIndicator -import de.mm20.launcher2.preferences.LegacySettings import de.mm20.launcher2.preferences.SearchBarColors import de.mm20.launcher2.preferences.SearchBarStyle import de.mm20.launcher2.preferences.SystemBarColors diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreenVM.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreenVM.kt index c3f2aceff..c5f8a03bc 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreenVM.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreenVM.kt @@ -13,7 +13,6 @@ import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import de.mm20.launcher2.ktx.isAtLeastApiLevel -import de.mm20.launcher2.preferences.LegacySettings import de.mm20.launcher2.preferences.ScreenOrientation import de.mm20.launcher2.preferences.SearchBarColors import de.mm20.launcher2.preferences.SearchBarStyle diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/theme/colorscheme/Custom.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/theme/colorscheme/Custom.kt index a0d018d8c..52235e6d4 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/theme/colorscheme/Custom.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/theme/colorscheme/Custom.kt @@ -10,8 +10,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.core.content.ContextCompat -import androidx.datastore.core.DataStore -import de.mm20.launcher2.preferences.LegacySettings import de.mm20.launcher2.preferences.ui.UiSettings import de.mm20.launcher2.themes.CorePalette import de.mm20.launcher2.themes.DefaultDarkColorScheme @@ -22,9 +20,7 @@ import de.mm20.launcher2.themes.Theme import de.mm20.launcher2.themes.get import de.mm20.launcher2.themes.merge import de.mm20.launcher2.ui.locals.LocalWallpaperColors -import kotlinx.coroutines.flow.map import org.koin.androidx.compose.inject -import org.koin.core.component.inject @Composable fun lightColorSchemeOf(theme: Theme): ColorScheme { @@ -113,44 +109,3 @@ fun systemCorePalette(): CorePalette { ) } } - -fun CustomColorScheme(colors: LegacySettings.AppearanceSettings.CustomColors.Scheme): ColorScheme { - return ColorScheme( - primary = Color(colors.primary), - onPrimary = Color(colors.onPrimary), - primaryContainer = Color(colors.primaryContainer), - onPrimaryContainer = Color(colors.onPrimaryContainer), - secondary = Color(colors.secondary), - onSecondary = Color(colors.onSecondary), - secondaryContainer = Color(colors.secondaryContainer), - onSecondaryContainer = Color(colors.onSecondaryContainer), - tertiary = Color(colors.tertiary), - onTertiary = Color(colors.onTertiary), - tertiaryContainer = Color(colors.tertiaryContainer), - onTertiaryContainer = Color(colors.onTertiaryContainer), - background = Color(colors.background), - onBackground = Color(colors.onBackground), - surface = Color(colors.surface), - onSurface = Color(colors.onSurface), - surfaceVariant = Color(colors.surfaceVariant), - onSurfaceVariant = Color(colors.onSurfaceVariant), - outline = Color(colors.outline), - inverseSurface = Color(colors.inverseSurface), - inverseOnSurface = Color(colors.inverseOnSurface), - inversePrimary = Color(colors.inversePrimary), - surfaceTint = Color(colors.surfaceTint), - error = Color(colors.error), - onError = Color(colors.onError), - errorContainer = Color(colors.errorContainer), - onErrorContainer = Color(colors.onErrorContainer), - outlineVariant = Color(colors.outlineVariant), - scrim = Color(colors.scrim), - surfaceBright = Color(colors.surfaceBright), - surfaceDim = Color(colors.surfaceDim), - surfaceContainer = Color(colors.surfaceContainer), - surfaceContainerHigh = Color(colors.surfaceContainerHigh), - surfaceContainerHighest = Color(colors.surfaceContainerHighest), - surfaceContainerLow = Color(colors.surfaceContainerLow), - surfaceContainerLowest = Color(colors.surfaceContainerLowest), - ) -} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 371660a65..55bf6e3ff 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,6 @@ plugins { alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.plugin.serialization) apply false alias(libs.plugins.ksp) apply false - alias(libs.plugins.protobuf) apply false alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.dokka) apply true diff --git a/core/preferences/build.gradle.kts b/core/preferences/build.gradle.kts index c4350aa95..979b749c4 100644 --- a/core/preferences/build.gradle.kts +++ b/core/preferences/build.gradle.kts @@ -1,9 +1,6 @@ -import com.google.protobuf.gradle.* - plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) - alias(libs.plugins.protobuf) alias(libs.plugins.kotlin.plugin.serialization) } @@ -37,32 +34,12 @@ android { namespace = "de.mm20.launcher2.preferences" } -protobuf { - protoc { - artifact = libs.protobuf.protoc.get().toString() - } - - // Generates the java Protobuf-lite code for the Protobufs in this project. See - // https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation - // for more information. - generateProtoTasks { - all().forEach { task -> - task.plugins { - create("java") { - option("lite") - } - } - } - } -} - dependencies { implementation(libs.kotlin.stdlib) implementation(libs.kotlinx.serialization.json) implementation(libs.androidx.core) implementation(libs.androidx.appcompat) api(libs.androidx.datastore) - api(libs.protobuf.javalite) implementation(libs.koin.android) implementation(project(":core:ktx")) diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/Defaults.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/Defaults.kt deleted file mode 100644 index 73ff5192c..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/Defaults.kt +++ /dev/null @@ -1,221 +0,0 @@ -package de.mm20.launcher2.preferences - -import android.content.Context -import androidx.core.graphics.blue -import de.mm20.launcher2.ktx.isAtLeastApiLevel -import de.mm20.launcher2.preferences.LegacySettings.SearchBarSettings.SearchBarColors -import de.mm20.launcher2.preferences.ktx.toSettingsColorsScheme -import scheme.Scheme -import java.util.UUID - -fun createFactorySettings(context: Context): LegacySettings { - return LegacySettings.newBuilder() - .setAppearance( - LegacySettings.AppearanceSettings - .newBuilder() - .setTheme(LegacySettings.AppearanceSettings.Theme.System) - .setDimWallpaper(false) - .setBlurWallpaper(true) - .setBlurWallpaperRadius(32) - .setThemeId(UUID(0L, 0L).toString()) - .setFont(LegacySettings.AppearanceSettings.Font.Outfit) - .build() - ) - .setWeather( - LegacySettings.WeatherSettings - .newBuilder() - .setProvider(LegacySettings.WeatherSettings.WeatherProvider.MetNo) - .setImperialUnits(context.resources.getBoolean(R.bool.default_imperialUnits)) - .build() - ) - .setMusicWidget( - LegacySettings.MusicWidgetSettings - .newBuilder() - .build() - ) - .setCalendarWidget( - LegacySettings.CalendarWidgetSettings - .newBuilder() - .setHideAlldayEvents(false) - ) - .setClockWidget( - LegacySettings.ClockWidgetSettings - .newBuilder() - .setLayout(LegacySettings.ClockWidgetSettings.ClockWidgetLayout.Vertical) - .setClockStyle(LegacySettings.ClockWidgetSettings.ClockStyle.DigitalClock1) - .setColor(LegacySettings.ClockWidgetSettings.ClockWidgetColors.Auto) - .setAlarmPart(true) - .setBatteryPart(true) - .setMusicPart(true) - .setDatePart(true) - .setFavoritesPart(false) - .setFillHeight(true) - .setAlignment(LegacySettings.ClockWidgetSettings.ClockWidgetAlignment.Bottom) - .build() - ) - .setFavorites( - LegacySettings.FavoritesSettings - .newBuilder() - .setEnabled(true) - .setFrequentlyUsed(true) - .setFrequentlyUsedRows(1) - .setEditButton(true) - ) - .setFileSearch( - LegacySettings.FilesSearchSettings - .newBuilder() - .setLocalFiles(true) - .setNextcloud(false) - .setGdrive(false) - .setOnedrive(false) - .setNextcloud(false) - ) - .setContactsSearch( - LegacySettings.ContactsSearchSettings - .newBuilder() - .setEnabled(true) - ) - .setCalendarSearch( - LegacySettings.CalendarSearchSettings - .newBuilder() - .setEnabled(true) - ) - .setAppShortcutSearch( - LegacySettings.AppShortcutSearchSettings - .newBuilder() - .setEnabled(true) - ) - .setCalculatorSearch( - LegacySettings.CalculatorSearchSettings - .newBuilder() - .setEnabled(true) - ) - .setUnitConverterSearch( - LegacySettings.UnitConverterSearchSettings - .newBuilder() - .setEnabled(true) - .setCurrencies(true) - ) - .setWikipediaSearch( - LegacySettings.WikipediaSearchSettings - .newBuilder() - .setEnabled(false) - .setImages(false) - .setCustomUrl("") - ) - .setWebsiteSearch( - LegacySettings.WebsiteSearchSettings - .newBuilder() - .setEnabled(false) - ) - .setWebSearch( - LegacySettings.WebSearchSettings - .newBuilder() - .setEnabled(true) - ) - .setBadges( - LegacySettings.BadgeSettings - .newBuilder() - .setNotifications(true) - .setCloudFiles(true) - .setShortcuts(true) - .setSuspendedApps(true) - ) - .setGrid( - LegacySettings.GridSettings.newBuilder() - .setColumnCount(context.resources.getInteger(R.integer.config_columnCount)) - .setIconSize(48) - .setShowLabels(true) - .build() - ) - .setSearchBar( - LegacySettings.SearchBarSettings.newBuilder() - .setSearchBarStyle(LegacySettings.SearchBarSettings.SearchBarStyle.Transparent) - .setAutoFocus(true) - .setLaunchOnEnter(true) - .setColor(SearchBarColors.Auto) - .setHiddenItemsButton(true) - .build() - ) - .setIcons( - LegacySettings.IconSettings.newBuilder() - .setAdaptify(true) - .setShape(LegacySettings.IconSettings.IconShape.PlatformDefault) - .setThemedIcons(false) - .setIconPack("") - .setIconPackThemed(true) - ) - .setEasterEgg(false) - .setSystemBars( - LegacySettings.SystemBarsSettings.newBuilder() - .setNavBarColor(LegacySettings.SystemBarsSettings.SystemBarColors.Auto) - .setStatusBarColor(LegacySettings.SystemBarsSettings.SystemBarColors.Auto) - .setHideStatusBar(false) - .setHideNavBar(false) - ) - .setCards( - LegacySettings.CardSettings.newBuilder() - .setBorderWidth(0) - .setRadius(12) - .setOpacity(1f) - ) - .setWidgets( - LegacySettings.WidgetSettings.newBuilder() - .setEditButton(true) - ) - .setLayout( - LegacySettings.LayoutSettings.newBuilder() - .setBaseLayout(LegacySettings.LayoutSettings.Layout.PullDown) - .setBottomSearchBar(false) - .setReverseSearchResults(false) - .setFixedRotation(false) - ) - .setGestures( - LegacySettings.GestureSettings.newBuilder() - .setDoubleTap( - if (isAtLeastApiLevel(28)) { - LegacySettings.GestureSettings.GestureAction.LockScreen - } else { - LegacySettings.GestureSettings.GestureAction.None - }) - .setLongPress(LegacySettings.GestureSettings.GestureAction.None) - .setSwipeDown(LegacySettings.GestureSettings.GestureAction.OpenNotificationDrawer) - .setSwipeLeft(LegacySettings.GestureSettings.GestureAction.None) - .setSwipeRight(LegacySettings.GestureSettings.GestureAction.None) - ) - .setResultOrdering( - LegacySettings.SearchResultOrderingSettings.newBuilder() - .setOrdering(LegacySettings.SearchResultOrderingSettings.Ordering.Weighted) - .setWeightFactor(LegacySettings.SearchResultOrderingSettings.WeightFactor.Default) - ) - .setAnimations( - LegacySettings.AnimationSettings.newBuilder() - .setCharging(true) - ) - .build() -} - -internal val DefaultCustomColorsBase: LegacySettings.AppearanceSettings.CustomColors.BaseColors - get() { - val scheme = Scheme.light(0xFFACE330.toInt()) - return LegacySettings.AppearanceSettings.CustomColors.BaseColors.newBuilder() - .setAccent1(scheme.primary) - .setAccent2(scheme.secondary) - .setAccent3(scheme.tertiary) - .setNeutral1(scheme.surface) - .setNeutral2(scheme.surfaceVariant) - .setError(scheme.error) - .build() - } - -internal val DefaultLightCustomColorScheme: LegacySettings.AppearanceSettings.CustomColors.Scheme - get() { - val scheme = Scheme.light(0xFFACE330.toInt()) - return scheme.toSettingsColorsScheme() - } - -internal val DefaultDarkCustomColorScheme: LegacySettings.AppearanceSettings.CustomColors.Scheme - get() { - val scheme = Scheme.dark(0xFFACE330.toInt()) - return scheme.toSettingsColorsScheme() - } \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/LauncherDataStore.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/LauncherDataStore.kt index c5ef736b1..e7b80767f 100644 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/LauncherDataStore.kt +++ b/core/preferences/src/main/java/de/mm20/launcher2/preferences/LauncherDataStore.kt @@ -1,20 +1,17 @@ package de.mm20.launcher2.preferences import android.content.Context -import de.mm20.launcher2.preferences.migrations.Migration1 import de.mm20.launcher2.preferences.migrations.Migration2 import de.mm20.launcher2.preferences.migrations.Migration3 import de.mm20.launcher2.settings.BaseSettings internal class LauncherDataStore( private val context: Context, - legacyDataStore: LegacyDataStore, ): BaseSettings( context, fileName = "settings.json", serializer = LauncherSettingsDataSerializer, migrations = listOf( - Migration1(legacyDataStore), Migration2(), Migration3(), ), diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/LegacyDataStore.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/LegacyDataStore.kt index 750945853..ab1feee2b 100644 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/LegacyDataStore.kt +++ b/core/preferences/src/main/java/de/mm20/launcher2/preferences/LegacyDataStore.kt @@ -1,52 +1,5 @@ package de.mm20.launcher2.preferences -import android.content.Context -import androidx.datastore.core.CorruptionException -import androidx.datastore.core.DataMigration -import androidx.datastore.core.DataStore -import androidx.datastore.core.Serializer -import androidx.datastore.core.handlers.ReplaceFileCorruptionHandler -import androidx.datastore.dataStore -import com.google.protobuf.InvalidProtocolBufferException -import de.mm20.launcher2.crashreporter.CrashReporter -import de.mm20.launcher2.preferences.migrations.* -import java.io.InputStream -import java.io.OutputStream - -internal typealias LegacyDataStore = DataStore - -internal val Context.legacyDataStore: LegacyDataStore by dataStore( - fileName = "settings.pb", - serializer = LegacySettingsSerializer, - produceMigrations = { - getMigrations(it) - }, - corruptionHandler = ReplaceFileCorruptionHandler { - CrashReporter.logException(it) - LegacySettings.getDefaultInstance() - } -) - internal const val SchemaVersion = 18 -internal fun getMigrations(context: Context): List> { - return listOf() -} - - - -object LegacySettingsSerializer : Serializer { - override val defaultValue: LegacySettings = LegacySettings.getDefaultInstance() - - override suspend fun readFrom(input: InputStream): LegacySettings { - try { - return LegacySettings.parseFrom(input) - } catch (e: InvalidProtocolBufferException) { - throw CorruptionException("Cannot read proto.", e) - } - } - override suspend fun writeTo(t: LegacySettings, output: OutputStream) { - t.writeTo(output) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/Module.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/Module.kt index e19a509f3..662202750 100644 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/Module.kt +++ b/core/preferences/src/main/java/de/mm20/launcher2/preferences/Module.kt @@ -27,8 +27,7 @@ import org.koin.core.qualifier.named import org.koin.dsl.module val preferencesModule = module { - single { androidContext().legacyDataStore } - single { LauncherDataStore(androidContext(), get()) } + single { LauncherDataStore(androidContext()) } factory(named()) { get() } factory { MediaSettings(get()) } factory { ContactSearchSettings(get()) } diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/ktx/Scheme.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/ktx/Scheme.kt deleted file mode 100644 index 4aeb847a2..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/ktx/Scheme.kt +++ /dev/null @@ -1,46 +0,0 @@ -package de.mm20.launcher2.preferences.ktx - -import de.mm20.launcher2.preferences.LegacySettings -import scheme.Scheme - -fun Scheme.toSettingsColorsScheme(): LegacySettings.AppearanceSettings.CustomColors.Scheme { - val scheme = this - return LegacySettings.AppearanceSettings.CustomColors.Scheme.newBuilder() - .setPrimary(scheme.primary) - .setSurfaceTint(scheme.primary) - .setOnPrimary(scheme.onPrimary) - .setPrimaryContainer(scheme.primaryContainer) - .setOnPrimaryContainer(scheme.onPrimaryContainer) - .setSecondary(scheme.secondary) - .setOnSecondary(scheme.onSecondary) - .setSecondaryContainer(scheme.secondaryContainer) - .setOnSecondaryContainer(scheme.onSecondaryContainer) - .setTertiary(scheme.tertiary) - .setOnTertiary(scheme.onTertiary) - .setTertiaryContainer(scheme.tertiaryContainer) - .setOnTertiaryContainer(scheme.onTertiaryContainer) - .setError(scheme.error) - .setOnError(scheme.onError) - .setErrorContainer(scheme.errorContainer) - .setOnErrorContainer(scheme.onErrorContainer) - .setBackground(scheme.background) - .setOnBackground(scheme.onBackground) - .setSurface(scheme.surface) - .setOnSurface(scheme.onSurface) - .setSurfaceVariant(scheme.surfaceVariant) - .setOnSurfaceVariant(scheme.onSurfaceVariant) - .setOutline(scheme.outline) - .setOutlineVariant(scheme.outlineVariant) - .setInverseSurface(scheme.inverseSurface) - .setInverseOnSurface(scheme.inverseOnSurface) - .setInversePrimary(scheme.inversePrimary) - .setScrim(scheme.scrim) - .setSurfaceDim(scheme.surfaceDim) - .setSurfaceBright(scheme.surfaceBright) - .setSurfaceContainerLowest(scheme.surfaceContainerLowest) - .setSurfaceContainerLow(scheme.surfaceContainerLow) - .setSurfaceContainer(scheme.surfaceContainer) - .setSurfaceContainerHigh(scheme.surfaceContainerHigh) - .setSurfaceContainerHighest(scheme.surfaceContainerHighest) - .build() -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/FactorySettingsMigration.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/FactorySettingsMigration.kt deleted file mode 100644 index 7bb5833e1..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/FactorySettingsMigration.kt +++ /dev/null @@ -1,25 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import android.content.Context -import android.util.Log -import androidx.datastore.core.DataMigration -import de.mm20.launcher2.preferences.SchemaVersion -import de.mm20.launcher2.preferences.LegacySettings -import de.mm20.launcher2.preferences.createFactorySettings - -class FactorySettingsMigration(private val context: Context): DataMigration { - override suspend fun cleanUp() { - - } - - override suspend fun migrate(currentData: LegacySettings): LegacySettings { - Log.d("MM20", "Initializing user settingsā€¦") - Log.d("MM20", "Done") - val defaults = createFactorySettings(context) - return defaults.toBuilder().setVersion(SchemaVersion).build() - } - - override suspend fun shouldMigrate(currentData: LegacySettings): Boolean { - return currentData.version == 0 - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration1.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration1.kt deleted file mode 100644 index cbc2af1b8..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration1.kt +++ /dev/null @@ -1,254 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import androidx.datastore.core.DataMigration -import de.mm20.launcher2.preferences.BaseLayout -import de.mm20.launcher2.preferences.ClockWidgetAlignment -import de.mm20.launcher2.preferences.ClockWidgetColors -import de.mm20.launcher2.preferences.ClockWidgetStyle -import de.mm20.launcher2.preferences.ColorScheme -import de.mm20.launcher2.preferences.Font -import de.mm20.launcher2.preferences.GestureAction -import de.mm20.launcher2.preferences.IconShape -import de.mm20.launcher2.preferences.LauncherSettingsData -import de.mm20.launcher2.preferences.LegacyDataStore -import de.mm20.launcher2.preferences.LegacySettings -import de.mm20.launcher2.preferences.ScreenOrientation -import de.mm20.launcher2.preferences.SearchBarColors -import de.mm20.launcher2.preferences.SearchBarStyle -import de.mm20.launcher2.preferences.SearchResultOrder -import de.mm20.launcher2.preferences.SurfaceShape -import de.mm20.launcher2.preferences.SystemBarColors -import de.mm20.launcher2.preferences.ThemeDescriptor -import de.mm20.launcher2.preferences.WeightFactor -import kotlinx.coroutines.flow.first -import java.util.UUID - -class Migration1( - private val legacyDataStore: LegacyDataStore, -) : DataMigration { - override suspend fun cleanUp() { - - } - - override suspend fun shouldMigrate(currentData: LauncherSettingsData): Boolean { - return legacyDataStore.data.first().version > 0 && currentData.schemaVersion < 1 - } - - override suspend fun migrate(currentData: LauncherSettingsData): LauncherSettingsData { - val legacyData = legacyDataStore.data.first() - return currentData.copy( - schemaVersion = 1, - uiBaseLayout = when (legacyData.layout.baseLayout) { - LegacySettings.LayoutSettings.Layout.Pager -> BaseLayout.PullDown - LegacySettings.LayoutSettings.Layout.PagerReversed -> BaseLayout.PagerReversed - else -> BaseLayout.PullDown - }, - gridColumnCount = legacyData.grid.columnCount, - animationsCharging = legacyData.animations.charging, - badgesCloudFiles = legacyData.badges.cloudFiles, - badgesNotifications = legacyData.badges.notifications, - badgesShortcuts = legacyData.badges.shortcuts, - badgesSuspendedApps = legacyData.badges.suspendedApps, - calculatorEnabled = legacyData.calculatorSearch.enabled, - calendarSearchEnabled = legacyData.calendarSearch.enabled, - clockWidgetAlarmPart = legacyData.clockWidget.alarmPart, - clockWidgetBatteryPart = legacyData.clockWidget.batteryPart, - clockWidgetDatePart = legacyData.clockWidget.datePart, - clockWidgetColors = when (legacyData.clockWidget.color) { - LegacySettings.ClockWidgetSettings.ClockWidgetColors.Light -> ClockWidgetColors.Light - LegacySettings.ClockWidgetSettings.ClockWidgetColors.Dark -> ClockWidgetColors.Dark - else -> ClockWidgetColors.Auto - }, - clockWidgetAlignment = when (legacyData.clockWidget.alignment) { - LegacySettings.ClockWidgetSettings.ClockWidgetAlignment.Top -> ClockWidgetAlignment.Top - LegacySettings.ClockWidgetSettings.ClockWidgetAlignment.Center -> ClockWidgetAlignment.Center - else -> ClockWidgetAlignment.Bottom - }, - homeScreenDock = legacyData.clockWidget.favoritesPart, - clockWidgetFillHeight = legacyData.clockWidget.fillHeight, - clockWidgetCompact = legacyData.clockWidget.layout == LegacySettings.ClockWidgetSettings.ClockWidgetLayout.Horizontal, - clockWidgetMusicPart = legacyData.clockWidget.musicPart, - _clockWidgetStyle = when (legacyData.clockWidget.clockStyle) { - LegacySettings.ClockWidgetSettings.ClockStyle.DigitalClock1 -> ClockWidgetStyle.Digital1() - LegacySettings.ClockWidgetSettings.ClockStyle.DigitalClock2 -> ClockWidgetStyle.Digital2 - LegacySettings.ClockWidgetSettings.ClockStyle.OrbitClock -> ClockWidgetStyle.Orbit - LegacySettings.ClockWidgetSettings.ClockStyle.BinaryClock -> ClockWidgetStyle.Binary - LegacySettings.ClockWidgetSettings.ClockStyle.AnalogClock -> ClockWidgetStyle.Analog - LegacySettings.ClockWidgetSettings.ClockStyle.EmptyClock -> ClockWidgetStyle.Empty - LegacySettings.ClockWidgetSettings.ClockStyle.DigitalClock1_MDY -> ClockWidgetStyle.Digital1( - variant = ClockWidgetStyle.Digital1.Variant.MDY - ) - - LegacySettings.ClockWidgetSettings.ClockStyle.DigitalClock1_Outlined -> ClockWidgetStyle.Digital1( - outlined = true - ) - - LegacySettings.ClockWidgetSettings.ClockStyle.DigitalClock1_OnePlus -> ClockWidgetStyle.Digital1( - variant = ClockWidgetStyle.Digital1.Variant.Default - ) - - else -> ClockWidgetStyle.Digital1() - }, - contactSearchEnabled = legacyData.contactsSearch.enabled, - easterEgg = legacyData.easterEgg, - favoritesEditButton = legacyData.favorites.editButton, - favoritesEnabled = legacyData.favorites.enabled, - favoritesFrequentlyUsed = legacyData.favorites.frequentlyUsed, - favoritesFrequentlyUsedRows = legacyData.favorites.frequentlyUsedRows, - rankingWeightFactor = when (legacyData.resultOrdering.weightFactor) { - LegacySettings.SearchResultOrderingSettings.WeightFactor.Low -> WeightFactor.Low - LegacySettings.SearchResultOrderingSettings.WeightFactor.High -> WeightFactor.High - else -> WeightFactor.Default - }, - fileSearchProviders = buildSet { - if (legacyData.fileSearch.localFiles) add("local") - if (legacyData.fileSearch.nextcloud) add("nextcloud") - if (legacyData.fileSearch.gdrive) add("gdrive") - if (legacyData.fileSearch.onedrive) add("onedrive") - }, - gesturesDoubleTap = makeGestureSettings( - legacyData.gestures.doubleTap, - legacyData.gestures.doubleTapApp - ), - gesturesSwipeDown = makeGestureSettings( - legacyData.gestures.swipeDown, - legacyData.gestures.swipeDownApp - ), - gesturesSwipeLeft = makeGestureSettings( - legacyData.gestures.swipeLeft, - legacyData.gestures.swipeLeftApp - ), - gesturesSwipeRight = makeGestureSettings( - legacyData.gestures.swipeRight, - legacyData.gestures.swipeRightApp - ), - gesturesLongPress = makeGestureSettings( - legacyData.gestures.longPress, - legacyData.gestures.longPressApp - ), - gesturesHomeButton = makeGestureSettings( - legacyData.gestures.homeButton, - legacyData.gestures.homeButtonApp - ), - gridIconSize = legacyData.grid.iconSize, - gridLabels = legacyData.grid.showLabels, - mediaAllowList = legacyData.musicWidget.allowListList.toSet(), - mediaDenyList = legacyData.musicWidget.denyListList.toSet(), - hiddenItemsShowButton = legacyData.searchBar.hiddenItemsButton, - iconsAdaptify = legacyData.icons.adaptify, - iconsForceThemed = legacyData.icons.forceThemed, - iconsPack = legacyData.icons.iconPack.takeIf { it.isNotBlank() }, - iconsPackThemed = legacyData.icons.iconPackThemed, - iconsShape = when (legacyData.icons.shape) { - LegacySettings.IconSettings.IconShape.Circle -> IconShape.Circle - LegacySettings.IconSettings.IconShape.Square -> IconShape.Square - LegacySettings.IconSettings.IconShape.Squircle -> IconShape.Squircle - LegacySettings.IconSettings.IconShape.RoundedSquare -> IconShape.RoundedSquare - LegacySettings.IconSettings.IconShape.EasterEgg -> IconShape.EasterEgg - LegacySettings.IconSettings.IconShape.Hexagon -> IconShape.Hexagon - LegacySettings.IconSettings.IconShape.Triangle -> IconShape.Triangle - LegacySettings.IconSettings.IconShape.Pentagon -> IconShape.Pentagon - LegacySettings.IconSettings.IconShape.Teardrop -> IconShape.Teardrop - LegacySettings.IconSettings.IconShape.Pebble -> IconShape.Pebble - else -> IconShape.PlatformDefault - }, - iconsThemed = legacyData.icons.themedIcons, - searchBarBottom = legacyData.layout.bottomSearchBar, - searchBarColors = when (legacyData.systemBars.statusBarColor) { - LegacySettings.SystemBarsSettings.SystemBarColors.Light -> SearchBarColors.Light - LegacySettings.SystemBarsSettings.SystemBarColors.Dark -> SearchBarColors.Dark - else -> SearchBarColors.Auto - }, - searchBarFixed = legacyData.layout.bottomSearchBar, - searchBarKeyboard = legacyData.searchBar.autoFocus, - searchBarStyle = when (legacyData.searchBar.searchBarStyle) { - LegacySettings.SearchBarSettings.SearchBarStyle.Hidden -> SearchBarStyle.Hidden - LegacySettings.SearchBarSettings.SearchBarStyle.Solid -> SearchBarStyle.Solid - else -> SearchBarStyle.Transparent - }, - searchLaunchOnEnter = legacyData.searchBar.launchOnEnter, - searchResultOrder = when (legacyData.resultOrdering.ordering) { - LegacySettings.SearchResultOrderingSettings.Ordering.Alphabetic -> SearchResultOrder.Alphabetical - LegacySettings.SearchResultOrderingSettings.Ordering.LaunchCount -> SearchResultOrder.LaunchCount - else -> SearchResultOrder.Weighted - }, - searchResultsReversed = legacyData.layout.reverseSearchResults, - shortcutSearchEnabled = legacyData.appShortcutSearch.enabled, - stateTagsMultiline = legacyData.ui.searchTagsMultiline, - surfacesBorderWidth = legacyData.cards.borderWidth, - surfacesOpacity = legacyData.cards.opacity, - surfacesRadius = legacyData.cards.radius, - surfacesShape = when (legacyData.cards.shape) { - LegacySettings.CardSettings.Shape.Cut -> SurfaceShape.Cut - else -> SurfaceShape.Rounded - }, - systemBarsHideNav = legacyData.systemBars.hideNavBar, - systemBarsHideStatus = legacyData.systemBars.hideStatusBar, - systemBarsNavColors = when (legacyData.systemBars.navBarColor) { - LegacySettings.SystemBarsSettings.SystemBarColors.Light -> SystemBarColors.Light - LegacySettings.SystemBarsSettings.SystemBarColors.Dark -> SystemBarColors.Dark - else -> SystemBarColors.Auto - }, - systemBarsStatusColors = when (legacyData.systemBars.statusBarColor) { - LegacySettings.SystemBarsSettings.SystemBarColors.Light -> SystemBarColors.Light - LegacySettings.SystemBarsSettings.SystemBarColors.Dark -> SystemBarColors.Dark - else -> SystemBarColors.Auto - }, - uiColorScheme = when (legacyData.appearance.theme) { - LegacySettings.AppearanceSettings.Theme.Light -> ColorScheme.Light - LegacySettings.AppearanceSettings.Theme.Dark -> ColorScheme.Dark - else -> ColorScheme.System - }, - uiFont = when (legacyData.appearance.font) { - LegacySettings.AppearanceSettings.Font.SystemDefault -> Font.System - else -> Font.Outfit - }, - uiOrientation = when (legacyData.layout.fixedRotation) { - true -> ScreenOrientation.Portrait - else -> ScreenOrientation.Auto - }, - uiTheme = when (legacyData.appearance.themeId) { - UUID(0L, 0L).toString() -> ThemeDescriptor.Default - UUID(0L, 1L).toString() -> ThemeDescriptor.BlackAndWhite - else -> ThemeDescriptor.Custom(legacyData.appearance.themeId) - }, - unitConverterCurrencies = legacyData.unitConverterSearch.currencies, - unitConverterEnabled = legacyData.unitConverterSearch.enabled, - wallpaperBlur = legacyData.appearance.blurWallpaper, - weatherImperialUnits = legacyData.weather.imperialUnits, - wallpaperBlurRadius = legacyData.appearance.blurWallpaperRadius, - wallpaperDim = legacyData.appearance.dimWallpaper, - weatherProvider = when (legacyData.weather.provider) { - LegacySettings.WeatherSettings.WeatherProvider.MetNo -> "metno" - LegacySettings.WeatherSettings.WeatherProvider.OpenWeatherMap -> "owm" - LegacySettings.WeatherSettings.WeatherProvider.Here -> "here" - LegacySettings.WeatherSettings.WeatherProvider.BrightSky -> "dwd" - else -> "metno" - }, - websiteSearchEnabled = legacyData.websiteSearch.enabled, - widgetsEditButton = legacyData.widgets.editButton, - wikipediaCustomUrl = legacyData.wikipediaSearch.customUrl.takeIf { it.isNotBlank() }, - wikipediaSearchEnabled = legacyData.wikipediaSearch.enabled, - wikipediaSearchImages = legacyData.wikipediaSearch.images, - ) - } - - private fun makeGestureSettings( - gesture: LegacySettings.GestureSettings.GestureAction, - key: String - ): GestureAction { - return when (gesture) { - LegacySettings.GestureSettings.GestureAction.OpenSearch -> GestureAction.Search - LegacySettings.GestureSettings.GestureAction.OpenNotificationDrawer -> GestureAction.Notifications - LegacySettings.GestureSettings.GestureAction.LockScreen -> GestureAction.ScreenLock - LegacySettings.GestureSettings.GestureAction.OpenQuickSettings -> GestureAction.QuickSettings - LegacySettings.GestureSettings.GestureAction.OpenRecents -> GestureAction.Recents - LegacySettings.GestureSettings.GestureAction.OpenPowerDialog -> GestureAction.PowerMenu - LegacySettings.GestureSettings.GestureAction.LaunchApp -> GestureAction.Launch( - key - ) - - else -> GestureAction.NoAction - } - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_10_11.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_10_11.kt deleted file mode 100644 index 9d5ee3f2e..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_10_11.kt +++ /dev/null @@ -1,22 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_10_11: VersionedMigration(10, 11) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setAppearance( - builder.appearance.toBuilder() - .setCustomColors( - builder.appearance.customColors.toBuilder() - .setLightScheme( - builder.appearance.customColors.lightScheme.toBuilder() - .setSurfaceTint(builder.appearance.customColors.lightScheme.primary) - ) - .setDarkScheme( - builder.appearance.customColors.darkScheme.toBuilder() - .setSurfaceTint(builder.appearance.customColors.darkScheme.primary) - ) - ) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_11_12.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_11_12.kt deleted file mode 100644 index d9b25ad0b..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_11_12.kt +++ /dev/null @@ -1,53 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.ktx.isAtLeastApiLevel -import de.mm20.launcher2.preferences.LegacySettings -import de.mm20.launcher2.preferences.LegacySettings.GestureSettings -import de.mm20.launcher2.preferences.LegacySettings.LayoutSettings - -class Migration_11_12: VersionedMigration(11, 12) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - val oldLayout = builder.appearance.layout - when(oldLayout) { - LayoutSettings.Layout.Pager -> { - builder.setLayout( - LayoutSettings.newBuilder() - .setBaseLayout(LayoutSettings.Layout.Pager) - .setBottomSearchBar(true) - .setReverseSearchResults(true) - ) - } - LayoutSettings.Layout.PagerReversed -> { - builder.setLayout( - LayoutSettings.newBuilder() - .setBaseLayout(LayoutSettings.Layout.PagerReversed) - .setBottomSearchBar(true) - .setReverseSearchResults(true) - ) - } - else -> { - builder.setLayout( - LayoutSettings.newBuilder() - .setBaseLayout(LayoutSettings.Layout.PullDown) - .setBottomSearchBar(false) - .setReverseSearchResults(false) - ) - .setGestures( - GestureSettings.newBuilder() - .setDoubleTap( - if (isAtLeastApiLevel(28)) { - GestureSettings.GestureAction.LockScreen - } else { - GestureSettings.GestureAction.None - } - ) - .setLongPress(GestureSettings.GestureAction.None) - .setSwipeDown(GestureSettings.GestureAction.OpenNotificationDrawer) - .setSwipeLeft(GestureSettings.GestureAction.None) - .setSwipeRight(GestureSettings.GestureAction.None) - ) - } - } - return builder - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_12_13.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_12_13.kt deleted file mode 100644 index f7e08e263..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_12_13.kt +++ /dev/null @@ -1,20 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings -import de.mm20.launcher2.preferences.LegacySettings.SearchResultOrderingSettings.WeightFactor - -class Migration_12_13: VersionedMigration(12, 13) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder - .setClockWidget( - builder.clockWidget.toBuilder() - .setDatePart(true) - .build() - ) - .setResultOrdering( - builder.resultOrdering.toBuilder() - .setWeightFactor(WeightFactor.Default) - .build() - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_13_14.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_13_14.kt deleted file mode 100644 index d5697ee25..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_13_14.kt +++ /dev/null @@ -1,13 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_13_14 : VersionedMigration(13, 14) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder - .setIcons( - builder.icons.toBuilder() - .setIconPackThemed(true) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_14_15.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_14_15.kt deleted file mode 100644 index bb62496a3..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_14_15.kt +++ /dev/null @@ -1,12 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_14_15: VersionedMigration(14, 15) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setSearchBar( - builder.searchBar.toBuilder() - .setHiddenItemsButton(true) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_15_16.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_15_16.kt deleted file mode 100644 index f316500aa..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_15_16.kt +++ /dev/null @@ -1,51 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings -import de.mm20.launcher2.preferences.LegacySettings.AppearanceSettings.CustomColors.Scheme -import palettes.TonalPalette - -class Migration_15_16 : VersionedMigration(15, 16) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setAppearance( - builder.appearance.toBuilder() - .setCustomColors( - builder.appearance.customColors.toBuilder() - .setLightScheme( - migrateColorScheme( - builder.appearance.customColors.lightScheme, - false, - builder.appearance.customColors.advancedMode - ) - ) - .setDarkScheme( - migrateColorScheme( - builder.appearance.customColors.darkScheme, - true, - builder.appearance.customColors.advancedMode - ) - ) - ) - ) - } - - fun migrateColorScheme(colorScheme: Scheme, dark: Boolean, advancedMode: Boolean): Scheme { - val oldSurface = colorScheme.surface - val oldSurfaceVariant = colorScheme.surfaceVariant - val neutralPalette = TonalPalette.fromInt(oldSurface) - val neutralVariantPalette = TonalPalette.fromInt(oldSurfaceVariant) - - return colorScheme.toBuilder().apply { - if (!advancedMode) { - surface = neutralPalette.tone(if (dark) 6 else 98) - } - surfaceDim = neutralPalette.tone(if (dark) 6 else 87) - surfaceBright = neutralPalette.tone(if (dark) 24 else 98) - surfaceContainerLowest = neutralVariantPalette.tone(if (dark) 4 else 100) - surfaceContainerLow = neutralVariantPalette.tone(if (dark) 10 else 96) - surfaceContainer = neutralVariantPalette.tone(if (dark) 12 else 94) - surfaceContainerHigh = neutralVariantPalette.tone(if (dark) 17 else 92) - surfaceContainerHighest = neutralVariantPalette.tone(if (dark) 22 else 90) - }.build() - } - -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_16_17.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_16_17.kt deleted file mode 100644 index dfe9ec06d..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_16_17.kt +++ /dev/null @@ -1,23 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings -import java.util.UUID - -class Migration_16_17: VersionedMigration(16, 17) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setAppearance( - builder.appearance.toBuilder() - .setThemeId( - when(builder.appearance.colorScheme) { - LegacySettings.AppearanceSettings.ColorScheme.BlackAndWhite -> UUID(0L, 1L) - LegacySettings.AppearanceSettings.ColorScheme.Custom -> UUID(1L, 1L) - else -> UUID(0L, 0L) - }.toString() - ) - ) - .setAnimations( - builder.animations.toBuilder() - .setCharging(true) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_17_18.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_17_18.kt deleted file mode 100644 index 0e3e3b874..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_17_18.kt +++ /dev/null @@ -1,15 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_17_18 : VersionedMigration(17, 18) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder - .setAppearance(builder.appearance.toBuilder() - .setBlurWallpaperRadius(32) - ) - .setClockWidget(builder.clockWidget.toBuilder() - .setAlignment(LegacySettings.ClockWidgetSettings.ClockWidgetAlignment.Bottom) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_1_2.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_1_2.kt deleted file mode 100644 index e048b2d1d..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_1_2.kt +++ /dev/null @@ -1,15 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_1_2: VersionedMigration(1, 2) { - - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setSystemBars( - builder.systemBars.toBuilder() - .setHideNavBar(false) - .setHideStatusBar(false) - ) - .setSearchBar(builder.searchBar.toBuilder().setAutoFocus(false)) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_2_3.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_2_3.kt deleted file mode 100644 index 9b2d678d3..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_2_3.kt +++ /dev/null @@ -1,14 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_2_3: VersionedMigration(2, 3) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setClockWidget( - builder.clockWidget.toBuilder() - .setAlarmPart(true) - .setBatteryPart(true) - .setMusicPart(true) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_3_4.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_3_4.kt deleted file mode 100644 index fdd0d14f4..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_3_4.kt +++ /dev/null @@ -1,12 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_3_4: VersionedMigration(3, 4) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setAppShortcutSearch( - LegacySettings.AppShortcutSearchSettings.newBuilder() - .setEnabled(true) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_4_5.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_4_5.kt deleted file mode 100644 index f758a093d..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_4_5.kt +++ /dev/null @@ -1,13 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_4_5: VersionedMigration(4, 5) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setGrid( - builder.grid.toBuilder() - .setIconSize(48) - .build() - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_5_6.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_5_6.kt deleted file mode 100644 index 9552bfa1d..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_5_6.kt +++ /dev/null @@ -1,24 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.DefaultCustomColorsBase -import de.mm20.launcher2.preferences.DefaultDarkCustomColorScheme -import de.mm20.launcher2.preferences.DefaultLightCustomColorScheme -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_5_6: VersionedMigration(5, 6) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setAppearance( - builder.appearance.toBuilder() - .setCustomColors( - LegacySettings.AppearanceSettings.CustomColors.newBuilder() - .setAdvancedMode(false) - .setBaseColors(DefaultCustomColorsBase) - .setLightScheme(DefaultLightCustomColorScheme) - .setDarkScheme(DefaultDarkCustomColorScheme) - ) - ).setUnitConverterSearch( - builder.unitConverterSearch.toBuilder() - .setCurrencies(true) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_6_7.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_6_7.kt deleted file mode 100644 index 01591722b..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_6_7.kt +++ /dev/null @@ -1,12 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_6_7 : VersionedMigration(6, 7) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setIcons( - builder.icons.toBuilder() - .setAdaptify(true) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_7_8.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_7_8.kt deleted file mode 100644 index dcef3798a..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_7_8.kt +++ /dev/null @@ -1,13 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_7_8: VersionedMigration(7, 8) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder.setAppearance( - builder.appearance.toBuilder() - .setBlurWallpaper(true) - ) - } - -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_8_9.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_8_9.kt deleted file mode 100644 index 7875dad32..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_8_9.kt +++ /dev/null @@ -1,18 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_8_9: VersionedMigration(8, 9) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder - .setClockWidget( - builder.clockWidget.toBuilder() - .setFillHeight(true) - ) - .setGrid( - builder.grid.toBuilder() - .setShowLabels(true) - ) - } - -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_9_10.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_9_10.kt deleted file mode 100644 index 68b303b7d..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/Migration_9_10.kt +++ /dev/null @@ -1,19 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import de.mm20.launcher2.preferences.LegacySettings - -class Migration_9_10 : VersionedMigration(9, 10) { - override suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder { - return builder - .setFavorites( - builder.favorites.toBuilder() - .setFrequentlyUsed(true) - .setFrequentlyUsedRows(1) - .setEditButton(true) - ) - .setWidgets( - LegacySettings.WidgetSettings.newBuilder() - .setEditButton(true) - ) - } -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/VersionedMigration.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/VersionedMigration.kt deleted file mode 100644 index 4682d3f48..000000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/migrations/VersionedMigration.kt +++ /dev/null @@ -1,25 +0,0 @@ -package de.mm20.launcher2.preferences.migrations - -import androidx.datastore.core.DataMigration -import de.mm20.launcher2.preferences.SchemaVersion -import de.mm20.launcher2.preferences.LegacySettings - -abstract class VersionedMigration( - private val fromVersion: Int, - private val toVersion: Int -) : DataMigration { - abstract suspend fun applyMigrations(builder: LegacySettings.Builder): LegacySettings.Builder - - final override suspend fun migrate(currentData: LegacySettings): LegacySettings { - val builder = currentData.toBuilder() - applyMigrations(builder) - builder.version = toVersion - return builder.build() - } - - override suspend fun cleanUp() {} - - override suspend fun shouldMigrate(currentData: LegacySettings): Boolean { - return currentData.version <= fromVersion && SchemaVersion >= toVersion - } -} \ No newline at end of file diff --git a/core/preferences/src/main/proto/settings.proto b/core/preferences/src/main/proto/settings.proto deleted file mode 100644 index 391c1528f..000000000 --- a/core/preferences/src/main/proto/settings.proto +++ /dev/null @@ -1,386 +0,0 @@ -syntax = "proto3"; - -option java_package = "de.mm20.launcher2.preferences"; -option java_multiple_files = true; - -message LegacySettings { - uint32 version = 1; - message AppearanceSettings { - enum Theme { - Light = 0; - Dark = 1; - System = 2; - } - Theme theme = 1; - enum ColorScheme { - Default = 0; - BlackAndWhite = 1; - DebugMaterialYouCompat = 2; - Custom = 3; - EasterEgg = 4; - } - ColorScheme color_scheme = 6 [deprecated = true]; - message CustomColors { - bool advanced_mode = 1; - message BaseColors { - uint32 accent1 = 1; - uint32 accent2 = 2; - uint32 accent3 = 3; - uint32 neutral1 = 4; - uint32 neutral2 = 5; - uint32 error = 6; - } - BaseColors base_colors = 2; - message Scheme { - uint32 primary = 1; - uint32 on_primary = 2; - uint32 primary_container = 3; - uint32 on_primary_container = 4; - uint32 secondary = 5; - uint32 on_secondary = 6; - uint32 secondary_container = 7; - uint32 on_secondary_container = 8; - uint32 tertiary = 9; - uint32 on_tertiary = 10; - uint32 tertiary_container = 11; - uint32 on_tertiary_container = 12; - uint32 background = 13; - uint32 on_background = 14; - uint32 surface = 15; - uint32 on_surface = 16; - uint32 surface_variant = 17; - uint32 on_surface_variant = 18; - uint32 outline = 19; - uint32 inverse_surface = 20; - uint32 inverse_on_surface = 21; - uint32 inverse_primary = 22; - uint32 error = 23; - uint32 on_error = 24; - uint32 error_container = 25; - uint32 on_error_container = 26; - uint32 outline_variant = 27; - uint32 scrim = 28; - uint32 surface_tint = 29; - uint32 surface_dim = 30; - uint32 surface_bright = 31; - uint32 surface_container_lowest = 32; - uint32 surface_container_low = 33; - uint32 surface_container = 34; - uint32 surface_container_high = 35; - uint32 surface_container_highest = 36; - } - Scheme light_scheme = 3; - Scheme dark_scheme = 4; - } - CustomColors custom_colors = 8 [deprecated = true]; - bool dim_wallpaper = 7; - - /** - * Deprecated, use layout instead - */ - LayoutSettings.Layout layout = 9 [deprecated = true]; - - enum Font { - Outfit = 0; - SystemDefault = 1; - } - Font font = 10; - - bool blur_wallpaper = 11; - // UUID of the selected theme - string theme_id = 12; - uint32 blur_wallpaper_radius = 13; - } - AppearanceSettings appearance = 2; - - message WeatherSettings { - enum WeatherProvider { - MetNo = 0; - OpenWeatherMap = 1; - Here = 2; - BrightSky = 3; - } - WeatherProvider provider = 1; - bool imperial_units = 2; - reserved 3; - } - WeatherSettings weather = 5; - - message MusicWidgetSettings { - reserved 1; - repeated string allow_list = 2; - repeated string deny_list = 3; - } - MusicWidgetSettings music_widget = 6; - - message ClockWidgetSettings { - enum ClockWidgetLayout { - Vertical = 0; - Horizontal = 1; - } - ClockWidgetLayout layout = 1; - enum ClockStyle { - DigitalClock1 = 0; - DigitalClock2 = 1; - OrbitClock = 5; - BinaryClock = 2; - AnalogClock = 3; - EmptyClock = 4; - DigitalClock1_MDY = 6; - DigitalClock1_Outlined = 7; - DigitalClock1_OnePlus = 8; - } - ClockStyle clock_style = 2; - bool date_part = 3; - bool music_part = 4; - bool battery_part = 5; - bool alarm_part = 6; - bool favorites_part = 7; - bool fill_height = 8; - - enum ClockWidgetColors { - Auto = 0; - Light = 1; - Dark = 2; - } - ClockWidgetColors color = 9; - - enum ClockWidgetAlignment { - Bottom = 0; - Center = 1; - Top = 2; - } - ClockWidgetAlignment alignment = 10; - } - ClockWidgetSettings clock_widget = 7; - - message FavoritesSettings { - bool enabled = 1; - bool frequently_used = 2; - int32 frequently_used_rows = 3; - bool edit_button = 4; - } - FavoritesSettings favorites = 8; - - message FilesSearchSettings { - bool local_files = 1; - bool gdrive = 2; - bool onedrive = 3; - bool nextcloud = 4; - bool owncloud = 5; - } - FilesSearchSettings file_search = 9 [deprecated = true]; - - message ContactsSearchSettings { - bool enabled = 1; - } - ContactsSearchSettings contacts_search = 10; - - message CalendarSearchSettings { - bool enabled = 1; - } - CalendarSearchSettings calendar_search = 11; - - message CalculatorSearchSettings { - bool enabled = 1; - } - CalculatorSearchSettings calculator_search = 12; - - message UnitConverterSearchSettings { - bool enabled = 1; - bool currencies = 2; - } - UnitConverterSearchSettings unit_converter_search = 13; - - message WikipediaSearchSettings { - bool enabled = 1; - bool images = 2; - string custom_url = 3; - } - WikipediaSearchSettings wikipedia_search = 14; - - message WebsiteSearchSettings { - bool enabled = 1; - } - WebsiteSearchSettings website_search = 15; - - message WebSearchSettings { - bool enabled = 1; - } - WebSearchSettings web_search = 16; - - message CalendarWidgetSettings { - bool hide_allday_events = 1; - repeated int64 exclude_calendars = 2; - } - CalendarWidgetSettings calendar_widget = 17; - - message BadgeSettings { - bool notifications = 1; - bool suspended_apps = 2; - bool cloud_files = 3; - bool shortcuts = 4; - } - BadgeSettings badges = 18 [deprecated = true]; - - message GridSettings { - uint32 column_count = 1; - uint32 icon_size = 2; - bool show_labels = 3; - } - GridSettings grid = 19; - - message SearchBarSettings { - enum SearchBarStyle { - Transparent = 0; - Solid = 1; - Hidden = 2; - } - SearchBarStyle search_bar_style = 1; - bool auto_focus = 2; - enum SearchBarColors { - Auto = 0; - Light = 1; - Dark = 2; - } - SearchBarColors color = 3; - bool launch_on_enter = 4; - bool hidden_items_button = 5; - } - SearchBarSettings search_bar = 20; - - message IconSettings { - enum IconShape { - PlatformDefault = 0; - Circle = 1; - Square = 2; - RoundedSquare = 3; - Triangle = 4; - Squircle = 5; - Hexagon = 6; - Pentagon = 7; - EasterEgg = 8; - Teardrop = 9; - Pebble = 10; - } - IconShape shape = 1; - bool themed_icons = 2; - string icon_pack = 3; - reserved 4; - bool adaptify = 5; - bool force_themed = 6; - bool icon_pack_themed = 7; - } - IconSettings icons = 21; - - bool easter_egg = 22; - - message SystemBarsSettings { - enum SystemBarColors { - // Light icons - Auto = 0; - // Dark icons - Dark = 1; - // Wallpaper based - Light = 2; - } - SystemBarColors statusBarColor = 1; - SystemBarColors navBarColor = 2; - bool hideStatusBar = 3; - bool hideNavBar = 4; - } - SystemBarsSettings system_bars = 23; - - message CardSettings { - float opacity = 1; - uint32 radius = 2; - uint32 border_width = 3; - Shape shape = 4; - enum Shape { - Rounded = 0; - Cut = 1; - } - } - CardSettings cards = 24; - - message AppShortcutSearchSettings { - bool enabled = 1; - } - AppShortcutSearchSettings app_shortcut_search = 25; - - message WidgetSettings { - bool edit_button = 1; - } - WidgetSettings widgets = 26; - - message LayoutSettings { - enum Layout { - PullDown = 0; - Pager = 1; - PagerReversed = 2; - } - - Layout base_layout = 1; - bool bottom_search_bar = 2; - bool reverse_search_results = 3; - bool fixed_search_bar = 4; - bool fixed_rotation = 5; - } - LayoutSettings layout = 27; - - message GestureSettings { - enum GestureAction { - None = 0; - OpenSearch = 1; - OpenNotificationDrawer = 2; - LockScreen = 3; - OpenQuickSettings = 4; - OpenRecents = 5; - OpenPowerDialog = 6; - LaunchApp = 7; - } - GestureAction swipe_down = 1; - GestureAction swipe_left = 2; - GestureAction swipe_right = 3; - GestureAction double_tap = 4; - GestureAction long_press = 5; - string swipe_down_app = 6; - string swipe_left_app = 7; - string swipe_right_app = 8; - string double_tap_app = 9; - string long_press_app = 10; - GestureAction home_button = 11; - string home_button_app = 12; - } - GestureSettings gestures = 28; - - message SearchResultOrderingSettings { - enum Ordering { - Alphabetic = 0; - LaunchCount = 1; - Weighted = 2; - } - Ordering ordering = 1; - enum WeightFactor { - Low = 0; - Default = 1; - High = 2; - } - WeightFactor weight_factor = 2; - } - SearchResultOrderingSettings result_ordering = 29; - - /** - * Persistent UI state that does not have a corresponding setting. - */ - message UiState { - bool search_tags_multiline = 1; - bool widget_tags_multiline = 2; - } - UiState ui = 30; - - message AnimationSettings { - bool charging = 1; - } - AnimationSettings animations = 31; -} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 666285e24..27157b27d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,6 @@ pluginSdk = "2.1.0-SNAPSHOT" gradle = "8.1.2" android-gradle-plugin = "8.2.2" -protobuf-gradle-plugin = "0.9.4" ksp-gradle-plugin = "2.0.0-1.0.21" kotlin = "2.0.0" @@ -37,7 +36,6 @@ androidx-constraint-layout = "1.1.0-alpha13" accompanist = "0.33.2-alpha" coil = "2.3.0" koin = "3.2.0" -protobuf = "3.14.0" retrofit = "2.9.0" junit = "4.13.2" junitVersion = "1.1.5" @@ -128,9 +126,6 @@ google-apiclient = { group = "com.google.api-client", name = "google-api-client" google-drive = { group = "com.google.apis", name = "google-api-services-drive", version = "v3-rev20221219-2.0.0" } google-oauth2 = { group = "com.google.apis", name = "google-api-services-oauth2", version = "v2-rev20200213-2.0.0" } -protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" } -protobuf-javalite = { group = "com.google.protobuf", name = "protobuf-javalite", version.ref = "protobuf" } - koin-android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" } koin-androidxcompose = { group = "io.insert-koin", name = "koin-androidx-compose", version.ref = "koin" } @@ -150,7 +145,6 @@ tests = ["junit"] [plugins] android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" } -protobuf = { id = "com.google.protobuf", version.ref = "protobuf-gradle-plugin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp-gradle-plugin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-plugin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }