diff --git a/app/ui/build.gradle.kts b/app/ui/build.gradle.kts index a8be7eda7..987421417 100644 --- a/app/ui/build.gradle.kts +++ b/app/ui/build.gradle.kts @@ -78,7 +78,6 @@ dependencies { implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.uitooling) implementation(libs.androidx.compose.material3) - implementation(libs.androidx.compose.materialicons) implementation(libs.androidx.compose.animation) implementation(libs.androidx.compose.animationgraphics) implementation(libs.androidx.constraintlayout.compose) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/common/FavoritesTagSelector.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/common/FavoritesTagSelector.kt index d55c55dd6..d3b649758 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/common/FavoritesTagSelector.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/common/FavoritesTagSelector.kt @@ -2,7 +2,6 @@ package de.mm20.launcher2.ui.common import androidx.compose.animation.AnimatedContent import androidx.compose.animation.EnterExitState -import androidx.compose.animation.SharedTransitionScope import androidx.compose.animation.core.animateFloat import androidx.compose.foundation.ScrollState import androidx.compose.foundation.horizontalScroll @@ -14,11 +13,6 @@ import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.ExpandLess -import androidx.compose.material.icons.rounded.ExpandMore -import androidx.compose.material.icons.rounded.Star import androidx.compose.material3.FilterChip import androidx.compose.material3.FilterChipDefaults import androidx.compose.material3.FloatingActionButtonDefaults @@ -33,13 +27,13 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.rotate +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import de.mm20.launcher2.search.Tag import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.launcher.sheets.LocalBottomSheetManager import de.mm20.launcher2.ui.layout.TopReversed -import de.mm20.launcher2.ui.modifier.consumeAllScrolling @Composable fun FavoritesTagSelector( @@ -84,7 +78,7 @@ fun FavoritesTagSelector( leadingIcon = if (compact) null else { { Icon( - imageVector = Icons.Rounded.Star, + painter = painterResource(R.drawable.star_20px_filled), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize), ) @@ -93,7 +87,7 @@ fun FavoritesTagSelector( label = { if (compact) { Icon( - imageVector = Icons.Rounded.Star, + painter = painterResource(R.drawable.star_20px_filled), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize), ) @@ -129,7 +123,7 @@ fun FavoritesTagSelector( modifier = Modifier .rotate(rot), onClick = { onExpand(true) }) { - Icon(Icons.Rounded.ExpandMore, null) + Icon(painterResource(R.drawable.arrow_drop_down_24px), null) } } @@ -141,7 +135,7 @@ fun FavoritesTagSelector( onClick = { sheetManager.showEditFavoritesSheet() } ) { Icon( - imageVector = Icons.Rounded.Edit, + painter = painterResource(R.drawable.edit_24px), contentDescription = null ) } @@ -164,7 +158,7 @@ fun FavoritesTagSelector( leadingIcon = if (compact) null else { { Icon( - imageVector = Icons.Rounded.Star, + painter = painterResource(R.drawable.star_20px_filled), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize), ) @@ -173,7 +167,7 @@ fun FavoritesTagSelector( label = { if (compact) { Icon( - imageVector = Icons.Rounded.Star, + painter = painterResource(R.drawable.star_20px_filled), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize), ) @@ -215,7 +209,7 @@ fun FavoritesTagSelector( .rotate(rot), onClick = { onExpand(false) } ) { - Icon(Icons.Rounded.ExpandLess, null) + Icon(painterResource(R.drawable.arrow_drop_up_24px), null) } if (editButton) { @@ -224,7 +218,7 @@ fun FavoritesTagSelector( onClick = { sheetManager.showEditFavoritesSheet() } ) { Icon( - imageVector = Icons.Rounded.Edit, + painter = painterResource(R.drawable.edit_24px), contentDescription = null ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/common/IconPicker.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/common/IconPicker.kt index 67b0225c0..3f192c703 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/common/IconPicker.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/common/IconPicker.kt @@ -13,10 +13,6 @@ import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.GridItemSpan import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ArrowDropDown -import androidx.compose.material.icons.rounded.FilterAlt -import androidx.compose.material.icons.rounded.Search import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.CircularProgressIndicator @@ -36,6 +32,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import coil.compose.AsyncImage @@ -98,7 +95,7 @@ fun IconPicker( SearchBarDefaults.InputField( leadingIcon = { Icon( - imageVector = Icons.Rounded.Search, + painterResource(R.drawable.search_24px), contentDescription = null ) }, @@ -164,7 +161,7 @@ fun IconPicker( modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize), - imageVector = Icons.Rounded.FilterAlt, + painter = painterResource(R.drawable.filter_alt_20px), contentDescription = null ) } else { @@ -218,7 +215,7 @@ fun IconPicker( modifier = Modifier.animateContentSize() ) Icon( - Icons.Rounded.ArrowDropDown, + painterResource(R.drawable.arrow_drop_down_20px), modifier = Modifier .padding(start = ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize), diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/common/ImportThemeSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/common/ImportThemeSheet.kt index 12d7a344e..81e0ce14a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/common/ImportThemeSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/common/ImportThemeSheet.kt @@ -12,10 +12,6 @@ import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.DarkMode -import androidx.compose.material.icons.rounded.ErrorOutline -import androidx.compose.material.icons.rounded.LightMode import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Icon @@ -37,6 +33,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel @@ -87,7 +84,7 @@ fun ImportThemeSheet( contentAlignment = Alignment.Center ) { LargeMessage( - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_48px, text = stringResource(R.string.import_theme_error), ) } @@ -157,14 +154,14 @@ fun ThemePreview( selected = !darkTheme, onClick = { darkTheme = false } ) { - Icon(Icons.Rounded.LightMode, null) + Icon(painterResource(R.drawable.light_mode_24px), null) } SegmentedButton( shape = SegmentedButtonDefaults.itemShape(index = 1, count = 2), selected = darkTheme, onClick = { darkTheme = true } ) { - Icon(Icons.Rounded.DarkMode, null) + Icon(painterResource(R.drawable.dark_mode_24px), null) } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/common/RestoreBackupSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/common/RestoreBackupSheet.kt index 9028780d9..fb19177a4 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/common/RestoreBackupSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/common/RestoreBackupSheet.kt @@ -9,11 +9,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.CheckCircleOutline -import androidx.compose.material.icons.rounded.ErrorOutline -import androidx.compose.material.icons.rounded.Info -import androidx.compose.material.icons.rounded.Warning import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.MaterialTheme @@ -48,7 +43,7 @@ fun RestoreBackupSheet( val compatibility by viewModel.compatibility BottomSheetDialog(onDismissRequest) { - Column ( + Column( modifier = Modifier .fillMaxWidth() .padding(it), @@ -67,13 +62,15 @@ fun RestoreBackupSheet( ) } } + RestoreBackupState.InvalidFile -> { LargeMessage( modifier = Modifier.aspectRatio(1f), - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_48px, text = stringResource(id = R.string.restore_invalid_file) ) } + RestoreBackupState.Ready -> { val metadata by viewModel.metadata @@ -84,7 +81,7 @@ fun RestoreBackupSheet( .fillMaxWidth() .wrapContentHeight() .padding(bottom = 16.dp), - icon = Icons.Rounded.Info, + icon = R.drawable.info_24px, text = stringResource( R.string.restore_meta, DateUtils.formatDateTime( @@ -99,7 +96,7 @@ fun RestoreBackupSheet( if (compatibility == BackupCompatibility.Incompatible) { LargeMessage( modifier = Modifier.aspectRatio(1f), - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_48px, text = stringResource( id = R.string.restore_incompatible_file, stringResource(R.string.app_name) @@ -112,18 +109,19 @@ fun RestoreBackupSheet( modifier = Modifier .fillMaxWidth() .padding(bottom = 16.dp), - icon = Icons.Rounded.Warning, + icon = R.drawable.warning_24px, text = - stringResource( - R.string.restore_different_minor_version, - stringResource(R.string.app_name) - ) + stringResource( + R.string.restore_different_minor_version, + stringResource(R.string.app_name) + ) ) } } } } } + RestoreBackupState.Restoring -> { Box( modifier = Modifier @@ -136,10 +134,11 @@ fun RestoreBackupSheet( ) } } + RestoreBackupState.Restored -> { LargeMessage( modifier = Modifier.aspectRatio(1f), - icon = Icons.Rounded.CheckCircleOutline, + icon = R.drawable.check_circle_48px, text = stringResource( id = R.string.restore_complete ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/common/SearchablePicker.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/common/SearchablePicker.kt index f783dc53a..fb160ba56 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/common/SearchablePicker.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/common/SearchablePicker.kt @@ -8,9 +8,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.CheckCircle -import androidx.compose.material.icons.rounded.Search import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField @@ -21,6 +18,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -53,7 +51,7 @@ fun SearchablePicker( value = viewModel.searchQuery, onValueChange = { viewModel.onSearchQueryChanged(it) }, leadingIcon = { - Icon(Icons.Rounded.Search, null) + Icon(painterResource(R.drawable.search_24px), null) }, placeholder = { Text(stringResource(R.string.search_bar_placeholder)) @@ -99,7 +97,7 @@ fun SearchablePicker( ) if (selected) { Icon( - imageVector = Icons.Rounded.CheckCircle, + painterResource(R.drawable.check_circle_24px_filled), contentDescription = null, tint = MaterialTheme.colorScheme.secondary, ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/common/TagChip.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/common/TagChip.kt index 1a1480bee..e83a7111e 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/common/TagChip.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/common/TagChip.kt @@ -12,14 +12,11 @@ import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Close import androidx.compose.material3.FilterChipDefaults import androidx.compose.material3.Icon import androidx.compose.material3.InputChipDefaults @@ -32,6 +29,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import de.mm20.launcher2.icons.IconService @@ -41,6 +39,7 @@ import de.mm20.launcher2.icons.VectorLayer import de.mm20.launcher2.search.Tag import de.mm20.launcher2.ui.component.ShapedLauncherIcon import de.mm20.launcher2.ui.ktx.toPixels +import de.mm20.launcher2.ui.R import org.koin.compose.koinInject @Composable @@ -141,7 +140,7 @@ fun TagChip( modifier = Modifier .padding(start = 4.dp) .size(FilterChipDefaults.IconSize), - imageVector = foregroundLayer.vector, + painter = painterResource(foregroundLayer.icon), contentDescription = null, tint = iconColor ) @@ -162,7 +161,7 @@ fun TagChip( onClear?.invoke() } .size(FilterChipDefaults.IconSize), - imageVector = Icons.Rounded.Close, + painter = painterResource(R.drawable.close_20px), contentDescription = null, ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/common/WeatherLocationSearchDialog.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/common/WeatherLocationSearchDialog.kt index 1595cba8a..9ec063205 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/common/WeatherLocationSearchDialog.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/common/WeatherLocationSearchDialog.kt @@ -8,9 +8,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Error -import androidx.compose.material.icons.rounded.Search import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Icon import androidx.compose.material3.SearchBar @@ -24,6 +21,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel @@ -57,7 +55,7 @@ fun WeatherLocationSearchDialog( SearchBarDefaults.InputField( leadingIcon = { Icon( - imageVector = Icons.Rounded.Search, + painterResource(R.drawable.search_24px), contentDescription = null ) }, @@ -103,7 +101,7 @@ fun WeatherLocationSearchDialog( } else if (query.isNotEmpty()) { SmallMessage( modifier = Modifier.fillMaxWidth(), - icon = Icons.Rounded.Error, + icon = R.drawable.error_24px, text = stringResource(R.string.weather_location_search_no_result) ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/Banner.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/Banner.kt index 0db5ff553..09c9f0e5d 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/Banner.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/Banner.kt @@ -1,5 +1,6 @@ package de.mm20.launcher2.ui.component +import androidx.annotation.DrawableRes import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -17,13 +18,14 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp @Composable fun Banner( modifier: Modifier = Modifier, text: String, - icon: ImageVector, + @DrawableRes icon: Int, color: Color = MaterialTheme.colorScheme.surfaceContainer, primaryAction: (@Composable () -> Unit)? = null, secondaryAction: (@Composable () -> Unit)? = null, @@ -45,7 +47,7 @@ fun Banner( ) { Icon( modifier = Modifier.padding(end = 16.dp), - imageVector = icon, + painter = painterResource(icon), contentDescription = null ) Text( diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/DragResizeHandle.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/DragResizeHandle.kt index c604ea4cb..af3648cb9 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/DragResizeHandle.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/DragResizeHandle.kt @@ -21,8 +21,6 @@ import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.layout.requiredWidth import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.UnfoldMore import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -37,10 +35,12 @@ import androidx.compose.ui.draw.rotate import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalHapticFeedback +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.coerceIn import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.isUnspecified +import de.mm20.launcher2.ui.R enum class ResizeAxis { Horizontal, @@ -135,7 +135,7 @@ fun DragResizeHandle( .padding(8.dp) .rotate(90f) .align(Alignment.Center), - imageVector = Icons.Rounded.UnfoldMore, + painter = painterResource(R.drawable.unfold_more_24px), contentDescription = null, tint = MaterialTheme.colorScheme.onPrimary, ) @@ -191,7 +191,7 @@ fun DragResizeHandle( .background(MaterialTheme.colorScheme.primary, CircleShape) .padding(8.dp) .align(Alignment.Center), - imageVector = Icons.Rounded.UnfoldMore, + painter = painterResource(R.drawable.unfold_more_24px), contentDescription = null, tint = MaterialTheme.colorScheme.onPrimary, ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/LargeMessage.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/LargeMessage.kt index c0e0fae79..d012f6553 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/LargeMessage.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/LargeMessage.kt @@ -1,5 +1,6 @@ package de.mm20.launcher2.ui.component +import androidx.annotation.DrawableRes import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding @@ -13,13 +14,17 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp +/** + * @param icon the icon resource id. Should be an icon with optical size 48px. + */ @Composable fun LargeMessage( modifier: Modifier = Modifier, - icon: ImageVector, + @DrawableRes icon: Int, text: String, color: Color = LocalContentColor.current ) { @@ -29,7 +34,7 @@ fun LargeMessage( verticalArrangement = Arrangement.Center, ) { Icon( - imageVector = icon, + painter = painterResource(icon), contentDescription = null, modifier = Modifier .padding(bottom = 24.dp) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/MissingPermissionBanner.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/MissingPermissionBanner.kt index c7c607df8..0b0c3c16b 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/MissingPermissionBanner.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/MissingPermissionBanner.kt @@ -1,8 +1,6 @@ package de.mm20.launcher2.ui.component import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Lock import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -21,7 +19,7 @@ fun MissingPermissionBanner( Banner( modifier = modifier, text = text, - icon = Icons.Rounded.Lock, + icon = R.drawable.lock_24px, primaryAction = { Button( modifier = Modifier.padding(start = 8.dp), diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/OutlinedTagsInputField.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/OutlinedTagsInputField.kt index 7d4070a0b..40dc6b5e4 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/OutlinedTagsInputField.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/OutlinedTagsInputField.kt @@ -14,9 +14,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.KeyboardActions -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Clear -import androidx.compose.material.icons.rounded.Tag import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon @@ -42,10 +39,12 @@ import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.input.key.Key import androidx.compose.ui.input.key.key import androidx.compose.ui.input.key.onKeyEvent +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp import androidx.compose.ui.window.PopupProperties +import de.mm20.launcher2.ui.R import kotlinx.collections.immutable.toImmutableList import kotlinx.coroutines.launch @@ -153,7 +152,7 @@ fun OutlinedTagsInputField( Icon( modifier = Modifier .size(InputChipDefaults.IconSize), - imageVector = Icons.Rounded.Tag, + painter = painterResource(R.drawable.tag_20px), contentDescription = null ) }, @@ -165,7 +164,7 @@ fun OutlinedTagsInputField( .clickable { onTagsChange(tags.filterIndexed { index, _ -> index != i }) }, - imageVector = Icons.Rounded.Clear, + painter = painterResource(R.drawable.close_20px), contentDescription = null ) }, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/RatingBar.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/RatingBar.kt index 05cded491..65a242d79 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/RatingBar.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/RatingBar.kt @@ -4,10 +4,6 @@ import android.icu.text.DecimalFormat import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.StarHalf -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StarOutline import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -15,9 +11,11 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import de.mm20.launcher2.ui.R import kotlin.math.round /** @@ -43,7 +41,7 @@ fun RatingBar( ) { for (i in 0 until fullStars) { Icon( - imageVector = Icons.Rounded.Star, + painter = painterResource(R.drawable.star_20px_filled), contentDescription = null, tint = tint, modifier = iconModifier @@ -51,7 +49,7 @@ fun RatingBar( } if (halfStar) { Icon( - imageVector = Icons.AutoMirrored.Rounded.StarHalf, + painter = painterResource(R.drawable.star_half_20px), contentDescription = null, tint = tint, modifier = iconModifier @@ -59,7 +57,7 @@ fun RatingBar( } for (i in 0 until emptyStars) { Icon( - imageVector = Icons.Rounded.StarOutline, + painter = painterResource(R.drawable.star_20px), contentDescription = null, tint = tint, modifier = iconModifier diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/SearchActionIcon.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/SearchActionIcon.kt index a7d519645..3fc5d9f65 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/SearchActionIcon.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/SearchActionIcon.kt @@ -4,49 +4,20 @@ import android.content.ComponentName import android.content.pm.PackageManager import android.graphics.drawable.Drawable import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.StickyNote2 -import androidx.compose.material.icons.rounded.Alarm -import androidx.compose.material.icons.rounded.Call -import androidx.compose.material.icons.rounded.Email -import androidx.compose.material.icons.rounded.Error -import androidx.compose.material.icons.rounded.Event -import androidx.compose.material.icons.rounded.FindInPage -import androidx.compose.material.icons.rounded.Games -import androidx.compose.material.icons.rounded.ImageSearch -import androidx.compose.material.icons.rounded.Language -import androidx.compose.material.icons.rounded.LocationOn -import androidx.compose.material.icons.rounded.ManageSearch -import androidx.compose.material.icons.rounded.Movie -import androidx.compose.material.icons.rounded.MusicNote -import androidx.compose.material.icons.rounded.Person -import androidx.compose.material.icons.rounded.PersonAdd -import androidx.compose.material.icons.rounded.PersonSearch -import androidx.compose.material.icons.rounded.Place -import androidx.compose.material.icons.rounded.QueryStats -import androidx.compose.material.icons.rounded.Search -import androidx.compose.material.icons.rounded.Share -import androidx.compose.material.icons.rounded.Sms -import androidx.compose.material.icons.rounded.SportsEsports -import androidx.compose.material.icons.rounded.StickyNote2 -import androidx.compose.material.icons.rounded.Timer -import androidx.compose.material.icons.rounded.Translate -import androidx.compose.material.icons.rounded.TravelExplore -import androidx.compose.material.icons.rounded.Warning import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.graphics.isSpecified -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import coil.compose.AsyncImage @@ -55,6 +26,7 @@ import de.mm20.launcher2.searchactions.actions.SearchAction import de.mm20.launcher2.searchactions.actions.SearchActionIcon import de.mm20.launcher2.searchactions.builders.AppSearchActionBuilder import de.mm20.launcher2.searchactions.builders.CustomizableSearchActionBuilder +import de.mm20.launcher2.ui.R import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -66,7 +38,7 @@ fun SearchActionIcon( componentName: ComponentName? = null, size: Dp = 20.dp ) { - val tint = when(color) { + val tint = when (color) { 0 -> MaterialTheme.colorScheme.primary 1 -> Color.Unspecified else -> Color(color) @@ -74,7 +46,7 @@ fun SearchActionIcon( if (icon != SearchActionIcon.Custom || customIcon == null && componentName == null) { Icon( modifier = Modifier.size(size), - imageVector = getSearchActionIconVector(icon), + painter = painterResource(getSearchActionIconVector(icon)), contentDescription = null, tint = tint, ) @@ -121,39 +93,39 @@ fun SearchActionIcon(action: SearchAction, size: Dp = 20.dp) { @Composable fun SearchActionIcon(builder: CustomizableSearchActionBuilder, size: Dp = 20.dp) { - SearchActionIcon( - icon = builder.icon, - color = builder.iconColor, - customIcon = builder.customIcon, - componentName = (builder as? AppSearchActionBuilder)?.baseIntent?.component, - size = size, - ) + SearchActionIcon( + icon = builder.icon, + color = builder.iconColor, + customIcon = builder.customIcon, + componentName = (builder as? AppSearchActionBuilder)?.baseIntent?.component, + size = size, + ) } -fun getSearchActionIconVector(icon: SearchActionIcon): ImageVector { +fun getSearchActionIconVector(icon: SearchActionIcon): Int { return when (icon) { - SearchActionIcon.Phone -> Icons.Rounded.Call - SearchActionIcon.Website -> Icons.Rounded.Language - SearchActionIcon.Alarm -> Icons.Rounded.Alarm - SearchActionIcon.Timer -> Icons.Rounded.Timer - SearchActionIcon.Contact -> Icons.Rounded.PersonAdd - SearchActionIcon.Email -> Icons.Rounded.Email - SearchActionIcon.Message -> Icons.Rounded.Sms - SearchActionIcon.Calendar -> Icons.Rounded.Event - SearchActionIcon.Translate -> Icons.Rounded.Translate - SearchActionIcon.Search -> Icons.Rounded.Search - SearchActionIcon.Custom -> Icons.Rounded.Warning - SearchActionIcon.WebSearch -> Icons.Rounded.TravelExplore - SearchActionIcon.PersonSearch -> Icons.Rounded.PersonSearch - SearchActionIcon.StatsSearch -> Icons.Rounded.QueryStats - SearchActionIcon.SearchPage -> Icons.Rounded.FindInPage - SearchActionIcon.SearchList -> Icons.Rounded.ManageSearch - SearchActionIcon.ImageSearch -> Icons.Rounded.ImageSearch - SearchActionIcon.Location -> Icons.Rounded.Place - SearchActionIcon.Movie -> Icons.Rounded.Movie - SearchActionIcon.Music -> Icons.Rounded.MusicNote - SearchActionIcon.Game -> Icons.Rounded.SportsEsports - SearchActionIcon.Note -> Icons.AutoMirrored.Rounded.StickyNote2 - SearchActionIcon.Share -> Icons.Rounded.Share + SearchActionIcon.Phone -> R.drawable.call_24px + SearchActionIcon.Website -> R.drawable.language_24px + SearchActionIcon.Alarm -> R.drawable.alarm_24px + SearchActionIcon.Timer -> R.drawable.timer_24px + SearchActionIcon.Contact -> R.drawable.person_add_24px + SearchActionIcon.Email -> R.drawable.mail_24px + SearchActionIcon.Message -> R.drawable.sms_24px + SearchActionIcon.Calendar -> R.drawable.event_24px + SearchActionIcon.Translate -> R.drawable.translate_24px + SearchActionIcon.Search -> R.drawable.search_24px + SearchActionIcon.Custom -> R.drawable.warning_24px + SearchActionIcon.WebSearch -> R.drawable.travel_explore_24px + SearchActionIcon.PersonSearch -> R.drawable.person_search_24px + SearchActionIcon.StatsSearch -> R.drawable.query_stats_24px + SearchActionIcon.SearchPage -> R.drawable.find_in_page_24px + SearchActionIcon.SearchList -> R.drawable.manage_search_24px + SearchActionIcon.ImageSearch -> R.drawable.image_search_24px + SearchActionIcon.Location -> R.drawable.location_on_24px + SearchActionIcon.Movie -> R.drawable.movie_24px + SearchActionIcon.Music -> R.drawable.music_note_24px + SearchActionIcon.Game -> R.drawable.sports_esports_24px + SearchActionIcon.Note -> R.drawable.sticky_note_2_24px + SearchActionIcon.Share -> R.drawable.share_24px } } \ No newline at end of file diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/SearchBar.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/SearchBar.kt index 2c1befedb..95f4dcbf7 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/SearchBar.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/SearchBar.kt @@ -18,7 +18,6 @@ import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.KeyboardActionScope import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.icons.rounded.Search import androidx.compose.material3.Icon import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme @@ -36,6 +35,7 @@ import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics @@ -151,7 +151,7 @@ fun SearchBar( ) { Icon( modifier = Modifier.padding(12.dp), - imageVector = androidx.compose.material.icons.Icons.Rounded.Search, + painter = painterResource(R.drawable.search_24px), contentDescription = null, tint = contentColor ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/ShapedLauncherIcon.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/ShapedLauncherIcon.kt index e2f3d4745..5b29db16d 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/ShapedLauncherIcon.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/ShapedLauncherIcon.kt @@ -10,7 +10,6 @@ import android.graphics.RectF import android.graphics.drawable.AdaptiveIconDrawable import androidx.compose.animation.core.animateFloatAsState import androidx.compose.foundation.Canvas -import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding @@ -214,15 +213,15 @@ fun ShapedLauncherIcon( is VectorLayer -> { Icon( - imageVector = fg.vector, contentDescription = null, + painter = painterResource(fg.icon), contentDescription = null, tint = if (fg.color == 0) { Color(renderSettings.fgThemeColor) } else { Color(getTone(fg.color, renderSettings.fgTone)) }, + modifier = Modifier.size(size / 2f), ) } - else -> {} } } else { @@ -268,7 +267,7 @@ fun ShapedLauncherIcon( modifier = Modifier .fillMaxSize() .padding(size / 24), - imageVector = badgeIcon.imageVector, + painter = painterResource(badgeIcon.iconRes), contentDescription = null, tint = MaterialTheme.colorScheme.onTertiary, ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/SmallMessage.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/SmallMessage.kt index 483c8e380..ecfa558f7 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/SmallMessage.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/SmallMessage.kt @@ -1,5 +1,6 @@ package de.mm20.launcher2.ui.component +import androidx.annotation.DrawableRes import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.material3.* @@ -8,13 +9,14 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp @Composable fun SmallMessage( modifier: Modifier = Modifier, - icon: ImageVector, + @DrawableRes icon: Int, text: String, color: Color = MaterialTheme.colorScheme.surfaceVariant ) { @@ -29,7 +31,7 @@ fun SmallMessage( .padding(16.dp), verticalAlignment = Alignment.CenterVertically ) { - Icon(imageVector = icon, contentDescription = null) + Icon(painterResource(icon), contentDescription = null) Text( text = text, modifier = Modifier.padding(start = 16.dp), diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/Toolbar.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/Toolbar.kt index 6d27f0ca2..da68111df 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/Toolbar.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/Toolbar.kt @@ -8,9 +8,6 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ChevronRight -import androidx.compose.material.icons.rounded.MoreVert import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon @@ -22,8 +19,8 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.integerResource +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import de.mm20.launcher2.ui.R @@ -55,7 +52,10 @@ fun Icons(actions: List, slots: Int) { var showMenu by remember { mutableStateOf(false) } Box { IconButton(onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, contentDescription = stringResource(R.string.action_more_actions)) + Icon( + painterResource(R.drawable.more_vert_24px), + contentDescription = stringResource(R.string.action_more_actions) + ) } Box( modifier = Modifier @@ -80,7 +80,7 @@ fun Icons(actions: List, slots: Int) { IconButton( onClick = action.action, ) { - Icon(action.icon, contentDescription = action.label) + Icon(painterResource(action.icon), contentDescription = action.label) } } @@ -92,7 +92,10 @@ fun Icons(actions: List, slots: Int) { showMenu = true }, ) { - Icon(action.icon, contentDescription = action.label) + Icon( + painterResource(action.icon), + contentDescription = action.label + ) } Box( modifier = Modifier @@ -132,10 +135,10 @@ fun ColumnScope.OverflowMenuItems(items: List, onDismiss: () -> U ) }, leadingIcon = { - Icon(action.icon, null) + Icon(painterResource(action.icon), null) }, trailingIcon = { - Icon(Icons.Rounded.ChevronRight, null) + Icon(painterResource(R.drawable.chevron_forward_24px), null) } ) } @@ -152,7 +155,7 @@ fun ColumnScope.OverflowMenuItems(items: List, onDismiss: () -> U ) }, leadingIcon = { - Icon(action.icon, null) + Icon(painterResource(action.icon), null) } ) } @@ -166,17 +169,17 @@ fun ColumnScope.OverflowMenuItems(items: List, onDismiss: () -> U interface ToolbarAction { val label: String - val icon: ImageVector + val icon: Int } data class DefaultToolbarAction( override val label: String, - override val icon: ImageVector, + override val icon: Int, val action: () -> Unit ) : ToolbarAction data class SubmenuToolbarAction( override val label: String, - override val icon: ImageVector, + override val icon: Int, val children: List ) : ToolbarAction \ No newline at end of file diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/emojipicker/EmojiPicker.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/emojipicker/EmojiPicker.kt index b6e39033e..dfbaec3bc 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/emojipicker/EmojiPicker.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/emojipicker/EmojiPicker.kt @@ -58,11 +58,32 @@ fun EmojiPicker( } } val categoryNames = stringArrayResource(R.array.category_names) + val categoryIcons = remember { - val typedArray = context.resources.obtainTypedArray(R.array.emoji_categories_icons) - IntArray(typedArray.length()) { typedArray.getResourceId(it, 0) }.also { - typedArray.recycle() - } + listOf( + R.drawable.mood_24px, + R.drawable.emoji_people_24px, + R.drawable.emoji_nature_24px, + R.drawable.emoji_food_beverage_24px, + R.drawable.emoji_transportation_24px, + R.drawable.trophy_24px, + R.drawable.emoji_objects_24px, + R.drawable.emoji_symbols_24px, + R.drawable.flag_24px, + ) + } + val categoryIconsFilled = remember { + listOf( + R.drawable.mood_24px_filled, + R.drawable.emoji_people_24px_filled, + R.drawable.emoji_nature_24px_filled, + R.drawable.emoji_food_beverage_24px_filled, + R.drawable.emoji_transportation_24px_filled, + R.drawable.trophy_24px_filled, + R.drawable.emoji_objects_24px_filled, + R.drawable.emoji_symbols_24px_filled, + R.drawable.flag_24px_filled, + ) } val emojis = remember { @@ -106,7 +127,10 @@ fun EmojiPicker( ) { if (i < categoryIcons.size && categoryIcons[i] != 0) { Icon( - painterResource(id = categoryIcons[i]), + painterResource( + if (selectedCategory.intValue == i) categoryIconsFilled[i] + else categoryIcons[i] + ), contentDescription = categoryNames[i] ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/CheckboxPreference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/CheckboxPreference.kt index 546625380..2941984f1 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/CheckboxPreference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/CheckboxPreference.kt @@ -1,5 +1,6 @@ package de.mm20.launcher2.ui.component.preferences +import androidx.annotation.DrawableRes import androidx.compose.material3.Checkbox import androidx.compose.material3.CheckboxColors import androidx.compose.material3.CheckboxDefaults @@ -9,7 +10,7 @@ import androidx.compose.ui.graphics.vector.ImageVector @Composable fun CheckboxPreference( title: String, - icon: ImageVector? = null, + @DrawableRes icon: Int? = null, iconPadding: Boolean = icon != null, summary: String? = null, value: Boolean, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/GuardedPreference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/GuardedPreference.kt index 172058d50..0bd49cc8d 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/GuardedPreference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/GuardedPreference.kt @@ -1,18 +1,16 @@ package de.mm20.launcher2.ui.component.preferences +import androidx.annotation.DrawableRes import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Lock import androidx.compose.material3.Button import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import de.mm20.launcher2.ui.R @@ -23,7 +21,7 @@ fun GuardedPreference( locked: Boolean, onUnlock: (() -> Unit)? = null, description: String, - icon: ImageVector = Icons.Rounded.Lock, + @DrawableRes icon: Int = R.drawable.lock_24px, unlockLabel: String = stringResource(R.string.grant_permission), preference: @Composable () -> Unit, ) { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/ListPreference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/ListPreference.kt index 5dd9b52e3..03dd171b7 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/ListPreference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/ListPreference.kt @@ -1,5 +1,6 @@ package de.mm20.launcher2.ui.component.preferences +import androidx.annotation.DrawableRes import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn @@ -17,7 +18,7 @@ import androidx.compose.ui.window.Dialog @Composable fun ListPreference( title: String, - icon: ImageVector? = null, + @DrawableRes icon: Int? = null, iconPadding: Boolean = icon != null, items: List>, value: T, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/Preference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/Preference.kt index 541519b06..313caaed4 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/Preference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/Preference.kt @@ -1,5 +1,6 @@ package de.mm20.launcher2.ui.component.preferences +import androidx.annotation.DrawableRes import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -17,6 +18,7 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp @Composable @@ -113,7 +115,7 @@ fun Preference( @Composable fun Preference( title: String, - icon: ImageVector? = null, + @DrawableRes icon: Int? = null, iconPadding: Boolean = icon != null, summary: String? = null, onClick: () -> Unit = {}, @@ -126,7 +128,7 @@ fun Preference( icon = { if (icon != null) { Icon( - imageVector = icon, + painter = painterResource(icon), contentDescription = null, tint = MaterialTheme.colorScheme.primary, ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/PreferenceScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/PreferenceScreen.kt index 1b340e6fb..749033c5f 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/PreferenceScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/PreferenceScreen.kt @@ -15,11 +15,7 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.rounded.HelpOutline import androidx.compose.material3.CenterAlignedTopAppBar -import androidx.compose.material3.FilledTonalIconButton import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -39,12 +35,13 @@ import androidx.compose.ui.input.nestedscroll.NestedScrollSource import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalViewConfiguration +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.core.net.toUri -import de.mm20.launcher2.ui.locals.LocalNavController import de.mm20.launcher2.ui.R +import de.mm20.launcher2.ui.locals.LocalNavController @Composable @@ -134,7 +131,7 @@ fun PreferenceScreen( } }) { Icon( - imageVector = Icons.AutoMirrored.Rounded.ArrowBack, + painter = painterResource(R.drawable.arrow_back_24px), contentDescription = "Back" ) } @@ -152,7 +149,7 @@ fun PreferenceScreen( .build().launchUrl(context, helpUrl.toUri()) }) { Icon( - imageVector = Icons.Rounded.HelpOutline, + painter = painterResource(R.drawable.help_24px), contentDescription = stringResource(R.string.help) ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/PreferenceWithSwitch.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/PreferenceWithSwitch.kt index f5e275f05..2fa84a84a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/PreferenceWithSwitch.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/PreferenceWithSwitch.kt @@ -1,5 +1,6 @@ package de.mm20.launcher2.ui.component.preferences +import androidx.annotation.DrawableRes import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.material3.LocalContentColor @@ -16,7 +17,7 @@ import androidx.compose.ui.unit.dp fun PreferenceWithSwitch( title: String, summary: String? = null, - icon: ImageVector? = null, + @DrawableRes icon: Int? = null, enabled: Boolean = true, onClick: () -> Unit = {}, switchValue: Boolean, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/SliderPreference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/SliderPreference.kt index 828c402e7..5f47f8544 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/SliderPreference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/SliderPreference.kt @@ -1,5 +1,6 @@ package de.mm20.launcher2.ui.component.preferences +import androidx.annotation.DrawableRes import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.material3.Slider @@ -11,6 +12,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import java.text.DecimalFormat @@ -21,7 +23,7 @@ import kotlin.math.roundToInt @Composable fun SliderPreference( title: String, - icon: ImageVector? = null, + @DrawableRes icon: Int? = null, iconPadding: Boolean = icon != null, value: Float, min: Float = 0f, @@ -52,7 +54,7 @@ fun SliderPreference( ) { if (icon != null) { Icon( - imageVector = icon, + painter = painterResource(icon), contentDescription = null, tint = MaterialTheme.colorScheme.primary, ) @@ -106,7 +108,7 @@ fun SliderPreference( @Composable fun SliderPreference( title: String, - icon: ImageVector? = null, + @DrawableRes icon: Int? = null, value: Int, min: Int = 0, max: Int = 100, @@ -135,7 +137,7 @@ fun SliderPreference( @Composable inline fun > SliderPreference( title: String, - icon: ImageVector? = null, + @DrawableRes icon: Int? = null, value: T, enabled: Boolean = true, labels: List>? = null, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/SwitchPreference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/SwitchPreference.kt index b59a77216..bf630789a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/SwitchPreference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/preferences/SwitchPreference.kt @@ -1,5 +1,6 @@ package de.mm20.launcher2.ui.component.preferences +import androidx.annotation.DrawableRes import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Switch import androidx.compose.runtime.Composable @@ -9,7 +10,7 @@ import androidx.compose.ui.graphics.vector.ImageVector @Composable fun SwitchPreference( title: String, - icon: ImageVector? = null, + @DrawableRes icon: Int? = null, iconPadding: Boolean = icon != null, summary: String? = null, value: Boolean, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/AnimatedWeatherIcon.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/AnimatedWeatherIcon.kt index 9278e3b2f..039500294 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/AnimatedWeatherIcon.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/AnimatedWeatherIcon.kt @@ -8,11 +8,6 @@ import androidx.compose.animation.graphics.res.animatedVectorResource import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter import androidx.compose.animation.graphics.vector.AnimatedImageVector import androidx.compose.foundation.layout.* -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.AcUnit -import androidx.compose.material.icons.rounded.Air -import androidx.compose.material.icons.rounded.Bolt -import androidx.compose.material.icons.rounded.Thermostat import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment @@ -21,15 +16,9 @@ import androidx.compose.ui.draw.clipToBounds import androidx.compose.ui.draw.rotate import androidx.compose.ui.draw.scale import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import de.mm20.launcher2.icons.WeatherCloud -import de.mm20.launcher2.icons.WeatherFog -import de.mm20.launcher2.icons.WeatherHailAnimatable -import de.mm20.launcher2.icons.WeatherLightRainAnimatable -import de.mm20.launcher2.icons.WeatherRainAnimatable -import de.mm20.launcher2.icons.WeatherSleetRainAnimatable -import de.mm20.launcher2.icons.WeatherSleetSnowAnimatable import de.mm20.launcher2.ui.R import kotlin.math.PI import kotlin.math.sin @@ -126,7 +115,7 @@ private fun LightningBolt(icon: WeatherIcon, colors: WeatherIconColors) { } Icon( - Icons.Rounded.Bolt, + painter = painterResource(R.drawable.bolt_24px_filled), null, modifier = Modifier .size(32.dp) @@ -156,7 +145,7 @@ private fun LightningBolt2(icon: WeatherIcon, colors: WeatherIconColors) { } Icon( - Icons.Rounded.Bolt, + painter = painterResource(R.drawable.bolt_24px_filled), null, modifier = Modifier .size(32.dp) @@ -236,7 +225,7 @@ private fun Cloud1(icon: WeatherIcon, colors: WeatherIconColors) { } Icon( - Icons.Rounded.WeatherCloud, + WeatherCloud, null, modifier = Modifier .size(32.dp) @@ -312,7 +301,7 @@ private fun Cloud2(icon: WeatherIcon, colors: WeatherIconColors) { } Icon( - Icons.Rounded.WeatherCloud, + WeatherCloud, null, modifier = Modifier .size(32.dp) @@ -379,7 +368,7 @@ private fun Cloud3(icon: WeatherIcon, colors: WeatherIconColors) { } Icon( - Icons.Rounded.WeatherCloud, + WeatherCloud, null, modifier = Modifier .size(32.dp) @@ -399,7 +388,7 @@ private fun Hot(icon: WeatherIcon, colors: WeatherIconColors) { } ) Icon( - Icons.Rounded.Thermostat, + painterResource(R.drawable.heat_24px), null, modifier = Modifier .scale(scale) @@ -418,7 +407,7 @@ private fun Cold(icon: WeatherIcon, colors: WeatherIconColors) { } ) Icon( - Icons.Rounded.AcUnit, + painterResource(R.drawable.severe_cold_24px), null, modifier = Modifier .scale(scale) @@ -437,7 +426,7 @@ private fun Wind1(icon: WeatherIcon, colors: WeatherIconColors) { } ) Icon( - Icons.Rounded.Air, + painterResource(R.drawable.air_20px), null, modifier = Modifier .scale(scale) @@ -457,7 +446,7 @@ private fun Wind2(icon: WeatherIcon, colors: WeatherIconColors) { } ) Icon( - Icons.Rounded.Air, + painterResource(R.drawable.air_20px), null, modifier = Modifier .scale(scale) @@ -470,7 +459,7 @@ private fun Wind2(icon: WeatherIcon, colors: WeatherIconColors) { @Preview @Composable fun AnimatedWeatherIconTestPanel() { - var icon by remember { mutableStateOf(WeatherIcon.MostlyCloudy) } + var icon by remember { mutableStateOf(WeatherIcon.ThunderstormWithRain) } var night by remember { mutableStateOf(false) } Row { val icons = WeatherIcon.values() @@ -532,7 +521,7 @@ private fun Precipitation(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .size(32.dp) .offset(y = 8.dp + 11.dp * animProgress), - imageVector = Icons.Rounded.WeatherLightRainAnimatable, + imageVector = WeatherLightRainAnimatable, contentDescription = null, tint = colors.rain ) @@ -548,7 +537,7 @@ private fun Precipitation(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .size(32.dp) .offset(y = 8.dp + 11.dp * animProgress), - imageVector = Icons.Rounded.WeatherHailAnimatable, + imageVector = WeatherHailAnimatable, contentDescription = null, tint = colors.hail, ) @@ -567,7 +556,7 @@ private fun Precipitation(icon: WeatherIcon, colors: WeatherIconColors) { x = sin(animProgress * 2 * PI).dp, y = 8.dp + 11.dp * animProgress ), - imageVector = Icons.Rounded.WeatherHailAnimatable, + imageVector = WeatherHailAnimatable, contentDescription = null, tint = colors.snow, ) @@ -585,7 +574,7 @@ private fun Precipitation(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .size(32.dp) .offset(y = 8.dp + 11.dp * animProgress), - imageVector = Icons.Rounded.WeatherRainAnimatable, + imageVector = WeatherRainAnimatable, contentDescription = null, tint = colors.rain, ) @@ -601,7 +590,7 @@ private fun Precipitation(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .size(32.dp) .offset(y = 8.dp + 11.dp * animProgress), - imageVector = Icons.Rounded.WeatherSleetRainAnimatable, + imageVector = WeatherSleetRainAnimatable, contentDescription = null, tint = colors.rain, ) @@ -609,7 +598,7 @@ private fun Precipitation(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .size(32.dp) .offset(y = 8.dp + 11.dp * animProgress), - imageVector = Icons.Rounded.WeatherSleetSnowAnimatable, + imageVector = WeatherSleetSnowAnimatable, contentDescription = null, tint = colors.snow, ) @@ -629,7 +618,7 @@ private fun Fog(icon: WeatherIcon, colors: WeatherIconColors) { .size(32.dp) .scale(scale) .offset(x = 6.dp, y = 7.dp), - imageVector = Icons.Rounded.WeatherFog, + imageVector = WeatherFog, contentDescription = null, tint = colors.fog ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/Graphics.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/Graphics.kt new file mode 100644 index 000000000..22c7832cf --- /dev/null +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/Graphics.kt @@ -0,0 +1,720 @@ +package de.mm20.launcher2.ui.component.weather + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap +import androidx.compose.ui.graphics.StrokeJoin +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.PathBuilder +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + + +private fun weatherIcon( + name: String, + path: PathBuilder.() -> Unit, +): ImageVector { + return ImageVector.Builder( + name = name, + defaultHeight = 24.dp, + defaultWidth = 24.dp, + viewportWidth = 24f, + viewportHeight = 24f, + ).apply { + path( + fill = SolidColor(Color.Black), + fillAlpha = 1f, + stroke = null, + strokeAlpha = 1f, + strokeLineWidth = 1f, + strokeLineCap = StrokeCap.Butt, + strokeLineJoin = StrokeJoin.Bevel, + strokeLineMiter = 1f, + pathBuilder = path + ) + }.build() +} + +val WeatherCloud = weatherIcon("WeatherCloud") { + moveTo(15.240234f, 6.953125f) + arcTo(4.2818656f, 4.2818656f, 0f, false, false, 11.722656f, 8.7949219f) + arcTo(3.8614116f, 3.8614116f, 0f, false, false, 9.2871094f, 7.9296875f) + arcTo(3.8614116f, 3.8614116f, 0f, false, false, 5.4257812f, 11.791016f) + arcTo(3.8614116f, 3.8614116f, 0f, false, false, 5.4335938f, 12.035156f) + arcTo(3.0096498f, 3.0096498f, 0f, false, false, 4.8671875f, 11.980469f) + arcTo(3.0096498f, 3.0096498f, 0f, false, false, 1.8574219f, 14.990234f) + arcTo(3.0096498f, 3.0096498f, 0f, false, false, 4.8671875f, 18f) + arcTo(3.0096498f, 3.0096498f, 0f, false, false, 4.9316406f, 18f) + lineTo(19.220703f, 18f) + lineTo(19.220703f, 17.998047f) + arcTo(2.5873528f, 2.5873528f, 0f, false, false, 21.742188f, 15.412109f) + arcTo(2.5873528f, 2.5873528f, 0f, false, false, 19.214844f, 12.826172f) + arcTo(4.2818656f, 4.2818656f, 0f, false, false, 19.523438f, 11.234375f) + arcTo(4.2818656f, 4.2818656f, 0f, false, false, 15.240234f, 6.953125f) + close() +} + + +val WeatherLightRain = weatherIcon("WeatherLightRain") { + moveTo(7.7747158f, 16.298471f) + curveTo(7.7747158f, 16.298471f, 6.3149844f, 17.454229f, 6.1717047f, 18.266809f) + arcTo(1.237673f, 1.237673f, 0f, false, false, 7.1769077f, 19.699334f) + arcTo(1.237673f, 1.237673f, 0f, false, false, 8.6094328f, 18.696345f) + curveTo(8.7527126f, 17.883765f, 7.7747158f, 16.298471f, 7.7747158f, 16.298471f) + close() + moveTo(12.3092f, 16.298471f) + curveTo(12.3092f, 16.298471f, 10.849468f, 17.454229f, 10.706189f, 18.266809f) + arcTo(1.237673f, 1.237673f, 0f, false, false, 11.711392f, 19.699334f) + arcTo(1.237673f, 1.237673f, 0f, false, false, 13.143917f, 18.696345f) + curveTo(13.287198f, 17.883765f, 12.3092f, 16.298471f, 12.3092f, 16.298471f) + close() + moveTo(16.843685f, 16.298471f) + curveTo(16.843685f, 16.298471f, 15.383952f, 17.454229f, 15.240673f, 18.266809f) + arcTo(1.237673f, 1.237673f, 0f, false, false, 16.245876f, 19.699334f) + arcTo(1.237673f, 1.237673f, 0f, false, false, 17.678401f, 18.696345f) + curveTo(17.821682f, 17.883765f, 16.843685f, 16.298471f, 16.843685f, 16.298471f) + close() +} + +val WeatherHail = weatherIcon("WeatherHail") { + moveTo(7.4093667f, 16.258438f) + curveTo(6.6975174f, 16.235656f, 6.09006f, 16.947847f, 6.2243877f, 17.647106f) + curveTo(6.3138584f, 18.353739f, 7.1127111f, 18.841403f, 7.7821731f, 18.599057f) + curveTo(8.4660776f, 18.399808f, 8.8227568f, 17.533933f, 8.4775745f, 16.910825f) + curveTo(8.2792236f, 16.515419f, 7.8517895f, 16.254332f, 7.4093667f, 16.258438f) + close() + moveTo(11.935705f, 16.258438f) + curveTo(11.223856f, 16.235656f, 10.616399f, 16.947847f, 10.750726f, 17.647106f) + curveTo(10.840183f, 18.35367f, 11.639079f, 18.841563f, 12.308486f, 18.598897f) + curveTo(12.992113f, 18.399396f, 13.348471f, 17.533766f, 13.003396f, 16.910825f) + curveTo(12.805121f, 16.51558f, 12.377952f, 16.254528f, 11.935705f, 16.258438f) + close() + moveTo(16.462044f, 16.258438f) + curveTo(15.750195f, 16.235656f, 15.142737f, 16.947847f, 15.277065f, 17.647106f) + curveTo(15.366522f, 18.35367f, 16.165418f, 18.841563f, 16.834825f, 18.598897f) + curveTo(17.518452f, 18.399396f, 17.87481f, 17.533766f, 17.529735f, 16.910825f) + curveTo(17.331459f, 16.51558f, 16.904291f, 16.254528f, 16.462044f, 16.258438f) + close() +} + +val WeatherSleetSnow = weatherIcon("WeatherSleetSnow") { + moveTo(11.935705f, 16.258438f) + curveTo(11.223856f, 16.235656f, 10.616399f, 16.947847f, 10.750726f, 17.647106f) + curveTo(10.840183f, 18.35367f, 11.639079f, 18.841563f, 12.308486f, 18.598897f) + curveTo(12.992113f, 18.399396f, 13.348471f, 17.533766f, 13.003396f, 16.910825f) + curveTo(12.805121f, 16.51558f, 12.377952f, 16.254528f, 11.935705f, 16.258438f) + close() +} + +val WeatherSleetRain = weatherIcon("WeatherSleetRain") { + moveTo(6.347656f, 15.96875f) + curveTo(5.938469f, 15.896599f, 5.550666f, 16.166984f, 5.478515f, 16.576172f) + lineTo(5.044922f, 19.039062f) + curveTo(4.972771f, 19.44825f, 5.243156f, 19.836052f, 5.652344f, 19.908203f) + curveTo(6.061531f, 19.980354f, 6.449333f, 19.708016f, 6.521484f, 19.298828f) + lineTo(6.955078f, 16.837891f) + curveTo(7.0272288f, 16.428703f, 6.7568437f, 16.040901f, 6.347656f, 15.96875f) + close() + moveTo(18.347656f, 15.96875f) + curveTo(17.938469f, 15.896599f, 17.550666f, 16.166984f, 17.478516f, 16.576172f) + lineTo(17.044922f, 19.039062f) + curveTo(16.972771f, 19.44825f, 17.243156f, 19.836052f, 17.652344f, 19.908203f) + curveTo(18.061531f, 19.980354f, 18.449333f, 19.708016f, 18.521484f, 19.298828f) + lineTo(18.955078f, 16.837891f) + curveTo(19.027229f, 16.428703f, 18.756844f, 16.040901f, 18.347656f, 15.96875f) + close() +} + +val WeatherRain = weatherIcon("WeatherRain") { + moveTo(6.347656f, 15.96875f) + curveTo(5.938469f, 15.896599f, 5.550666f, 16.166984f, 5.478515f, 16.576172f) + lineTo(5.044922f, 19.039062f) + curveTo(4.972771f, 19.44825f, 5.243156f, 19.836052f, 5.652344f, 19.908203f) + curveTo(6.061531f, 19.980354f, 6.449333f, 19.708016f, 6.521484f, 19.298828f) + lineTo(6.955078f, 16.837891f) + curveTo(7.0272288f, 16.428703f, 6.7568437f, 16.040901f, 6.347656f, 15.96875f) + close() + moveTo(9.3476561f, 15.96875f) + curveTo(8.9384685f, 15.896599f, 8.5506663f, 16.166984f, 8.4785155f, 16.576172f) + lineTo(8.0449218f, 19.039062f) + curveTo(7.9727709f, 19.44825f, 8.243156f, 19.836052f, 8.6523436f, 19.908203f) + curveTo(9.0615312f, 19.980354f, 9.4493334f, 19.708016f, 9.5214842f, 19.298828f) + lineTo(9.955078f, 16.837891f) + curveTo(10.027229f, 16.428703f, 9.7568437f, 16.040901f, 9.3476561f, 15.96875f) + close() + moveTo(12.347656f, 15.96875f) + curveTo(11.938469f, 15.896599f, 11.550666f, 16.166984f, 11.478516f, 16.576172f) + lineTo(11.044922f, 19.039062f) + curveTo(10.972771f, 19.44825f, 11.243156f, 19.836052f, 11.652344f, 19.908203f) + curveTo(12.061531f, 19.980354f, 12.449333f, 19.708016f, 12.521484f, 19.298828f) + lineTo(12.955078f, 16.837891f) + curveTo(13.027229f, 16.428703f, 12.756844f, 16.040901f, 12.347656f, 15.96875f) + close() + moveTo(15.347656f, 15.96875f) + curveTo(14.938469f, 15.896599f, 14.550666f, 16.166984f, 14.478516f, 16.576172f) + lineTo(14.044922f, 19.039062f) + curveTo(13.972771f, 19.44825f, 14.243156f, 19.836052f, 14.652344f, 19.908203f) + curveTo(15.061531f, 19.980354f, 15.449333f, 19.708016f, 15.521484f, 19.298828f) + lineTo(15.955078f, 16.837891f) + curveTo(16.027229f, 16.428703f, 15.756844f, 16.040901f, 15.347656f, 15.96875f) + close() + moveTo(18.347656f, 15.96875f) + curveTo(17.938469f, 15.896599f, 17.550666f, 16.166984f, 17.478516f, 16.576172f) + lineTo(17.044922f, 19.039062f) + curveTo(16.972771f, 19.44825f, 17.243156f, 19.836052f, 17.652344f, 19.908203f) + curveTo(18.061531f, 19.980354f, 18.449333f, 19.708016f, 18.521484f, 19.298828f) + lineTo(18.955078f, 16.837891f) + curveTo(19.027229f, 16.428703f, 18.756844f, 16.040901f, 18.347656f, 15.96875f) + close() +} + +val WeatherLightRainAnimatable = weatherIcon("WeatherLightRainAnimatable") { + moveTo(4.828129f, 0f) + curveTo(4.828129f, 0f, 3.6375041f, 1.3394488f, 3.6375041f, 2.1332031f) + curveTo(3.6375041f, 2.7907671f, 4.1705651f, 3.3238281f, 4.828129f, 3.3238281f) + curveTo(5.485693f, 3.3238281f, 6.018754f, 2.7907671f, 6.018754f, 2.1332031f) + curveTo(6.018754f, 1.3394488f, 4.828129f, 0f, 4.828129f, 0f) + close() + moveTo(12.765629f, 0f) + curveTo(12.765629f, 0f, 11.575004f, 1.3394488f, 11.575004f, 2.1332031f) + curveTo(11.575004f, 2.7907671f, 12.108065f, 3.3238281f, 12.765629f, 3.3238281f) + curveTo(13.423193f, 3.3238281f, 13.956254f, 2.7907671f, 13.956254f, 2.1332031f) + curveTo(13.956254f, 1.3394488f, 12.765629f, 0f, 12.765629f, 0f) + close() + moveTo(20.703129f, 0f) + curveTo(20.703129f, 0f, 19.512504f, 1.3394488f, 19.512504f, 2.1332031f) + curveTo(19.512504f, 2.7907671f, 20.045565f, 3.3238281f, 20.703129f, 3.3238281f) + curveTo(21.360693f, 3.3238281f, 21.893754f, 2.7907671f, 21.893754f, 2.1332031f) + curveTo(21.893754f, 1.3394488f, 20.703129f, 0f, 20.703129f, 0f) + close() + moveTo(8.796879f, 3.96875f) + curveTo(8.796879f, 3.96875f, 7.606254f, 5.3081983f, 7.606254f, 6.101953f) + curveTo(7.606254f, 6.759517f, 8.1393151f, 7.292578f, 8.796879f, 7.292578f) + curveTo(9.4544429f, 7.292578f, 9.987504f, 6.759517f, 9.987504f, 6.101953f) + curveTo(9.987504f, 5.3081983f, 8.796879f, 3.96875f, 8.796879f, 3.96875f) + close() + moveTo(16.734379f, 3.96875f) + curveTo(16.734379f, 3.96875f, 16.659965f, 4.0524664f, 16.548344f, 4.1904419f) + curveTo(16.21348f, 4.6043688f, 15.543754f, 5.5066369f, 15.543754f, 6.101953f) + curveTo(15.54381f, 6.7411813f, 16.048624f, 7.2662972f, 16.687353f, 7.2915446f) + curveTo(16.70302f, 7.2921986f, 16.718698f, 7.2925434f, 16.734379f, 7.292578f) + curveTo(17.391943f, 7.292578f, 17.925004f, 6.759517f, 17.925004f, 6.101953f) + curveTo(17.925004f, 5.3081983f, 16.734379f, 3.96875f, 16.734379f, 3.96875f) + close() + moveTo(4.828129f, 7.9374999f) + curveTo(4.828129f, 7.9374999f, 3.6375041f, 9.2769485f, 3.6375041f, 10.070703f) + curveTo(3.6375041f, 10.728267f, 4.1705651f, 11.261328f, 4.828129f, 11.261328f) + curveTo(5.485693f, 11.261328f, 6.018754f, 10.728267f, 6.018754f, 10.070703f) + curveTo(6.018754f, 9.2769485f, 4.828129f, 7.9374999f, 4.828129f, 7.9374999f) + close() + moveTo(12.765629f, 7.9374999f) + curveTo(12.765629f, 7.9374999f, 12.691215f, 8.0212162f, 12.579594f, 8.1591919f) + curveTo(12.24473f, 8.5731188f, 11.575004f, 9.4753868f, 11.575004f, 10.070703f) + curveTo(11.57496f, 10.567853f, 11.883816f, 11.012697f, 12.349634f, 11.186397f) + curveTo(12.364344f, 11.191857f, 12.379161f, 11.197026f, 12.394075f, 11.2019f) + curveTo(12.499019f, 11.236323f, 12.608242f, 11.255976f, 12.718603f, 11.260295f) + curveTo(12.73427f, 11.260949f, 12.749948f, 11.261293f, 12.765629f, 11.261328f) + curveTo(13.423193f, 11.261328f, 13.956254f, 10.728267f, 13.956254f, 10.070703f) + curveTo(13.956254f, 9.2769485f, 12.765629f, 7.9374999f, 12.765629f, 7.9374999f) + close() + moveTo(20.703129f, 7.9374999f) + curveTo(20.703129f, 7.9374999f, 20.628715f, 8.0212162f, 20.517094f, 8.1591919f) + curveTo(20.18223f, 8.5731188f, 19.512504f, 9.4753868f, 19.512504f, 10.070703f) + curveTo(19.51256f, 10.709931f, 20.017374f, 11.235047f, 20.656103f, 11.260295f) + curveTo(20.67177f, 11.260949f, 20.687448f, 11.261293f, 20.703129f, 11.261328f) + curveTo(21.360693f, 11.261328f, 21.893754f, 10.728267f, 21.893754f, 10.070703f) + curveTo(21.893754f, 9.2769485f, 20.703129f, 7.9374999f, 20.703129f, 7.9374999f) + close() + moveTo(8.796879f, 11.90625f) + curveTo(8.796879f, 11.90625f, 7.606254f, 13.245698f, 7.606254f, 14.039453f) + curveTo(7.606254f, 14.697017f, 8.1393151f, 15.230078f, 8.796879f, 15.230078f) + curveTo(9.4544429f, 15.230078f, 9.987504f, 14.697017f, 9.987504f, 14.039453f) + curveTo(9.987504f, 13.245698f, 8.796879f, 11.90625f, 8.796879f, 11.90625f) + close() + moveTo(16.734379f, 11.90625f) + curveTo(16.734379f, 11.90625f, 15.543754f, 13.245698f, 15.543754f, 14.039453f) + curveTo(15.543754f, 14.697017f, 16.076815f, 15.230078f, 16.734379f, 15.230078f) + curveTo(17.391943f, 15.230078f, 17.925004f, 14.697017f, 17.925004f, 14.039453f) + curveTo(17.925004f, 13.245698f, 16.734379f, 11.90625f, 16.734379f, 11.90625f) + close() + moveTo(4.828129f, 15.875f) + curveTo(4.828129f, 15.875f, 3.6375041f, 17.214448f, 3.6375041f, 18.008203f) + curveTo(3.6375041f, 18.665767f, 4.1705651f, 19.198828f, 4.828129f, 19.198828f) + curveTo(5.485693f, 19.198828f, 6.018754f, 18.665767f, 6.018754f, 18.008203f) + curveTo(6.018754f, 17.214448f, 4.828129f, 15.875f, 4.828129f, 15.875f) + close() + moveTo(12.765629f, 15.875f) + curveTo(12.765629f, 15.875f, 11.575004f, 17.214448f, 11.575004f, 18.008203f) + curveTo(11.575004f, 18.665767f, 12.108065f, 19.198828f, 12.765629f, 19.198828f) + curveTo(13.423193f, 19.198828f, 13.956254f, 18.665767f, 13.956254f, 18.008203f) + curveTo(13.956254f, 17.214448f, 12.765629f, 15.875f, 12.765629f, 15.875f) + close() + moveTo(20.703129f, 15.875f) + curveTo(20.703129f, 15.875f, 19.512504f, 17.214448f, 19.512504f, 18.008203f) + curveTo(19.512504f, 18.665767f, 20.045565f, 19.198828f, 20.703129f, 19.198828f) + curveTo(21.360693f, 19.198828f, 21.893754f, 18.665767f, 21.893754f, 18.008203f) + curveTo(21.893754f, 17.214448f, 20.703129f, 15.875f, 20.703129f, 15.875f) + close() +} + + +val WeatherHailAnimatable = weatherIcon("WeatherHailAnimatable") { + + moveTo(4.8281292f, 1.0583334f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 3.5971949f, 2.2892661f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 3.5201987f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 6.0585449f, 2.2892661f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 1.0583334f) + close() + moveTo(12.765629f, 1.0583334f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 11.534695f, 2.2892661f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 3.5201987f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 13.996045f, 2.2892661f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 1.0583334f) + close() + moveTo(20.703129f, 1.0583334f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 19.472195f, 2.2892661f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 3.5201987f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 21.933545f, 2.2892661f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 1.0583334f) + close() + moveTo(8.7968792f, 5.0270833f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 7.5659449f, 6.258016f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 8.7968792f, 7.4889487f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 10.027295f, 6.258016f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 8.7968792f, 5.0270833f) + close() + moveTo(16.734379f, 5.0270833f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 15.503445f, 6.258016f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 16.734379f, 7.4889487f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 17.964795f, 6.258016f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 16.734379f, 5.0270833f) + close() + moveTo(4.8281292f, 8.9958333f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 3.5971949f, 10.226766f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 11.457699f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 6.0585449f, 10.226766f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 8.9958333f) + close() + moveTo(12.765629f, 8.9958333f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 11.534695f, 10.226766f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 11.457699f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 13.996045f, 10.226766f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 8.9958333f) + close() + moveTo(20.703129f, 8.9958333f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 19.472195f, 10.226766f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 11.457699f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 21.933545f, 10.226766f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 8.9958333f) + close() + moveTo(8.7968792f, 12.964583f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 7.5659449f, 14.195516f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 8.7968792f, 15.426449f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 10.027295f, 14.195516f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 8.7968792f, 12.964583f) + close() + moveTo(16.734379f, 12.964583f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 15.503445f, 14.195516f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 16.734379f, 15.426449f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 17.964795f, 14.195516f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 16.734379f, 12.964583f) + close() + moveTo(4.8281292f, 16.933333f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 3.5971949f, 18.164266f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 19.395199f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 6.0585449f, 18.164266f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 16.933333f) + close() + moveTo(12.765629f, 16.933333f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 11.534695f, 18.164266f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 19.395199f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 13.996045f, 18.164266f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 16.933333f) + close() + moveTo(20.703129f, 16.933333f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 19.472195f, 18.164266f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 19.395199f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 21.933545f, 18.164266f) + arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 16.933333f) + close() +} + + +val WeatherRainAnimatable = weatherIcon("WeatherRainAnimatable") { + + moveTo(4.828129f, 0.1133928f) + curveTo(4.41263f, 0.1133928f, 4.0777866f, 0.4477181f, 4.0777866f, 0.8632184f) + verticalLineTo(4.8634909f) + curveTo(4.0777866f, 5.278991f, 4.41263f, 5.6133161f, 4.828129f, 5.6133161f) + curveTo(5.243628f, 5.6133161f, 5.5779529f, 5.278991f, 5.5779529f, 4.8634909f) + verticalLineTo(0.8632184f) + curveTo(5.5779529f, 0.4477181f, 5.243628f, 0.1133928f, 4.828129f, 0.1133928f) + close() + moveTo(12.765629f, 0.1133928f) + curveTo(12.35013f, 0.1133928f, 12.015286f, 0.4477181f, 12.015286f, 0.8632184f) + verticalLineTo(4.8634909f) + curveTo(12.015286f, 5.278991f, 12.35013f, 5.6133161f, 12.765629f, 5.6133161f) + curveTo(13.181128f, 5.6133161f, 13.515453f, 5.278991f, 13.515453f, 4.8634909f) + verticalLineTo(0.8632184f) + curveTo(13.515453f, 0.4477181f, 13.181128f, 0.1133928f, 12.765629f, 0.1133928f) + close() + moveTo(20.703129f, 0.1133928f) + curveTo(20.28763f, 0.1133928f, 19.952786f, 0.4477181f, 19.952786f, 0.8632184f) + verticalLineTo(4.8634909f) + curveTo(19.952786f, 5.278991f, 20.28763f, 5.6133161f, 20.703129f, 5.6133161f) + curveTo(21.118628f, 5.6133161f, 21.452953f, 5.278991f, 21.452953f, 4.8634909f) + verticalLineTo(0.8632184f) + curveTo(21.452953f, 0.4477181f, 21.118628f, 0.1133928f, 20.703129f, 0.1133928f) + close() + moveTo(8.796879f, 4.0821433f) + curveTo(8.3813799f, 4.0821433f, 8.0465365f, 4.4164684f, 8.0465365f, 4.8319684f) + verticalLineTo(8.8322408f) + curveTo(8.0465365f, 9.247741f, 8.3813799f, 9.582066f, 8.796879f, 9.582066f) + curveTo(9.212378f, 9.582066f, 9.5467028f, 9.247741f, 9.5467028f, 8.8322408f) + verticalLineTo(4.8319684f) + curveTo(9.5467028f, 4.4164684f, 9.212378f, 4.0821433f, 8.796879f, 4.0821433f) + close() + moveTo(16.734379f, 4.0821433f) + curveTo(16.31888f, 4.0821433f, 15.984036f, 4.4164684f, 15.984036f, 4.8319684f) + verticalLineTo(8.8322408f) + curveTo(15.984036f, 9.247741f, 16.31888f, 9.582066f, 16.734379f, 9.582066f) + curveTo(17.149878f, 9.582066f, 17.484203f, 9.247741f, 17.484203f, 8.8322408f) + verticalLineTo(4.8319684f) + curveTo(17.484203f, 4.4164684f, 17.149878f, 4.0821433f, 16.734379f, 4.0821433f) + close() + moveTo(4.828129f, 8.0508932f) + curveTo(4.41263f, 8.0508932f, 4.0777866f, 8.3852183f, 4.0777866f, 8.8007184f) + verticalLineTo(12.800991f) + curveTo(4.0777866f, 13.216491f, 4.41263f, 13.550816f, 4.828129f, 13.550816f) + curveTo(5.243628f, 13.550816f, 5.5779529f, 13.216491f, 5.5779529f, 12.800991f) + verticalLineTo(8.8007184f) + curveTo(5.5779529f, 8.3852183f, 5.243628f, 8.0508932f, 4.828129f, 8.0508932f) + close() + moveTo(12.765629f, 8.0508932f) + curveTo(12.35013f, 8.0508932f, 12.015286f, 8.3852183f, 12.015286f, 8.8007184f) + verticalLineTo(12.800991f) + curveTo(12.015286f, 13.216491f, 12.35013f, 13.550816f, 12.765629f, 13.550816f) + curveTo(13.181128f, 13.550816f, 13.515453f, 13.216491f, 13.515453f, 12.800991f) + verticalLineTo(8.8007184f) + curveTo(13.515453f, 8.3852183f, 13.181128f, 8.0508932f, 12.765629f, 8.0508932f) + close() + moveTo(20.703129f, 8.0508932f) + curveTo(20.28763f, 8.0508932f, 19.952786f, 8.3852183f, 19.952786f, 8.8007184f) + verticalLineTo(12.800991f) + curveTo(19.952786f, 13.216491f, 20.28763f, 13.550816f, 20.703129f, 13.550816f) + curveTo(21.118628f, 13.550816f, 21.452953f, 13.216491f, 21.452953f, 12.800991f) + verticalLineTo(8.8007184f) + curveTo(21.452953f, 8.3852183f, 21.118628f, 8.0508932f, 20.703129f, 8.0508932f) + close() + moveTo(8.796879f, 12.019643f) + curveTo(8.3813799f, 12.019643f, 8.0465365f, 12.353968f, 8.0465365f, 12.769468f) + verticalLineTo(16.769741f) + curveTo(8.0465365f, 17.185241f, 8.3813799f, 17.519566f, 8.796879f, 17.519566f) + curveTo(9.212378f, 17.519566f, 9.5467028f, 17.185241f, 9.5467028f, 16.769741f) + verticalLineTo(12.769468f) + curveTo(9.5467028f, 12.353968f, 9.212378f, 12.019643f, 8.796879f, 12.019643f) + close() + moveTo(16.734379f, 12.019643f) + curveTo(16.31888f, 12.019643f, 15.984036f, 12.353968f, 15.984036f, 12.769468f) + verticalLineTo(16.769741f) + curveTo(15.984036f, 17.185241f, 16.31888f, 17.519566f, 16.734379f, 17.519566f) + curveTo(17.149878f, 17.519566f, 17.484203f, 17.185241f, 17.484203f, 16.769741f) + verticalLineTo(12.769468f) + curveTo(17.484203f, 12.353968f, 17.149878f, 12.019643f, 16.734379f, 12.019643f) + close() + moveTo(4.828129f, 15.988393f) + curveTo(4.41263f, 15.988393f, 4.0777866f, 16.322718f, 4.0777866f, 16.738218f) + verticalLineTo(20.738491f) + curveTo(4.0777866f, 21.153991f, 4.41263f, 21.488316f, 4.828129f, 21.488316f) + curveTo(5.243628f, 21.488316f, 5.5779529f, 21.153991f, 5.5779529f, 20.738491f) + verticalLineTo(16.738218f) + curveTo(5.5779529f, 16.322718f, 5.243628f, 15.988393f, 4.828129f, 15.988393f) + close() + moveTo(12.765629f, 15.988393f) + curveTo(12.35013f, 15.988393f, 12.015286f, 16.322718f, 12.015286f, 16.738218f) + verticalLineTo(20.738491f) + curveTo(12.015286f, 21.153991f, 12.35013f, 21.488316f, 12.765629f, 21.488316f) + curveTo(13.181128f, 21.488316f, 13.515453f, 21.153991f, 13.515453f, 20.738491f) + verticalLineTo(16.738218f) + curveTo(13.515453f, 16.322718f, 13.181128f, 15.988393f, 12.765629f, 15.988393f) + close() + moveTo(20.703129f, 15.988393f) + curveTo(20.28763f, 15.988393f, 19.952786f, 16.322718f, 19.952786f, 16.738218f) + verticalLineTo(20.738491f) + curveTo(19.952786f, 21.153991f, 20.28763f, 21.488316f, 20.703129f, 21.488316f) + curveTo(21.118628f, 21.488316f, 21.452953f, 21.153991f, 21.452953f, 20.738491f) + verticalLineTo(16.738218f) + curveTo(21.452953f, 16.322718f, 21.118628f, 15.988393f, 20.703129f, 15.988393f) + close() + +} + +val WeatherSleetRainAnimatable = weatherIcon("WeatherSleetRainAnimatable") { + + moveTo(4.8281293f, 0.11317139f) + curveTo(4.4126296f, 0.11317139f, 4.0777866f, 0.44749611f, 4.0777866f, 0.86299642f) + verticalLineTo(4.8632689f) + curveTo(4.0777866f, 5.278769f, 4.4126296f, 5.6130941f, 4.8281293f, 5.6130941f) + curveTo(5.2436283f, 5.6130941f, 5.5779543f, 5.278769f, 5.5779543f, 4.8632689f) + verticalLineTo(0.86299642f) + curveTo(5.5779543f, 0.44749611f, 5.2436283f, 0.11317139f, 4.8281293f, 0.11317139f) + close() + moveTo(12.765629f, 0.11317139f) + curveTo(12.35013f, 0.11317139f, 12.015287f, 0.44749611f, 12.015287f, 0.86299642f) + verticalLineTo(4.8632689f) + curveTo(12.015287f, 5.278769f, 12.35013f, 5.6130941f, 12.765629f, 5.6130941f) + curveTo(13.181128f, 5.6130941f, 13.515454f, 5.278769f, 13.515454f, 4.8632689f) + verticalLineTo(0.86299642f) + curveTo(13.515454f, 0.44749611f, 13.181128f, 0.11317139f, 12.765629f, 0.11317139f) + close() + moveTo(20.703129f, 0.11317139f) + curveTo(20.287629f, 0.11317139f, 19.952787f, 0.44749611f, 19.952787f, 0.86299642f) + verticalLineTo(4.8632689f) + curveTo(19.952787f, 5.278769f, 20.287629f, 5.6130941f, 20.703129f, 5.6130941f) + curveTo(21.118628f, 5.6130941f, 21.452953f, 5.278769f, 21.452953f, 4.8632689f) + verticalLineTo(0.86299642f) + curveTo(21.452953f, 0.44749611f, 21.118628f, 0.11317139f, 20.703129f, 0.11317139f) + close() + moveTo(4.8281293f, 8.0506712f) + curveTo(4.4126296f, 8.0506712f, 4.0777866f, 8.3849963f, 4.0777866f, 8.8004964f) + verticalLineTo(12.800769f) + curveTo(4.0777866f, 13.216269f, 4.4126296f, 13.550594f, 4.8281293f, 13.550594f) + curveTo(5.2436283f, 13.550594f, 5.5779543f, 13.216269f, 5.5779543f, 12.800769f) + verticalLineTo(8.8004964f) + curveTo(5.5779543f, 8.3849963f, 5.2436283f, 8.0506712f, 4.8281293f, 8.0506712f) + close() + moveTo(12.765629f, 8.0506712f) + curveTo(12.35013f, 8.0506712f, 12.015287f, 8.3849963f, 12.015287f, 8.8004964f) + verticalLineTo(12.800769f) + curveTo(12.015287f, 13.216269f, 12.35013f, 13.550594f, 12.765629f, 13.550594f) + curveTo(13.181128f, 13.550594f, 13.515454f, 13.216269f, 13.515454f, 12.800769f) + verticalLineTo(8.8004964f) + curveTo(13.515454f, 8.3849963f, 13.181128f, 8.0506712f, 12.765629f, 8.0506712f) + close() + moveTo(20.703129f, 8.0506712f) + curveTo(20.287629f, 8.0506712f, 19.952787f, 8.3849963f, 19.952787f, 8.8004964f) + verticalLineTo(12.800769f) + curveTo(19.952787f, 13.216269f, 20.287629f, 13.550594f, 20.703129f, 13.550594f) + curveTo(21.118628f, 13.550594f, 21.452953f, 13.216269f, 21.452953f, 12.800769f) + verticalLineTo(8.8004964f) + curveTo(21.452953f, 8.3849963f, 21.118628f, 8.0506712f, 20.703129f, 8.0506712f) + close() + moveTo(4.8281293f, 15.988171f) + curveTo(4.4126296f, 15.988171f, 4.0777866f, 16.322496f, 4.0777866f, 16.737996f) + verticalLineTo(20.738269f) + curveTo(4.0777866f, 21.153769f, 4.4126296f, 21.488094f, 4.8281293f, 21.488094f) + curveTo(5.2436283f, 21.488094f, 5.5779543f, 21.153769f, 5.5779543f, 20.738269f) + verticalLineTo(16.737996f) + curveTo(5.5779543f, 16.322496f, 5.2436283f, 15.988171f, 4.8281293f, 15.988171f) + close() + moveTo(12.765629f, 15.988171f) + curveTo(12.35013f, 15.988171f, 12.015287f, 16.322496f, 12.015287f, 16.737996f) + verticalLineTo(20.738269f) + curveTo(12.015287f, 21.153769f, 12.35013f, 21.488094f, 12.765629f, 21.488094f) + curveTo(13.181128f, 21.488094f, 13.515454f, 21.153769f, 13.515454f, 20.738269f) + verticalLineTo(16.737996f) + curveTo(13.515454f, 16.322496f, 13.181128f, 15.988171f, 12.765629f, 15.988171f) + close() + moveTo(20.703129f, 15.988171f) + curveTo(20.287629f, 15.988171f, 19.952787f, 16.322496f, 19.952787f, 16.737996f) + verticalLineTo(20.738269f) + curveTo(19.952787f, 21.153769f, 20.287629f, 21.488094f, 20.703129f, 21.488094f) + curveTo(21.118628f, 21.488094f, 21.452953f, 21.153769f, 21.452953f, 20.738269f) + verticalLineTo(16.737996f) + curveTo(21.452953f, 16.322496f, 21.118628f, 15.988171f, 20.703129f, 15.988171f) + close() + } + +val WeatherSleetSnowAnimatable = weatherIcon("WeatherSleetSnowAnimatable") { + + moveTo(8.796879f, 5.0270833f) + curveTo(7.8632606f, 4.9745641f, 7.2031834f, 6.1917513f, 7.7668228f, 6.9446931f) + curveTo(8.2182954f, 7.6432508f, 9.3919824f, 7.6787827f, 9.8262364f, 6.9412491f) + curveTo(10.250965f, 6.3103634f, 9.9588313f, 5.3184227f, 9.2064902f, 5.0975184f) + curveTo(9.0753076f, 5.0509595f, 8.9361544f, 5.0263693f, 8.796879f, 5.0270833f) + close() + moveTo(16.734379f, 5.0270833f) + curveTo(15.800761f, 4.974564f, 15.140683f, 6.1917512f, 15.704322f, 6.9446931f) + curveTo(16.155795f, 7.643251f, 17.329482f, 7.6787825f, 17.763736f, 6.9412491f) + curveTo(18.188465f, 6.3103636f, 17.896331f, 5.3184225f, 17.14399f, 5.0975184f) + curveTo(17.012808f, 5.0509596f, 16.873654f, 5.0263694f, 16.734379f, 5.0270833f) + close() + moveTo(8.796879f, 12.964583f) + curveTo(7.8632606f, 12.912064f, 7.2031834f, 14.129251f, 7.7668228f, 14.882193f) + curveTo(8.2182957f, 15.580751f, 9.3919822f, 15.616282f, 9.8262364f, 14.878749f) + curveTo(10.250965f, 14.247863f, 9.9588308f, 13.255923f, 9.2064902f, 13.035018f) + curveTo(9.0753077f, 12.988459f, 8.9361544f, 12.963869f, 8.796879f, 12.964583f) + close() + moveTo(16.734379f, 12.964583f) + curveTo(15.800761f, 12.912064f, 15.140683f, 14.129251f, 15.704322f, 14.882193f) + curveTo(16.155795f, 15.580751f, 17.329482f, 15.616282f, 17.763736f, 14.878749f) + curveTo(18.188465f, 14.247863f, 17.896331f, 13.255923f, 17.14399f, 13.035018f) + curveTo(17.012808f, 12.988459f, 16.873654f, 12.963869f, 16.734379f, 12.964583f) + close() + } + +val WeatherFog = weatherIcon("WeatherFog") { + moveTo(9.7558594f, 9.9609375f) + curveTo(9.2018594f, 9.9609375f, 8.7558594f, 10.406937f, 8.7558594f, 10.960938f) + curveTo(8.7558594f, 11.514938f, 9.2018594f, 11.960938f, 9.7558594f, 11.960938f) + lineTo(19.662109f, 11.960938f) + curveTo(20.216109f, 11.960937f, 20.662109f, 11.514938f, 20.662109f, 10.960938f) + curveTo(20.662109f, 10.406937f, 20.216109f, 9.9609375f, 19.662109f, 9.9609375f) + lineTo(9.7558594f, 9.9609375f) + close() + moveTo(2.390625f, 12.818359f) + curveTo(1.836625f, 12.818359f, 1.390625f, 13.264359f, 1.390625f, 13.818359f) + curveTo(1.390625f, 14.372359f, 1.836625f, 14.818359f, 2.390625f, 14.818359f) + lineTo(11.5625f, 14.818359f) + curveTo(12.1165f, 14.818359f, 12.5625f, 14.372359f, 12.5625f, 13.818359f) + curveTo(12.5625f, 13.264359f, 12.1165f, 12.818359f, 11.5625f, 12.818359f) + lineTo(2.390625f, 12.818359f) + close() + moveTo(14.847656f, 12.818359f) + curveTo(14.293656f, 12.818359f, 13.847656f, 13.264359f, 13.847656f, 13.818359f) + curveTo(13.847656f, 14.372359f, 14.293656f, 14.818359f, 14.847656f, 14.818359f) + lineTo(21.183594f, 14.818359f) + curveTo(21.737594f, 14.818359f, 22.183594f, 14.372359f, 22.183594f, 13.818359f) + curveTo(22.183594f, 13.264359f, 21.737594f, 12.818359f, 21.183594f, 12.818359f) + lineTo(14.847656f, 12.818359f) + close() + } + +val Rain = weatherIcon("Rain") { + + moveTo(13.95f, 21.9f) + quadToRelative(-0.375f, 0.2f, -0.762f, 0.062f) + quadToRelative(-0.388f, -0.137f, -0.588f, -0.512f) + lineToRelative(-1.5f, -3f) + quadToRelative(-0.2f, -0.375f, -0.062f, -0.762f) + quadToRelative(0.137f, -0.388f, 0.512f, -0.588f) + quadToRelative(0.375f, -0.2f, 0.762f, -0.062f) + quadToRelative(0.388f, 0.137f, 0.588f, 0.512f) + lineToRelative(1.5f, 3f) + quadToRelative(0.2f, 0.375f, 0.063f, 0.762f) + quadToRelative(-0.138f, 0.388f, -0.513f, 0.588f) + close() + moveToRelative(6f, 0f) + quadToRelative(-0.375f, 0.2f, -0.762f, 0.062f) + quadToRelative(-0.388f, -0.137f, -0.588f, -0.512f) + lineToRelative(-1.5f, -3f) + quadToRelative(-0.2f, -0.375f, -0.062f, -0.762f) + quadToRelative(0.137f, -0.388f, 0.512f, -0.588f) + quadToRelative(0.375f, -0.2f, 0.762f, -0.062f) + quadToRelative(0.388f, 0.137f, 0.588f, 0.512f) + lineToRelative(1.5f, 3f) + quadToRelative(0.2f, 0.375f, 0.063f, 0.762f) + quadToRelative(-0.138f, 0.388f, -0.513f, 0.588f) + close() + moveToRelative(-12f, 0f) + quadToRelative(-0.375f, 0.2f, -0.762f, 0.062f) + quadToRelative(-0.388f, -0.137f, -0.588f, -0.512f) + lineToRelative(-1.5f, -3f) + quadToRelative(-0.2f, -0.375f, -0.062f, -0.762f) + quadToRelative(0.137f, -0.388f, 0.512f, -0.588f) + quadToRelative(0.375f, -0.2f, 0.762f, -0.062f) + quadToRelative(0.388f, 0.137f, 0.588f, 0.512f) + lineToRelative(1.5f, 3f) + quadToRelative(0.2f, 0.375f, 0.063f, 0.762f) + quadToRelative(-0.138f, 0.388f, -0.513f, 0.588f) + close() + moveTo(7.5f, 16f) + quadToRelative(-2.275f, 0f, -3.887f, -1.613f) + quadTo(2f, 12.775f, 2f, 10.5f) + quadToRelative(0f, -2.075f, 1.375f, -3.625f) + quadToRelative(1.375f, -1.55f, 3.4f, -1.825f) + quadToRelative(0.8f, -1.425f, 2.188f, -2.238f) + quadTo(10.35f, 2f, 12f, 2f) + quadToRelative(2.25f, 0f, 3.912f, 1.438f) + quadToRelative(1.663f, 1.437f, 2.013f, 3.587f) + quadToRelative(1.725f, 0.15f, 2.9f, 1.425f) + quadTo(22f, 9.725f, 22f, 11.5f) + quadToRelative(0f, 1.875f, -1.312f, 3.188f) + quadTo(19.375f, 16f, 17.5f, 16f) + close() + moveToRelative(0f, -2f) + horizontalLineToRelative(10f) + quadToRelative(1.05f, 0f, 1.775f, -0.725f) + quadTo(20f, 12.55f, 20f, 11.5f) + quadToRelative(0f, -1.05f, -0.725f, -1.775f) + quadTo(18.55f, 9f, 17.5f, 9f) + horizontalLineTo(16f) + verticalLineTo(8f) + quadToRelative(0f, -1.65f, -1.175f, -2.825f) + quadTo(13.65f, 4f, 12f, 4f) + quadToRelative(-1.2f, 0f, -2.188f, 0.65f) + quadToRelative(-0.987f, 0.65f, -1.487f, 1.75f) + lineToRelative(-0.25f, 0.6f) + horizontalLineTo(7.45f) + quadToRelative(-1.425f, 0.05f, -2.437f, 1.062f) + quadTo(4f, 9.075f, 4f, 10.5f) + quadToRelative(0f, 1.45f, 1.025f, 2.475f) + quadTo(6.05f, 14f, 7.5f, 14f) + close() + moveTo(12f, 9f) + close() + + } + +val HumidityPercentage = weatherIcon("HumidityPercentage") { + + moveTo(14.5f, 18f) + quadToRelative(0.625f, 0f, 1.062f, -0.438f) + quadTo(16f, 17.125f, 16f, 16.5f) + reflectiveQuadToRelative(-0.438f, -1.062f) + quadTo(15.125f, 15f, 14.5f, 15f) + reflectiveQuadToRelative(-1.062f, 0.438f) + quadTo(13f, 15.875f, 13f, 16.5f) + reflectiveQuadToRelative(0.438f, 1.062f) + quadTo(13.875f, 18f, 14.5f, 18f) + close() + moveToRelative(-5.75f, -0.75f) + quadToRelative(0.3f, 0.3f, 0.7f, 0.3f) + quadToRelative(0.4f, 0f, 0.7f, -0.3f) + lineToRelative(5.1f, -5.1f) + quadToRelative(0.3f, -0.3f, 0.3f, -0.7f) + quadToRelative(0f, -0.4f, -0.3f, -0.7f) + quadToRelative(-0.3f, -0.3f, -0.712f, -0.3f) + quadToRelative(-0.413f, 0f, -0.713f, 0.3f) + lineTo(8.75f, 15.825f) + quadToRelative(-0.3f, 0.3f, -0.3f, 0.713f) + quadToRelative(0f, 0.412f, 0.3f, 0.712f) + close() + moveTo(9.5f, 13f) + quadToRelative(0.625f, 0f, 1.062f, -0.438f) + quadTo(11f, 12.125f, 11f, 11.5f) + reflectiveQuadToRelative(-0.438f, -1.062f) + quadTo(10.125f, 10f, 9.5f, 10f) + reflectiveQuadToRelative(-1.062f, 0.438f) + quadTo(8f, 10.875f, 8f, 11.5f) + reflectiveQuadToRelative(0.438f, 1.062f) + quadTo(8.875f, 13f, 9.5f, 13f) + close() + moveToRelative(2.5f, 9f) + quadToRelative(-3.175f, 0f, -5.587f, -2.212f) + quadTo(4f, 17.575f, 4f, 13.8f) + quadToRelative(0f, -2.375f, 1.8f, -5.15f) + quadToRelative(1.8f, -2.775f, 5.45f, -6f) + quadToRelative(0.15f, -0.125f, 0.35f, -0.2f) + quadToRelative(0.2f, -0.075f, 0.4f, -0.075f) + reflectiveQuadToRelative(0.4f, 0.075f) + quadToRelative(0.2f, 0.075f, 0.35f, 0.2f) + quadToRelative(3.65f, 3.225f, 5.45f, 6f) + quadTo(20f, 11.425f, 20f, 13.8f) + quadToRelative(0f, 3.775f, -2.413f, 5.988f) + quadTo(15.175f, 22f, 12f, 22f) + close() + moveToRelative(0f, -2f) + quadToRelative(2.525f, 0f, 4.262f, -1.725f) + quadTo(18f, 16.55f, 18f, 13.8f) + quadToRelative(0f, -1.775f, -1.475f, -4.063f) + quadTo(15.05f, 7.45f, 12f, 4.65f) + quadToRelative(-3.05f, 2.8f, -4.525f, 5.087f) + quadTo(6f, 12.025f, 6f, 13.8f) + quadToRelative(0f, 2.75f, 1.737f, 4.475f) + quadTo(9.475f, 20f, 12f, 20f) + close() + moveToRelative(0f, -6.2f) + close() +} diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/WeatherIcon.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/WeatherIcon.kt index d7c05ac5c..d051c277f 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/WeatherIcon.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/weather/WeatherIcon.kt @@ -3,28 +3,16 @@ package de.mm20.launcher2.ui.component.weather import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.AcUnit -import androidx.compose.material.icons.rounded.Air -import androidx.compose.material.icons.rounded.Bolt -import androidx.compose.material.icons.rounded.DarkMode -import androidx.compose.material.icons.rounded.LightMode -import androidx.compose.material.icons.rounded.Thermostat import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.scale import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp -import de.mm20.launcher2.icons.WeatherCloud -import de.mm20.launcher2.icons.WeatherFog -import de.mm20.launcher2.icons.WeatherHail -import de.mm20.launcher2.icons.WeatherLightRain -import de.mm20.launcher2.icons.WeatherRain -import de.mm20.launcher2.icons.WeatherSleetRain -import de.mm20.launcher2.icons.WeatherSleetSnow +import de.mm20.launcher2.ui.R @Composable fun WeatherIcon( @@ -82,7 +70,7 @@ private fun SunMoon(icon: WeatherIcon, night: Boolean, colors: WeatherIconColors } Icon( - if (night) Icons.Rounded.DarkMode else Icons.Rounded.LightMode, + painterResource(if (night) R.drawable.dark_mode_24px_filled else R.drawable.light_mode_24px_filled), null, modifier = Modifier .size(24.dp) @@ -176,7 +164,7 @@ private fun Cloud1(icon: WeatherIcon, colors: WeatherIconColors) { } Icon( - Icons.Rounded.WeatherCloud, + WeatherCloud, null, modifier = Modifier .size(20.dp) @@ -263,7 +251,7 @@ private fun Cloud2(icon: WeatherIcon, colors: WeatherIconColors) { } Icon( - Icons.Rounded.WeatherCloud, + WeatherCloud, null, modifier = Modifier .size(20.dp) @@ -325,7 +313,7 @@ private fun Cloud3(icon: WeatherIcon, colors: WeatherIconColors) { } Icon( - Icons.Rounded.WeatherCloud, + WeatherCloud, null, modifier = Modifier .size(32.dp) @@ -341,7 +329,7 @@ private fun Precipitation(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .offset(y = 2.dp) .size(32.dp), - imageVector = Icons.Rounded.WeatherSleetSnow, + imageVector = WeatherSleetSnow, contentDescription = null, tint = colors.snow ) @@ -349,7 +337,7 @@ private fun Precipitation(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .offset(y = 2.dp) .size(32.dp), - imageVector = Icons.Rounded.WeatherSleetRain, + imageVector = WeatherSleetRain, contentDescription = null, tint = colors.rain ) @@ -368,13 +356,13 @@ private fun Precipitation(icon: WeatherIcon, colors: WeatherIconColors) { else -> return } val vector = when (icon) { - WeatherIcon.Drizzle -> Icons.Rounded.WeatherLightRain + WeatherIcon.Drizzle -> WeatherLightRain WeatherIcon.Showers, WeatherIcon.ThunderstormWithRain, - WeatherIcon.HeavyThunderstormWithRain -> Icons.Rounded.WeatherRain + WeatherIcon.HeavyThunderstormWithRain -> WeatherRain - WeatherIcon.Hail, WeatherIcon.Snow -> Icons.Rounded.WeatherHail - else -> Icons.Rounded.WeatherLightRain + WeatherIcon.Hail, WeatherIcon.Snow -> WeatherHail + else -> WeatherLightRain } val color = when (icon) { WeatherIcon.Drizzle, @@ -402,7 +390,7 @@ private fun HotCold(icon: WeatherIcon, colors: WeatherIconColors) { Icon( modifier = Modifier .size(32.dp), - imageVector = Icons.Rounded.Thermostat, + painter = painterResource(R.drawable.heat_24px), contentDescription = null, tint = colors.hot ) @@ -411,7 +399,7 @@ private fun HotCold(icon: WeatherIcon, colors: WeatherIconColors) { Icon( modifier = Modifier .size(32.dp), - imageVector = Icons.Rounded.AcUnit, + painter = painterResource(R.drawable.severe_cold_24px), contentDescription = null, tint = colors.cold ) @@ -425,7 +413,7 @@ private fun Wind(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .offset(x = 4.dp, y = 0.dp) .size(24.dp), - imageVector = Icons.Rounded.Air, + painter = painterResource(R.drawable.air_24px), contentDescription = null, tint = colors.windDark ) @@ -434,7 +422,7 @@ private fun Wind(icon: WeatherIcon, colors: WeatherIconColors) { Icon( modifier = Modifier .size(if (icon == WeatherIcon.Wind) 32.dp else 24.dp), - imageVector = Icons.Rounded.Air, + painter = painterResource(R.drawable.air_24px), contentDescription = null, tint = colors.wind ) @@ -452,7 +440,7 @@ private fun Fog(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .size(24.dp) .offset(x = 3.dp, y = 4.dp), - imageVector = Icons.Rounded.WeatherFog, + imageVector = WeatherFog, contentDescription = null, tint = colors.fog ) @@ -476,7 +464,7 @@ private fun LightningBolts(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .size(12.dp) .offset(x = if (isHeavy) 4.dp else 1.dp, y = 6.dp), - imageVector = Icons.Rounded.Bolt, + painter = painterResource(R.drawable.bolt_24px_filled), contentDescription = null, tint = colors.lightningBolt ) @@ -486,7 +474,7 @@ private fun LightningBolts(icon: WeatherIcon, colors: WeatherIconColors) { modifier = Modifier .size(10.dp) .offset(x = -3.dp, y = 6.dp), - imageVector = Icons.Rounded.Bolt, + painter = painterResource(R.drawable.bolt_24px_filled), contentDescription = null, tint = colors.lightningBolt ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/NotificationsComponent.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/NotificationsComponent.kt index 6faf80d38..fa64d48d8 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/NotificationsComponent.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/NotificationsComponent.kt @@ -12,8 +12,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Notifications import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable @@ -26,12 +24,14 @@ import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.draw.scale import androidx.compose.ui.draw.shadow import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import de.mm20.launcher2.globalactions.GlobalActionsService import de.mm20.launcher2.permissions.PermissionGroup import de.mm20.launcher2.permissions.PermissionsManager import de.mm20.launcher2.preferences.GestureAction +import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.launcher.sheets.LocalBottomSheetManager import org.koin.core.component.KoinComponent import org.koin.core.component.inject @@ -95,7 +95,7 @@ internal object NotificationsComponent : ScaffoldComponent(), KoinComponent { contentAlignment = Alignment.Center ) { Icon( - Icons.Rounded.Notifications, null, + painterResource(R.drawable.notifications_24px), null, modifier = Modifier.padding(16.dp), tint = MaterialTheme.colorScheme.onSecondaryContainer, ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/PowerMenuComponent.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/PowerMenuComponent.kt index 1aa05b8fb..d8f16326e 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/PowerMenuComponent.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/PowerMenuComponent.kt @@ -12,8 +12,6 @@ import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.PowerSettingsNew import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable @@ -30,6 +28,7 @@ import androidx.compose.ui.draw.shadow import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.times @@ -38,6 +37,7 @@ import de.mm20.launcher2.globalactions.GlobalActionsService import de.mm20.launcher2.permissions.PermissionGroup import de.mm20.launcher2.permissions.PermissionsManager import de.mm20.launcher2.preferences.GestureAction +import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.launcher.sheets.LocalBottomSheetManager import org.koin.core.component.KoinComponent import org.koin.core.component.inject @@ -157,7 +157,7 @@ internal object PowerMenuComponent : ScaffoldComponent(), KoinComponent { contentAlignment = Alignment.Center ) { Icon( - Icons.Rounded.PowerSettingsNew, null, + painterResource(R.drawable.power_settings_new_24px), null, modifier = Modifier.padding(16.dp), tint = MaterialTheme.colorScheme.onSecondaryContainer, ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/QuickSettingsComponent.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/QuickSettingsComponent.kt index 5b796c224..be5666727 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/QuickSettingsComponent.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/QuickSettingsComponent.kt @@ -12,8 +12,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Settings import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable @@ -26,12 +24,14 @@ import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.draw.scale import androidx.compose.ui.draw.shadow import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import de.mm20.launcher2.globalactions.GlobalActionsService import de.mm20.launcher2.permissions.PermissionGroup import de.mm20.launcher2.permissions.PermissionsManager import de.mm20.launcher2.preferences.GestureAction +import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.launcher.sheets.LocalBottomSheetManager import org.koin.core.component.KoinComponent import org.koin.core.component.inject @@ -92,7 +92,7 @@ internal object QuickSettingsComponent : ScaffoldComponent(), KoinComponent { contentAlignment = Alignment.Center ) { Icon( - Icons.Rounded.Settings, null, + painterResource(R.drawable.settings_24px), null, modifier = Modifier.padding(16.dp), tint = MaterialTheme.colorScheme.onSecondaryContainer, ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/SecretComponent.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/SecretComponent.kt index fcada05d8..bde0a664d 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/SecretComponent.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/SecretComponent.kt @@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Settings import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.MaterialTheme @@ -19,6 +17,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -71,7 +70,7 @@ internal object SecretComponent : ScaffoldComponent() { context.startActivity(Intent(context, SettingsActivity::class.java)) }, modifier = Modifier.padding(top = 24.dp)) { Icon( - Icons.Rounded.Settings, + painterResource(R.drawable.settings_20px), contentDescription = null, modifier = Modifier.padding(ButtonDefaults.IconSpacing).size(ButtonDefaults.IconSize) ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppItem.kt index c49fb0f4e..7266a3338 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppItem.kt @@ -24,20 +24,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.automirrored.rounded.NavigateNext -import androidx.compose.material.icons.automirrored.rounded.OpenInNew -import androidx.compose.material.icons.rounded.Android -import androidx.compose.material.icons.rounded.Clear -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Info -import androidx.compose.material.icons.rounded.Link -import androidx.compose.material.icons.rounded.Notifications -import androidx.compose.material.icons.rounded.Share -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StarOutline -import androidx.compose.material.icons.rounded.Tune import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -56,6 +42,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow @@ -261,7 +248,7 @@ fun AppItem( viewModel.clearNotification(not) } ) { - Icon(Icons.Rounded.Clear, null) + Icon(painterResource(R.drawable.close_24px), null) } } } @@ -277,7 +264,7 @@ fun AppItem( verticalAlignment = Alignment.CenterVertically ) { Icon( - Icons.Rounded.Notifications, + painterResource(R.drawable.notifications_24px), null, modifier = Modifier.padding(horizontal = 16.dp) ) @@ -291,7 +278,7 @@ fun AppItem( modifier = Modifier.weight(1f), ) Icon( - Icons.AutoMirrored.Rounded.NavigateNext, + painterResource(R.drawable.chevron_forward_24px), null, modifier = Modifier.padding(horizontal = 12.dp) ) @@ -369,7 +356,10 @@ fun AppItem( } ) { Icon( - if (isPinned) Icons.Rounded.Star else Icons.Rounded.StarOutline, + painterResource( + if (isPinned) R.drawable.star_24px_filled + else R.drawable.star_24px + ), stringResource(if (isPinned) R.string.menu_favorites_unpin else R.string.menu_favorites_pin), ) } @@ -386,7 +376,7 @@ fun AppItem( val favAction = if (isPinned) { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_unpin), - icon = Icons.Rounded.Star, + icon = R.drawable.star_24px_filled, action = { viewModel.unpin() } @@ -394,7 +384,7 @@ fun AppItem( } else { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_pin), - icon = Icons.Rounded.StarOutline, + icon = R.drawable.star_24px, action = { viewModel.pin() }) @@ -406,7 +396,7 @@ fun AppItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_app_info), - icon = Icons.Rounded.Info + icon = R.drawable.info_24px, ) { app.openAppDetails(context) }) @@ -415,7 +405,7 @@ fun AppItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_launch), - icon = Icons.AutoMirrored.Rounded.OpenInNew, + icon = R.drawable.open_in_new_24px, action = { viewModel.launch(context) } @@ -427,7 +417,7 @@ fun AppItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_customize), - icon = Icons.Rounded.Tune, + icon = R.drawable.tune_24px, action = { sheetManager.showCustomizeSearchableModal(app) } )) } @@ -437,7 +427,7 @@ fun AppItem( val shareAction = if (storeDetails == null) { DefaultToolbarAction( label = stringResource(R.string.menu_share), - icon = Icons.Rounded.Share + icon = R.drawable.share_24px, ) { scope.launch { app.shareApkFile(context) @@ -446,14 +436,14 @@ fun AppItem( } else { SubmenuToolbarAction( label = stringResource(R.string.menu_share), - icon = Icons.Rounded.Share, + icon = R.drawable.share_24px, children = listOf( DefaultToolbarAction( label = stringResource( R.string.menu_share_store_link, storeDetails.label ), - icon = Icons.Rounded.Link, + icon = R.drawable.link_24px, action = { val shareIntent = Intent(Intent.ACTION_SEND) shareIntent.putExtra( @@ -471,7 +461,7 @@ fun AppItem( ), DefaultToolbarAction( label = stringResource(R.string.menu_share_apk_file), - icon = Icons.Rounded.Android + icon = R.drawable.apk_document_24px, ) { scope.launch { app.shareApkFile(context) @@ -487,7 +477,7 @@ fun AppItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_uninstall), - icon = Icons.Rounded.Delete, + icon = R.drawable.delete_24px, ) { app.uninstall(context) onBack() @@ -499,7 +489,7 @@ fun AppItem( leftActions = listOf( DefaultToolbarAction( label = stringResource(id = R.string.menu_back), - icon = Icons.AutoMirrored.Rounded.ArrowBack + icon = R.drawable.arrow_back_24px, ) { onBack() } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppResults.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppResults.kt index 5e1a996d6..a78b99b0a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppResults.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/apps/AppResults.kt @@ -9,12 +9,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyListScope -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Lock -import androidx.compose.material.icons.rounded.LockOpen -import androidx.compose.material.icons.rounded.Person -import androidx.compose.material.icons.rounded.Work -import androidx.compose.material.icons.rounded.WorkOff import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.FilledTonalButton @@ -28,9 +22,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import de.mm20.launcher2.icons.PrivateSpace import de.mm20.launcher2.profiles.Profile import de.mm20.launcher2.search.Application import de.mm20.launcher2.ui.R @@ -68,8 +62,9 @@ fun LazyListScope.AppResults( divider = {} ) { for ((i, profile) in profiles.withIndex()) { + val selected = selectedProfileIndex == profiles.indexOf(profile) LeadingIconTab( - selected = selectedProfileIndex == profiles.indexOf(profile), + selected = selected, text = { Text( when (profile.type) { @@ -82,17 +77,17 @@ fun LazyListScope.AppResults( icon = { when (profile.type) { Profile.Type.Personal -> Icon( - Icons.Rounded.Person, + painterResource(if (selected) R.drawable.person_24px_filled else R.drawable.person_24px), contentDescription = null ) Profile.Type.Work -> Icon( - Icons.Rounded.Work, + painterResource(if (selected) R.drawable.enterprise_24px_filled else R.drawable.enterprise_24px), contentDescription = null ) Profile.Type.Private -> Icon( - Icons.Rounded.PrivateSpace, + painterResource(if (selected) R.drawable.encrypted_24px_filled else R.drawable.encrypted_24px), contentDescription = null ) } @@ -129,7 +124,7 @@ fun LazyListScope.AppResults( horizontalAlignment = Alignment.CenterHorizontally, ) { Icon( - if (profileType == Profile.Type.Work) Icons.Rounded.WorkOff else Icons.Rounded.Lock, + painterResource(if (profileType == Profile.Type.Work) R.drawable.enterprise_off_48px else R.drawable.lock_48px), contentDescription = null, modifier = Modifier.size(48.dp), tint = MaterialTheme.colorScheme.secondary, @@ -155,7 +150,7 @@ fun LazyListScope.AppResults( contentPadding = ButtonDefaults.TextButtonWithIconContentPadding, ) { Icon( - if (profileType == Profile.Type.Work) Icons.Rounded.Work else Icons.Rounded.LockOpen, + painterResource(if (profileType == Profile.Type.Work) R.drawable.enterprise_20px else R.drawable.lock_open_20px), contentDescription = null, modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) @@ -184,7 +179,7 @@ fun LazyListScope.AppResults( contentPadding = ButtonDefaults.TextButtonWithIconContentPadding, ) { Icon( - if (profileType == Profile.Type.Work) Icons.Rounded.WorkOff else Icons.Rounded.Lock, + painterResource(if (profileType == Profile.Type.Work) R.drawable.enterprise_off_20px else R.drawable.lock_20px), contentDescription = null, modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/calendar/CalendarItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/calendar/CalendarItem.kt index 2eeba8946..161cba5d4 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/calendar/CalendarItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/calendar/CalendarItem.kt @@ -18,19 +18,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.rounded.CheckCircle -import androidx.compose.material.icons.rounded.Circle -import androidx.compose.material.icons.rounded.Notes -import androidx.compose.material.icons.rounded.OpenInNew -import androidx.compose.material.icons.rounded.People -import androidx.compose.material.icons.rounded.Place -import androidx.compose.material.icons.rounded.RadioButtonUnchecked -import androidx.compose.material.icons.rounded.Schedule -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StarOutline -import androidx.compose.material.icons.rounded.Tune import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -43,6 +30,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.style.TextOverflow @@ -97,11 +85,11 @@ fun CalendarItem( verticalAlignment = Alignment.CenterVertically, ) { Icon( - when (calendar.isCompleted) { - true -> Icons.Rounded.CheckCircle - false -> Icons.Rounded.RadioButtonUnchecked - null -> Icons.Rounded.Circle - }, + painterResource(when (calendar.isCompleted) { + true -> R.drawable.check_circle_24px_filled + false -> R.drawable.radio_button_unchecked_24px + null -> R.drawable.circle_24px_filled + }), null, modifier = Modifier .padding(horizontal = 14.dp, vertical = 20.dp) @@ -152,7 +140,7 @@ fun CalendarItem( ) { Icon( modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp), - imageVector = Icons.Rounded.Schedule, + painter = painterResource(R.drawable.schedule_24px), contentDescription = null ) Text( @@ -174,7 +162,7 @@ fun CalendarItem( ) { Icon( modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp), - imageVector = Icons.Rounded.Notes, + painter = painterResource(R.drawable.notes_24px), contentDescription = null ) Text( @@ -194,7 +182,7 @@ fun CalendarItem( ) { Icon( modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp), - imageVector = Icons.Rounded.People, + painter = painterResource(R.drawable.group_24px), contentDescription = null ) Text( @@ -217,7 +205,7 @@ fun CalendarItem( ) { Icon( modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp), - imageVector = Icons.Rounded.Place, + painter = painterResource(R.drawable.location_on_24px), contentDescription = null ) Text( @@ -233,7 +221,7 @@ fun CalendarItem( val favAction = if (isPinned) { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_unpin), - icon = Icons.Rounded.Star, + icon = R.drawable.star_24px_filled, action = { viewModel.unpin() } @@ -241,7 +229,7 @@ fun CalendarItem( } else { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_pin), - icon = Icons.Rounded.StarOutline, + icon = R.drawable.star_24px, action = { viewModel.pin() }) @@ -252,7 +240,7 @@ fun CalendarItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_calendar_open_externally), - icon = Icons.Rounded.OpenInNew, + icon = R.drawable.open_in_new_24px, action = { viewModel.launch(context) onBack() @@ -263,7 +251,7 @@ fun CalendarItem( val sheetManager = LocalBottomSheetManager.current toolbarActions.add(DefaultToolbarAction( label = stringResource(R.string.menu_customize), - icon = Icons.Rounded.Tune, + icon = R.drawable.tune_24px, action = { sheetManager.showCustomizeSearchableModal(calendar) } )) @@ -271,7 +259,7 @@ fun CalendarItem( leftActions = listOf( DefaultToolbarAction( label = stringResource(id = R.string.menu_back), - icon = Icons.AutoMirrored.Rounded.ArrowBack + icon = R.drawable.arrow_back_24px, ) { onBack() } @@ -286,11 +274,11 @@ fun CalendarItem( .padding(16.dp) ) { Icon( - when (calendar.isCompleted) { - true -> Icons.Rounded.CheckCircle - false -> Icons.Rounded.RadioButtonUnchecked - null -> Icons.Rounded.Circle - }, + painterResource(when (calendar.isCompleted) { + true -> R.drawable.check_circle_24px_filled + false -> R.drawable.radio_button_unchecked_24px + null -> R.drawable.circle_24px_filled + }), null, modifier = Modifier .padding(end = 16.dp) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/contacts/ContactItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/contacts/ContactItem.kt index 4b43ae8f7..094eab7be 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/contacts/ContactItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/contacts/ContactItem.kt @@ -4,6 +4,7 @@ import android.content.Context import android.content.Intent import android.graphics.drawable.Drawable import android.net.Uri +import androidx.annotation.DrawableRes import androidx.compose.animation.AnimatedContent import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.SharedTransitionLayout @@ -21,19 +22,6 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.automirrored.rounded.Message -import androidx.compose.material.icons.automirrored.rounded.NavigateNext -import androidx.compose.material.icons.automirrored.rounded.OpenInNew -import androidx.compose.material.icons.rounded.Directions -import androidx.compose.material.icons.rounded.Email -import androidx.compose.material.icons.rounded.OpenInNew -import androidx.compose.material.icons.rounded.Phone -import androidx.compose.material.icons.rounded.Place -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StarOutline -import androidx.compose.material.icons.rounded.Tune import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -55,6 +43,7 @@ import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalHapticFeedback +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString @@ -148,7 +137,7 @@ fun ContactItem( var expandedSection by remember { mutableStateOf(-1) } if (contact.phoneNumbers.isNotEmpty()) { ContactInfo( - icon = Icons.Rounded.Phone, + icon = R.drawable.call_24px, label = pluralStringResource( R.plurals.contact_phone_numbers, contact.phoneNumbers.size, @@ -171,7 +160,7 @@ fun ContactItem( ) }) { Icon( - Icons.AutoMirrored.Rounded.Message, + painterResource(R.drawable.sms_24px), null, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -196,7 +185,7 @@ fun ContactItem( } if (contact.emailAddresses.isNotEmpty()) { ContactInfo( - icon = Icons.Rounded.Email, + icon = R.drawable.mail_24px, label = pluralStringResource( R.plurals.contact_email_addresses, contact.emailAddresses.size, @@ -225,7 +214,7 @@ fun ContactItem( } if (contact.postalAddresses.isNotEmpty()) { ContactInfo( - icon = Icons.Rounded.Place, + icon = R.drawable.location_on_24px, label = pluralStringResource( R.plurals.contact_postal_addresses, contact.postalAddresses.size, @@ -246,7 +235,7 @@ fun ContactItem( ) }) { Icon( - Icons.Rounded.Directions, + painterResource(R.drawable.directions_24px), null, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -301,7 +290,7 @@ fun ContactItem( if (itemsWithPermission.isEmpty()) continue ContactInfo( - icon = Icons.AutoMirrored.Rounded.OpenInNew, + icon = R.drawable.open_in_new_24px, customIcon = appIcon, label = label, items = itemsWithPermission, @@ -336,7 +325,7 @@ fun ContactItem( val favAction = if (isPinned) { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_unpin), - icon = Icons.Rounded.Star, + icon = R.drawable.star_24px_filled, action = { viewModel.unpin() } @@ -344,7 +333,7 @@ fun ContactItem( } else { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_pin), - icon = Icons.Rounded.StarOutline, + icon = R.drawable.star_24px, action = { viewModel.pin() }) @@ -355,7 +344,7 @@ fun ContactItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_contacts_open_externally), - icon = Icons.Rounded.OpenInNew, + icon = R.drawable.open_in_new_24px, action = { viewModel.launch(context) } @@ -365,7 +354,7 @@ fun ContactItem( val sheetManager = LocalBottomSheetManager.current toolbarActions.add(DefaultToolbarAction( label = stringResource(R.string.menu_customize), - icon = Icons.Rounded.Tune, + icon = R.drawable.tune_24px, action = { sheetManager.showCustomizeSearchableModal(contact) } )) @@ -374,7 +363,7 @@ fun ContactItem( leftActions = listOf( DefaultToolbarAction( label = stringResource(id = R.string.menu_back), - icon = Icons.AutoMirrored.Rounded.ArrowBack + icon = R.drawable.arrow_back_24px, ) { onBack() } @@ -441,9 +430,9 @@ private fun ContactInfo( items: List, itemLabel: (T) -> String, itemSubLabel: (T) -> String? = { null }, - itemIcon: (T) -> ImageVector? = { null }, + itemIcon: (T) -> Int? = { null }, secondaryAction: (@Composable (T) -> Unit)? = null, - icon: ImageVector, + @DrawableRes icon: Int, customIcon: Drawable? = null, copyText: ((T) -> String)? = null, expanded: Boolean, @@ -516,7 +505,7 @@ private fun ContactInfo( ) } else { Icon( - itemIcon(item) ?: icon, + painterResource(itemIcon(item) ?: icon), null, tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.padding(horizontal = 4.dp), @@ -570,7 +559,7 @@ private fun ContactInfo( ) } else { Icon( - icon, + painterResource(icon), null, tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.padding(horizontal = 4.dp) @@ -584,7 +573,7 @@ private fun ContactInfo( .padding(horizontal = 16.dp), ) Icon( - Icons.AutoMirrored.Rounded.NavigateNext, + painterResource(R.drawable.chevron_forward_24px), null, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/favorites/SearchFavorites.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/favorites/SearchFavorites.kt index 095e6b029..9440fe861 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/favorites/SearchFavorites.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/favorites/SearchFavorites.kt @@ -6,9 +6,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.rememberScrollState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.Tag import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.CompositionLocalProvider @@ -62,7 +59,7 @@ fun LazyListScope.SearchFavorites( text = stringResource( if (selectedTag == null) R.string.favorites_empty else R.string.favorites_empty_tag ), - icon = if (selectedTag == null) Icons.Rounded.Star else Icons.Rounded.Tag, + icon = if (selectedTag == null) R.drawable.star_24px else R.drawable.tag_24px, ) } if (pinnedTags.isNotEmpty() || editButton) { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/files/FileItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/files/FileItem.kt index 1ff8396f0..dc1563fd4 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/files/FileItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/files/FileItem.kt @@ -12,21 +12,8 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ArrowBack -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.OpenInNew -import androidx.compose.material.icons.rounded.Share -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StarOutline -import androidx.compose.material.icons.rounded.Tune -import androidx.compose.material.icons.rounded.Visibility -import androidx.compose.material.icons.rounded.VisibilityOff import androidx.compose.material3.AlertDialog import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.SnackbarDuration -import androidx.compose.material3.SnackbarResult import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable @@ -38,17 +25,13 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Rect import androidx.compose.ui.graphics.TransformOrigin import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.roundToIntRect -import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle -import androidx.lifecycle.lifecycleScope import de.mm20.launcher2.search.File import de.mm20.launcher2.search.FileMetaType import de.mm20.launcher2.ui.R @@ -62,9 +45,7 @@ import de.mm20.launcher2.ui.launcher.search.listItemViewModel import de.mm20.launcher2.ui.launcher.sheets.LocalBottomSheetManager import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled import de.mm20.launcher2.ui.locals.LocalGridSettings -import de.mm20.launcher2.ui.locals.LocalSnackbarHostState import de.mm20.launcher2.ui.modifier.scale -import kotlinx.coroutines.launch import java.text.DecimalFormat @Composable @@ -174,7 +155,7 @@ fun FileItem( val favAction = if (isPinned) { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_unpin), - icon = Icons.Rounded.Star, + icon = R.drawable.star_24px_filled, action = { viewModel.unpin() } @@ -182,7 +163,7 @@ fun FileItem( } else { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_pin), - icon = Icons.Rounded.StarOutline, + icon = R.drawable.star_24px, action = { viewModel.pin() }) @@ -193,7 +174,7 @@ fun FileItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_open_file), - icon = Icons.Rounded.OpenInNew, + icon = R.drawable.open_in_new_24px, action = { viewModel.launch(context) } @@ -201,24 +182,26 @@ fun FileItem( ) if (file.canShare) { - toolbarActions.add(DefaultToolbarAction( - label = stringResource(R.string.menu_share), - icon = Icons.Rounded.Share, - action = { - file.share(context) - } - )) + toolbarActions.add( + DefaultToolbarAction( + label = stringResource(R.string.menu_share), + icon = R.drawable.share_24px, + action = { + file.share(context) + } + )) } if (file.isDeletable) { var showConfirmDialog by remember { mutableStateOf(false) } - toolbarActions.add(DefaultToolbarAction( - label = stringResource(R.string.menu_delete), - icon = Icons.Rounded.Delete, - action = { - showConfirmDialog = true - } - )) + toolbarActions.add( + DefaultToolbarAction( + label = stringResource(R.string.menu_delete), + icon = R.drawable.delete_24px, + action = { + showConfirmDialog = true + } + )) if (showConfirmDialog) { AlertDialog( onDismissRequest = { showConfirmDialog = false }, @@ -251,17 +234,18 @@ fun FileItem( } val sheetManager = LocalBottomSheetManager.current - toolbarActions.add(DefaultToolbarAction( - label = stringResource(R.string.menu_customize), - icon = Icons.Rounded.Tune, - action = { sheetManager.showCustomizeSearchableModal(file) } - )) + toolbarActions.add( + DefaultToolbarAction( + label = stringResource(R.string.menu_customize), + icon = R.drawable.tune_24px, + action = { sheetManager.showCustomizeSearchableModal(file) } + )) Toolbar( leftActions = listOf( DefaultToolbarAction( label = stringResource(id = R.string.menu_back), - icon = Icons.Rounded.ArrowBack + icon = R.drawable.arrow_back_24px, ) { onBack() } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/KeyboardFilterBar.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/KeyboardFilterBar.kt index 0f6ae88cc..f0eef9007 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/KeyboardFilterBar.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/KeyboardFilterBar.kt @@ -21,6 +21,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import de.mm20.launcher2.preferences.KeyboardFilterBarItem import de.mm20.launcher2.search.SearchFilters @@ -67,7 +68,7 @@ fun KeyboardFilterBar( }, leadingIcon = { Icon( - imageVector = item.icon, + painter = painterResource(item.iconMedium), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/KeyboardFilterBarItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/KeyboardFilterBarItem.kt index a0e76ef70..828ca429e 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/KeyboardFilterBarItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/KeyboardFilterBarItem.kt @@ -1,35 +1,38 @@ package de.mm20.launcher2.ui.launcher.search.filters import android.content.Context -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.AppShortcut -import androidx.compose.material.icons.rounded.Apps -import androidx.compose.material.icons.rounded.Description -import androidx.compose.material.icons.rounded.Handyman -import androidx.compose.material.icons.rounded.Language -import androidx.compose.material.icons.rounded.Person -import androidx.compose.material.icons.rounded.Place -import androidx.compose.material.icons.rounded.Public -import androidx.compose.material.icons.rounded.Today -import androidx.compose.material.icons.rounded.VisibilityOff import de.mm20.launcher2.preferences.KeyboardFilterBarItem import de.mm20.launcher2.search.SearchFilters import de.mm20.launcher2.ui.R -import de.mm20.launcher2.icons.Wikipedia -val KeyboardFilterBarItem.icon +val KeyboardFilterBarItem.iconMedium get() = when (this) { - KeyboardFilterBarItem.Apps -> Icons.Rounded.Apps - KeyboardFilterBarItem.Events -> Icons.Rounded.Today - KeyboardFilterBarItem.Contacts -> Icons.Rounded.Person - KeyboardFilterBarItem.Places -> Icons.Rounded.Place - KeyboardFilterBarItem.Files -> Icons.Rounded.Description - KeyboardFilterBarItem.Tools -> Icons.Rounded.Handyman - KeyboardFilterBarItem.Articles -> Icons.Rounded.Wikipedia - KeyboardFilterBarItem.Websites -> Icons.Rounded.Public - KeyboardFilterBarItem.Shortcuts -> Icons.Rounded.AppShortcut - KeyboardFilterBarItem.HiddenResults -> Icons.Rounded.VisibilityOff - KeyboardFilterBarItem.OnlineResults -> Icons.Rounded.Language + KeyboardFilterBarItem.Apps -> R.drawable.apps_24px + KeyboardFilterBarItem.Events -> R.drawable.today_24px + KeyboardFilterBarItem.Contacts -> R.drawable.person_24px + KeyboardFilterBarItem.Places -> R.drawable.location_on_24px + KeyboardFilterBarItem.Files -> R.drawable.description_24px + KeyboardFilterBarItem.Tools -> R.drawable.handyman_24px + KeyboardFilterBarItem.Articles -> R.drawable.wikipedia + KeyboardFilterBarItem.Websites -> R.drawable.public_24px + KeyboardFilterBarItem.Shortcuts -> R.drawable.mobile_arrow_up_right_24px + KeyboardFilterBarItem.HiddenResults -> R.drawable.visibility_off_24px + KeyboardFilterBarItem.OnlineResults -> R.drawable.language_24px + } + +val KeyboardFilterBarItem.iconSmall + get() = when (this) { + KeyboardFilterBarItem.Apps -> R.drawable.apps_20px + KeyboardFilterBarItem.Events -> R.drawable.today_20px + KeyboardFilterBarItem.Contacts -> R.drawable.person_20px + KeyboardFilterBarItem.Places -> R.drawable.location_on_20px + KeyboardFilterBarItem.Files -> R.drawable.description_20px + KeyboardFilterBarItem.Tools -> R.drawable.handyman_20px + KeyboardFilterBarItem.Articles -> R.drawable.wikipedia + KeyboardFilterBarItem.Websites -> R.drawable.public_20px + KeyboardFilterBarItem.Shortcuts -> R.drawable.mobile_arrow_up_right_20px + KeyboardFilterBarItem.HiddenResults -> R.drawable.visibility_off_20px + KeyboardFilterBarItem.OnlineResults -> R.drawable.language_20px } fun KeyboardFilterBarItem.getLabel(context: Context): String { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/SearchFilters.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/SearchFilters.kt index a373519a4..8ae782e91 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/SearchFilters.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/filters/SearchFilters.kt @@ -6,17 +6,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.AppShortcut -import androidx.compose.material.icons.rounded.Apps -import androidx.compose.material.icons.rounded.Description -import androidx.compose.material.icons.rounded.Handyman -import androidx.compose.material.icons.rounded.Language -import androidx.compose.material.icons.rounded.Person -import androidx.compose.material.icons.rounded.Place -import androidx.compose.material.icons.rounded.Public -import androidx.compose.material.icons.rounded.Today -import androidx.compose.material.icons.rounded.VisibilityOff import androidx.compose.material3.FilterChip import androidx.compose.material3.FilterChipDefaults import androidx.compose.material3.HorizontalDivider @@ -24,11 +13,11 @@ import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import de.mm20.launcher2.search.SearchFilters import de.mm20.launcher2.ui.R -import de.mm20.launcher2.icons.Wikipedia @Composable fun SearchFilters( @@ -50,7 +39,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.Language, + painter = painterResource(R.drawable.language_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -71,7 +60,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.Apps, + painter = painterResource(R.drawable.apps_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -90,7 +79,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.Description, + painter = painterResource(R.drawable.description_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -109,7 +98,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.Person, + painter = painterResource(R.drawable.person_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -128,7 +117,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.Today, + painter = painterResource(R.drawable.today_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -147,7 +136,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.AppShortcut, + painter = painterResource(R.drawable.mobile_arrow_up_right_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -166,7 +155,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.Wikipedia, + painter = painterResource(R.drawable.wikipedia), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -185,7 +174,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.Public, + painter = painterResource(R.drawable.public_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -204,7 +193,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.Place, + painter = painterResource(R.drawable.location_on_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -222,7 +211,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.Handyman, + painter = painterResource(R.drawable.handyman_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -238,7 +227,7 @@ fun SearchFilters( }, leadingIcon = { Icon( - imageVector = Icons.Rounded.VisibilityOff, + painter = painterResource(R.drawable.visibility_off_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/location/LocationItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/location/LocationItem.kt index 25366f7bb..e86712744 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/location/LocationItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/location/LocationItem.kt @@ -44,30 +44,6 @@ import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.automirrored.rounded.NavigateNext -import androidx.compose.material.icons.automirrored.rounded.OpenInNew -import androidx.compose.material.icons.outlined.CreditCardOff -import androidx.compose.material.icons.outlined.CreditScore -import androidx.compose.material.icons.outlined.Toll -import androidx.compose.material.icons.rounded.AirplanemodeActive -import androidx.compose.material.icons.rounded.BugReport -import androidx.compose.material.icons.rounded.Commute -import androidx.compose.material.icons.rounded.Directions -import androidx.compose.material.icons.rounded.DirectionsBoat -import androidx.compose.material.icons.rounded.DirectionsBus -import androidx.compose.material.icons.rounded.DirectionsRailway -import androidx.compose.material.icons.rounded.DirectionsTransit -import androidx.compose.material.icons.rounded.Language -import androidx.compose.material.icons.rounded.Navigation -import androidx.compose.material.icons.rounded.Phone -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StarOutline -import androidx.compose.material.icons.rounded.Subway -import androidx.compose.material.icons.rounded.Train -import androidx.compose.material.icons.rounded.Tram -import androidx.compose.material.icons.rounded.Tune import androidx.compose.material3.AssistChip import androidx.compose.material3.AssistChipDefaults import androidx.compose.material3.FilterChipDefaults @@ -95,6 +71,7 @@ import androidx.compose.ui.graphics.TransformOrigin import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextAlign @@ -112,9 +89,6 @@ import androidx.core.net.toUri import androidx.lifecycle.compose.collectAsStateWithLifecycle import blend.Blend.harmonize import coil.compose.AsyncImage -import de.mm20.launcher2.i18n.R -import de.mm20.launcher2.icons.CableCar -import de.mm20.launcher2.icons.TollOff import de.mm20.launcher2.ktx.tryStartActivity import de.mm20.launcher2.search.Location import de.mm20.launcher2.search.isOpen @@ -126,6 +100,7 @@ import de.mm20.launcher2.search.location.OpeningHours import de.mm20.launcher2.search.location.OpeningSchedule import de.mm20.launcher2.search.location.PaymentMethod import de.mm20.launcher2.search.location.isNotEmpty +import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.base.LocalTime import de.mm20.launcher2.ui.component.DefaultToolbarAction import de.mm20.launcher2.ui.component.MarqueeText @@ -368,10 +343,12 @@ fun LocationItem( ) for ((method, available) in acceptedPaymentMethods) { Icon( - when (method) { - PaymentMethod.Cash -> if (available) Icons.Outlined.Toll else Icons.Outlined.TollOff - PaymentMethod.Card -> if (available) Icons.Outlined.CreditScore else Icons.Outlined.CreditCardOff - }, + painterResource( + when (method) { + PaymentMethod.Cash -> if (available) R.drawable.toll_20px else R.drawable.toll_off_20px + PaymentMethod.Card -> if (available) R.drawable.credit_card_20px else R.drawable.credit_card_off_20px + } + ), contentDescription = null, tint = MaterialTheme.colorScheme.secondary, modifier = Modifier @@ -493,7 +470,7 @@ fun LocationItem( label = { Text(stringResource(R.string.menu_navigation)) }, leadingIcon = { Icon( - Icons.Rounded.Directions, null, + painterResource(R.drawable.directions_20px), null, modifier = Modifier.size(AssistChipDefaults.IconSize) ) } @@ -513,7 +490,7 @@ fun LocationItem( label = { Text(stringResource(R.string.menu_dial)) }, leadingIcon = { Icon( - Icons.Rounded.Phone, null, + painterResource(R.drawable.call_20px), null, modifier = Modifier.size(AssistChipDefaults.IconSize) ) } @@ -533,7 +510,7 @@ fun LocationItem( label = { Text(stringResource(R.string.menu_website)) }, leadingIcon = { Icon( - Icons.Rounded.Language, null, + painterResource(R.drawable.language_20px), null, modifier = Modifier.size(AssistChipDefaults.IconSize) ) } @@ -549,7 +526,7 @@ fun LocationItem( val favAction = if (isPinned) { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_unpin), - icon = Icons.Rounded.Star, + icon = R.drawable.star_24px_filled, action = { viewModel.unpin() } @@ -557,7 +534,7 @@ fun LocationItem( } else { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_pin), - icon = Icons.Rounded.StarOutline, + icon = R.drawable.star_24px, action = { viewModel.pin() }) @@ -567,7 +544,7 @@ fun LocationItem( toolbarActions += DefaultToolbarAction( label = stringResource(id = R.string.menu_map), - icon = Icons.AutoMirrored.Rounded.OpenInNew, + icon = R.drawable.open_in_new_24px, ) { viewModel.launch(context) } @@ -577,14 +554,14 @@ fun LocationItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_customize), - icon = Icons.Rounded.Tune, + icon = R.drawable.tune_24px, action = { sheetManager.showCustomizeSearchableModal(location) } )) if (location.fixMeUrl != null) { toolbarActions += DefaultToolbarAction( label = stringResource(id = R.string.menu_bugreport), - icon = Icons.Rounded.BugReport, + icon = R.drawable.bug_report_24px, ) { context.tryStartActivity( Intent( @@ -599,7 +576,7 @@ fun LocationItem( leftActions = listOf( DefaultToolbarAction( label = stringResource(id = R.string.menu_back), - icon = Icons.AutoMirrored.Rounded.ArrowBack + icon = R.drawable.arrow_back_24px, ) { onBack() }), @@ -667,7 +644,7 @@ private fun Departures( style = MaterialTheme.typography.labelSmall, modifier = Modifier.padding(end = 12.dp) ) - Icon(Icons.AutoMirrored.Rounded.NavigateNext, null) + Icon(painterResource(R.drawable.chevron_forward_24px), null) } } else { val (lines, groupedDepartures) = remember(departures) { @@ -894,7 +871,7 @@ private fun OpeningSchedule( modifier = Modifier.weight(1f) ) - Icon(Icons.AutoMirrored.Rounded.NavigateNext, null) + Icon(painterResource(R.drawable.chevron_forward_24px), null) } } } @@ -967,7 +944,7 @@ private fun Compass( ) { if (targetHeading != null) { Icon( - Icons.Rounded.Navigation, + painterResource(R.drawable.assistant_navigation_24px), null, modifier = Modifier .size(20f / 48f * size) @@ -1078,18 +1055,21 @@ fun LineTypeIcon( tint: Color, modifier: Modifier = Modifier ) = Icon( - imageVector = when (lineType) { - LineType.Bus -> Icons.Rounded.DirectionsBus - LineType.Tram -> Icons.Rounded.Tram - LineType.Subway -> Icons.Rounded.Subway - LineType.Monorail -> Icons.Rounded.DirectionsTransit - LineType.CommuterTrain -> Icons.Rounded.DirectionsRailway - LineType.Train, LineType.RegionalTrain, LineType.HighSpeedTrain -> Icons.Rounded.Train - LineType.Boat -> Icons.Rounded.DirectionsBoat - LineType.CableCar -> Icons.Rounded.CableCar - LineType.Airplane -> Icons.Rounded.AirplanemodeActive - null -> Icons.Rounded.Commute - }, + painter = painterResource( + when (lineType) { + LineType.Bus -> R.drawable.directions_bus_20px + LineType.Tram -> R.drawable.tram_20px + LineType.Subway -> R.drawable.subway_20px + LineType.Monorail -> R.drawable.monorail_20px + LineType.CommuterTrain -> R.drawable.directions_railway_20px + LineType.Train, LineType.RegionalTrain, LineType.HighSpeedTrain -> R.drawable.train_20px + LineType.Boat -> R.drawable.directions_boat_20px + LineType.CableCar -> R.drawable.cable_car_20px + LineType.AerialTramway -> R.drawable.gondola_lift_20px + LineType.Airplane -> R.drawable.flight_20px + null -> R.drawable.commute_20px + } + ), contentDescription = lineType?.name, // TODO localize (maybe) with ?.let{ stringResource("departure_line_type_$it") } modifier = modifier, tint = tint @@ -1131,7 +1111,7 @@ fun LineFilterChip( tint = color.atTone(if (dark) 20 else 100), modifier = Modifier .fillMaxSize() - .padding(4.dp) + .padding(2.dp) ) } }, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/location/MapTiles.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/location/MapTiles.kt index da080a88c..1e78ca35e 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/location/MapTiles.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/location/MapTiles.kt @@ -29,9 +29,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Navigation -import androidx.compose.material.icons.rounded.Place import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -53,6 +50,7 @@ import androidx.compose.ui.graphics.FilterQuality import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLayoutDirection +import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.IntSize @@ -76,6 +74,7 @@ import de.mm20.launcher2.search.location.LineType import de.mm20.launcher2.search.location.LocationIcon import de.mm20.launcher2.search.location.OpeningSchedule import de.mm20.launcher2.search.location.PaymentMethod +import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.ktx.DegreesConverter import de.mm20.launcher2.ui.ktx.contrast import de.mm20.launcher2.ui.ktx.hue @@ -219,7 +218,7 @@ fun MapTiles( ) Icon( - imageVector = Icons.Rounded.Place, + painterResource(R.drawable.location_on_24px_filled), contentDescription = null, tint = MaterialTheme.colorScheme.tertiary, modifier = Modifier @@ -238,47 +237,46 @@ fun MapTiles( zoom ).let { Offset( - (it.x - start.x) * tileSize.value - 8f, - (it.y - start.y) * tileSize.value - 8f + (it.x - start.x) * tileSize.value - 10f, + (it.y - start.y) * tileSize.value - 10f ) }, animationSpec = tween() ) - if (userLocation.heading != null) { - val headingAnim by animateValueAsState( - targetValue = userLocation.heading, - typeConverter = Float.DegreesConverter - ) - - Icon( - imageVector = Icons.Rounded.Navigation, - contentDescription = null, - tint = MaterialTheme.colorScheme.tertiary, - modifier = Modifier - .align(Alignment.TopStart) - .size(16.dp) - .absoluteOffset( - userIndicatorOffset.x.dp, - userIndicatorOffset.y.dp - ) - .rotate(headingAnim) - .absoluteOffset(y = -8.dp) - ) - } - Box( modifier = Modifier .align(Alignment.TopStart) - .size(16.dp) + .size(20.dp) .absoluteOffset( userIndicatorOffset.x.dp, userIndicatorOffset.y.dp ) - .background(MaterialTheme.colorScheme.tertiary, CircleShape) - .border(2.dp, MaterialTheme.colorScheme.onTertiary, CircleShape) + .background(MaterialTheme.colorScheme.onTertiary, CircleShape) .shadow(1.dp, CircleShape) - ) + ) { + if (userLocation.heading != null) { + val headingAnim by animateValueAsState( + targetValue = userLocation.heading, + typeConverter = Float.DegreesConverter + ) + Icon( + painterResource(R.drawable.assistant_navigation_20px), + null, + tint = MaterialTheme.colorScheme.tertiary, + modifier = Modifier + .size(20.dp) + .rotate(headingAnim) + ) + } else { + Box( + modifier = Modifier + .padding(2.dp) + .size(16.dp) + .background(MaterialTheme.colorScheme.tertiary, CircleShape) + ) + } + } if (osmAttribution != null) { Text( diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/shortcut/ShortcutItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/shortcut/ShortcutItem.kt index d7a488980..7a4752e7a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/shortcut/ShortcutItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/shortcut/ShortcutItem.kt @@ -22,13 +22,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Info -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StarOutline -import androidx.compose.material.icons.rounded.Tune import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon import androidx.compose.material3.InputChip @@ -47,6 +40,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.role @@ -54,7 +48,6 @@ import androidx.compose.ui.semantics.semantics import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.roundToIntRect import androidx.lifecycle.compose.collectAsStateWithLifecycle import de.mm20.launcher2.ktx.tryStartActivity import de.mm20.launcher2.search.AppShortcut @@ -167,7 +160,7 @@ fun AppShortcutItem( trailingIcon = if (LocalFavoritesEnabled.current) { { Icon( - if (isPinned) Icons.Rounded.Star else Icons.Rounded.StarOutline, + painterResource(if (isPinned) R.drawable.star_20px_filled else R.drawable.star_20px), stringResource(if (isPinned) R.string.menu_favorites_unpin else R.string.menu_favorites_pin), modifier = Modifier .clip(CircleShape) @@ -219,7 +212,7 @@ fun AppShortcutItem( val favAction = if (isPinned) { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_unpin), - icon = Icons.Rounded.Star, + icon = R.drawable.star_24px_filled, action = { viewModel.unpin() } @@ -227,7 +220,7 @@ fun AppShortcutItem( } else { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_pin), - icon = Icons.Rounded.StarOutline, + icon = R.drawable.star_24px, action = { viewModel.pin() }) @@ -240,7 +233,7 @@ fun AppShortcutItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_app_info), - icon = Icons.Rounded.Info + icon = R.drawable.info_24px, ) { context.tryStartActivity( Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply { @@ -253,25 +246,27 @@ fun AppShortcutItem( val sheetManager = LocalBottomSheetManager.current - toolbarActions.add(DefaultToolbarAction( - label = stringResource(R.string.menu_customize), - icon = Icons.Rounded.Tune, - action = { sheetManager.showCustomizeSearchableModal(shortcut) } - )) + toolbarActions.add( + DefaultToolbarAction( + label = stringResource(R.string.menu_customize), + icon = R.drawable.tune_24px, + action = { sheetManager.showCustomizeSearchableModal(shortcut) } + )) if (shortcut.canDelete) { - toolbarActions.add(DefaultToolbarAction( - label = stringResource(R.string.menu_delete), - icon = Icons.Rounded.Delete, - action = { requestDelete = true } - )) + toolbarActions.add( + DefaultToolbarAction( + label = stringResource(R.string.menu_delete), + icon = R.drawable.delete_24px, + action = { requestDelete = true } + )) } Toolbar( leftActions = listOf( DefaultToolbarAction( label = stringResource(id = R.string.menu_back), - icon = Icons.AutoMirrored.Rounded.ArrowBack + icon = R.drawable.arrow_back_24px, ) { onBack() } @@ -330,140 +325,6 @@ fun AppShortcutItem( } } - /*Column( - modifier = modifier - ) { - AnimatedVisibility(showDetails && shortcut.isUnavailable) { - MissingPermissionBanner( - modifier = Modifier.padding(start = 16.dp, end = 16.dp, top = 16.dp), - text = stringResource(R.string.shortcut_unavailable_description, stringResource(R.string.app_name)), - onClick = { - viewModel.requestShortcutPermission(context as AppCompatActivity) - } - ) - } - Row { - Column( - modifier = Modifier - .weight(1f) - .padding(16.dp) - ) { - val titleStyle by animateTextStyleAsState(if (showDetails) MaterialTheme.typography.titleMedium else MaterialTheme.typography.titleSmall) - Text( - text = shortcut.labelOverride ?: shortcut.label, - style = titleStyle, - maxLines = 1, - overflow = TextOverflow.Ellipsis - ) - - AnimatedVisibility(showDetails) { - val tags by viewModel.tags.collectAsState(emptyList()) - if (tags.isNotEmpty()) { - Text( - modifier = Modifier.padding(top = 1.dp, bottom = 2.dp), - text = tags.joinToString(separator = " #", prefix = "#"), - color = MaterialTheme.colorScheme.secondary, - style = MaterialTheme.typography.labelSmall - ) - } - } - val textSpace by transition.animateDp(label = "textSpace") { - if (it) 4.dp else 2.dp - } - shortcut.appName?.let { - Text( - text = stringResource(R.string.shortcut_summary, it), - style = MaterialTheme.typography.bodySmall, - modifier = Modifier.padding(top = textSpace), - maxLines = 1, - overflow = TextOverflow.Ellipsis - ) - } - } - - val padding by transition.animateDp(label = "iconPadding") { - if (it) 16.dp else 8.dp - } - ShapedLauncherIcon( - size = 48.dp, - modifier = Modifier - .padding(padding), - badge = { badge }, - icon = { icon }, - ) - } - - - AnimatedVisibility(showDetails) { - val toolbarActions = mutableListOf() - - if (LocalFavoritesEnabled.current) { - val isPinned by viewModel.isPinned.collectAsState(false) - val favAction = if (isPinned) { - DefaultToolbarAction( - label = stringResource(R.string.menu_favorites_unpin), - icon = Icons.Rounded.Star, - action = { - viewModel.unpin() - } - ) - } else { - DefaultToolbarAction( - label = stringResource(R.string.menu_favorites_pin), - icon = Icons.Rounded.StarOutline, - action = { - viewModel.pin() - }) - } - toolbarActions.add(favAction) - } - - val packageName = shortcut.packageName - if (packageName != null) { - toolbarActions.add( - DefaultToolbarAction( - label = stringResource(R.string.menu_app_info), - icon = Icons.Rounded.Info - ) { - context.tryStartActivity( - Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply { - data = Uri.parse("package:$packageName") - addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - } - ) - }) - } - - - val sheetManager = LocalBottomSheetManager.current - toolbarActions.add(DefaultToolbarAction( - label = stringResource(R.string.menu_customize), - icon = Icons.Rounded.Tune, - action = { sheetManager.showCustomizeSearchableModal(shortcut) } - )) - - if (shortcut.canDelete) { - toolbarActions.add(DefaultToolbarAction( - label = stringResource(R.string.menu_delete), - icon = Icons.Rounded.Delete, - action = { requestDelete = true } - )) - } - - Toolbar( - leftActions = listOf( - DefaultToolbarAction( - label = stringResource(id = R.string.menu_back), - icon = Icons.Rounded.ArrowBack - ) { - onBack() - } - ), - rightActions = toolbarActions - ) - } - }*/ - if (requestDelete) { AlertDialog( onDismissRequest = { requestDelete = false }, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/unitconverter/UnitConverterItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/unitconverter/UnitConverterItem.kt index 87eea4c91..c5f89cfd6 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/unitconverter/UnitConverterItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/unitconverter/UnitConverterItem.kt @@ -2,14 +2,26 @@ package de.mm20.launcher2.ui.launcher.search.unitconverter import android.icu.text.DateFormat import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.* -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.* -import androidx.compose.material3.* -import androidx.compose.runtime.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow @@ -17,8 +29,7 @@ import androidx.compose.ui.unit.dp import de.mm20.launcher2.search.data.CurrencyUnitConverter import de.mm20.launcher2.search.data.UnitConverter import de.mm20.launcher2.ui.R -import de.mm20.launcher2.unitconverter.Dimension -import java.util.* +import java.util.Date @Composable fun UnitConverterItem( @@ -51,7 +62,7 @@ fun UnitConverterItem( contentAlignment = Alignment.Center ) { Icon( - imageVector = getDimensionIcon(unitConverter.dimension), + painter = painterResource(getDimensionIcon(unitConverter.dimension)), contentDescription = null, tint = MaterialTheme.colorScheme.primary, modifier = Modifier.size(24.dp) @@ -113,16 +124,23 @@ fun UnitConverterItem( } ) if (showDisclaimer) { - AlertDialog( - onDismissRequest = { showDisclaimer = false }, - confirmButton = { - TextButton(onClick = { showDisclaimer = false }) { - Text(text = stringResource(id = R.string.close)) - } - }, - title = { Text(stringResource(id = R.string.disclaimer)) }, - text = { Text(stringResource(id = R.string.disclaimer_currency_converter, df.format(Date(it.updateTimestamp)))) } - ) + AlertDialog( + onDismissRequest = { showDisclaimer = false }, + confirmButton = { + TextButton(onClick = { showDisclaimer = false }) { + Text(text = stringResource(id = R.string.close)) + } + }, + title = { Text(stringResource(id = R.string.disclaimer)) }, + text = { + Text( + stringResource( + id = R.string.disclaimer_currency_converter, + df.format(Date(it.updateTimestamp)) + ) + ) + } + ) } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/unitconverter/UnitConverterResults.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/unitconverter/UnitConverterResults.kt index 1c638fce5..3e1097044 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/unitconverter/UnitConverterResults.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/unitconverter/UnitConverterResults.kt @@ -11,16 +11,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.lazy.LazyListScope -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Bolt -import androidx.compose.material.icons.rounded.FitnessCenter -import androidx.compose.material.icons.rounded.Schedule -import androidx.compose.material.icons.rounded.Speed -import androidx.compose.material.icons.rounded.SquareFoot -import androidx.compose.material.icons.rounded.Storage -import androidx.compose.material.icons.rounded.Straighten -import androidx.compose.material.icons.rounded.Thermostat -import androidx.compose.material.icons.rounded.Toll import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -34,12 +24,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalClipboardManager +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import de.mm20.launcher2.icons.Cube import de.mm20.launcher2.search.data.CurrencyUnitConverter import de.mm20.launcher2.search.data.UnitConverter import de.mm20.launcher2.ui.R @@ -121,7 +111,7 @@ fun LazyListScope.UnitConverterResults( } } Icon( - imageVector = getDimensionIcon(converter.dimension), + painter = painterResource(getDimensionIcon(converter.dimension)), contentDescription = null, tint = MaterialTheme.colorScheme.secondary, modifier = Modifier @@ -216,20 +206,20 @@ fun LazyListScope.UnitConverterResults( } } -fun getDimensionIcon(dimension: Dimension): ImageVector { +fun getDimensionIcon(dimension: Dimension): Int { return when (dimension) { - Dimension.Mass -> Icons.Rounded.FitnessCenter - Dimension.Length -> Icons.Rounded.Straighten - Dimension.Velocity -> Icons.Rounded.Speed - Dimension.Volume -> Icons.Rounded.Cube - Dimension.Area -> Icons.Rounded.SquareFoot - Dimension.Currency -> Icons.Rounded.Toll - Dimension.Data -> Icons.Rounded.Storage + Dimension.Mass -> R.drawable.weight_24px + Dimension.Length -> R.drawable.straighten_24px + Dimension.Velocity -> R.drawable.speed_24px + Dimension.Volume -> R.drawable.deployed_code_24px + Dimension.Area -> R.drawable.square_foot_24px + Dimension.Currency -> R.drawable.payments_24px + Dimension.Data -> R.drawable.hard_disk_24px Dimension.Bitrate -> TODO() Dimension.Pressure -> TODO() - Dimension.Energy -> Icons.Rounded.Bolt + Dimension.Energy -> R.drawable.bolt_24px Dimension.Frequency -> TODO() - Dimension.Temperature -> Icons.Rounded.Thermostat - Dimension.Time -> Icons.Rounded.Schedule + Dimension.Temperature -> R.drawable.device_thermostat_24px + Dimension.Time -> R.drawable.schedule_24px } } \ No newline at end of file diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/website/WebsiteItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/website/WebsiteItem.kt index ad44db098..2aa188523 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/website/WebsiteItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/website/WebsiteItem.kt @@ -14,12 +14,6 @@ import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.rounded.Share -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StarOutline -import androidx.compose.material.icons.rounded.Tune import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -35,7 +29,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.roundToIntRect import coil.compose.AsyncImage import coil.request.ImageRequest import de.mm20.launcher2.search.Website @@ -226,7 +219,7 @@ fun WebsiteItem( val favAction = if (isPinned) { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_unpin), - icon = Icons.Rounded.Star, + icon = R.drawable.star_24px_filled, action = { viewModel.unpin() onBack?.invoke() @@ -235,7 +228,7 @@ fun WebsiteItem( } else { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_pin), - icon = Icons.Rounded.StarOutline, + icon = R.drawable.star_24px, action = { viewModel.pin() onBack?.invoke() @@ -247,7 +240,7 @@ fun WebsiteItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_share), - icon = Icons.Rounded.Share, + icon = R.drawable.share_24px, action = { website.share(context) } @@ -255,9 +248,10 @@ fun WebsiteItem( ) val sheetManager = LocalBottomSheetManager.current - toolbarActions.add(DefaultToolbarAction( + toolbarActions.add( + DefaultToolbarAction( label = stringResource(R.string.menu_customize), - icon = Icons.Rounded.Tune, + icon = R.drawable.tune_24px, action = { sheetManager.showCustomizeSearchableModal(website) } )) @@ -265,7 +259,7 @@ fun WebsiteItem( leftActions = if (onBack != null) listOf( DefaultToolbarAction( stringResource(id = R.string.menu_back), - icon = Icons.AutoMirrored.Rounded.ArrowBack, + icon = R.drawable.arrow_back_24px, action = onBack ) ) else emptyList(), diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/wikipedia/ArticleItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/wikipedia/ArticleItem.kt index 6783997bf..472c07eea 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/wikipedia/ArticleItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/wikipedia/ArticleItem.kt @@ -14,13 +14,6 @@ import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.Share -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StarOutline -import androidx.compose.material.icons.rounded.Tune import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -30,7 +23,6 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.geometry.Rect import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource @@ -38,7 +30,6 @@ import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.fromHtml import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.roundToIntRect import coil.compose.AsyncImage import coil.request.ImageRequest import de.mm20.launcher2.search.Article @@ -213,7 +204,7 @@ fun ArticleItem( val favAction = if (isPinned) { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_unpin), - icon = Icons.Rounded.Star, + icon = R.drawable.star_24px_filled, action = { viewModel.unpin() onBack?.invoke() @@ -222,7 +213,7 @@ fun ArticleItem( } else { DefaultToolbarAction( label = stringResource(R.string.menu_favorites_pin), - icon = Icons.Rounded.StarOutline, + icon = R.drawable.star_24px, action = { viewModel.pin() onBack?.invoke() @@ -234,7 +225,7 @@ fun ArticleItem( toolbarActions.add( DefaultToolbarAction( label = stringResource(R.string.menu_share), - icon = Icons.Rounded.Share, + icon = R.drawable.share_24px, action = { article.share(context) } @@ -242,9 +233,10 @@ fun ArticleItem( ) val sheetManager = LocalBottomSheetManager.current - toolbarActions.add(DefaultToolbarAction( + toolbarActions.add( + DefaultToolbarAction( label = stringResource(R.string.menu_customize), - icon = Icons.Rounded.Tune, + icon = R.drawable.tune_24px, action = { sheetManager.showCustomizeSearchableModal(article) } )) @@ -252,7 +244,7 @@ fun ArticleItem( leftActions = if (onBack != null) listOf( DefaultToolbarAction( stringResource(id = R.string.menu_back), - icon = Icons.AutoMirrored.Rounded.ArrowBack, + icon = R.drawable.arrow_back_24px, action = onBack ) ) else emptyList(), diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/LauncherSearchBar.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/LauncherSearchBar.kt index 4109e8517..4540a6c07 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/LauncherSearchBar.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/LauncherSearchBar.kt @@ -2,21 +2,12 @@ package de.mm20.launcher2.ui.launcher.searchbar import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.tween -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut import androidx.compose.animation.scaleIn import androidx.compose.animation.scaleOut import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.imeAnimationTarget import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.safeDrawing -import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.text.KeyboardActionScope -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.FilterAlt -import androidx.compose.material.icons.rounded.VisibilityOff import androidx.compose.material3.Badge import androidx.compose.material3.Icon import androidx.compose.material3.IconToggleButton @@ -29,8 +20,8 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester -import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalFocusManager +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp @@ -41,7 +32,6 @@ import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.SearchBar import de.mm20.launcher2.ui.component.SearchBarLevel import de.mm20.launcher2.ui.launcher.search.SearchVM -import de.mm20.launcher2.ui.launcher.search.filters.KeyboardFilterBar import de.mm20.launcher2.ui.launcher.sheets.LocalBottomSheetManager @Composable @@ -96,7 +86,13 @@ fun LauncherSearchBar( checked = sheetManager.hiddenItemsSheetShown.value, onCheckedChange = { if (it) sheetManager.showHiddenItemsSheet() }, ) { - Icon(imageVector = Icons.Rounded.VisibilityOff, contentDescription = null) + Icon( + painter = painterResource( + if (sheetManager.hiddenItemsSheetShown.value) R.drawable.visibility_off_24px_filled + else R.drawable.visibility_off_24px + ), + contentDescription = null + ) } } AnimatedVisibility( @@ -111,9 +107,15 @@ fun LauncherSearchBar( }, ) { Box { - Icon(imageVector = Icons.Rounded.FilterAlt, contentDescription = stringResource( - if (searchVM.showFilters.value) R.string.menu_hide_filters else R.string.menu_show_filters - )) + Icon( + painter = painterResource( + if (searchVM.showFilters.value)R.drawable.filter_alt_24px_filled + else R.drawable.filter_alt_24px + ), + contentDescription = stringResource( + if (searchVM.showFilters.value) R.string.menu_hide_filters else R.string.menu_show_filters + ) + ) androidx.compose.animation.AnimatedVisibility( !searchVM.filters.value.allCategoriesEnabled, enter = scaleIn(tween(100)), diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/SearchBarActions.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/SearchBarActions.kt index 408e17c3b..5fd2d7871 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/SearchBarActions.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/SearchBarActions.kt @@ -8,8 +8,6 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Edit import androidx.compose.material3.AssistChip import androidx.compose.material3.AssistChipDefaults import androidx.compose.material3.FloatingActionButtonDefaults @@ -21,8 +19,10 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import de.mm20.launcher2.searchactions.actions.SearchAction +import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.SearchActionIcon import de.mm20.launcher2.ui.modifier.consumeAllScrolling import de.mm20.launcher2.ui.settings.SettingsActivity @@ -83,7 +83,7 @@ fun ColumnScope.SearchBarActions( } ) { - Icon(imageVector = Icons.Rounded.Edit, contentDescription = null) + Icon(painterResource(R.drawable.edit_24px), contentDescription = null) } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/SearchBarMenu.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/SearchBarMenu.kt index 06fd92c7b..a81fac72a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/SearchBarMenu.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/SearchBarMenu.kt @@ -8,11 +8,6 @@ import androidx.compose.animation.graphics.res.animatedVectorResource import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter import androidx.compose.animation.graphics.vector.AnimatedImageVector import androidx.compose.foundation.layout.RowScope -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.HelpOutline -import androidx.compose.material.icons.rounded.Settings -import androidx.compose.material.icons.rounded.Wallpaper import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon @@ -21,13 +16,13 @@ import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.lifecycle.viewmodel.compose.viewModel import de.mm20.launcher2.ui.R @@ -74,7 +69,7 @@ fun RowScope.SearchBarMenu( Text(stringResource(R.string.wallpaper)) }, leadingIcon = { - Icon(imageVector = Icons.Rounded.Wallpaper, contentDescription = null) + Icon(painterResource(R.drawable.wallpaper_24px), contentDescription = null) } ) DropdownMenuItem( @@ -86,7 +81,7 @@ fun RowScope.SearchBarMenu( Text(stringResource(R.string.settings)) }, leadingIcon = { - Icon(imageVector = Icons.Rounded.Settings, contentDescription = null) + Icon(painterResource(R.drawable.settings_24px), contentDescription = null) } ) val colorScheme = MaterialTheme.colorScheme @@ -107,7 +102,7 @@ fun RowScope.SearchBarMenu( Text(stringResource(R.string.help)) }, leadingIcon = { - Icon(imageVector = Icons.Rounded.HelpOutline, contentDescription = null) + Icon(painterResource(R.drawable.help_24px), contentDescription = null) } ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/ConfigureWidgetSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/ConfigureWidgetSheet.kt index 9892ceb2b..639d7b47a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/ConfigureWidgetSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/ConfigureWidgetSheet.kt @@ -27,13 +27,6 @@ import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Build -import androidx.compose.material.icons.rounded.Error -import androidx.compose.material.icons.rounded.HelpOutline -import androidx.compose.material.icons.rounded.Link -import androidx.compose.material.icons.rounded.LinkOff -import androidx.compose.material.icons.rounded.OpenInNew import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.CheckboxDefaults import androidx.compose.material3.HorizontalDivider @@ -58,6 +51,7 @@ import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.input.pointer.PointerEventPass import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -174,7 +168,7 @@ fun ColumnScope.ConfigureWeatherWidget( modifier = Modifier .padding(start = ButtonDefaults.IconSpacing) .requiredSize(ButtonDefaults.IconSize), - imageVector = Icons.Rounded.OpenInNew, contentDescription = null + painter = painterResource(R.drawable.open_in_new_20px), contentDescription = null ) } } @@ -225,7 +219,7 @@ fun ColumnScope.ConfigureFavoritesWidget( modifier = Modifier .padding(start = ButtonDefaults.IconSpacing) .requiredSize(ButtonDefaults.IconSize), - imageVector = Icons.Rounded.OpenInNew, contentDescription = null + painter = painterResource(R.drawable.open_in_new_20px), contentDescription = null ) } } @@ -278,7 +272,7 @@ fun ColumnScope.ConfigureMusicWidget( modifier = Modifier .padding(start = ButtonDefaults.IconSpacing) .requiredSize(ButtonDefaults.IconSize), - imageVector = Icons.Rounded.OpenInNew, contentDescription = null + painter = painterResource(R.drawable.open_in_new_20px), contentDescription = null ) } } @@ -305,7 +299,7 @@ fun ColumnScope.ConfigureAppWidget( contentAlignment = Alignment.Center ) { LargeMessage( - icon = Icons.Rounded.Error, + icon = R.drawable.error_48px, text = stringResource(id = R.string.app_widget_loading_failed) ) } @@ -316,7 +310,7 @@ fun ColumnScope.ConfigureAppWidget( contentPadding = ButtonDefaults.ButtonWithIconContentPadding, onClick = { replaceWidget = true }) { Icon( - Icons.Rounded.Build, + painterResource(R.drawable.build_20px), null, modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) @@ -506,7 +500,7 @@ fun ColumnScope.ConfigureAppWidget( modifier = Modifier .padding(start = ButtonDefaults.IconSpacing) .requiredSize(ButtonDefaults.IconSize), - imageVector = Icons.Rounded.OpenInNew, contentDescription = null + painter = painterResource(R.drawable.open_in_new_20px), contentDescription = null ) } } @@ -659,7 +653,7 @@ fun ColumnScope.ConfigureCalendarWidget( modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) .requiredSize(ButtonDefaults.IconSize), - imageVector = Icons.Rounded.HelpOutline, contentDescription = null + painter = painterResource(R.drawable.help_20px), contentDescription = null ) Text(stringResource(R.string.widget_config_calendar_missing_calendars_hint)) } @@ -706,7 +700,7 @@ fun ConfigureNotesWidget( OutlinedCard { if (widget.config.linkedFile != null) { Preference( - icon = { Icon(Icons.Rounded.LinkOff, null) }, + icon = { Icon(painterResource(R.drawable.link_off_24px), null) }, title = { Text(stringResource(R.string.note_widget_action_unlink_file)) }, summary = { Text( @@ -732,7 +726,7 @@ fun ConfigureNotesWidget( Preference( title = stringResource(R.string.note_widget_link_file), summary = stringResource(R.string.note_widget_link_file_summary), - icon = Icons.Rounded.Link, + icon = R.drawable.link_24px, onClick = { linkFileLauncher.launch( context.getString( diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/CustomizeSearchableSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/CustomizeSearchableSheet.kt index a1ecaf245..a614000c9 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/CustomizeSearchableSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/CustomizeSearchableSheet.kt @@ -5,20 +5,12 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.Label -import androidx.compose.material.icons.outlined.Visibility -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.Tag -import androidx.compose.material.icons.rounded.Visibility -import androidx.compose.material.icons.rounded.VisibilityOff import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExposedDropdownMenuBox import androidx.compose.material3.ExposedDropdownMenuDefaults import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MenuAnchorType -import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState @@ -33,6 +25,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.Dp @@ -78,7 +71,7 @@ fun CustomizeSearchableSheet( icon = { icon }, badge = { Badge( - icon = BadgeIcon(Icons.Rounded.Edit) + icon = BadgeIcon(R.drawable.edit_20px) ) }, modifier = Modifier.clickable { @@ -105,7 +98,7 @@ fun CustomizeSearchableSheet( Text(searchable.label) }, leadingIcon = { - Icon(Icons.AutoMirrored.Rounded.Label, null) + Icon(painterResource(R.drawable.label_24px), null) } ) @@ -129,7 +122,7 @@ fun CustomizeSearchableSheet( viewModel.autocompleteTags(it).minus(tags.toSet()) }, leadingIcon = { - Icon(Icons.Rounded.Tag, null) + Icon(painterResource(R.drawable.tag_24px), null) } ) @@ -169,11 +162,13 @@ fun CustomizeSearchableSheet( trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = showDropdown) }, leadingIcon = { Icon( - when (visibility) { - VisibilityLevel.Default -> Icons.Rounded.Visibility - VisibilityLevel.SearchOnly -> Icons.Outlined.Visibility - VisibilityLevel.Hidden -> Icons.Rounded.VisibilityOff - }, + painterResource( + when (visibility) { + VisibilityLevel.Default -> R.drawable.visibility_24px_filled + VisibilityLevel.SearchOnly -> R.drawable.visibility_24px + VisibilityLevel.Hidden -> R.drawable.visibility_off_24px + } + ), null ) }, @@ -195,7 +190,7 @@ fun CustomizeSearchableSheet( Text(stringResource(R.string.item_visibility_app_default)) }, leadingIcon = { - Icon(Icons.Rounded.Visibility, null) + Icon(painterResource(R.drawable.visibility_24px_filled), null) } ) } else if (searchable is CalendarEvent) { @@ -208,7 +203,7 @@ fun CustomizeSearchableSheet( Text(stringResource(R.string.item_visibility_calendar_default)) }, leadingIcon = { - Icon(Icons.Rounded.Visibility, null) + Icon(painterResource(R.drawable.visibility_24px_filled), null) } ) } else { @@ -221,7 +216,7 @@ fun CustomizeSearchableSheet( Text(stringResource(R.string.item_visibility_search_only)) }, leadingIcon = { - Icon(Icons.Rounded.Visibility, null) + Icon(painterResource(R.drawable.visibility_24px_filled), null) } ) } @@ -236,7 +231,7 @@ fun CustomizeSearchableSheet( }, leadingIcon = { Icon( - Icons.Outlined.Visibility, + painterResource(R.drawable.visibility_24px), null ) } @@ -251,7 +246,7 @@ fun CustomizeSearchableSheet( Text(stringResource(R.string.item_visibility_hidden)) }, leadingIcon = { - Icon(Icons.Rounded.VisibilityOff, null) + Icon(painterResource(R.drawable.visibility_off_24px), null) } ) } @@ -267,7 +262,7 @@ fun CustomizeSearchableSheet( } if (pickIcon) { val bottomSheetState = rememberModalBottomSheetState() - BottomSheetDialog ( + BottomSheetDialog( onDismissRequest = { viewModel.closeIconPicker() }, bottomSheetState = bottomSheetState ) { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/EditFavoritesSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/EditFavoritesSheet.kt index ebb577a94..e608e94b6 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/EditFavoritesSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/EditFavoritesSheet.kt @@ -25,11 +25,6 @@ import androidx.compose.foundation.lazy.grid.GridItemSpan import androidx.compose.foundation.lazy.grid.rememberLazyGridState import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Settings -import androidx.compose.material.icons.rounded.Tag import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -63,6 +58,7 @@ import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.platform.LocalLifecycleOwner +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow @@ -253,7 +249,7 @@ fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM, paddingValues: Padding DropdownMenuItem( leadingIcon = { Icon( - imageVector = Icons.Rounded.Delete, + painterResource(R.drawable.delete_24px), contentDescription = null ) }, @@ -297,7 +293,10 @@ fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM, paddingValues: Padding checked = showSettings, onCheckedChange = { showSettings = it }) { Icon( - imageVector = Icons.Rounded.Settings, + painterResource( + if (showSettings) R.drawable.settings_24px_filled + else R.drawable.settings_24px + ), contentDescription = null ) } @@ -308,7 +307,7 @@ fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM, paddingValues: Padding viewModel.pickShortcut(it.section) }) { Icon( - imageVector = Icons.Rounded.Add, + painterResource(R.drawable.add_24px), contentDescription = null ) } @@ -471,7 +470,7 @@ fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM, paddingValues: Padding showAddMenu = true }) { Icon( - imageVector = Icons.Rounded.Add, + painterResource(R.drawable.add_24px), contentDescription = null ) } @@ -481,7 +480,7 @@ fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM, paddingValues: Padding for (tag in availableTags) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Tag, null) + Icon(painterResource(R.drawable.tag_24px), null) }, text = { Text(tag.tag) }, onClick = { @@ -494,7 +493,7 @@ fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM, paddingValues: Padding } DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Add, null) + Icon(painterResource(R.drawable.add_24px), null) }, text = { Text( diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/EditTagSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/EditTagSheet.kt index 16a6c4152..005a06da0 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/EditTagSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/EditTagSheet.kt @@ -23,12 +23,6 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Apps -import androidx.compose.material.icons.rounded.Check -import androidx.compose.material.icons.rounded.EmojiEmotions -import androidx.compose.material.icons.rounded.Tag -import androidx.compose.material.icons.rounded.Warning import androidx.compose.material3.Button import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -55,6 +49,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.PathEffect import androidx.compose.ui.graphics.drawscope.Stroke import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow @@ -143,12 +138,12 @@ fun CreateNewTagPage(viewModel: EditTagSheetVM, paddingValues: PaddingValues) { fun PickItems(viewModel: EditTagSheetVM, paddingValues: PaddingValues) { val columns = LocalGridSettings.current.columnCount - 1 - Scaffold ( + Scaffold( contentWindowInsets = WindowInsets(0.dp), modifier = Modifier.padding(paddingValues), containerColor = Color.Transparent, bottomBar = { - Surface ( + Surface( modifier = Modifier.fillMaxWidth(), color = MaterialTheme.colorScheme.surface.copy(alpha = 0.95f), shape = MaterialTheme.shapes.medium @@ -248,7 +243,11 @@ fun ListItem( onTagChanged(false) } ) { - Icon(Icons.Rounded.Check, null, modifier = Modifier.padding(4.dp)) + Icon( + painterResource(R.drawable.check_20px), + null, + modifier = Modifier.padding(4.dp) + ) } } } @@ -312,7 +311,8 @@ fun CustomizeTag(viewModel: EditTagSheetVM, paddingValues: PaddingValues) { contentAlignment = Alignment.Center, ) { if (tagIcon != null) { - var icon = remember(viewModel.tagIcon) { viewModel.tagIcon }.collectAsState(null) + var icon = + remember(viewModel.tagIcon) { viewModel.tagIcon }.collectAsState(null) ShapedLauncherIcon( size = 56.dp, icon = { icon.value }, @@ -320,7 +320,7 @@ fun CustomizeTag(viewModel: EditTagSheetVM, paddingValues: PaddingValues) { ) } else { Icon( - Icons.Rounded.Tag, + painterResource(R.drawable.tag_24px), null, tint = MaterialTheme.colorScheme.onSurfaceVariant, ) @@ -397,7 +397,7 @@ fun CustomizeTag(viewModel: EditTagSheetVM, paddingValues: PaddingValues) { AnimatedVisibility(viewModel.tagNameExists || viewModel.taggedItems.isEmpty() || viewModel.tagName.isEmpty()) { SmallMessage( modifier = Modifier.fillMaxWidth(), - icon = Icons.Rounded.Warning, + icon = R.drawable.warning_24px, text = stringResource( if (viewModel.taggedItems.isEmpty()) R.string.tag_no_items_message else if (viewModel.tagNameExists) R.string.tag_exists_message @@ -413,7 +413,7 @@ fun PickIcon( viewModel: EditTagSheetVM, paddingValues: PaddingValues ) { - val icon by remember (viewModel.tagCustomIcon) { viewModel.tagCustomIcon }.collectAsState() + val icon by remember(viewModel.tagCustomIcon) { viewModel.tagCustomIcon }.collectAsState() val tag = Tag(viewModel.tagName) var selectedTabIndex = remember { mutableIntStateOf( @@ -433,14 +433,14 @@ fun PickIcon( ) { SegmentedButton( selected = selectedTabIndex.intValue == 0, - icon = { Icon(Icons.Rounded.Apps, null) }, + icon = { Icon(painterResource(R.drawable.apps_24px), null) }, label = { Text("Icon") }, onClick = { selectedTabIndex.intValue = 0 }, shape = SegmentedButtonDefaults.itemShape(0, 2) ) SegmentedButton( selected = selectedTabIndex.intValue == 1, - icon = { Icon(Icons.Rounded.EmojiEmotions, null) }, + icon = { Icon(painterResource(R.drawable.mood_24px), null) }, label = { Text("Emoji") }, onClick = { selectedTabIndex.intValue = 1 }, shape = SegmentedButtonDefaults.itemShape(1, 2) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/WidgetPickerSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/WidgetPickerSheet.kt index 2da1ccb8d..e271b4568 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/WidgetPickerSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/sheets/WidgetPickerSheet.kt @@ -27,17 +27,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Clear -import androidx.compose.material.icons.rounded.ExpandMore -import androidx.compose.material.icons.rounded.LightMode -import androidx.compose.material.icons.rounded.MusicNote -import androidx.compose.material.icons.rounded.Search -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.StickyNote2 -import androidx.compose.material.icons.rounded.Today -import androidx.compose.material.icons.rounded.Widgets -import androidx.compose.material.icons.rounded.Work import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -57,6 +46,7 @@ import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.Density @@ -308,12 +298,12 @@ fun WidgetPickerSheet( Text(stringResource(R.string.search_bar_placeholder)) }, leadingIcon = { - Icon(Icons.Rounded.Search, null) + Icon(painterResource(R.drawable.search_24px), null) }, trailingIcon = { if (query.isNotEmpty()) { IconButton(onClick = { viewModel.search("") }) { - Icon(Icons.Rounded.Clear, null) + Icon(painterResource(R.drawable.close_24px), null) } } } @@ -344,14 +334,16 @@ fun WidgetPickerSheet( verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = when (it.type) { - WeatherWidget.Type -> Icons.Rounded.LightMode - CalendarWidget.Type -> Icons.Rounded.Today - MusicWidget.Type -> Icons.Rounded.MusicNote - FavoritesWidget.Type -> Icons.Rounded.Star - NotesWidget.Type -> Icons.Rounded.StickyNote2 - else -> Icons.Rounded.Widgets - }, + painter = + painterResource( + when (it.type) { + WeatherWidget.Type -> R.drawable.light_mode_24px + CalendarWidget.Type -> R.drawable.today_24px + MusicWidget.Type -> R.drawable.music_note_24px + FavoritesWidget.Type -> R.drawable.star_24px + NotesWidget.Type -> R.drawable.sticky_note_2_24px + else -> R.drawable.widgets_24px + }), contentDescription = null, modifier = Modifier.padding(end = 16.dp) ) @@ -402,7 +394,7 @@ fun WidgetPickerSheet( if (!expandAllGroups) { Icon( modifier = Modifier.rotate(rotate), - imageVector = Icons.Rounded.ExpandMore, + painter = painterResource(R.drawable.keyboard_arrow_down_24px), contentDescription = null ) } @@ -465,7 +457,7 @@ fun WidgetPickerSheet( .clip(CircleShape) .background(MaterialTheme.colorScheme.tertiaryContainer) .padding(4.dp), - imageVector = Icons.Rounded.Work, + painter = painterResource(R.drawable.enterprise_24px), contentDescription = null, tint = MaterialTheme.colorScheme.onTertiaryContainer ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/WidgetColumn.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/WidgetColumn.kt index 3f064a37f..a17a406ba 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/WidgetColumn.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/WidgetColumn.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.layout.onPlaced import androidx.compose.ui.layout.positionInParent import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.contentDescription @@ -158,8 +159,6 @@ fun WidgetColumn( if (editMode) R.string.widget_add_widget else R.string.menu_edit_widgets ) - val icon = - AnimatedImageVector.animatedVectorResource(R.drawable.anim_ic_edit_add) Button( modifier = Modifier.align(Alignment.CenterHorizontally).padding(vertical = 8.dp), @@ -175,9 +174,8 @@ fun WidgetColumn( Icon( modifier = Modifier.padding(end = ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize), - painter = rememberAnimatedVectorPainter( - animatedImageVector = icon, - atEnd = !editMode + painter = painterResource( + if (editMode) R.drawable.add_20px else R.drawable.edit_20px ), contentDescription = null ) Text(title) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/WidgetItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/WidgetItem.kt index 4cf2a0ee0..8f6bb2c24 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/WidgetItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/WidgetItem.kt @@ -11,10 +11,6 @@ import androidx.compose.foundation.gestures.rememberDraggableState import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.DragIndicator -import androidx.compose.material.icons.rounded.Tune import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -28,6 +24,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -89,7 +86,7 @@ fun WidgetItem( verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = Icons.Rounded.DragIndicator, + painterResource(R.drawable.drag_indicator_24px), contentDescription = null, modifier = Modifier.draggable( state = draggableState, @@ -129,13 +126,13 @@ fun WidgetItem( configure = true }) { Icon( - imageVector = Icons.Rounded.Tune, + painterResource(R.drawable.tune_24px), contentDescription = stringResource(R.string.settings) ) } IconButton(onClick = { onWidgetRemove() }) { Icon( - imageVector = Icons.Rounded.Delete, + painterResource(R.drawable.delete_24px), contentDescription = stringResource(R.string.widget_action_remove) ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/calendar/CalendarWidget.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/calendar/CalendarWidget.kt index e17ff216a..7285c5b14 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/calendar/CalendarWidget.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/calendar/CalendarWidget.kt @@ -4,7 +4,6 @@ import android.content.Context import android.text.format.DateUtils import androidx.appcompat.app.AppCompatActivity import androidx.compose.animation.AnimatedContent -import androidx.compose.animation.animateContentSize import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.slideIn @@ -17,13 +16,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.OpenInNew -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.ArrowDropDown -import androidx.compose.material.icons.rounded.ChevronLeft -import androidx.compose.material.icons.rounded.ChevronRight -import androidx.compose.material.icons.rounded.OpenInNew import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon @@ -42,6 +34,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow @@ -87,7 +80,7 @@ fun CalendarWidget( modifier = Modifier.padding(start = 8.dp, end = 8.dp, top = 8.dp, bottom = 4.dp) ) { IconButton(onClick = { viewModel.previousDay() }) { - Icon(imageVector = Icons.Rounded.ChevronLeft, contentDescription = stringResource(R.string.calendar_widget_previous_day)) + Icon(painter = painterResource(R.drawable.chevron_backward_24px), contentDescription = stringResource(R.string.calendar_widget_previous_day)) } Box( modifier = Modifier.weight(1f), @@ -103,7 +96,7 @@ fun CalendarWidget( overflow = TextOverflow.Ellipsis ) Icon( - imageVector = Icons.Rounded.ArrowDropDown, + painterResource(R.drawable.arrow_drop_down_24px), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, ) @@ -121,13 +114,13 @@ fun CalendarWidget( } } IconButton(onClick = { viewModel.nextDay() }) { - Icon(imageVector = Icons.Rounded.ChevronRight, contentDescription = stringResource(R.string.calendar_widget_next_day)) + Icon(painter = painterResource(R.drawable.chevron_forward_24px), contentDescription = stringResource(R.string.calendar_widget_next_day)) } IconButton(onClick = { viewModel.createEvent(context) }) { - Icon(imageVector = Icons.Rounded.Add, contentDescription = stringResource(R.string.calendar_widget_create_event)) + Icon(painter = painterResource(R.drawable.add_24px), contentDescription = stringResource(R.string.calendar_widget_create_event)) } IconButton(onClick = { viewModel.openCalendarApp(context) }) { - Icon(imageVector = Icons.AutoMirrored.Rounded.OpenInNew, contentDescription = stringResource(R.string.calendar_widget_open_calendar)) + Icon(painter = painterResource(R.drawable.open_in_new_24px), contentDescription = stringResource(R.string.calendar_widget_open_calendar)) } } val events by viewModel.calendarEvents diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/ClockWidget.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/ClockWidget.kt index 91975f824..2792953b6 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/ClockWidget.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/ClockWidget.kt @@ -16,26 +16,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Check -import androidx.compose.material.icons.rounded.AccessTime -import androidx.compose.material.icons.rounded.Alarm -import androidx.compose.material.icons.rounded.AlignVerticalBottom -import androidx.compose.material.icons.rounded.AlignVerticalCenter -import androidx.compose.material.icons.rounded.AlignVerticalTop -import androidx.compose.material.icons.rounded.AutoAwesome -import androidx.compose.material.icons.rounded.BatteryFull -import androidx.compose.material.icons.rounded.ColorLens -import androidx.compose.material.icons.rounded.DarkMode -import androidx.compose.material.icons.rounded.FormatColorText -import androidx.compose.material.icons.rounded.Height -import androidx.compose.material.icons.rounded.HorizontalSplit -import androidx.compose.material.icons.rounded.LightMode -import androidx.compose.material.icons.rounded.MusicNote -import androidx.compose.material.icons.rounded.Timer -import androidx.compose.material.icons.rounded.Today -import androidx.compose.material.icons.rounded.Tune -import androidx.compose.material.icons.rounded.VerticalSplit import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.HorizontalDivider @@ -61,6 +41,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -152,7 +133,7 @@ fun ClockWidget( configure = true }) { Icon( - imageVector = Icons.Rounded.Tune, + painterResource(R.drawable.tune_24px), contentDescription = stringResource(R.string.settings) ) } @@ -397,13 +378,13 @@ fun ConfigureClockWidgetSheet( active = compact == false, activeContent = { Icon( - imageVector = Icons.Filled.Check, + painterResource(R.drawable.check_20px), contentDescription = null, ) } ) { Icon( - imageVector = Icons.Rounded.HorizontalSplit, + painterResource(R.drawable.splitscreen_top_20px), contentDescription = null, ) } @@ -422,13 +403,13 @@ fun ConfigureClockWidgetSheet( active = compact == true, activeContent = { Icon( - imageVector = Icons.Filled.Check, + painterResource(R.drawable.check_20px), contentDescription = null, ) } ) { Icon( - imageVector = Icons.Rounded.VerticalSplit, + painterResource(R.drawable.splitscreen_right_20px), contentDescription = null, ) } @@ -463,7 +444,7 @@ fun ConfigureClockWidgetSheet( shape = SegmentedButtonDefaults.itemShape(index = 0, count = 3), ) { Icon( - imageVector = Icons.Rounded.AutoAwesome, + painterResource(R.drawable.auto_awesome_20dp), contentDescription = null, modifier = Modifier.size(SegmentedButtonDefaults.IconSize) ) @@ -476,7 +457,7 @@ fun ConfigureClockWidgetSheet( shape = SegmentedButtonDefaults.itemShape(index = 1, count = 3), ) { Icon( - imageVector = Icons.Rounded.LightMode, + painterResource(R.drawable.light_mode_20px), contentDescription = null, modifier = Modifier.size(SegmentedButtonDefaults.IconSize) ) @@ -489,7 +470,7 @@ fun ConfigureClockWidgetSheet( shape = SegmentedButtonDefaults.itemShape(index = 2, count = 3), ) { Icon( - imageVector = Icons.Rounded.DarkMode, + painterResource(R.drawable.dark_mode_20px), contentDescription = null, modifier = Modifier.size(SegmentedButtonDefaults.IconSize) ) @@ -503,7 +484,7 @@ fun ConfigureClockWidgetSheet( ) { SwitchPreference( title = stringResource(R.string.widget_use_theme_colors), - icon = Icons.Rounded.ColorLens, + icon = R.drawable.palette_24px, value = useAccentColor, onValueChanged = { viewModel.setUseThemeColor(it) @@ -512,7 +493,7 @@ fun ConfigureClockWidgetSheet( AnimatedVisibility(compact == false && style !is ClockWidgetStyle.Custom) { SwitchPreference( title = stringResource(R.string.preference_clock_widget_show_seconds), - icon = Icons.Rounded.Timer, + icon = R.drawable.timer_24px, value = showSeconds, onValueChanged = { viewModel.setShowSeconds(it) @@ -526,7 +507,7 @@ fun ConfigureClockWidgetSheet( ) { SwitchPreference( title = stringResource(R.string.preference_clock_widget_monospaced), - icon = Icons.Rounded.FormatColorText, + icon = R.drawable._123_24px, value = monospaced, onValueChanged = { viewModel.setMonospaced(it) @@ -546,7 +527,7 @@ fun ConfigureClockWidgetSheet( TimeFormat.TwentyFourHour -> stringResource(R.string.preference_clock_widget_time_format_24h) TimeFormat.System -> stringResource(R.string.preference_clock_widget_time_format_system) }, - icon = Icons.Rounded.AccessTime, + icon = R.drawable.schedule_24px, onClick = { showDropdown = true } @@ -593,7 +574,7 @@ fun ConfigureClockWidgetSheet( ) { SwitchPreference( title = stringResource(R.string.preference_clock_widget_fill_height), - icon = Icons.Rounded.Height, + icon = R.drawable.fit_page_height_24px, value = fillHeight == true || widgetsOnHome == false, onValueChanged = { viewModel.setFillHeight(it) @@ -609,9 +590,9 @@ fun ConfigureClockWidgetSheet( else -> stringResource(R.string.preference_clock_widget_alignment_bottom) }, icon = when (alignment) { - ClockWidgetAlignment.Top -> Icons.Rounded.AlignVerticalTop - ClockWidgetAlignment.Center -> Icons.Rounded.AlignVerticalCenter - else -> Icons.Rounded.AlignVerticalBottom + ClockWidgetAlignment.Top -> R.drawable.align_vertical_top_24px + ClockWidgetAlignment.Center -> R.drawable.align_vertical_center_24px + else -> R.drawable.align_vertical_bottom_24px }, onClick = { showDropdown = true @@ -624,7 +605,7 @@ fun ConfigureClockWidgetSheet( DropdownMenuItem( leadingIcon = { Icon( - Icons.Rounded.AlignVerticalTop, + painterResource(R.drawable.align_vertical_top_24px), null ) }, @@ -637,7 +618,7 @@ fun ConfigureClockWidgetSheet( DropdownMenuItem( leadingIcon = { Icon( - Icons.Rounded.AlignVerticalCenter, + painterResource(R.drawable.align_vertical_center_24px), null ) }, @@ -649,7 +630,7 @@ fun ConfigureClockWidgetSheet( DropdownMenuItem( leadingIcon = { Icon( - Icons.Rounded.AlignVerticalBottom, + painterResource(R.drawable.align_vertical_bottom_24px), null ) }, @@ -676,7 +657,7 @@ fun ConfigureClockWidgetSheet( SwitchPreference( title = stringResource(R.string.preference_clockwidget_date_part), summary = stringResource(R.string.preference_clockwidget_date_part_summary), - icon = Icons.Rounded.Today, + icon = R.drawable.today_24px, value = parts?.date == true, onValueChanged = { viewModel.setDatePart(it) @@ -685,7 +666,7 @@ fun ConfigureClockWidgetSheet( SwitchPreference( title = stringResource(R.string.preference_clockwidget_music_part), summary = stringResource(R.string.preference_clockwidget_music_part_summary), - icon = Icons.Rounded.MusicNote, + icon = R.drawable.music_note_24px, value = parts?.music == true, onValueChanged = { viewModel.setMusicPart(it) @@ -694,7 +675,7 @@ fun ConfigureClockWidgetSheet( SwitchPreference( title = stringResource(R.string.preference_clockwidget_alarm_part), summary = stringResource(R.string.preference_clockwidget_alarm_part_summary), - icon = Icons.Rounded.Alarm, + icon = R.drawable.alarm_24px, value = parts?.alarm == true, onValueChanged = { viewModel.setAlarmPart(it) @@ -703,7 +684,7 @@ fun ConfigureClockWidgetSheet( SwitchPreference( title = stringResource(R.string.preference_clockwidget_battery_part), summary = stringResource(R.string.preference_clockwidget_battery_part_summary), - icon = Icons.Rounded.BatteryFull, + icon = R.drawable.battery_full_24px, value = parts?.battery == true, onValueChanged = { viewModel.setBatteryPart(it) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/WatchFaceSelector.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/WatchFaceSelector.kt index 0b392d2e5..8ddf7e7b8 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/WatchFaceSelector.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/WatchFaceSelector.kt @@ -26,19 +26,6 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ArrowDropDown -import androidx.compose.material.icons.rounded.CheckCircle -import androidx.compose.material.icons.rounded.ChevronLeft -import androidx.compose.material.icons.rounded.ChevronRight -import androidx.compose.material.icons.rounded.Done -import androidx.compose.material.icons.rounded.PhotoSizeSelectSmall -import androidx.compose.material.icons.rounded.RadioButtonUnchecked -import androidx.compose.material.icons.rounded.RestartAlt -import androidx.compose.material.icons.rounded.Settings -import androidx.compose.material.icons.rounded.SwapHoriz -import androidx.compose.material.icons.rounded.Tune -import androidx.compose.material.icons.rounded.Widgets import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -65,6 +52,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.PointerEventPass import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.Dp @@ -162,7 +150,7 @@ fun WatchFaceSelector( modifier = Modifier .padding(4.dp) ) { - Icon(Icons.Rounded.Tune, null) + Icon(painterResource(R.drawable.tune_24px), null) DropdownMenu( expanded = showStyleSettings, onDismissRequest = { showStyleSettings = false }) { @@ -171,8 +159,10 @@ fun WatchFaceSelector( text = { Text(stringResource(R.string.clock_variant_outlined)) }, leadingIcon = { Icon( - if (selected.outlined) Icons.Rounded.CheckCircle - else Icons.Rounded.RadioButtonUnchecked, + painterResource( + if (selected.outlined) R.drawable.check_circle_24px_filled + else R.drawable.circle_24px, + ), null ) }, @@ -186,8 +176,10 @@ fun WatchFaceSelector( text = { Text(stringResource(R.string.clock_variant_analog_ticks)) }, leadingIcon = { Icon( - if (selected.showTicks) Icons.Rounded.CheckCircle - else Icons.Rounded.RadioButtonUnchecked, + painterResource( + if (selected.showTicks) R.drawable.check_circle_24px_filled + else R.drawable.circle_24px, + ), null ) }, @@ -200,7 +192,7 @@ fun WatchFaceSelector( DropdownMenuItem( text = { Text(stringResource(R.string.widget_pick_widget)) }, leadingIcon = { - Icon(Icons.Rounded.SwapHoriz, null) + Icon(painterResource(R.drawable.swap_horiz_24px), null) }, onClick = { showWidgetPicker = true @@ -209,7 +201,7 @@ fun WatchFaceSelector( ) DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.PhotoSizeSelectSmall, null) + Icon(painterResource(R.drawable.resize_24px), null) }, text = { Text(stringResource(R.string.widget_config_appwidget_resize)) }, onClick = { resizeCustomWidget = true } @@ -224,7 +216,7 @@ fun WatchFaceSelector( DropdownMenuItem( text = { Text(stringResource(R.string.widget_config_appwidget_configure)) }, leadingIcon = { - Icon(Icons.Rounded.Settings, null) + Icon(painterResource(R.drawable.settings_24px), null) }, onClick = { appWidgetHost.startAppWidgetConfigureActivityForResult( @@ -248,7 +240,7 @@ fun WatchFaceSelector( if (BuildConfig.DEBUG) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.RestartAlt, null) + Icon(painterResource(R.drawable.restart_alt_24px), null) }, text = { Text("Reset") }, onClick = { @@ -307,7 +299,7 @@ fun WatchFaceSelector( modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize), - imageVector = Icons.Rounded.Widgets, + painter = painterResource(R.drawable.widgets_20px), contentDescription = null, ) Text(stringResource(R.string.widget_pick_widget)) @@ -352,7 +344,7 @@ fun WatchFaceSelector( ) } }) { - Icon(Icons.Rounded.ChevronLeft, null) + Icon(painterResource(R.drawable.chevron_backward_24px), null) } var showStyleDropdown by remember { mutableStateOf(false) } TextButton( @@ -378,7 +370,7 @@ fun WatchFaceSelector( textAlign = TextAlign.Center, ) Icon( - Icons.Rounded.ArrowDropDown, + painterResource(R.drawable.arrow_drop_down_20px), null, modifier = Modifier .padding(ButtonDefaults.IconSpacing) @@ -417,7 +409,7 @@ fun WatchFaceSelector( ) } }) { - Icon(Icons.Rounded.ChevronRight, null) + Icon(painterResource(R.drawable.chevron_forward_24px), null) } } } @@ -599,7 +591,7 @@ private fun ResizeCustomWidget( .offset(y = 64.dp), onClick = onExit ) { - Icon(Icons.Rounded.Done, null) + Icon(painterResource(R.drawable.check_24px), null) } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/AlarmPartProvider.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/AlarmPartProvider.kt index d846e7cd3..37214c7a2 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/AlarmPartProvider.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/AlarmPartProvider.kt @@ -9,8 +9,6 @@ import android.provider.AlarmClock import android.text.format.DateUtils import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Alarm import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -18,9 +16,11 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.core.content.getSystemService import de.mm20.launcher2.ktx.tryStartActivity +import de.mm20.launcher2.ui.R import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.channels.trySendBlocking import kotlinx.coroutines.flow.* @@ -89,7 +89,7 @@ class AlarmPartProvider : PartProvider { ) ) { Icon( - imageVector = Icons.Rounded.Alarm, + painterResource(R.drawable.alarm_24px), contentDescription = null ) Text( @@ -113,7 +113,7 @@ class AlarmPartProvider : PartProvider { ) { Icon( modifier = Modifier.padding(end = 8.dp).size(32.dp), - imageVector = Icons.Rounded.Alarm, + painter = painterResource(R.drawable.alarm_24px), contentDescription = null ) Text( diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/BatteryPartProvider.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/BatteryPartProvider.kt index 8dac372f4..4590980f4 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/BatteryPartProvider.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/BatteryPartProvider.kt @@ -10,9 +10,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.BatteryChargingFull -import androidx.compose.material.icons.rounded.BatteryFull import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -21,25 +18,11 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.core.content.getSystemService -import de.mm20.launcher2.icons.Battery0Bar -import de.mm20.launcher2.icons.Battery1Bar -import de.mm20.launcher2.icons.Battery2Bar -import de.mm20.launcher2.icons.Battery3Bar -import de.mm20.launcher2.icons.Battery4Bar -import de.mm20.launcher2.icons.Battery5Bar -import de.mm20.launcher2.icons.Battery6Bar -import de.mm20.launcher2.icons.BatteryCharging0Bar -import de.mm20.launcher2.icons.BatteryCharging1Bar -import de.mm20.launcher2.icons.BatteryCharging2Bar -import de.mm20.launcher2.icons.BatteryCharging3Bar -import de.mm20.launcher2.icons.BatteryCharging4Bar -import de.mm20.launcher2.icons.BatteryCharging5Bar -import de.mm20.launcher2.icons.BatteryCharging6Bar import de.mm20.launcher2.ui.R import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.channels.trySendBlocking @@ -77,7 +60,7 @@ class BatteryPartProvider : PartProvider { verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = getBatteryIcon(it), + painter = painterResource(getBatteryIcon(it)), contentDescription = null ) Text( @@ -104,7 +87,7 @@ class BatteryPartProvider : PartProvider { ) { Icon( modifier = Modifier.padding(end = 12.dp).size(36.dp), - imageVector = getBatteryIcon(it), + painter = painterResource(getBatteryIcon(it)), contentDescription = null ) Column { @@ -127,28 +110,25 @@ class BatteryPartProvider : PartProvider { } } - private fun getBatteryIcon(batteryInfo: BatteryInfo): ImageVector { + private fun getBatteryIcon(batteryInfo: BatteryInfo): Int { return if (batteryInfo.charging) { when (batteryInfo.level) { - in 0..12 -> Icons.Rounded.BatteryCharging0Bar - in 13..25 -> Icons.Rounded.BatteryCharging1Bar - in 26..37 -> Icons.Rounded.BatteryCharging2Bar - in 38..50 -> Icons.Rounded.BatteryCharging3Bar - in 51..63 -> Icons.Rounded.BatteryCharging4Bar - in 64..75 -> Icons.Rounded.BatteryCharging5Bar - in 76..88 -> Icons.Rounded.BatteryCharging6Bar - else -> Icons.Rounded.BatteryChargingFull + in 0..25 -> R.drawable.battery_charging_20_24px + in 26..55 -> R.drawable.battery_charging_30_24px + in 56..85 -> R.drawable.battery_charging_80_24px + in 86..95 -> R.drawable.battery_charging_90_24px + else -> R.drawable.battery_charging_full_24px } } else { when (batteryInfo.level) { - in 0..12 -> Icons.Rounded.Battery0Bar - in 13..25 -> Icons.Rounded.Battery1Bar - in 26..37 -> Icons.Rounded.Battery2Bar - in 38..50 -> Icons.Rounded.Battery3Bar - in 51..63 -> Icons.Rounded.Battery4Bar - in 64..75 -> Icons.Rounded.Battery5Bar - in 76..88 -> Icons.Rounded.Battery6Bar - else -> Icons.Rounded.BatteryFull + in 0..12 -> R.drawable.battery_0_bar_24px + in 13..25 -> R.drawable.battery_1_bar_24px + in 26..37 -> R.drawable.battery_2_bar_24px + in 38..50 -> R.drawable.battery_3_bar_24px + in 51..63 -> R.drawable.battery_4_bar_24px + in 64..75 -> R.drawable.battery_5_bar_24px + in 76..88 -> R.drawable.battery_6_bar_24px + else -> R.drawable.battery_full_24px } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/MusicPartProvider.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/MusicPartProvider.kt index 379532b70..c2d10ef13 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/MusicPartProvider.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/MusicPartProvider.kt @@ -2,16 +2,18 @@ package de.mm20.launcher2.ui.launcher.widgets.clock.parts import android.app.PendingIntent import android.content.Context +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut import androidx.compose.animation.graphics.res.animatedVectorResource import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter import androidx.compose.animation.graphics.vector.AnimatedImageVector +import androidx.compose.animation.togetherWith import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.SkipNext -import androidx.compose.material.icons.rounded.SkipPrevious import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -21,7 +23,9 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.rotate import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow @@ -58,8 +62,6 @@ class MusicPartProvider : PartProvider, KoinComponent { val state by musicService.playbackState.collectAsState(PlaybackState.Stopped) val supportedActions by musicService.supportedActions.collectAsState(SupportedActions()) - val playIcon = AnimatedImageVector.animatedVectorResource(R.drawable.anim_ic_play_pause) - if (compactLayout) { Row( verticalAlignment = Alignment.CenterVertically @@ -101,20 +103,35 @@ class MusicPartProvider : PartProvider, KoinComponent { } } IconButton(onClick = { musicService.togglePause() }) { - Icon( - painter = rememberAnimatedVectorPainter( - animatedImageVector = playIcon, - atEnd = state == PlaybackState.Playing - ), contentDescription = stringResource( - if (state == PlaybackState.Playing) R.string.music_widget_pause - else R.string.music_widget_play + AnimatedContent( + state == PlaybackState.Playing, + transitionSpec = { + fadeIn().togetherWith(fadeOut()) + }, + modifier = Modifier.rotate( + animateFloatAsState( + if (state == PlaybackState.Playing) 90f else 0f + ).value ) - ) + ) { + if (it) { + Icon( + painterResource(R.drawable.pause_24px), + stringResource(R.string.music_widget_pause), + modifier = Modifier.rotate(-90f) + ) + } else { + Icon( + painterResource(R.drawable.play_arrow_24px), + stringResource(R.string.music_widget_play), + ) + } + } } if (supportedActions.skipToNext) { IconButton(onClick = { musicService.next() }) { Icon( - imageVector = Icons.Rounded.SkipNext, + painterResource(R.drawable.skip_next_24px), contentDescription = stringResource(R.string.music_widget_next_track) ) } @@ -164,26 +181,41 @@ class MusicPartProvider : PartProvider, KoinComponent { if (supportedActions.skipToPrevious) { IconButton(onClick = { musicService.previous() }) { Icon( - imageVector = Icons.Rounded.SkipPrevious, + painterResource(R.drawable.skip_previous_24px), contentDescription = stringResource(R.string.music_widget_previous_track) ) } } IconButton(onClick = { musicService.togglePause() }) { - Icon( - painter = rememberAnimatedVectorPainter( - animatedImageVector = playIcon, - atEnd = state == PlaybackState.Playing - ), contentDescription = stringResource( - if (state == PlaybackState.Playing) R.string.music_widget_pause - else R.string.music_widget_play + AnimatedContent( + state == PlaybackState.Playing, + transitionSpec = { + fadeIn().togetherWith(fadeOut()) + }, + modifier = Modifier.rotate( + animateFloatAsState( + if (state == PlaybackState.Playing) 90f else 0f + ).value ) - ) + ) { + if (it) { + Icon( + painterResource(R.drawable.pause_24px), + stringResource(R.string.music_widget_pause), + modifier = Modifier.rotate(-90f) + ) + } else { + Icon( + painterResource(R.drawable.play_arrow_24px), + stringResource(R.string.music_widget_play), + ) + } + } } if (supportedActions.skipToPrevious) { IconButton(onClick = { musicService.next() }) { Icon( - imageVector = Icons.Rounded.SkipNext, + painterResource(R.drawable.skip_next_24px), contentDescription = stringResource(R.string.music_widget_next_track) ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/external/AppWidget.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/external/AppWidget.kt index 4097f1fb9..21569b301 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/external/AppWidget.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/external/AppWidget.kt @@ -6,10 +6,7 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredWidth import androidx.compose.foundation.layout.width -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Warning import androidx.compose.material3.Button import androidx.compose.material3.OutlinedButton import androidx.compose.material3.Text @@ -61,7 +58,7 @@ fun AppWidget( Banner( modifier = Modifier.padding(16.dp), text = stringResource(R.string.app_widget_loading_failed), - icon = Icons.Rounded.Warning, + icon = R.drawable.warning_24px, secondaryAction = { OutlinedButton(onClick = onWidgetRemove) { Text(stringResource(R.string.widget_action_remove)) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/favorites/FavoritesWidget.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/favorites/FavoritesWidget.kt index ea4c50140..f0810b8c2 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/favorites/FavoritesWidget.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/favorites/FavoritesWidget.kt @@ -1,16 +1,8 @@ package de.mm20.launcher2.ui.launcher.widgets.favorites -import androidx.compose.animation.AnimatedContent -import androidx.compose.animation.Crossfade -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.compose.animation.togetherWith import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.Tag import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -52,7 +44,7 @@ fun FavoritesWidget(widget: FavoritesWidget) { text = stringResource( if (selectedTag == null) R.string.favorites_empty else R.string.favorites_empty_tag ), - icon = if (selectedTag == null) Icons.Rounded.Star else Icons.Rounded.Tag, + icon = if (selectedTag == null) R.drawable.star_24px else R.drawable.tag_24px, ) } if (pinnedTags.isNotEmpty() || favoritesEditButton) { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/music/MusicWidget.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/music/MusicWidget.kt index 868807f7a..43eac73df 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/music/MusicWidget.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/music/MusicWidget.kt @@ -6,6 +6,7 @@ import android.media.session.PlaybackState.CustomAction import androidx.appcompat.app.AppCompatActivity import androidx.compose.animation.AnimatedContent import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut @@ -35,12 +36,6 @@ import androidx.compose.foundation.layout.requiredHeightIn import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Audiotrack -import androidx.compose.material.icons.rounded.MoreVert -import androidx.compose.material.icons.rounded.MusicNote -import androidx.compose.material.icons.rounded.SkipNext -import androidx.compose.material.icons.rounded.SkipPrevious import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.FilledTonalIconButton @@ -60,12 +55,14 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.rotate import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.boundsInWindow import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics @@ -309,7 +306,7 @@ fun MusicWidget(widget: MusicWidget) { } } else { Icon( - imageVector = Icons.Rounded.MusicNote, + painterResource(R.drawable.music_note_48px), contentDescription = null, tint = MaterialTheme.colorScheme.onSecondaryContainer, modifier = Modifier.size(48.dp) @@ -336,7 +333,7 @@ fun MusicWidget(widget: MusicWidget) { viewModel.skipPrevious() }) { Icon( - imageVector = Icons.Rounded.SkipPrevious, + painter = painterResource(R.drawable.skip_previous_24px), stringResource(R.string.music_widget_previous_track) ) } @@ -356,16 +353,30 @@ fun MusicWidget(widget: MusicWidget) { ), onClick = { viewModel.togglePause() }, ) { - Icon( - painter = rememberAnimatedVectorPainter( - playPauseIcon, - atEnd = playbackState == PlaybackState.Playing - ), - contentDescription = stringResource( - if (playbackState == PlaybackState.Playing) R.string.music_widget_pause - else R.string.music_widget_play + AnimatedContent( + playbackState == PlaybackState.Playing, + transitionSpec = { + fadeIn().togetherWith(fadeOut()) + }, + modifier = Modifier.rotate( + animateFloatAsState( + if (playbackState == PlaybackState.Playing) 90f else 0f + ).value ) - ) + ) { + if (it) { + Icon( + painterResource(R.drawable.pause_24px), + stringResource(R.string.music_widget_pause), + modifier = Modifier.rotate(-90f) + ) + } else { + Icon( + painterResource(R.drawable.play_arrow_24px), + stringResource(R.string.music_widget_play), + ) + } + } } } if (supportedActions.skipToNext) { @@ -376,7 +387,7 @@ fun MusicWidget(widget: MusicWidget) { viewModel.skipNext() }) { Icon( - imageVector = Icons.Rounded.SkipNext, + painter = painterResource(R.drawable.skip_next_24px), stringResource(R.string.music_widget_next_track) ) } @@ -423,7 +434,10 @@ fun CustomActions( tooltipText = stringResource(R.string.action_more_actions) ) { IconButton(onClick = { showOverflowMenu = true }) { - Icon(imageVector = Icons.Rounded.MoreVert, contentDescription = null) + Icon( + painterResource(R.drawable.more_vert_24px), + contentDescription = null + ) } } DropdownMenu( @@ -452,7 +466,7 @@ fun CustomActions( } } else if (slots == actions.customActions.size) { val action = actions.customActions.last() - Tooltip ( + Tooltip( tooltipText = action.name.toString() ) { IconButton( @@ -516,7 +530,7 @@ fun NoData() { verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = Icons.Rounded.Audiotrack, + painter = painterResource(R.drawable.music_note_24px), contentDescription = "", modifier = Modifier .padding(24.dp) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/notes/NotesWidget.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/notes/NotesWidget.kt index fa31f931a..b226da160 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/notes/NotesWidget.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/notes/NotesWidget.kt @@ -21,20 +21,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.CheckCircle -import androidx.compose.material.icons.rounded.CheckCircleOutline -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.ErrorOutline -import androidx.compose.material.icons.rounded.ExpandLess -import androidx.compose.material.icons.rounded.ExpandMore -import androidx.compose.material.icons.rounded.Link -import androidx.compose.material.icons.rounded.LinkOff -import androidx.compose.material.icons.rounded.MoreVert -import androidx.compose.material.icons.rounded.RadioButtonUnchecked -import androidx.compose.material.icons.rounded.SaveAlt -import androidx.compose.material.icons.rounded.Share import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.DropdownMenu @@ -60,6 +46,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLifecycleOwner +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle @@ -128,7 +115,7 @@ fun NotesWidget( Banner( modifier = Modifier.padding(16.dp), text = stringResource(R.string.note_widget_conflict), - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_24px, primaryAction = { Button(onClick = { showConflictResolveSheet = true }) { Text(stringResource(R.string.note_widget_conflict_action_resolve)) @@ -193,8 +180,10 @@ fun NotesWidget( }, ) { Icon( - if (widget.config.linkedFile == null) Icons.Rounded.Link - else Icons.Rounded.LinkOff, + painterResource( + if (widget.config.linkedFile == null) R.drawable.link_24px + else R.drawable.link_off_24px, + ), stringResource( if (widget.config.linkedFile == null) R.string.note_widget_link_file else R.string.note_widget_action_unlink_file @@ -211,7 +200,7 @@ fun NotesWidget( viewModel.dismissNote() }, ) { - Icon(Icons.Rounded.Delete, null) + Icon(painterResource(R.drawable.delete_24px), null) } } } @@ -238,7 +227,7 @@ fun NotesWidget( modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize), - imageVector = Icons.Rounded.ErrorOutline, + painter = painterResource(R.drawable.error_20px), contentDescription = null, ) Text(stringResource(R.string.note_widget_file_write_error)) @@ -254,7 +243,7 @@ fun NotesWidget( modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize), - imageVector = Icons.Rounded.ErrorOutline, + painter = painterResource(R.drawable.error_20px), contentDescription = null, ) Text(stringResource(R.string.note_widget_file_read_error)) @@ -266,14 +255,14 @@ fun NotesWidget( tooltipText = stringResource(R.string.action_more_actions) ) { IconButton(onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, stringResource(R.string.action_more_actions)) + Icon(painterResource(R.drawable.more_vert_24px), stringResource(R.string.action_more_actions)) } } DropdownMenu(expanded = showMenu, onDismissRequest = { showMenu = false }) { DropdownMenuItem( text = { Text(stringResource(R.string.notes_widget_action_new)) }, leadingIcon = { - Icon(Icons.Rounded.Add, null) + Icon(painterResource(R.drawable.add_24px), null) }, onClick = { val newWidget = NotesWidget( @@ -286,7 +275,7 @@ fun NotesWidget( DropdownMenuItem( text = { Text(stringResource(R.string.menu_share)) }, leadingIcon = { - Icon(Icons.Rounded.Share, null) + Icon(painterResource(R.drawable.share_24px), null) }, onClick = { Intent(Intent.ACTION_SEND).apply { @@ -300,7 +289,7 @@ fun NotesWidget( DropdownMenuItem( text = { Text(stringResource(R.string.notes_widget_action_save)) }, leadingIcon = { - Icon(Icons.Rounded.SaveAlt, null) + Icon(painterResource(R.drawable.file_save_24px), null) }, onClick = { val fileName = getDefaultNoteFileName(context) @@ -312,7 +301,7 @@ fun NotesWidget( DropdownMenuItem( text = { Text(stringResource(R.string.note_widget_link_file)) }, leadingIcon = { - Icon(Icons.Rounded.Link, null) + Icon(painterResource(R.drawable.link_24px), null) }, onClick = { linkFileLauncher.launch(getDefaultNoteFileName(context)) @@ -323,7 +312,7 @@ fun NotesWidget( DropdownMenuItem( text = { Text(stringResource(R.string.note_widget_action_unlink_file)) }, leadingIcon = { - Icon(Icons.Rounded.LinkOff, null) + Icon(painterResource(R.drawable.link_off_24px), null) }, onClick = { viewModel.unlinkFile(context) @@ -334,7 +323,7 @@ fun NotesWidget( DropdownMenuItem( text = { Text(stringResource(R.string.notes_widget_action_dismiss)) }, leadingIcon = { - Icon(Icons.Rounded.Delete, null) + Icon(painterResource(R.drawable.delete_24px), null) }, onClick = { val wasLast = isLastWidget != false @@ -446,7 +435,7 @@ fun NoteWidgetConflictResolveSheet( ), ) { Icon( - Icons.Rounded.LinkOff, + painterResource(R.drawable.link_off_24px), null, modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) @@ -460,7 +449,7 @@ fun NoteWidgetConflictResolveSheet( modifier = Modifier.fillMaxWidth() ) { Icon( - Icons.Rounded.CheckCircleOutline, + painterResource(R.drawable.check_circle_20px), null, modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) @@ -515,10 +504,7 @@ fun SelectableNoteContent( onClick = onSelect ) { Icon( - if (selected) - Icons.Rounded.CheckCircle - else - Icons.Rounded.RadioButtonUnchecked, + painterResource(if (selected) R.drawable.check_circle_24px_filled else R.drawable.circle_24px), tint = if (selected) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onSurfaceVariant, contentDescription = null ) @@ -528,10 +514,7 @@ fun SelectableNoteContent( onClick = { expanded = !expanded } ) { Icon( - if (expanded) - Icons.Rounded.ExpandLess - else - Icons.Rounded.ExpandMore, + painterResource(if (expanded) R.drawable.keyboard_arrow_up_24px else R.drawable.keyboard_arrow_down_24px), contentDescription = null ) } @@ -572,7 +555,7 @@ fun NoteReadWriteErrorSheet( .padding(horizontal = 24.dp, vertical = 12.dp), verticalAlignment = Alignment.CenterVertically, ) { - Icon(Icons.Rounded.Link, null) + Icon(painterResource(R.drawable.link_24px), null) Text( stringResource(R.string.note_widget_action_relink_file), modifier = Modifier.padding(start = 16.dp), @@ -589,7 +572,7 @@ fun NoteReadWriteErrorSheet( .padding(horizontal = 24.dp, vertical = 12.dp), verticalAlignment = Alignment.CenterVertically, ) { - Icon(Icons.Rounded.LinkOff, null) + Icon(painterResource(R.drawable.link_off_24px), null) Text( stringResource(R.string.note_widget_action_unlink_file), modifier = Modifier.padding(start = 16.dp), diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/weather/WeatherWidget.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/weather/WeatherWidget.kt index e47b0ab72..64827d623 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/weather/WeatherWidget.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/weather/WeatherWidget.kt @@ -33,14 +33,6 @@ import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CornerSize -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.OpenInNew -import androidx.compose.material.icons.rounded.Air -import androidx.compose.material.icons.rounded.ErrorOutline -import androidx.compose.material.icons.rounded.LightMode -import androidx.compose.material.icons.rounded.LocationCity -import androidx.compose.material.icons.rounded.MyLocation -import androidx.compose.material.icons.rounded.North import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Icon @@ -64,6 +56,7 @@ import androidx.compose.ui.geometry.Rect import androidx.compose.ui.layout.onPlaced import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics @@ -76,8 +69,6 @@ import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import de.mm20.launcher2.icons.HumidityPercentage -import de.mm20.launcher2.icons.Rain import de.mm20.launcher2.ktx.tryStartActivity import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.common.WeatherLocationSearchDialog @@ -129,7 +120,7 @@ fun WeatherWidget(widget: WeatherWidget) { .fillMaxWidth() .padding(16.dp), text = stringResource(R.string.weather_widget_no_provider), - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_24px, primaryAction = { Button( onClick = { @@ -138,7 +129,7 @@ fun WeatherWidget(widget: WeatherWidget) { contentPadding = ButtonDefaults.ButtonWithIconContentPadding, ) { Icon( - Icons.AutoMirrored.Rounded.OpenInNew, + painterResource(R.drawable.open_in_new_24px), null, modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) @@ -271,20 +262,12 @@ fun CurrentWeather(forecast: Forecast, imperialUnits: Boolean) { verticalAlignment = Alignment.Top, horizontalArrangement = Arrangement.SpaceBetween, ) { - val latLonRegexp = - remember { Regex("^\\d{1,2}°\\d{1,2}'[NS] \\d{1,3}°\\d{1,2}'[EW]\$") } - val isLatLon = latLonRegexp.matches(forecast.location) Row( modifier = Modifier .weight(1f) .padding(top = 16.dp, start = 16.dp, end = 16.dp), verticalAlignment = Alignment.CenterVertically, ) { - Icon( - imageVector = if (isLatLon) Icons.Rounded.MyLocation else Icons.Rounded.LocationCity, - contentDescription = null - ) - Spacer(modifier = Modifier.padding(4.dp)) Text( text = forecast.location, style = MaterialTheme.typography.titleMedium @@ -363,7 +346,7 @@ fun CurrentWeather(forecast: Forecast, imperialUnits: Boolean) { verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = Icons.Rounded.HumidityPercentage, + painter = painterResource(R.drawable.humidity_percentage_20px), modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.secondary, contentDescription = null @@ -388,7 +371,7 @@ fun CurrentWeather(forecast: Forecast, imperialUnits: Boolean) { // windDirection is "fromDirection"; Wind (arrow) blows into opposite direction val angle by animateFloatAsState(forecast.windDirection!!.toFloat() + 180f) Icon( - imageVector = Icons.Rounded.North, + painter = painterResource(R.drawable.north_20px), modifier = Modifier .rotate(angle) .size(20.dp), @@ -397,7 +380,7 @@ fun CurrentWeather(forecast: Forecast, imperialUnits: Boolean) { ) } else { Icon( - imageVector = Icons.Rounded.Air, + painter = painterResource(R.drawable.air_20px), contentDescription = null, modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.secondary, @@ -423,7 +406,7 @@ fun CurrentWeather(forecast: Forecast, imperialUnits: Boolean) { verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = Icons.Rounded.Rain, + painter = painterResource(R.drawable.rainy_20px), modifier = Modifier.size(20.dp), contentDescription = null, tint = MaterialTheme.colorScheme.secondary, @@ -693,7 +676,7 @@ fun NoData() { verticalAlignment = Alignment.CenterVertically ) { Icon( - imageVector = Icons.Rounded.LightMode, + painter = painterResource(R.drawable.light_mode_24px), contentDescription = "", modifier = Modifier .padding(24.dp) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/SettingsActivity.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/SettingsActivity.kt index 85d0a8bab..596299188 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/SettingsActivity.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/SettingsActivity.kt @@ -1,7 +1,6 @@ package de.mm20.launcher2.ui.settings import android.content.Intent -import android.net.Uri import android.os.Bundle import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent @@ -48,7 +47,6 @@ import de.mm20.launcher2.ui.settings.breezyweather.BreezyWeatherSettingsScreen import de.mm20.launcher2.ui.settings.buildinfo.BuildInfoSettingsScreen import de.mm20.launcher2.ui.settings.calendarsearch.CalendarProviderSettingsScreen import de.mm20.launcher2.ui.settings.calendarsearch.CalendarSearchSettingsScreen -import de.mm20.launcher2.ui.settings.cards.CardsSettingsScreen import de.mm20.launcher2.ui.settings.colorscheme.ColorSchemeSettingsScreen import de.mm20.launcher2.ui.settings.colorscheme.ColorSchemesSettingsScreen import de.mm20.launcher2.ui.settings.contacts.ContactsSettingsScreen @@ -212,9 +210,6 @@ class SettingsActivity : BaseActivity() { ?: return@composable TypographySettingsScreen(UUID.fromString(route.id)) } - composable("settings/appearance/cards") { - CardsSettingsScreen() - } composable("settings/search") { SearchSettingsScreen() } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/about/AboutSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/about/AboutSettingsScreen.kt index 546a8b72b..92e54a68f 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/about/AboutSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/about/AboutSettingsScreen.kt @@ -2,10 +2,12 @@ package de.mm20.launcher2.ui.settings.about import android.content.Intent import android.net.Uri -import android.widget.Toast -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Info -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.lifecycle.viewmodel.compose.viewModel @@ -14,9 +16,6 @@ import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.preferences.Preference import de.mm20.launcher2.ui.component.preferences.PreferenceCategory import de.mm20.launcher2.ui.component.preferences.PreferenceScreen -import de.mm20.launcher2.icons.Fdroid -import de.mm20.launcher2.icons.GitHub -import de.mm20.launcher2.icons.Telegram import de.mm20.launcher2.ui.locals.LocalNavController import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -62,7 +61,7 @@ fun AboutSettingsScreen() { item { PreferenceCategory(title = stringResource(id = R.string.preference_category_license)) { Preference( - icon = Icons.Rounded.Info, + icon = R.drawable.info_24px, title = stringResource(id = R.string.preference_about_license), summary = stringResource(id = R.string.preference_about_license_summary), onClick = { @@ -74,7 +73,7 @@ fun AboutSettingsScreen() { item { PreferenceCategory(title = stringResource(id = R.string.preference_category_links)) { Preference( - icon = Icons.Rounded.GitHub, + icon = R.drawable.github, title = "GitHub", summary = "github.com/MM2-0/Kvaesitso", onClick = { @@ -84,7 +83,7 @@ fun AboutSettingsScreen() { } ) Preference( - icon = Icons.Rounded.Telegram, + icon = R.drawable.telegram, title = stringResource(id = R.string.preference_about_telegram), summary = "t.me/Kvaesitso", onClick = { @@ -94,7 +93,7 @@ fun AboutSettingsScreen() { } ) Preference( - icon = Icons.Rounded.Fdroid, + icon = R.drawable.fdroid, title = stringResource(id = R.string.preference_about_fdroid), summary = "fdroid.mm20.de", onClick = { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/AppearanceSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/AppearanceSettingsScreen.kt index 0284c3800..d6664ec85 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/AppearanceSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/AppearanceSettingsScreen.kt @@ -2,35 +2,22 @@ package de.mm20.launcher2.ui.settings.appearance import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ArrowCircleDown -import androidx.compose.material.icons.rounded.ArrowCircleUp -import androidx.compose.material.icons.rounded.CropSquare -import androidx.compose.material.icons.rounded.Opacity -import androidx.compose.material.icons.rounded.Palette -import androidx.compose.material.icons.rounded.TextFields -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue -import androidx.compose.runtime.remember -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import de.mm20.launcher2.ktx.isAtLeastApiLevel import de.mm20.launcher2.preferences.ColorScheme -import de.mm20.launcher2.preferences.Font import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.preferences.ListPreference import de.mm20.launcher2.ui.component.preferences.Preference import de.mm20.launcher2.ui.component.preferences.PreferenceCategory import de.mm20.launcher2.ui.component.preferences.PreferenceScreen -import de.mm20.launcher2.ui.component.preferences.value import de.mm20.launcher2.ui.locals.LocalNavController import de.mm20.launcher2.ui.settings.transparencies.TransparencySchemesSettingsRoute import de.mm20.launcher2.ui.settings.typography.TypographiesSettingsRoute -import de.mm20.launcher2.ui.theme.getTypography @Composable fun AppearanceSettingsScreen() { @@ -76,7 +63,7 @@ fun AppearanceSettingsScreen() { onClick = { navController?.navigate("settings/appearance/colors") }, - icon = Icons.Rounded.Palette, + icon = R.drawable.palette_24px, ) Preference( title = stringResource(id = R.string.preference_screen_typography), @@ -84,7 +71,7 @@ fun AppearanceSettingsScreen() { onClick = { navController?.navigate(TypographiesSettingsRoute) }, - icon = Icons.Rounded.TextFields, + icon = R.drawable.text_fields_24px, ) Preference( title = stringResource(id = R.string.preference_screen_shapes), @@ -92,7 +79,7 @@ fun AppearanceSettingsScreen() { onClick = { navController?.navigate("settings/appearance/shapes") }, - icon = Icons.Rounded.CropSquare, + icon = R.drawable.crop_square_24px, ) Preference( title = stringResource(id = R.string.preference_screen_transparencies), @@ -100,7 +87,7 @@ fun AppearanceSettingsScreen() { onClick = { navController?.navigate(TransparencySchemesSettingsRoute) }, - icon = Icons.Rounded.Opacity, + icon = R.drawable.opacity_24px, ) } } @@ -109,14 +96,14 @@ fun AppearanceSettingsScreen() { PreferenceCategory { Preference( title = stringResource(R.string.theme_import_title), - icon = Icons.Rounded.ArrowCircleDown, + icon = R.drawable.arrow_circle_down_24px, onClick = { importLauncher.launch(arrayOf("*/*")) } ) Preference( title = stringResource(R.string.theme_export_title), - icon = Icons.Rounded.ArrowCircleUp, + icon = R.drawable.arrow_circle_up_24px, onClick = { navController?.navigate("settings/appearance/export") } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/ExportThemeSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/ExportThemeSettingsScreen.kt index 13b036da5..d41c0fac2 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/ExportThemeSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/ExportThemeSettingsScreen.kt @@ -9,14 +9,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.CropSquare -import androidx.compose.material.icons.rounded.KeyboardArrowDown -import androidx.compose.material.icons.rounded.Opacity -import androidx.compose.material.icons.rounded.Palette -import androidx.compose.material.icons.rounded.Save -import androidx.compose.material.icons.rounded.Share -import androidx.compose.material.icons.rounded.TextFields import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -35,6 +27,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel @@ -61,9 +54,10 @@ fun ExportThemeSettingsScreen() { } } - val fileChooserLauncher = rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument("application/vnd.de.mm20.launcher2.theme")) { - if (it != null) viewModel.exportTheme(context, it) - } + val fileChooserLauncher = + rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument("application/vnd.de.mm20.launcher2.theme")) { + if (it != null) viewModel.exportTheme(context, it) + } LaunchedEffect(Unit) { viewModel.init() @@ -95,7 +89,7 @@ fun ExportThemeSettingsScreen() { PreferenceCategory { ListPreference( stringResource(R.string.preference_screen_colors), - icon = Icons.Rounded.Palette, + icon = R.drawable.palette_24px, value = viewModel.colorScheme, items = listOf(stringResource(R.string.no_selection) to null) + colorSchemes.map { it.name to it @@ -106,7 +100,7 @@ fun ExportThemeSettingsScreen() { ) ListPreference( stringResource(R.string.preference_screen_typography), - icon = Icons.Rounded.TextFields, + icon = R.drawable.text_fields_24px, value = viewModel.typographyScheme, items = listOf(stringResource(R.string.no_selection) to null) + typographyThemes.map { it.name to it @@ -117,7 +111,7 @@ fun ExportThemeSettingsScreen() { ) ListPreference( stringResource(R.string.preference_screen_shapes), - icon = Icons.Rounded.CropSquare, + icon = R.drawable.crop_square_24px, value = viewModel.shapeScheme, items = listOf(stringResource(R.string.no_selection) to null) + shapeThemes.map { it.name to it @@ -128,7 +122,7 @@ fun ExportThemeSettingsScreen() { ) ListPreference( stringResource(R.string.preference_screen_transparencies), - icon = Icons.Rounded.Opacity, + icon = R.drawable.opacity_24px, value = viewModel.transparencyScheme, items = listOf(stringResource(R.string.no_selection) to null) + transparencySchemes.map { it.name to it @@ -160,7 +154,7 @@ fun ExportThemeSettingsScreen() { } ) { Icon( - Icons.Rounded.Share, + painterResource(R.drawable.share_20px), null, modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) @@ -179,7 +173,7 @@ fun ExportThemeSettingsScreen() { label = "Trailing Icon Rotation" ) Icon( - Icons.Rounded.KeyboardArrowDown, + painterResource(R.drawable.keyboard_arrow_down_24px), modifier = Modifier .size(SplitButtonDefaults.TrailingIconSize) @@ -189,14 +183,21 @@ fun ExportThemeSettingsScreen() { contentDescription = null ) - DropdownMenu(expanded = showDropdown, onDismissRequest = { showDropdown = false }) { + DropdownMenu( + expanded = showDropdown, + onDismissRequest = { showDropdown = false }) { DropdownMenuItem( text = { Text(stringResource(R.string.save_as_file)) }, onClick = { fileChooserLauncher.launch("${viewModel.themeName}.kvtheme") showDropdown = false }, - leadingIcon = { Icon(Icons.Rounded.Save, contentDescription = null) } + leadingIcon = { + Icon( + painterResource(R.drawable.save_24px), + contentDescription = null + ) + } ) } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/ImportThemeSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/ImportThemeSettingsScreen.kt index a955c8e54..4a4b4308a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/ImportThemeSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/appearance/ImportThemeSettingsScreen.kt @@ -11,18 +11,6 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ChangeCircle -import androidx.compose.material.icons.rounded.CropSquare -import androidx.compose.material.icons.rounded.DarkMode -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.ErrorOutline -import androidx.compose.material.icons.rounded.LightMode -import androidx.compose.material.icons.rounded.MoreVert -import androidx.compose.material.icons.rounded.Opacity -import androidx.compose.material.icons.rounded.Palette -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.TextFields import androidx.compose.material3.Button import androidx.compose.material3.FilledTonalIconButton import androidx.compose.material3.FilterChip @@ -49,8 +37,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.innerShadow import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.Shadow import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -103,7 +91,7 @@ fun ImportThemeSettingsScreen( PreferenceCategory { Banner( text = stringResource(R.string.import_theme_error), - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_24px, modifier = Modifier .background(MaterialTheme.colorScheme.surface) .padding(16.dp), @@ -126,9 +114,12 @@ fun ImportThemeSettingsScreen( if (darkModePreview) darkColorSchemeOf(it) else lightColorSchemeOf(it) } ?: MaterialTheme.colorScheme, shapes = themeBundle.shapes?.let { shapesOf(it) } ?: MaterialTheme.shapes, - typography = themeBundle.typography?.let { typographyOf(it) } ?: MaterialTheme.typography, + typography = themeBundle.typography?.let { typographyOf(it) } + ?: MaterialTheme.typography, ) { - val transparencies = themeBundle.transparencies?.let { transparencySchemeOf(it) } ?: MaterialTheme.transparency + val transparencies = + themeBundle.transparencies?.let { transparencySchemeOf(it) } + ?: MaterialTheme.transparency CompositionLocalProvider( LocalTransparencyScheme provides transparencies ) { @@ -143,13 +134,13 @@ fun ImportThemeSettingsScreen( PreferenceCategory(stringResource(R.string.import_theme_contents)) { if (themeBundle.colors != null) { Preference( - icon = Icons.Rounded.Palette, + icon = R.drawable.palette_24px, title = stringResource(R.string.preference_screen_colors), summary = themeBundle.colors?.name, controls = if (viewModel.colorsExists) { { Icon( - Icons.Rounded.ChangeCircle, + painterResource(R.drawable.change_circle_24px), stringResource(R.string.import_theme_exists) ) } @@ -158,13 +149,13 @@ fun ImportThemeSettingsScreen( } if (themeBundle.typography != null) { Preference( - icon = Icons.Rounded.TextFields, + icon = R.drawable.text_fields_24px, title = stringResource(R.string.preference_screen_typography), summary = themeBundle.typography?.name, controls = if (viewModel.typographyExists) { { Icon( - Icons.Rounded.ChangeCircle, + painterResource(R.drawable.change_circle_24px), stringResource(R.string.import_theme_exists) ) } @@ -173,13 +164,13 @@ fun ImportThemeSettingsScreen( } if (themeBundle.shapes != null) { Preference( - icon = Icons.Rounded.CropSquare, + icon = R.drawable.crop_square_24px, title = stringResource(R.string.preference_screen_shapes), summary = themeBundle.shapes?.name, controls = if (viewModel.shapesExists) { { Icon( - Icons.Rounded.ChangeCircle, + painterResource(R.drawable.change_circle_24px), stringResource(R.string.import_theme_exists) ) } @@ -187,20 +178,20 @@ fun ImportThemeSettingsScreen( ) } if (themeBundle.transparencies != null) { - Preference( - icon = Icons.Rounded.Opacity, - title = stringResource(R.string.preference_screen_transparencies), - summary = themeBundle.transparencies?.name, - controls = if (viewModel.transparenciesExists) { - { - Icon( - Icons.Rounded.ChangeCircle, - stringResource(R.string.import_theme_exists) - ) - } - } else null, - ) - } + Preference( + icon = R.drawable.opacity_24px, + title = stringResource(R.string.preference_screen_transparencies), + summary = themeBundle.transparencies?.name, + controls = if (viewModel.transparenciesExists) { + { + Icon( + painterResource(R.drawable.change_circle_24px), + stringResource(R.string.import_theme_exists) + ) + } + } else null, + ) + } if (viewModel.colorsExists || viewModel.shapesExists) { Banner( modifier = Modifier @@ -209,7 +200,7 @@ fun ImportThemeSettingsScreen( MaterialTheme.shapes.extraSmall ) .padding(16.dp), - icon = Icons.Rounded.ChangeCircle, + icon = R.drawable.change_circle_24px, text = stringResource(R.string.import_theme_exists) ) } @@ -284,7 +275,7 @@ private fun ThemePreview( readOnly = true, menu = { IconButton(onClick = {}) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } } ) @@ -341,7 +332,7 @@ private fun ThemePreview( label = { Text(previewTexts.Short1) }, leadingIcon = { Icon( - Icons.Rounded.Star, null, + painterResource(R.drawable.star_20px), null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) }, @@ -352,7 +343,7 @@ private fun ThemePreview( label = { Text(previewTexts.Short2) }, leadingIcon = { Icon( - Icons.Rounded.Star, null, + painterResource(R.drawable.star_20px), null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) }, @@ -360,7 +351,7 @@ private fun ThemePreview( ) Spacer(modifier = Modifier.weight(1f)) FilledTonalIconButton(onClick = {}) { - Icon(Icons.Rounded.Edit, null) + Icon(painterResource(R.drawable.edit_24px), null) } } HorizontalDivider( @@ -386,14 +377,14 @@ private fun ThemePreview( selected = !darkMode, onClick = { onDarkModeChanged(false) } ) { - Icon(Icons.Rounded.LightMode, null) + Icon(painterResource(R.drawable.light_mode_24px), null) } SegmentedButton( shape = SegmentedButtonDefaults.itemShape(index = 1, count = 2), selected = darkMode, onClick = { onDarkModeChanged(true) } ) { - Icon(Icons.Rounded.DarkMode, null) + Icon(painterResource(R.drawable.dark_mode_24px), null) } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/backup/CreateBackupSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/backup/CreateBackupSheet.kt index 02ecd98d9..69f7a0b1b 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/backup/CreateBackupSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/backup/CreateBackupSheet.kt @@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.CheckCircleOutline import androidx.compose.material3.CircularProgressIndicator import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -65,7 +63,7 @@ fun CreateBackupSheet( else { LargeMessage( modifier = Modifier.aspectRatio(1f), - icon = Icons.Rounded.CheckCircleOutline, + icon = R.drawable.check_circle_48px, text = stringResource( id = R.string.backup_complete ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/breezyweather/BreezyWeatherSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/breezyweather/BreezyWeatherSettingsScreen.kt index 9826b90ce..7799a9ee9 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/breezyweather/BreezyWeatherSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/breezyweather/BreezyWeatherSettingsScreen.kt @@ -4,9 +4,6 @@ import androidx.activity.compose.LocalActivity import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.background import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.OpenInNew -import androidx.compose.material.icons.rounded.Info import androidx.compose.material3.Button import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -42,7 +39,7 @@ fun BreezyWeatherSettingsScreen() { R.string.preference_breezyweather_integration_description, stringResource(R.string.app_name), ), - icon = Icons.Rounded.Info, + icon = R.drawable.info_24px, modifier = Modifier.background(MaterialTheme.colorScheme.surface).padding(16.dp), primaryAction = { Button(onClick = { @@ -63,7 +60,7 @@ fun BreezyWeatherSettingsScreen() { R.string.preference_breezyweather_integration_instructions, stringResource(R.string.app_name), ), - icon = Icons.Rounded.Info, + icon = R.drawable.info_24px, modifier = Modifier.background(MaterialTheme.colorScheme.surface).padding(16.dp), ) Preference( @@ -79,7 +76,7 @@ fun BreezyWeatherSettingsScreen() { ) Preference( title = stringResource(R.string.preference_launch_breezyweather_app), - icon = Icons.AutoMirrored.Rounded.OpenInNew, + icon = R.drawable.open_in_new_24px, onClick = { viewModel.launchBreezyApp(activity) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/calendarsearch/CalendarSearchSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/calendarsearch/CalendarSearchSettingsScreen.kt index e7c474bde..40db8dfbb 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/calendarsearch/CalendarSearchSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/calendarsearch/CalendarSearchSettingsScreen.kt @@ -2,17 +2,11 @@ package de.mm20.launcher2.ui.settings.calendarsearch import android.app.PendingIntent import androidx.appcompat.app.AppCompatActivity -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ErrorOutline import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue -import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel @@ -20,7 +14,6 @@ import de.mm20.launcher2.crashreporter.CrashReporter import de.mm20.launcher2.ktx.sendWithBackgroundPermission import de.mm20.launcher2.plugin.PluginState import de.mm20.launcher2.ui.R -import de.mm20.launcher2.ui.component.MissingPermissionBanner import de.mm20.launcher2.ui.component.preferences.GuardedPreference import de.mm20.launcher2.ui.component.preferences.PreferenceCategory import de.mm20.launcher2.ui.component.preferences.PreferenceScreen @@ -102,7 +95,7 @@ fun CalendarSearchSettingsScreen() { }, description = (state as? PluginState.SetupRequired)?.message ?: stringResource(id = R.string.plugin_state_setup_required), - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_24px, unlockLabel = stringResource(id = R.string.plugin_action_setup), ) { PreferenceWithSwitch( 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 deleted file mode 100644 index 4695b2719..000000000 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/cards/CardsSettingsScreen.kt +++ /dev/null @@ -1,64 +0,0 @@ -package de.mm20.launcher2.ui.settings.cards - -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.* -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.getValue -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.SurfaceShape -import de.mm20.launcher2.preferences.ui.CardStyle -import de.mm20.launcher2.ui.R -import de.mm20.launcher2.ui.component.LauncherCard -import de.mm20.launcher2.ui.component.preferences.ListPreference -import de.mm20.launcher2.ui.component.preferences.PreferenceCategory -import de.mm20.launcher2.ui.component.preferences.PreferenceScreen -import de.mm20.launcher2.ui.component.preferences.SliderPreference - -@Composable -fun CardsSettingsScreen() { - val viewModel: CardsSettingsScreenVM = viewModel() - - val cardStyle by viewModel.cardStyle.collectAsState(CardStyle()) - - PreferenceScreen(title = stringResource(R.string.preference_cards)) { - item { - Box( - modifier = Modifier - .fillMaxWidth() - .background(MaterialTheme.colorScheme.secondary) - ) { - LauncherCard( - modifier = Modifier - .height(200.dp) - .fillMaxWidth() - .padding(16.dp) - ) - } - } - item { - PreferenceCategory { - SliderPreference( - title = stringResource(R.string.preference_cards_stroke_width), - icon = Icons.Rounded.LineWeight, - value = cardStyle.borderWidth, - min = 0, - max = 8, - step = 1, - onValueChanged = { - viewModel.setBorderWidth(it) - } - ) - } - } - } -} \ No newline at end of file diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/cards/CardsSettingsScreenVM.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/cards/CardsSettingsScreenVM.kt deleted file mode 100644 index 243674e7a..000000000 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/cards/CardsSettingsScreenVM.kt +++ /dev/null @@ -1,21 +0,0 @@ -package de.mm20.launcher2.ui.settings.cards - -import androidx.lifecycle.ViewModel -import de.mm20.launcher2.preferences.ui.UiSettings -import org.koin.core.component.KoinComponent -import org.koin.core.component.inject - -class CardsSettingsScreenVM : ViewModel(), KoinComponent { - private val uiSettings: UiSettings by inject() - - val cardStyle = uiSettings.cardStyle - - fun setOpacity(opacity: Float) { - uiSettings.setCardOpacity(opacity) - } - - fun setBorderWidth(borderWidth: Int) { - uiSettings.setCardBorderWidth(borderWidth) - } - -} \ No newline at end of file diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemePreferenceCategory.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemePreferenceCategory.kt index 1cd260949..5f5e7cbcb 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemePreferenceCategory.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemePreferenceCategory.kt @@ -9,9 +9,6 @@ import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.DarkMode -import androidx.compose.material.icons.rounded.LightMode import androidx.compose.material3.ColorScheme import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -23,7 +20,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp +import de.mm20.launcher2.ui.R @Composable fun ColorSchemePreferenceCategory( @@ -56,14 +55,14 @@ fun ColorSchemePreferenceCategory( selected = !darkMode, onClick = { onDarkModeChanged(false) } ) { - Icon(Icons.Rounded.LightMode, null) + Icon(painterResource(R.drawable.light_mode_24px), null) } SegmentedButton( shape = SegmentedButtonDefaults.itemShape(index = 1, count = 2), selected = darkMode, onClick = { onDarkModeChanged(true) } ) { - Icon(Icons.Rounded.DarkMode, null) + Icon(painterResource(R.drawable.dark_mode_24px), null) } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemeSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemeSettingsScreen.kt index 9c56c3753..1fdd112a8 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemeSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemeSettingsScreen.kt @@ -10,14 +10,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.Lock -import androidx.compose.material.icons.rounded.OpenInNew -import androidx.compose.material.icons.rounded.PlayArrow -import androidx.compose.material.icons.rounded.Search -import androidx.compose.material.icons.rounded.StarBorder -import androidx.compose.material.icons.rounded.Tag import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults @@ -49,6 +41,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat @@ -377,7 +370,7 @@ fun ColorSchemeSettingsScreen(themeId: UUID) { .align(Alignment.CenterVertically), onClick = { } ) { - Icon(Icons.Rounded.Edit, null) + Icon(painterResource(R.drawable.edit_24px), null) } ShapedLauncherIcon( size = 48.dp, @@ -512,7 +505,7 @@ fun ColorSchemeSettingsScreen(themeId: UUID) { label = { Text("Tag") }, leadingIcon = { Icon( - Icons.Rounded.Tag, + painterResource(R.drawable.tag_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -526,7 +519,7 @@ fun ColorSchemeSettingsScreen(themeId: UUID) { .align(Alignment.CenterVertically), onClick = { }, ) { - Icon(Icons.Rounded.PlayArrow, null) + Icon(painterResource(R.drawable.play_arrow_24px), null) } } } @@ -788,7 +781,7 @@ fun ColorSchemeSettingsScreen(themeId: UUID) { modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center, ) { - Icon(Icons.Rounded.Search, null, tint = MaterialTheme.colorScheme.onSurface) + Icon(painterResource(R.drawable.search_24px), null, tint = MaterialTheme.colorScheme.onSurface) } } } @@ -946,7 +939,7 @@ fun ColorSchemeSettingsScreen(themeId: UUID) { .align(Alignment.CenterVertically) .width(240.dp), text = "Banner", - icon = Icons.Rounded.Lock + icon = R.drawable.lock_24px, ) Switch( modifier = Modifier @@ -1078,12 +1071,12 @@ fun ColorSchemeSettingsScreen(themeId: UUID) { } IconButton( - onClick = { /*TODO*/ }, + onClick = { }, modifier = Modifier .padding(end = 16.dp) .align(Alignment.CenterVertically), ) { - Icon(Icons.Rounded.StarBorder, null) + Icon(painterResource(R.drawable.star_24px), null) } Surface( @@ -1100,7 +1093,7 @@ fun ColorSchemeSettingsScreen(themeId: UUID) { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.OpenInNew, null) + Icon(painterResource(R.drawable.open_in_new_24px), null) }, text = { Text("Menu") }, onClick = { }) @@ -1170,7 +1163,7 @@ fun ColorSchemeSettingsScreen(themeId: UUID) { label = { Text("Tag") }, leadingIcon = { Icon( - Icons.Rounded.Tag, + painterResource(R.drawable.tag_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemesSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemesSettingsScreen.kt index 905c00629..792495878 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemesSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSchemesSettingsScreen.kt @@ -10,14 +10,6 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.ContentCopy -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.MoreVert -import androidx.compose.material.icons.rounded.RadioButtonChecked -import androidx.compose.material.icons.rounded.RadioButtonUnchecked import androidx.compose.material3.AlertDialog import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -35,6 +27,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -66,7 +59,7 @@ fun ColorSchemesSettingsScreen() { title = stringResource(R.string.preference_screen_colors), topBarActions = { IconButton(onClick = { viewModel.createNew(context) }) { - Icon(Icons.Rounded.Add, null) + Icon(painterResource(R.drawable.add_24px), null) } }, ) { @@ -75,7 +68,7 @@ fun ColorSchemesSettingsScreen() { for (theme in builtin) { var showMenu by remember { mutableStateOf(false) } Preference( - icon = if (theme.id == selectedTheme) Icons.Rounded.RadioButtonChecked else Icons.Rounded.RadioButtonUnchecked, + icon = if (theme.id == selectedTheme) R.drawable.radio_button_checked_24px else R.drawable.radio_button_unchecked_24px, title = theme.name, controls = { Row( @@ -85,7 +78,7 @@ fun ColorSchemesSettingsScreen() { IconButton( modifier = Modifier.padding(start = 12.dp), onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } DropdownMenu( expanded = showMenu, @@ -93,7 +86,7 @@ fun ColorSchemesSettingsScreen() { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.ContentCopy, null) + Icon(painterResource(R.drawable.content_copy_24px), null) }, text = { Text(stringResource(R.string.duplicate)) }, onClick = { @@ -118,7 +111,7 @@ fun ColorSchemesSettingsScreen() { for (theme in user) { var showMenu by remember { mutableStateOf(false) } Preference( - icon = if (theme.id == selectedTheme) Icons.Rounded.RadioButtonChecked else Icons.Rounded.RadioButtonUnchecked, + icon = if (theme.id == selectedTheme) R.drawable.radio_button_checked_24px else R.drawable.radio_button_unchecked_24px, title = theme.name, controls = { Row( @@ -128,7 +121,7 @@ fun ColorSchemesSettingsScreen() { IconButton( modifier = Modifier.padding(start = 12.dp), onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } DropdownMenu( expanded = showMenu, @@ -136,7 +129,7 @@ fun ColorSchemesSettingsScreen() { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Edit, null) + Icon(painterResource(R.drawable.edit_24px), null) }, text = { Text(stringResource(R.string.edit)) }, onClick = { @@ -146,7 +139,7 @@ fun ColorSchemesSettingsScreen() { ) DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.ContentCopy, null) + Icon(painterResource(R.drawable.content_copy_24px), null) }, text = { Text(stringResource(R.string.duplicate)) }, onClick = { @@ -156,7 +149,7 @@ fun ColorSchemesSettingsScreen() { ) DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Delete, null) + Icon(painterResource(R.drawable.delete_24px), null) }, text = { Text(stringResource(R.string.menu_delete)) }, onClick = { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSwatch.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSwatch.kt index 348100398..9d121a311 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSwatch.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ColorSwatch.kt @@ -6,8 +6,6 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.CheckCircle import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -15,7 +13,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp +import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.locals.LocalDarkTheme import hct.Hct @@ -57,7 +57,7 @@ fun ColorSwatch( ) { if (selected) { Icon( - Icons.Rounded.CheckCircle, + painterResource(R.drawable.check_circle_24px), null, modifier = Modifier.size(32.dp), tint = iconColor, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/CorePaletteColorPreference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/CorePaletteColorPreference.kt index 0d4bdac7e..bd0659fc2 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/CorePaletteColorPreference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/CorePaletteColorPreference.kt @@ -12,9 +12,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.AutoFixHigh -import androidx.compose.material.icons.rounded.SettingsSuggest import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon @@ -31,6 +28,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow @@ -88,7 +86,7 @@ fun CorePaletteColorPreference( .padding(it) ) { SwitchPreference( - icon = Icons.Rounded.SettingsSuggest, + icon = R.drawable.rule_settings_24px, title = stringResource(R.string.theme_color_scheme_system_default), value = currentValue == null, onValueChanged = { @@ -141,7 +139,7 @@ fun CorePaletteColorPreference( } ) { Icon( - Icons.Rounded.AutoFixHigh, null, + painterResource(R.drawable.wand_stars_20px), null, modifier = Modifier .padding(ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ThemeColorPreference.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ThemeColorPreference.kt index 62f23dbe1..5cff8ac57 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ThemeColorPreference.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/colorscheme/ThemeColorPreference.kt @@ -16,10 +16,6 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Colorize -import androidx.compose.material.icons.rounded.Palette -import androidx.compose.material.icons.rounded.RestartAlt import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon @@ -44,6 +40,7 @@ import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.drawscope.Fill import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.style.TextAlign @@ -127,7 +124,7 @@ fun ThemeColorPreference( active = actualValue is ColorRef, ) { Icon( - Icons.Rounded.Palette, + painterResource(R.drawable.palette_20px), null, modifier = Modifier .size(SegmentedButtonDefaults.IconSize) @@ -148,7 +145,7 @@ fun ThemeColorPreference( active = actualValue is StaticColor, ) { Icon( - Icons.Rounded.Colorize, + painterResource(R.drawable.colorize_20px), null, modifier = Modifier .size(SegmentedButtonDefaults.IconSize) @@ -424,7 +421,8 @@ fun ThemeColorPreference( onClick = { currentValue = null } ) { Icon( - Icons.Rounded.RestartAlt, null, + painterResource(R.drawable.restart_alt_20px), + null, modifier = Modifier .padding(ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/contacts/ContactsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/contacts/ContactsSettingsScreen.kt index 46b835a36..273f38be3 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/contacts/ContactsSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/contacts/ContactsSettingsScreen.kt @@ -2,21 +2,11 @@ package de.mm20.launcher2.ui.settings.contacts import android.app.PendingIntent import androidx.appcompat.app.AppCompatActivity -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Call -import androidx.compose.material.icons.rounded.ErrorOutline -import androidx.compose.material.icons.rounded.Person -import androidx.compose.material3.Text -import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue -import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel @@ -24,8 +14,6 @@ import de.mm20.launcher2.crashreporter.CrashReporter import de.mm20.launcher2.ktx.sendWithBackgroundPermission import de.mm20.launcher2.plugin.PluginState import de.mm20.launcher2.ui.R -import de.mm20.launcher2.ui.component.Banner -import de.mm20.launcher2.ui.component.MissingPermissionBanner import de.mm20.launcher2.ui.component.preferences.GuardedPreference import de.mm20.launcher2.ui.component.preferences.PreferenceCategory import de.mm20.launcher2.ui.component.preferences.PreferenceScreen @@ -60,7 +48,7 @@ fun ContactsSettingsScreen() { SwitchPreference( title = stringResource(R.string.preference_search_contacts), summary = stringResource(R.string.preference_search_contacts_summary), - icon = Icons.Rounded.Person, + icon = R.drawable.person_24px, value = enabledProviders.contains("local"), onValueChanged = { viewModel.setProviderEnabled("local", it) @@ -82,7 +70,7 @@ fun ContactsSettingsScreen() { }, description = (state as? PluginState.SetupRequired)?.message ?: stringResource(id = R.string.plugin_state_setup_required), - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_24px, unlockLabel = stringResource(id = R.string.plugin_action_setup), ) { SwitchPreference( @@ -112,7 +100,7 @@ fun ContactsSettingsScreen() { SwitchPreference( title = stringResource(R.string.preference_contacts_call_on_tap), summary = stringResource(R.string.preference_contacts_call_on_tap_summary), - icon = Icons.Rounded.Call, + icon = R.drawable.call_24px, value = callOnTap == true && hasCallPermission == true, onValueChanged = { viewModel.setCallOnTap(it) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/crashreporter/CrashReportScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/crashreporter/CrashReportScreen.kt index 69cbfcc8a..d36cc98b1 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/crashreporter/CrashReportScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/crashreporter/CrashReportScreen.kt @@ -7,9 +7,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.BugReport -import androidx.compose.material.icons.rounded.Share import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -21,9 +18,11 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import de.mm20.launcher2.crashreporter.CrashReportType +import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.preferences.PreferenceScreen @Composable @@ -39,11 +38,11 @@ fun CrashReportScreen(fileName: String) { }, topBarActions = { IconButton(onClick = { crashReport?.let { viewModel.shareCrashReport(context, it) } }) { - Icon(imageVector = Icons.Rounded.Share, contentDescription = null) + Icon(painterResource(R.drawable.share_24px), contentDescription = null) } if (crashReport?.type == CrashReportType.Crash) { IconButton(onClick = { crashReport?.let { viewModel.createIssue(context, it) } }) { - Icon(imageVector = Icons.Rounded.BugReport, contentDescription = null) + Icon(painterResource(R.drawable.bug_report_24px), contentDescription = null) } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/crashreporter/CrashReporterScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/crashreporter/CrashReporterScreen.kt index 8d2887376..960251a8e 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/crashreporter/CrashReporterScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/crashreporter/CrashReporterScreen.kt @@ -4,11 +4,6 @@ import android.text.format.DateUtils import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Error -import androidx.compose.material.icons.rounded.ErrorOutline -import androidx.compose.material.icons.rounded.Warning -import androidx.compose.material.icons.rounded.WarningAmber import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider @@ -17,6 +12,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -49,7 +45,7 @@ fun CrashReporterScreen() { viewModel.setShowExceptions(value) }) { Icon( - imageVector = if (showExceptions) Icons.Rounded.Warning else Icons.Rounded.WarningAmber, + painterResource(if (showExceptions) R.drawable.warning_24px_filled else R.drawable.warning_24px), contentDescription = null, modifier = Modifier.alpha(if (showExceptions) 1f else 0.5f) ) @@ -58,7 +54,7 @@ fun CrashReporterScreen() { viewModel.setShowCrashes(value) }) { Icon( - imageVector = if (showCrashes) Icons.Rounded.Error else Icons.Rounded.ErrorOutline, + painterResource(if (showCrashes) R.drawable.error_24px_filled else R.drawable.error_24px), contentDescription = null, modifier = Modifier.alpha(if (showCrashes) 1f else 0.5f) ) @@ -95,7 +91,9 @@ fun CrashReporterScreen() { ) { Icon( modifier = Modifier.padding(end = 8.dp), - imageVector = if (it.type == CrashReportType.Exception) Icons.Rounded.Warning else Icons.Rounded.Error, + painter = painterResource( + if (it.type == CrashReportType.Exception) R.drawable.warning_24px else R.drawable.error_24px + ), contentDescription = null ) Text( diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/favorites/FavoritesSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/favorites/FavoritesSettingsScreen.kt index f1a0abb39..7163a224e 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/favorites/FavoritesSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/favorites/FavoritesSettingsScreen.kt @@ -1,11 +1,5 @@ package de.mm20.launcher2.ui.settings.favorites -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.Insights -import androidx.compose.material.icons.rounded.Sort -import androidx.compose.material.icons.rounded.SwapVert -import androidx.compose.material.icons.rounded.TableRows import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue @@ -36,7 +30,7 @@ fun FavoritesSettingsScreen() { Preference( title = stringResource(R.string.menu_item_edit_favs), summary = stringResource(R.string.preference_edit_favorites_summary), - icon = Icons.Rounded.Sort, + icon = R.drawable.sort_24px, onClick = { showEditSheet = true } @@ -53,7 +47,7 @@ fun FavoritesSettingsScreen() { onValueChanged = { viewModel.setFrequentlyUsed(it) }, - icon = Icons.Rounded.Insights + icon = R.drawable.show_chart_24px, ) val frequentlyUsedRows by viewModel.frequentlyUsedRows.collectAsState() SliderPreference( @@ -65,12 +59,12 @@ fun FavoritesSettingsScreen() { onValueChanged = { viewModel.setFrequentlyUsedRows(it) }, - icon = Icons.Rounded.TableRows + icon = R.drawable.table_rows_24px, ) val searchResultWeightFactor by viewModel.searchResultWeightFactor.collectAsState() ListPreference( title = stringResource(R.string.preference_search_result_ordering_weight_factor), - icon = Icons.Rounded.SwapVert, + icon = R.drawable.swap_vert_24px, value = searchResultWeightFactor, items = listOf( stringResource(R.string.preference_search_result_ordering_weight_factor_low) to WeightFactor.Low, @@ -92,7 +86,7 @@ fun FavoritesSettingsScreen() { onValueChanged = { viewModel.setEditButton(it) }, - icon = Icons.Rounded.Edit + icon = R.drawable.edit_24px, ) SwitchPreference( title = stringResource(R.string.preference_compact_tags), diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt index e44689fff..0ee63077a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt @@ -3,13 +3,7 @@ package de.mm20.launcher2.ui.settings.filesearch import android.app.PendingIntent import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.AccountBox -import androidx.compose.material.icons.rounded.ErrorOutline import androidx.compose.material3.LinearProgressIndicator -import androidx.compose.material3.Text -import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -18,7 +12,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.repeatOnLifecycle @@ -29,7 +22,6 @@ import de.mm20.launcher2.ktx.isAtLeastApiLevel import de.mm20.launcher2.ktx.sendWithBackgroundPermission import de.mm20.launcher2.plugin.PluginState import de.mm20.launcher2.ui.R -import de.mm20.launcher2.ui.component.Banner import de.mm20.launcher2.ui.component.preferences.GuardedPreference import de.mm20.launcher2.ui.component.preferences.PreferenceCategory import de.mm20.launcher2.ui.component.preferences.PreferenceScreen @@ -93,7 +85,7 @@ fun FileSearchSettingsScreen() { onUnlock = { viewModel.login(context as AppCompatActivity, AccountType.Nextcloud) }, - icon = Icons.Rounded.AccountBox, + icon = R.drawable.account_box_24px, description = stringResource(R.string.no_account_nextcloud), unlockLabel = stringResource(R.string.connect_account), ) { @@ -117,7 +109,7 @@ fun FileSearchSettingsScreen() { onUnlock = { viewModel.login(context as AppCompatActivity, AccountType.Owncloud) }, - icon = Icons.Rounded.AccountBox, + icon = R.drawable.account_box_24px, description = stringResource(R.string.no_account_owncloud), unlockLabel = stringResource(R.string.connect_account), ) { @@ -149,7 +141,7 @@ fun FileSearchSettingsScreen() { }, description = (state as? PluginState.SetupRequired)?.message ?: stringResource(id = R.string.plugin_state_setup_required), - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_24px, unlockLabel = stringResource(id = R.string.plugin_action_setup), ) { SwitchPreference( diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filterbar/FilterBarSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filterbar/FilterBarSettingsScreen.kt index ad0d67b5e..8e2a54d9b 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filterbar/FilterBarSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filterbar/FilterBarSettingsScreen.kt @@ -8,8 +8,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.outlined.Info -import androidx.compose.material.icons.rounded.ArrowBack import androidx.compose.material3.CenterAlignedTopAppBar import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon @@ -27,6 +25,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -40,7 +39,7 @@ import de.mm20.launcher2.ui.component.dragndrop.LazyDragAndDropColumn import de.mm20.launcher2.ui.component.dragndrop.rememberLazyDragAndDropListState import de.mm20.launcher2.ui.component.preferences.SwitchPreference import de.mm20.launcher2.ui.launcher.search.filters.getLabel -import de.mm20.launcher2.ui.launcher.search.filters.icon +import de.mm20.launcher2.ui.launcher.search.filters.iconMedium import de.mm20.launcher2.ui.launcher.search.filters.isCategory import de.mm20.launcher2.ui.locals.LocalNavController @@ -60,8 +59,10 @@ fun FilterBarSettingsScreen() { it.key is KeyboardFilterBarItem }, onItemMove = { from, to -> - val item = (from.key as? KeyboardFilterBarItem) ?: return@rememberLazyDragAndDropListState - val toItem = (to.key as? KeyboardFilterBarItem) ?: return@rememberLazyDragAndDropListState + val item = + (from.key as? KeyboardFilterBarItem) ?: return@rememberLazyDragAndDropListState + val toItem = + (to.key as? KeyboardFilterBarItem) ?: return@rememberLazyDragAndDropListState viewModel.moveItem(item, toItem) } ) @@ -91,7 +92,10 @@ fun FilterBarSettingsScreen() { activity?.onBackPressed() } }) { - Icon(imageVector = Icons.AutoMirrored.Rounded.ArrowBack, contentDescription = "Back") + Icon( + imageVector = Icons.AutoMirrored.Rounded.ArrowBack, + contentDescription = "Back" + ) } }, ) @@ -116,8 +120,11 @@ fun FilterBarSettingsScreen() { .padding(start = 28.dp, top = 16.dp, end = 16.dp, bottom = 16.dp), verticalAlignment = Alignment.CenterVertically, ) { - Icon(Icons.Outlined.Info, null, - modifier = Modifier.padding(end = 24.dp).size(16.dp), + Icon( + painterResource(R.drawable.info_20px), null, + modifier = Modifier + .padding(end = 24.dp) + .size(16.dp), tint = MaterialTheme.colorScheme.secondary ) Text( @@ -130,7 +137,8 @@ fun FilterBarSettingsScreen() { } for (i in 0 until KeyboardFilterBarItem.entries.size) { val item = enabledItems!!.getOrNull(i) ?: disabledItems[i - enabledItems!!.size] - val prevItem = enabledItems!!.getOrNull(i - 1) ?: disabledItems.getOrNull(i - enabledItems!!.size - 1) + val prevItem = enabledItems!!.getOrNull(i - 1) + ?: disabledItems.getOrNull(i - enabledItems!!.size - 1) if (prevItem != null && prevItem.isCategory != item.isCategory) { item(key = "divider-$i") { HorizontalDivider() @@ -146,7 +154,7 @@ fun FilterBarSettingsScreen() { ) { SwitchPreference( title = item.getLabel(context), - icon = item.icon, + icon = item.iconMedium, value = enabledItems!!.contains(item), onValueChanged = { if (it) { viewModel.addAction(item) 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 7a3ff0be3..acb1f6bfb 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 @@ -1,7 +1,7 @@ package de.mm20.launcher2.ui.settings.gestures +import androidx.annotation.DrawableRes import androidx.appcompat.app.AppCompatActivity -import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box @@ -9,14 +9,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Adjust -import androidx.compose.material.icons.rounded.Circle -import androidx.compose.material.icons.rounded.Home -import androidx.compose.material.icons.rounded.SwipeDownAlt -import androidx.compose.material.icons.rounded.SwipeLeftAlt -import androidx.compose.material.icons.rounded.SwipeRightAlt -import androidx.compose.material.icons.rounded.SwipeUpAlt import androidx.compose.material3.LocalContentColor import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -27,7 +19,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp @@ -39,7 +30,6 @@ import de.mm20.launcher2.preferences.GestureAction import de.mm20.launcher2.search.SavableSearchable import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.common.SearchablePicker -import de.mm20.launcher2.ui.component.MissingPermissionBanner import de.mm20.launcher2.ui.component.ShapedLauncherIcon import de.mm20.launcher2.ui.component.preferences.GuardedPreference import de.mm20.launcher2.ui.component.preferences.ListPreference @@ -86,7 +76,7 @@ fun GestureSettingsScreen() { ) { GesturePreference( title = stringResource(R.string.preference_gesture_swipe_down), - icon = Icons.Rounded.SwipeDownAlt, + icon = R.drawable.swipe_down_alt_24px, value = swipeDown, onValueChanged = { viewModel.setSwipeDown(it) }, options = options, @@ -108,7 +98,7 @@ fun GestureSettingsScreen() { ) { GesturePreference( title = stringResource(R.string.preference_gesture_swipe_left), - icon = Icons.Rounded.SwipeLeftAlt, + icon = R.drawable.swipe_left_alt_24px, value = swipeLeft, onValueChanged = { viewModel.setSwipeLeft(it) }, options = options, @@ -130,7 +120,7 @@ fun GestureSettingsScreen() { ) { GesturePreference( title = stringResource(R.string.preference_gesture_swipe_right), - icon = Icons.Rounded.SwipeRightAlt, + icon = R.drawable.swipe_right_alt_24px, value = swipeRight, onValueChanged = { viewModel.setSwipeRight(it) }, options = options, @@ -152,7 +142,7 @@ fun GestureSettingsScreen() { ) { GesturePreference( title = stringResource(R.string.preference_gesture_swipe_up), - icon = Icons.Rounded.SwipeUpAlt, + icon = R.drawable.swipe_up_alt_24px, value = swipeUp, onValueChanged = { viewModel.setSwipeUp(it) }, options = options, @@ -174,7 +164,7 @@ fun GestureSettingsScreen() { ) { GesturePreference( title = stringResource(R.string.preference_gesture_double_tap), - icon = Icons.Rounded.Adjust, + icon = R.drawable.adjust_24px, value = doubleTap, onValueChanged = { viewModel.setDoubleTap(it) }, options = options, @@ -196,7 +186,7 @@ fun GestureSettingsScreen() { ) { GesturePreference( title = stringResource(R.string.preference_gesture_long_press), - icon = Icons.Rounded.Circle, + icon = R.drawable.circle_24px, value = longPress, onValueChanged = { viewModel.setLongPress(it) }, options = options, @@ -217,7 +207,7 @@ fun GestureSettingsScreen() { ) { GesturePreference( title = stringResource(R.string.preference_gesture_home_button), - icon = Icons.Rounded.Home, + icon = R.drawable.home_24px, value = homeButton, onValueChanged = { viewModel.setHomeButton(it) }, options = options, @@ -246,7 +236,7 @@ fun requiresAccessibilityService(action: GestureAction?): Boolean { @Composable fun GesturePreference( title: String, - icon: ImageVector, + @DrawableRes icon: Int, value: GestureAction?, onValueChanged: (GestureAction) -> Unit, options: List>, @@ -266,7 +256,8 @@ fun GesturePreference( icon = icon, items = options, value = value, - summary = options.find { value?.javaClass == it.second.javaClass }?.first ?: stringResource(R.string.gesture_action_none), + summary = options.find { value?.javaClass == it.second.javaClass }?.first + ?: stringResource(R.string.gesture_action_none), onValueChanged = { if (it != null) onValueChanged(it) } ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/hiddenitems/HiddenItemsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/hiddenitems/HiddenItemsSettingsScreen.kt index 3d960e7ba..332ea3205 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/hiddenitems/HiddenItemsSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/hiddenitems/HiddenItemsSettingsScreen.kt @@ -8,13 +8,7 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.itemsIndexed -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Visibility -import androidx.compose.material.icons.rounded.Check -import androidx.compose.material.icons.rounded.Visibility -import androidx.compose.material.icons.rounded.VisibilityOff import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon @@ -31,6 +25,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel @@ -224,7 +219,7 @@ private fun VisibilityDropdown( DropdownMenuItem( leadingIcon = { Icon( - imageVector = Icons.Rounded.Visibility, + painterResource(R.drawable.visibility_24px_filled), contentDescription = null ) }, @@ -243,7 +238,7 @@ private fun VisibilityDropdown( trailingIcon = { if (value == VisibilityLevel.Default) { Icon( - imageVector = Icons.Rounded.Check, + painterResource(R.drawable.check_24px), tint = MaterialTheme.colorScheme.primary, contentDescription = null ) @@ -254,7 +249,7 @@ private fun VisibilityDropdown( DropdownMenuItem( leadingIcon = { Icon( - imageVector = Icons.Outlined.Visibility, + painterResource(R.drawable.visibility_24px), contentDescription = null ) }, @@ -267,7 +262,7 @@ private fun VisibilityDropdown( trailingIcon = { if (value == VisibilityLevel.SearchOnly) { Icon( - imageVector = Icons.Rounded.Check, + painterResource(R.drawable.check_24px), tint = MaterialTheme.colorScheme.primary, contentDescription = null ) @@ -278,7 +273,7 @@ private fun VisibilityDropdown( DropdownMenuItem( leadingIcon = { Icon( - imageVector = Icons.Rounded.VisibilityOff, + painterResource(R.drawable.visibility_off_24px), contentDescription = null ) }, @@ -291,7 +286,7 @@ private fun VisibilityDropdown( trailingIcon = { if (value == VisibilityLevel.Hidden) { Icon( - imageVector = Icons.Rounded.Check, + painterResource(R.drawable.check_24px), tint = MaterialTheme.colorScheme.primary, contentDescription = null ) @@ -326,11 +321,12 @@ private fun HiddenItem( if (visibility != null) { Icon( modifier = Modifier.alpha(if (visibility == VisibilityLevel.Hidden) 0.3f else 1f), - imageVector = when (visibility) { - VisibilityLevel.Hidden -> Icons.Rounded.VisibilityOff - VisibilityLevel.Default -> Icons.Rounded.Visibility - VisibilityLevel.SearchOnly -> Icons.Outlined.Visibility - }, + painter = painterResource( + when (visibility) { + VisibilityLevel.Hidden -> R.drawable.visibility_off_24px + VisibilityLevel.Default -> R.drawable.visibility_24px_filled + VisibilityLevel.SearchOnly -> R.drawable.visibility_24px + }), tint = if (visibility == VisibilityLevel.Default) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onSurfaceVariant, contentDescription = null 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 9c070d6a6..5739d6975 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 @@ -17,12 +17,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Circle -import androidx.compose.material.icons.rounded.AutoAwesome -import androidx.compose.material.icons.rounded.CheckCircle -import androidx.compose.material.icons.rounded.DarkMode -import androidx.compose.material.icons.rounded.LightMode import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -30,23 +24,21 @@ import androidx.compose.material3.SegmentedButton import androidx.compose.material3.SegmentedButtonDefaults import androidx.compose.material3.SingleChoiceSegmentedButtonRow import androidx.compose.material3.Text -import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import de.mm20.launcher2.preferences.ClockWidgetColors import de.mm20.launcher2.preferences.SearchBarColors import de.mm20.launcher2.preferences.SearchBarStyle import de.mm20.launcher2.preferences.SystemBarColors @@ -310,7 +302,8 @@ fun SearchBarStylePreference( SearchBarStyle.entries } - val darkColors = LocalPreferDarkContentOverWallpaper.current && colors == SearchBarColors.Auto || colors == SearchBarColors.Dark + val darkColors = + LocalPreferDarkContentOverWallpaper.current && colors == SearchBarColors.Auto || colors == SearchBarColors.Dark BottomSheetDialog( onDismissRequest = { @@ -334,7 +327,7 @@ fun SearchBarStylePreference( ) { Text( text = stringResource( - when(style) { + when (style) { SearchBarStyle.Transparent -> R.string.preference_search_bar_style_transparent SearchBarStyle.Solid -> R.string.preference_search_bar_style_solid SearchBarStyle.Hidden -> R.string.preference_search_bar_style_hidden @@ -350,7 +343,10 @@ fun SearchBarStylePreference( } ) { Icon( - if (style == value) Icons.Rounded.CheckCircle else Icons.Outlined.Circle, + painterResource( + if (style == value) R.drawable.check_circle_24px_filled + else R.drawable.circle_24px + ), contentDescription = null, tint = if (style == value) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onSurface, ) @@ -365,7 +361,7 @@ fun SearchBarStylePreference( ) .clip(MaterialTheme.shapes.medium) .background( - when { + when { style != SearchBarStyle.Transparent -> MaterialTheme.colorScheme.inverseSurface LocalDarkTheme.current != darkColors -> MaterialTheme.colorScheme.surfaceContainer else -> MaterialTheme.colorScheme.inverseSurface @@ -393,7 +389,9 @@ fun SearchBarStylePreference( } if (style == SearchBarStyle.Transparent) { SingleChoiceSegmentedButtonRow( - modifier = Modifier.fillMaxWidth().padding(top = 16.dp), + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), ) { SegmentedButton( selected = colors == SearchBarColors.Auto, @@ -406,7 +404,7 @@ fun SearchBarStylePreference( ), ) { Icon( - imageVector = Icons.Rounded.AutoAwesome, + painterResource(R.drawable.auto_awesome_20dp), contentDescription = null, modifier = Modifier.size(SegmentedButtonDefaults.IconSize) ) @@ -422,7 +420,7 @@ fun SearchBarStylePreference( ), ) { Icon( - imageVector = Icons.Rounded.LightMode, + painterResource(R.drawable.light_mode_20px), contentDescription = null, modifier = Modifier.size(SegmentedButtonDefaults.IconSize) ) @@ -438,7 +436,7 @@ fun SearchBarStylePreference( ), ) { Icon( - imageVector = Icons.Rounded.DarkMode, + painterResource(R.drawable.dark_mode_20px), contentDescription = null, modifier = Modifier.size(SegmentedButtonDefaults.IconSize) ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/icons/IconsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/icons/IconsSettingsScreen.kt index cddadfed2..f39f16bce 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/icons/IconsSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/icons/IconsSettingsScreen.kt @@ -15,8 +15,6 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Palette import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -34,6 +32,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -347,7 +346,7 @@ private fun IconPackSelectorSheet( Icon( modifier = Modifier .size(20.dp), - imageVector = Icons.Rounded.Palette, + painter = painterResource(R.drawable.palette_20px), contentDescription = null, tint = MaterialTheme.colorScheme.primary ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreen.kt index 48ed13fc0..27f0ffc23 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreen.kt @@ -1,17 +1,8 @@ package de.mm20.launcher2.ui.settings.integrations -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Check -import androidx.compose.material.icons.rounded.LightMode -import androidx.compose.material.icons.rounded.PlayCircleOutline import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import androidx.lifecycle.viewmodel.compose.viewModel -import de.mm20.launcher2.icons.BreezyWeather -import de.mm20.launcher2.icons.Google -import de.mm20.launcher2.icons.Nextcloud -import de.mm20.launcher2.icons.Owncloud -import de.mm20.launcher2.icons.Wikipedia import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.preferences.Preference import de.mm20.launcher2.ui.component.preferences.PreferenceCategory @@ -28,14 +19,14 @@ fun IntegrationsSettingsScreen() { PreferenceCategory { Preference( title = stringResource(R.string.preference_weather_integration), - icon = Icons.Rounded.LightMode, + icon = R.drawable.light_mode_24px, onClick = { navController?.navigate("settings/integrations/weather") } ) Preference( title = stringResource(R.string.preference_media_integration), - icon = Icons.Rounded.PlayCircleOutline, + icon = R.drawable.play_circle_24px, onClick = { navController?.navigate("settings/integrations/media") } @@ -46,35 +37,35 @@ fun IntegrationsSettingsScreen() { PreferenceCategory { Preference( title = stringResource(R.string.preference_nextcloud), - icon = Icons.Rounded.Nextcloud, + icon = R.drawable.nextcloud, onClick = { navController?.navigate("settings/integrations/nextcloud") } ) Preference( title = stringResource(R.string.preference_owncloud), - icon = Icons.Rounded.Owncloud, + icon = R.drawable.owncloud, onClick = { navController?.navigate("settings/integrations/owncloud") } ) Preference( title = stringResource(R.string.preference_search_wikipedia), - icon = Icons.Rounded.Wikipedia, + icon = R.drawable.wikipedia, onClick = { navController?.navigate("settings/search/wikipedia") } ) Preference( title = stringResource(R.string.preference_tasks_integration), - icon = Icons.Default.Check, + icon = R.drawable.check_24px_sharp, onClick = { navController?.navigate("settings/integrations/tasks") } ) Preference( title = stringResource(R.string.preference_breezyweather_integration), - icon = Icons.Rounded.BreezyWeather, + icon = R.drawable.breezy_weather, onClick = { navController?.navigate("settings/integrations/breezyweather") } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/license/LicenseScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/license/LicenseScreen.kt index ef3448bff..e1f6ee83e 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/license/LicenseScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/license/LicenseScreen.kt @@ -6,9 +6,6 @@ import androidx.browser.customtabs.CustomTabsIntent import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ArrowBack -import androidx.compose.material.icons.rounded.OpenInBrowser import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -17,6 +14,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel @@ -45,7 +43,7 @@ fun LicenseScreen(library: OpenSourceLibrary) { IconButton(onClick = { navController?.navigateUp() }) { - Icon(imageVector = Icons.Rounded.ArrowBack, contentDescription = "Back") + Icon(painterResource(R.drawable.arrow_back_24px), contentDescription = "Back") } }, scrollBehavior = scrollBehavior, @@ -60,7 +58,7 @@ fun LicenseScreen(library: OpenSourceLibrary) { .launchUrl(context, Uri.parse(library.url)) }) { Icon( - imageVector = Icons.Rounded.OpenInBrowser, + painterResource(R.drawable.open_in_browser_24px), contentDescription = stringResource( R.string.open_webpage ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/locations/LocationsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/locations/LocationsSettingsScreen.kt index e111a6563..152d8a3c6 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/locations/LocationsSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/locations/LocationsSettingsScreen.kt @@ -3,8 +3,6 @@ package de.mm20.launcher2.ui.settings.locations import android.app.PendingIntent import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ErrorOutline import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -85,7 +83,7 @@ fun LocationsSettingsScreen() { }, description = (state as? PluginState.SetupRequired)?.message ?: stringResource(id = R.string.plugin_state_setup_required), - icon = Icons.Rounded.ErrorOutline, + icon = R.drawable.error_24px, unlockLabel = stringResource(id = R.string.plugin_action_setup), ) { SwitchPreference( diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/log/LogScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/log/LogScreen.kt index ecb5ed114..41368946a 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/log/LogScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/log/LogScreen.kt @@ -10,21 +10,14 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.ArrowDownward -import androidx.compose.material.icons.rounded.BugReport -import androidx.compose.material.icons.rounded.Error -import androidx.compose.material.icons.rounded.Info -import androidx.compose.material.icons.rounded.Share -import androidx.compose.material.icons.rounded.Warning +import androidx.compose.material3.FloatingActionButtonDefaults import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SmallFloatingActionButton -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -36,6 +29,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.core.content.FileProvider @@ -118,7 +112,7 @@ fun LogScreen() { ) } }) { - Icon(Icons.Rounded.Share, contentDescription = null) + Icon(painterResource(R.drawable.share_24px), contentDescription = null) } }, verticalArrangement = Arrangement.spacedBy(2.dp), @@ -136,7 +130,10 @@ fun LogScreen() { listState.animateScrollToItem(lines.lastIndex) } }) { - Icon(Icons.Rounded.ArrowDownward, null) + Icon( + painterResource(R.drawable.arrow_downward_24px), + null, + ) } } }, @@ -176,14 +173,17 @@ fun LogScreen() { ) { Row(verticalAlignment = Alignment.CenterVertically) { Icon( - when (it.level) { - "E" -> Icons.Rounded.Error - "W" -> Icons.Rounded.Warning - "D" -> Icons.Rounded.BugReport - else -> Icons.Rounded.Info - }, + painterResource( + when (it.level) { + "E" -> R.drawable.error_20px + "W" -> R.drawable.warning_20px + "D" -> R.drawable.bug_report_20px + else -> R.drawable.info_20px + }, + ), null, - tint = contentColor + tint = contentColor, + modifier = Modifier.size(20.dp) ) Text( modifier = Modifier.padding(start = 8.dp), diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/main/MainSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/main/MainSettingsScreen.kt index f6c2e9288..dd6a24771 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/main/MainSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/main/MainSettingsScreen.kt @@ -1,17 +1,5 @@ package de.mm20.launcher2.ui.settings.main -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Apps -import androidx.compose.material.icons.rounded.BugReport -import androidx.compose.material.icons.rounded.Extension -import androidx.compose.material.icons.rounded.Gesture -import androidx.compose.material.icons.rounded.Home -import androidx.compose.material.icons.rounded.Info -import androidx.compose.material.icons.rounded.Palette -import androidx.compose.material.icons.rounded.Power -import androidx.compose.material.icons.rounded.Science -import androidx.compose.material.icons.rounded.Search -import androidx.compose.material.icons.rounded.SettingsBackupRestore import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import de.mm20.launcher2.ui.R @@ -29,7 +17,7 @@ fun MainSettingsScreen() { item { PreferenceCategory { Preference( - icon = Icons.Rounded.Palette, + icon = R.drawable.palette_24px, title = stringResource(id = R.string.preference_screen_appearance), summary = stringResource(id = R.string.preference_screen_appearance_summary), onClick = { @@ -37,7 +25,7 @@ fun MainSettingsScreen() { } ) Preference( - icon = Icons.Rounded.Home, + icon = R.drawable.home_24px, title = stringResource(id = R.string.preference_screen_homescreen), summary = stringResource(id = R.string.preference_screen_homescreen_summary), onClick = { @@ -45,7 +33,7 @@ fun MainSettingsScreen() { } ) Preference( - icon = Icons.Rounded.Apps, + icon = R.drawable.apps_24px, title = stringResource(id = R.string.preference_screen_icons), summary = stringResource(id = R.string.preference_screen_icons_summary), onClick = { @@ -53,7 +41,7 @@ fun MainSettingsScreen() { } ) Preference( - icon = Icons.Rounded.Search, + icon = R.drawable.search_24px, title = stringResource(id = R.string.preference_screen_search), summary = stringResource(id = R.string.preference_screen_search_summary), onClick = { @@ -61,7 +49,7 @@ fun MainSettingsScreen() { } ) Preference( - icon = Icons.Rounded.Gesture, + icon = R.drawable.gesture_24px, title = stringResource(id = R.string.preference_screen_gestures), summary = stringResource(id = R.string.preference_screen_gestures_summary), onClick = { @@ -69,7 +57,7 @@ fun MainSettingsScreen() { } ) Preference( - icon = Icons.Rounded.Power, + icon = R.drawable.power_24px, title = stringResource(id = R.string.preference_screen_integrations), summary = stringResource(id = R.string.preference_screen_integrations_summary), onClick = { @@ -77,7 +65,7 @@ fun MainSettingsScreen() { } ) Preference( - icon = Icons.Rounded.Extension, + icon = R.drawable.extension_24px, title = stringResource(id = R.string.preference_screen_plugins), summary = stringResource(id = R.string.preference_screen_plugins_summary), onClick = { @@ -85,7 +73,7 @@ fun MainSettingsScreen() { } ) Preference( - icon = Icons.Rounded.SettingsBackupRestore, + icon = R.drawable.settings_backup_restore_24px, title = stringResource(id = R.string.preference_screen_backup), summary = stringResource(id = R.string.preference_screen_backup_summary), onClick = { @@ -93,7 +81,7 @@ fun MainSettingsScreen() { } ) Preference( - icon = Icons.Rounded.BugReport, + icon = R.drawable.bug_report_24px, title = stringResource(id = R.string.preference_screen_debug), summary = stringResource(id = R.string.preference_screen_debug_summary), onClick = { @@ -101,7 +89,7 @@ fun MainSettingsScreen() { } ) Preference( - icon = Icons.Rounded.Info, + icon = R.drawable.info_24px, title = stringResource(id = R.string.preference_screen_about), summary = stringResource(id = R.string.preference_screen_about_summary), onClick = { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/nextcloud/NextcloudSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/nextcloud/NextcloudSettingsScreen.kt index 2b6c84184..71e45aed4 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/nextcloud/NextcloudSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/nextcloud/NextcloudSettingsScreen.kt @@ -10,9 +10,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.Login -import androidx.compose.material.icons.automirrored.rounded.Logout import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Icon @@ -24,6 +21,7 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle @@ -108,7 +106,7 @@ fun NextcloudSettingsScreen() { contentPadding = ButtonDefaults.ButtonWithIconContentPadding, ) { Icon( - Icons.AutoMirrored.Rounded.Logout, + painterResource(R.drawable.logout_20px), modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize), @@ -142,7 +140,7 @@ fun NextcloudSettingsScreen() { Preference( title = stringResource(R.string.preference_nextcloud_signin), summary = stringResource(R.string.preference_nextcloud_signin_summary), - icon = Icons.AutoMirrored.Rounded.Login, + icon = R.drawable.login_24px, onClick = { viewModel.signIn(activity) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/owncloud/OwncloudSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/owncloud/OwncloudSettingsScreen.kt index 3e568795c..38c8ca1b1 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/owncloud/OwncloudSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/owncloud/OwncloudSettingsScreen.kt @@ -10,12 +10,8 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.Login -import androidx.compose.material.icons.automirrored.rounded.Logout import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -26,6 +22,7 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle @@ -102,7 +99,7 @@ fun OwncloudSettingsScreen() { contentPadding = ButtonDefaults.ButtonWithIconContentPadding, ) { Icon( - Icons.AutoMirrored.Rounded.Logout, + painterResource(R.drawable.logout_20px), modifier = Modifier .padding(end = ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize), @@ -135,7 +132,7 @@ fun OwncloudSettingsScreen() { Preference( title = stringResource(R.string.preference_owncloud_signin), summary = stringResource(R.string.preference_owncloud_signin_summary), - icon = Icons.AutoMirrored.Rounded.Login, + icon = R.drawable.login_24px, onClick = { viewModel.signIn(activity) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/plugins/PluginSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/plugins/PluginSettingsScreen.kt index 481444ea3..f38ee74f5 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/plugins/PluginSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/plugins/PluginSettingsScreen.kt @@ -16,14 +16,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.ArrowBack -import androidx.compose.material.icons.automirrored.rounded.OpenInNew -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Error -import androidx.compose.material.icons.rounded.Info -import androidx.compose.material.icons.rounded.Settings -import androidx.compose.material.icons.rounded.Verified import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -40,6 +32,7 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp @@ -143,7 +136,7 @@ fun PluginSettingsScreen(pluginId: String) { } }) { Icon( - imageVector = Icons.AutoMirrored.Rounded.ArrowBack, + painterResource(R.drawable.arrow_back_24px), contentDescription = "Back" ) } @@ -156,7 +149,7 @@ fun PluginSettingsScreen(pluginId: String) { } }) { Icon( - imageVector = Icons.Rounded.Settings, + painterResource(R.drawable.settings_24px), contentDescription = null ) } @@ -165,7 +158,7 @@ fun PluginSettingsScreen(pluginId: String) { viewModel.openAppInfo(context) }) { Icon( - imageVector = Icons.Rounded.Info, + painterResource(R.drawable.info_24px), contentDescription = null ) } @@ -174,7 +167,7 @@ fun PluginSettingsScreen(pluginId: String) { navController?.navigateUp() }) { Icon( - imageVector = Icons.Rounded.Delete, + painterResource(R.drawable.delete_24px), contentDescription = null ) } @@ -226,7 +219,7 @@ fun PluginSettingsScreen(pluginId: String) { ) if (pluginPackage?.isVerified == true) { Icon( - Icons.Rounded.Verified, null, + painterResource(R.drawable.verified_20px), null, modifier = Modifier .padding(start = 4.dp) .size(16.dp), @@ -290,7 +283,7 @@ fun PluginSettingsScreen(pluginId: String) { val state = plugin.state GuardedPreference( locked = state is PluginState.Error || state is PluginState.SetupRequired, - icon = if (state is PluginState.Error) Icons.Rounded.Error else Icons.Rounded.Info, + icon = if (state is PluginState.Error) R.drawable.error_24px else R.drawable.info_24px, description = when (state) { is PluginState.Error -> { stringResource(R.string.plugin_state_error) @@ -345,7 +338,7 @@ fun PluginSettingsScreen(pluginId: String) { val state = plugin.state GuardedPreference( locked = state is PluginState.Error || state is PluginState.SetupRequired, - icon = if (state is PluginState.Error) Icons.Rounded.Error else Icons.Rounded.Info, + icon = if (state is PluginState.Error) R.drawable.error_24px else R.drawable.info_24px, description = when (state) { is PluginState.Error -> { stringResource(R.string.plugin_state_error) @@ -399,7 +392,7 @@ fun PluginSettingsScreen(pluginId: String) { val state = plugin.state GuardedPreference( locked = state is PluginState.Error || state is PluginState.SetupRequired, - icon = if (state is PluginState.Error) Icons.Rounded.Error else Icons.Rounded.Info, + icon = if (state is PluginState.Error) R.drawable.error_24px else R.drawable.info_24px, description = when (state) { is PluginState.Error -> { stringResource(R.string.plugin_state_error) @@ -471,7 +464,7 @@ fun PluginSettingsScreen(pluginId: String) { } GuardedPreference( locked = state is PluginState.Error || state is PluginState.SetupRequired, - icon = if (state is PluginState.Error) Icons.Rounded.Error else Icons.Rounded.Info, + icon = if (state is PluginState.Error) R.drawable.error_24px else R.drawable.info_24px, description = when (state) { is PluginState.Error -> { stringResource(R.string.plugin_state_error) @@ -536,7 +529,7 @@ fun PluginSettingsScreen(pluginId: String) { val state = plugin.state GuardedPreference( locked = state is PluginState.Error || state is PluginState.SetupRequired, - icon = if (state is PluginState.Error) Icons.Rounded.Error else Icons.Rounded.Info, + icon = if (state is PluginState.Error) R.drawable.error_24px else R.drawable.info_24px, description = when (state) { is PluginState.Error -> { stringResource(R.string.plugin_state_error) @@ -579,7 +572,7 @@ fun PluginSettingsScreen(pluginId: String) { } Preference( title = stringResource(R.string.widget_config_weather_integration_settings), - icon = Icons.AutoMirrored.Rounded.OpenInNew, + icon = R.drawable.open_in_new_24px, onClick = { navController?.navigate("settings/integrations/weather") } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/plugins/PluginsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/plugins/PluginsSettingsScreen.kt index cbeae8b31..d105c8345 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/plugins/PluginsSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/plugins/PluginsSettingsScreen.kt @@ -6,10 +6,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Extension -import androidx.compose.material.icons.rounded.Verified -import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -52,7 +48,7 @@ fun PluginsSettingsScreen() { verticalArrangement = Arrangement.Center, ) { LargeMessage( - icon = Icons.Rounded.Extension, + icon = R.drawable.extension_48px, text = stringResource(R.string.no_plugins_installed), color = MaterialTheme.colorScheme.secondary ) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/search/SearchSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/search/SearchSettingsScreen.kt index 5f0ff3a32..f50963d33 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/search/SearchSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/search/SearchSettingsScreen.kt @@ -4,23 +4,6 @@ import androidx.appcompat.app.AppCompatActivity import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.Sort -import androidx.compose.material.icons.rounded.AppShortcut -import androidx.compose.material.icons.rounded.ArrowOutward -import androidx.compose.material.icons.rounded.Calculate -import androidx.compose.material.icons.rounded.Description -import androidx.compose.material.icons.rounded.FilterAlt -import androidx.compose.material.icons.rounded.Keyboard -import androidx.compose.material.icons.rounded.Loop -import androidx.compose.material.icons.rounded.Person -import androidx.compose.material.icons.rounded.Place -import androidx.compose.material.icons.rounded.Public -import androidx.compose.material.icons.rounded.Star -import androidx.compose.material.icons.rounded.Tag -import androidx.compose.material.icons.rounded.Today -import androidx.compose.material.icons.rounded.VisibilityOff -import androidx.compose.material.icons.rounded.Warning import androidx.compose.runtime.Composable import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue @@ -33,11 +16,9 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import de.mm20.launcher2.icons.Wikipedia import de.mm20.launcher2.plugin.PluginType import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.BottomSheetDialog -import de.mm20.launcher2.ui.component.MissingPermissionBanner import de.mm20.launcher2.ui.component.SmallMessage import de.mm20.launcher2.ui.component.preferences.GuardedPreference import de.mm20.launcher2.ui.component.preferences.ListPreference @@ -94,7 +75,7 @@ fun SearchSettingsScreen() { PreferenceWithSwitch( title = stringResource(R.string.preference_search_favorites), summary = stringResource(R.string.preference_search_favorites_summary), - icon = Icons.Rounded.Star, + icon = R.drawable.star_24px, switchValue = favorites == true, onSwitchChanged = { viewModel.setFavorites(it) @@ -107,7 +88,7 @@ fun SearchSettingsScreen() { Preference( title = stringResource(R.string.preference_search_files), summary = stringResource(R.string.preference_search_files_summary), - icon = Icons.Rounded.Description, + icon = R.drawable.description_24px, onClick = { navController?.navigate("settings/search/files") } @@ -117,7 +98,7 @@ fun SearchSettingsScreen() { Preference( title = stringResource(R.string.preference_search_contacts), summary = stringResource(R.string.preference_search_contacts_summary), - icon = Icons.Rounded.Person, + icon = R.drawable.person_24px, onClick = { navController?.navigate("settings/search/contacts") }, @@ -133,7 +114,7 @@ fun SearchSettingsScreen() { PreferenceWithSwitch( title = stringResource(R.string.preference_search_contacts), summary = stringResource(R.string.preference_search_contacts_summary), - icon = Icons.Rounded.Person, + icon = R.drawable.person_24px, switchValue = contacts == true && hasContactsPermission == true, onSwitchChanged = { viewModel.setContacts(it) @@ -150,7 +131,7 @@ fun SearchSettingsScreen() { Preference( title = stringResource(R.string.preference_search_calendar), summary = stringResource(R.string.preference_search_calendar_summary), - icon = Icons.Rounded.Today, + icon = R.drawable.today_24px, onClick = { navController?.navigate("settings/search/calendar") }, @@ -171,7 +152,7 @@ fun SearchSettingsScreen() { onSwitchChanged = { viewModel.setCalendarSearch(it) }, - icon = Icons.Rounded.Today, + icon = R.drawable.today_24px, enabled = hasCalendarPermission == true, onClick = { navController?.navigate("settings/search/calendar/local") @@ -192,7 +173,7 @@ fun SearchSettingsScreen() { SwitchPreference( title = stringResource(R.string.preference_search_appshortcuts), summary = stringResource(R.string.preference_search_appshortcuts_summary), - icon = Icons.Rounded.AppShortcut, + icon = R.drawable.mobile_arrow_up_right_24px, value = appShortcuts == true && hasAppShortcutsPermission == true, onValueChanged = { viewModel.setAppShortcuts(it) @@ -204,7 +185,7 @@ fun SearchSettingsScreen() { SwitchPreference( title = stringResource(R.string.preference_search_calculator), summary = stringResource(R.string.preference_search_calculator_summary), - icon = Icons.Rounded.Calculate, + icon = R.drawable.calculate_24px, value = calculator == true, onValueChanged = { viewModel.setCalculator(it) @@ -214,7 +195,7 @@ fun SearchSettingsScreen() { PreferenceWithSwitch( title = stringResource(R.string.preference_search_unitconverter), summary = stringResource(R.string.preference_search_unitconverter_summary), - icon = Icons.Rounded.Loop, + icon = R.drawable.autorenew_24px, switchValue = unitConverter == true, onSwitchChanged = { viewModel.setUnitConverter(it) @@ -227,7 +208,7 @@ fun SearchSettingsScreen() { PreferenceWithSwitch( title = stringResource(R.string.preference_search_wikipedia), summary = stringResource(R.string.preference_search_wikipedia_summary), - icon = Icons.Rounded.Wikipedia, + icon = R.drawable.wikipedia, switchValue = wikipedia == true, onSwitchChanged = { viewModel.setWikipedia(it) @@ -240,7 +221,7 @@ fun SearchSettingsScreen() { SwitchPreference( title = stringResource(R.string.preference_search_websites), summary = stringResource(R.string.preference_search_websites_summary), - icon = Icons.Rounded.Public, + icon = R.drawable.public_24px, value = websites == true, onValueChanged = { viewModel.setWebsites(it) @@ -257,7 +238,7 @@ fun SearchSettingsScreen() { Preference( title = stringResource(R.string.preference_search_locations), summary = stringResource(R.string.preference_search_locations_summary), - icon = Icons.Rounded.Place, + icon = R.drawable.location_on_24px, enabled = hasLocationPermission == true, onClick = { navController?.navigate("settings/search/locations") @@ -267,7 +248,7 @@ fun SearchSettingsScreen() { PreferenceWithSwitch( title = stringResource(R.string.preference_search_locations), summary = stringResource(R.string.preference_search_locations_summary), - icon = Icons.Rounded.Place, + icon = R.drawable.location_on_24px, onClick = { navController?.navigate("settings/search/locations") }, @@ -283,7 +264,7 @@ fun SearchSettingsScreen() { Preference( title = stringResource(R.string.preference_screen_search_actions), summary = stringResource(R.string.preference_search_search_actions_summary), - icon = Icons.Rounded.ArrowOutward, + icon = R.drawable.arrow_outward_24px, onClick = { navController?.navigate("settings/search/searchactions") } @@ -295,7 +276,7 @@ fun SearchSettingsScreen() { Preference( title = stringResource(R.string.preference_hidden_items), summary = stringResource(R.string.preference_hidden_items_summary), - icon = Icons.Rounded.VisibilityOff, + icon = R.drawable.visibility_off_24px, onClick = { navController?.navigate("settings/search/hiddenitems") } @@ -303,7 +284,7 @@ fun SearchSettingsScreen() { Preference( title = stringResource(R.string.preference_screen_tags), summary = stringResource(R.string.preference_screen_tags_summary), - icon = Icons.Rounded.Tag, + icon = R.drawable.tag_24px, onClick = { navController?.navigate("settings/search/tags") } @@ -315,7 +296,7 @@ fun SearchSettingsScreen() { Preference( title = stringResource(R.string.preference_default_filter), summary = stringResource(R.string.preference_default_filter_summary), - icon = Icons.Rounded.FilterAlt, + icon = R.drawable.filter_alt_24px, onClick = { showFilterEditor = true }, @@ -346,7 +327,7 @@ fun SearchSettingsScreen() { SwitchPreference( title = stringResource(R.string.preference_search_bar_auto_focus), summary = stringResource(R.string.preference_search_bar_auto_focus_summary), - icon = Icons.Rounded.Keyboard, + icon = R.drawable.keyboard_24px, value = autoFocus == true, onValueChanged = { viewModel.setAutoFocus(it) @@ -375,7 +356,7 @@ fun SearchSettingsScreen() { onValueChanged = { if (it != null) viewModel.setReverseSearchResults(it) }, - icon = Icons.AutoMirrored.Rounded.Sort + icon = R.drawable.sort_24px ) } } @@ -390,7 +371,7 @@ fun SearchSettingsScreen() { AnimatedVisibility(filters.allowNetwork) { SmallMessage( modifier = Modifier.padding(bottom = 16.dp), - icon = Icons.Rounded.Warning, + icon = R.drawable.warning_24px, text = stringResource(R.string.filter_settings_network_warning) ) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheet.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheet.kt index 7bfd12748..3332049c6 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheet.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/EditSearchActionSheet.kt @@ -28,14 +28,6 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.Android -import androidx.compose.material.icons.rounded.ArrowDropDown -import androidx.compose.material.icons.rounded.ManageSearch -import androidx.compose.material.icons.rounded.RemoveCircleOutline -import androidx.compose.material.icons.rounded.ToggleOn -import androidx.compose.material.icons.rounded.TravelExplore import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.CircularProgressIndicator @@ -72,6 +64,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString @@ -224,7 +217,7 @@ private fun SelectTypePage(viewModel: EditSearchActionSheetVM) { verticalAlignment = Alignment.CenterVertically, ) { Icon( - imageVector = Icons.Rounded.TravelExplore, + painterResource(R.drawable.travel_explore_24px), contentDescription = null, tint = MaterialTheme.colorScheme.primary, ) @@ -247,7 +240,7 @@ private fun SelectTypePage(viewModel: EditSearchActionSheetVM) { verticalAlignment = Alignment.CenterVertically, ) { Icon( - imageVector = Icons.Rounded.ManageSearch, + painterResource(R.drawable.manage_search_24px), contentDescription = null, tint = MaterialTheme.colorScheme.primary, ) @@ -273,7 +266,7 @@ private fun SelectTypePage(viewModel: EditSearchActionSheetVM) { verticalAlignment = Alignment.CenterVertically, ) { Icon( - imageVector = Icons.Rounded.Android, + painterResource(R.drawable.android_24px), contentDescription = null, tint = MaterialTheme.colorScheme.primary, ) @@ -581,7 +574,10 @@ fun CustomizeAppSearch(viewModel: EditSearchActionSheetVM) { } }, trailingIcon = { - Icon(imageVector = Icons.Rounded.ArrowDropDown, contentDescription = null) + Icon( + painterResource(R.drawable.arrow_drop_down_24px), + contentDescription = null + ) } ) DropdownMenu( @@ -1116,7 +1112,7 @@ private fun IntentExtrasEditor(viewModel: EditSearchActionSheetVM) { onClick = { viewModel.removeExtra(key) }, modifier = Modifier.padding(horizontal = 8.dp) ) { - Icon(imageVector = Icons.Rounded.RemoveCircleOutline, contentDescription = null) + Icon(painterResource(R.drawable.do_not_disturb_on_24px), contentDescription = null) } } } @@ -1142,7 +1138,7 @@ private fun IntentExtrasEditor(viewModel: EditSearchActionSheetVM) { ) { when (newType) { "bool" -> { - Icon(Icons.Rounded.ToggleOn, contentDescription = null) + Icon(painterResource(R.drawable.toggle_on_24px), contentDescription = null) } "string" -> { @@ -1229,7 +1225,7 @@ private fun IntentExtrasEditor(viewModel: EditSearchActionSheetVM) { showTypeDropdown = false }) DropdownMenuItem( - leadingIcon = { Icon(Icons.Rounded.ToggleOn, null) }, + leadingIcon = { Icon(painterResource(R.drawable.toggle_on_24px), null) }, text = { Text("Boolean") }, onClick = { newType = "bool" @@ -1261,7 +1257,7 @@ private fun IntentExtrasEditor(viewModel: EditSearchActionSheetVM) { }, enabled = newKey.isNotBlank() ) { - Icon(imageVector = Icons.Rounded.Add, contentDescription = null) + Icon(painterResource(R.drawable.add_24px), contentDescription = null) } } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/SearchActionsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/SearchActionsSettingsScreen.kt index 087a9dd97..342011ad3 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/SearchActionsSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/searchactions/SearchActionsSettingsScreen.kt @@ -1,6 +1,7 @@ package de.mm20.launcher2.ui.settings.searchactions import android.net.Uri +import androidx.activity.compose.LocalActivity import androidx.appcompat.app.AppCompatActivity import androidx.browser.customtabs.CustomTabColorSchemeParams import androidx.browser.customtabs.CustomTabsIntent @@ -14,14 +15,6 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.items -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Info -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.ArrowBack -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.HelpOutline -import androidx.compose.material.icons.rounded.MoreVert import androidx.compose.material3.CenterAlignedTopAppBar import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -43,6 +36,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -72,7 +66,7 @@ fun SearchActionsSettingsScreen() { val colorScheme = MaterialTheme.colorScheme - val activity = LocalContext.current as? AppCompatActivity + val activity = LocalActivity.current as? AppCompatActivity val listState = rememberLazyDragAndDropListState( onDragStart = { @@ -85,11 +79,6 @@ fun SearchActionsSettingsScreen() { val disabledActions by viewModel.disabledActions.collectAsState() Scaffold( - floatingActionButton = { - FloatingActionButton(onClick = { viewModel.createAction() }) { - Icon(imageVector = Icons.Rounded.Add, contentDescription = null) - } - }, topBar = { CenterAlignedTopAppBar( title = { @@ -106,10 +95,15 @@ fun SearchActionsSettingsScreen() { activity?.onBackPressed() } }) { - Icon(imageVector = Icons.Rounded.ArrowBack, contentDescription = "Back") + Icon(painterResource(R.drawable.arrow_back_24px), contentDescription = "Back") } }, actions = { + IconButton(onClick = { viewModel.createAction() }) { + Icon( + painterResource(R.drawable.add_24px), + contentDescription = null) + } IconButton(onClick = { CustomTabsIntent.Builder() .setDefaultColorSchemeParams( @@ -124,7 +118,7 @@ fun SearchActionsSettingsScreen() { ) }) { Icon( - imageVector = Icons.Rounded.HelpOutline, + painterResource(R.drawable.help_24px), contentDescription = "Help" ) } @@ -147,8 +141,11 @@ fun SearchActionsSettingsScreen() { .padding(start = 28.dp, top = 16.dp, end = 16.dp, bottom = 16.dp), verticalAlignment = Alignment.CenterVertically, ) { - Icon(Icons.Outlined.Info, null, - modifier = Modifier.padding(end = 24.dp).size(16.dp), + Icon( + painterResource(R.drawable.info_20px), null, + modifier = Modifier + .padding(end = 24.dp) + .size(16.dp), tint = MaterialTheme.colorScheme.secondary ) Text( @@ -189,7 +186,7 @@ fun SearchActionsSettingsScreen() { showDropdown = true } ) { - Icon(Icons.Rounded.MoreVert, stringResource(R.string.edit)) + Icon(painterResource(R.drawable.more_vert_24px), stringResource(R.string.edit)) DropdownMenu( expanded = showDropdown, onDismissRequest = { showDropdown = false } @@ -197,7 +194,7 @@ fun SearchActionsSettingsScreen() { DropdownMenuItem( leadingIcon = { Icon( - Icons.Rounded.Edit, + painterResource(R.drawable.edit_24px), contentDescription = null ) }, @@ -212,7 +209,7 @@ fun SearchActionsSettingsScreen() { DropdownMenuItem( leadingIcon = { Icon( - Icons.Rounded.Delete, + painterResource(R.drawable.delete_24px), contentDescription = null ) }, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/shapes/ShapeSchemeSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/shapes/ShapeSchemeSettingsScreen.kt index ed7a65350..09d4caaea 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/shapes/ShapeSchemeSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/shapes/ShapeSchemeSettingsScreen.kt @@ -19,12 +19,6 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CutCornerShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.OpenInNew -import androidx.compose.material.icons.rounded.RestartAlt -import androidx.compose.material.icons.rounded.RoundedCorner -import androidx.compose.material.icons.rounded.Search import androidx.compose.material3.AlertDialog import androidx.compose.material3.BottomSheetDefaults import androidx.compose.material3.Button @@ -54,6 +48,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.rotate import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontFamily @@ -64,8 +59,6 @@ import androidx.compose.ui.unit.min import androidx.compose.ui.unit.times import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import de.mm20.launcher2.icons.CutCorner -import de.mm20.launcher2.icons.RoundedCornerAlt import de.mm20.launcher2.themes.shapes.CornerStyle import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.BottomSheetDialog @@ -202,7 +195,7 @@ fun ShapeSchemeSettingsScreen(themeId: UUID) { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.OpenInNew, null) + Icon(painterResource(R.drawable.more_vert_24px), null) }, text = { Text("Menu") }, onClick = { }) @@ -264,7 +257,7 @@ fun ShapeSchemeSettingsScreen(themeId: UUID) { ) ) { Icon( - Icons.Rounded.Search, + painterResource(R.drawable.search_24px), null, modifier = Modifier.padding(12.dp) ) @@ -289,7 +282,7 @@ fun ShapeSchemeSettingsScreen(themeId: UUID) { previewShapes = previewShapes, ) { FloatingActionButton(onClick = {}) { - Icon(Icons.Rounded.Edit, null) + Icon(painterResource(R.drawable.edit_24px), null) } } ShapePreference( @@ -551,7 +544,11 @@ fun ShapePreference( SegmentedButtonDefaults.Icon( active = actualCornerStyle == CornerStyle.Rounded, ) { - Icon(Icons.Rounded.RoundedCornerAlt, null) + Icon( + painterResource(R.drawable.rounded_corner_alt_24px), + null, + modifier = Modifier.size(SegmentedButtonDefaults.IconSize), + ) } } ) { @@ -567,7 +564,10 @@ fun ShapePreference( SegmentedButtonDefaults.Icon( active = actualCornerStyle == CornerStyle.Cut, ) { - Icon(Icons.Rounded.CutCorner, null) + Icon( + painterResource(R.drawable.cut_corner_20px), + null, + modifier = Modifier.size(SegmentedButtonDefaults.IconSize),) } } ) { @@ -580,7 +580,7 @@ fun ShapePreference( verticalAlignment = Alignment.CenterVertically, ) { Icon( - Icons.Rounded.RoundedCorner, + painterResource(R.drawable.rounded_corner_24px), null, modifier = Modifier .padding(end = 8.dp) @@ -607,7 +607,7 @@ fun ShapePreference( verticalAlignment = Alignment.CenterVertically, ) { Icon( - Icons.Rounded.RoundedCorner, + painterResource(R.drawable.rounded_corner_24px), null, modifier = Modifier.padding(end = 8.dp) ) @@ -632,7 +632,7 @@ fun ShapePreference( verticalAlignment = Alignment.CenterVertically, ) { Icon( - Icons.Rounded.RoundedCorner, + painterResource(R.drawable.rounded_corner_24px), null, modifier = Modifier .padding(end = 8.dp) @@ -659,7 +659,7 @@ fun ShapePreference( verticalAlignment = Alignment.CenterVertically, ) { Icon( - Icons.Rounded.RoundedCorner, + painterResource(R.drawable.rounded_corner_24px), null, modifier = Modifier .padding(end = 8.dp) @@ -703,7 +703,7 @@ fun ShapePreference( } ) { Icon( - Icons.Rounded.RestartAlt, null, + painterResource(R.drawable.restart_alt_20px), null, modifier = Modifier .padding(ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/shapes/ShapeSchemesSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/shapes/ShapeSchemesSettingsScreen.kt index ff220d4ac..e3c837eee 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/shapes/ShapeSchemesSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/shapes/ShapeSchemesSettingsScreen.kt @@ -7,14 +7,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CutCornerShape import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.ContentCopy -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.MoreVert -import androidx.compose.material.icons.rounded.RadioButtonChecked -import androidx.compose.material.icons.rounded.RadioButtonUnchecked import androidx.compose.material3.AlertDialog import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -31,6 +23,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -60,7 +53,7 @@ fun ShapeSchemesSettingsScreen() { title = stringResource(R.string.preference_screen_shapes), topBarActions = { IconButton(onClick = { viewModel.createNew(context) }) { - Icon(Icons.Rounded.Add, null) + Icon(painterResource(R.drawable.add_24px), null) } }, ) { @@ -69,7 +62,7 @@ fun ShapeSchemesSettingsScreen() { for (theme in builtin) { var showMenu by remember { mutableStateOf(false) } Preference( - icon = if (theme.id == selectedTheme) Icons.Rounded.RadioButtonChecked else Icons.Rounded.RadioButtonUnchecked, + icon = if (theme.id == selectedTheme) R.drawable.radio_button_checked_24px else R.drawable.radio_button_unchecked_24px, title = theme.name, controls = { Row( @@ -79,7 +72,7 @@ fun ShapeSchemesSettingsScreen() { IconButton( modifier = Modifier.padding(start = 12.dp), onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } DropdownMenu( expanded = showMenu, @@ -87,7 +80,7 @@ fun ShapeSchemesSettingsScreen() { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.ContentCopy, null) + Icon(painterResource(R.drawable.content_copy_24px), null) }, text = { Text(stringResource(R.string.duplicate)) }, onClick = { @@ -111,7 +104,7 @@ fun ShapeSchemesSettingsScreen() { for (theme in user) { var showMenu by remember { mutableStateOf(false) } Preference( - icon = if (theme.id == selectedTheme) Icons.Rounded.RadioButtonChecked else Icons.Rounded.RadioButtonUnchecked, + icon = if (theme.id == selectedTheme) R.drawable.radio_button_checked_24px else R.drawable.radio_button_unchecked_24px, title = theme.name, controls = { Row( @@ -121,7 +114,7 @@ fun ShapeSchemesSettingsScreen() { IconButton( modifier = Modifier.padding(start = 12.dp), onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } DropdownMenu( expanded = showMenu, @@ -129,7 +122,7 @@ fun ShapeSchemesSettingsScreen() { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Edit, null) + Icon(painterResource(R.drawable.edit_24px), null) }, text = { Text(stringResource(R.string.edit)) }, onClick = { @@ -139,7 +132,7 @@ fun ShapeSchemesSettingsScreen() { ) DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.ContentCopy, null) + Icon(painterResource(R.drawable.content_copy_24px), null) }, text = { Text(stringResource(R.string.duplicate)) }, onClick = { @@ -149,7 +142,7 @@ fun ShapeSchemesSettingsScreen() { ) DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Delete, null) + Icon(painterResource(R.drawable.delete_24px), null) }, text = { Text(stringResource(R.string.menu_delete)) }, onClick = { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/tags/TagsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/tags/TagsSettingsScreen.kt index bbd1a941a..0525183e6 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/tags/TagsSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/tags/TagsSettingsScreen.kt @@ -1,10 +1,5 @@ package de.mm20.launcher2.ui.settings.tags -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.ContentCopy -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.MoreVert import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.FloatingActionButton @@ -17,6 +12,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel @@ -35,9 +31,9 @@ fun TagsSettingsScreen() { PreferenceScreen( title = stringResource(R.string.preference_screen_tags), - floatingActionButton = { - FloatingActionButton(onClick = { viewModel.createTag.value = true }) { - Icon(Icons.Rounded.Add, null) + topBarActions = { + IconButton(onClick = { viewModel.createTag.value = true }) { + Icon(painterResource(R.drawable.add_24px), stringResource(R.string.edit_favorites_dialog_new_tag)) } }, helpUrl = "https://kvaesitso.mm20.de/docs/user-guide/concepts/tags" @@ -62,14 +58,14 @@ fun TagsSettingsScreen() { }, controls = { IconButton(onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } DropdownMenu( expanded = showMenu, onDismissRequest = { showMenu = false }) { DropdownMenuItem( text = { Text(stringResource(R.string.duplicate)) }, - leadingIcon = { Icon(Icons.Rounded.ContentCopy, null) }, + leadingIcon = { Icon(painterResource(R.drawable.content_copy_24px), null) }, onClick = { viewModel.duplicateTag(tag) showMenu = false @@ -77,7 +73,7 @@ fun TagsSettingsScreen() { ) DropdownMenuItem( text = { Text(stringResource(R.string.menu_delete)) }, - leadingIcon = { Icon(Icons.Rounded.Delete, null) }, + leadingIcon = { Icon(painterResource(R.drawable.delete_24px), null) }, onClick = { viewModel.deleteTag(tag) showMenu = false diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/tasks/TasksSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/tasks/TasksSettingsScreen.kt index 5eee35942..dc15eff2b 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/tasks/TasksSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/tasks/TasksSettingsScreen.kt @@ -4,11 +4,6 @@ import androidx.activity.compose.LocalActivity import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.background import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.OpenInNew -import androidx.compose.material.icons.rounded.CheckCircle -import androidx.compose.material.icons.rounded.Info -import androidx.compose.material.icons.rounded.TaskAlt import androidx.compose.material3.Button import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -49,7 +44,7 @@ fun TasksIntegrationSettingsScreen() { R.string.preference_tasks_integration_description, stringResource(R.string.app_name) ), - icon = Icons.Rounded.Info, + icon = R.drawable.info_24px, modifier = Modifier .background(MaterialTheme.colorScheme.surface) .padding(16.dp), @@ -70,7 +65,7 @@ fun TasksIntegrationSettingsScreen() { if (hasTasksPermission == true) { Banner( text = stringResource(R.string.preference_tasks_integration_ready), - icon = Icons.Rounded.CheckCircle, + icon = R.drawable.check_circle_24px, modifier = Modifier .background( MaterialTheme.colorScheme.surface, @@ -87,7 +82,7 @@ fun TasksIntegrationSettingsScreen() { description = stringResource(R.string.missing_permission_tasks_integration), ) { PreferenceWithSwitch( - icon = Icons.Rounded.TaskAlt, + icon = R.drawable.task_alt_24px, title = stringResource(R.string.preference_search_tasks), summary = stringResource(R.string.preference_search_tasks_summary), switchValue = isTasksSearchEnabled == true && hasTasksPermission == true, @@ -102,7 +97,7 @@ fun TasksIntegrationSettingsScreen() { } Preference( title = stringResource(R.string.preference_launch_tasks_app), - icon = Icons.AutoMirrored.Rounded.OpenInNew, + icon = R.drawable.open_in_new_24px, onClick = { viewModel.launchTasksApp(activity as AppCompatActivity) } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/transparencies/TransparencySchemeSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/transparencies/TransparencySchemeSettingsScreen.kt index e77f7e6bf..b66a06ef7 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/transparencies/TransparencySchemeSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/transparencies/TransparencySchemeSettingsScreen.kt @@ -10,16 +10,11 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredWidth import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.shape.CornerSize -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.RestartAlt import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.LocalAbsoluteTonalElevation import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField @@ -34,7 +29,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontFamily @@ -43,7 +37,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import de.mm20.launcher2.ktx.isAtLeastApiLevel import de.mm20.launcher2.themes.transparencies.Transparencies import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.LocalIconShape @@ -56,8 +49,6 @@ import de.mm20.launcher2.ui.theme.wallpaperColorsAsState import kotlinx.serialization.Serializable import java.text.DecimalFormat import java.util.UUID -import kotlin.math.floor -import kotlin.math.log import kotlin.math.round @Serializable @@ -288,15 +279,19 @@ private fun TransparencyPreference( }, valueRange = 0f..1f, ) - val format = remember { DecimalFormat().apply { - maximumFractionDigits = 2 - minimumFractionDigits = 0 - } } + val format = remember { + DecimalFormat().apply { + maximumFractionDigits = 2 + minimumFractionDigits = 0 + } + } Text( text = format.format(value ?: defaultValue), style = MaterialTheme.typography.labelSmall, textAlign = TextAlign.Center, - modifier = Modifier.padding(start = 8.dp).widthIn(min = 48.dp), + modifier = Modifier + .padding(start = 8.dp) + .widthIn(min = 48.dp), ) } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/transparencies/TransparencySchemesSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/transparencies/TransparencySchemesSettingsScreen.kt index 14c207df3..7806fdbb2 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/transparencies/TransparencySchemesSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/transparencies/TransparencySchemesSettingsScreen.kt @@ -6,14 +6,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.ContentCopy -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.MoreVert -import androidx.compose.material.icons.rounded.RadioButtonChecked -import androidx.compose.material.icons.rounded.RadioButtonUnchecked import androidx.compose.material3.AlertDialog import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -33,6 +25,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -70,7 +63,7 @@ fun TransparencySchemesSettingsScreen() { title = stringResource(R.string.preference_screen_transparencies), topBarActions = { IconButton(onClick = { viewModel.createNew(context) }) { - Icon(Icons.Rounded.Add, null) + Icon(painterResource(R.drawable.add_24px), null) } }, ) { @@ -79,7 +72,7 @@ fun TransparencySchemesSettingsScreen() { for (theme in builtin) { var showMenu by remember { mutableStateOf(false) } Preference( - icon = if (theme.id == selectedTheme) Icons.Rounded.RadioButtonChecked else Icons.Rounded.RadioButtonUnchecked, + icon = if (theme.id == selectedTheme) R.drawable.radio_button_checked_24px else R.drawable.radio_button_unchecked_24px, title = theme.name, controls = { Row( @@ -89,7 +82,7 @@ fun TransparencySchemesSettingsScreen() { IconButton( modifier = Modifier.padding(start = 12.dp), onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } DropdownMenu( expanded = showMenu, @@ -97,7 +90,7 @@ fun TransparencySchemesSettingsScreen() { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.ContentCopy, null) + Icon(painterResource(R.drawable.content_copy_24px), null) }, text = { Text(stringResource(R.string.duplicate)) }, onClick = { @@ -121,7 +114,7 @@ fun TransparencySchemesSettingsScreen() { for (theme in user) { var showMenu by remember { mutableStateOf(false) } Preference( - icon = if (theme.id == selectedTheme) Icons.Rounded.RadioButtonChecked else Icons.Rounded.RadioButtonUnchecked, + icon = if (theme.id == selectedTheme) R.drawable.radio_button_checked_24px else R.drawable.radio_button_unchecked_24px, title = theme.name, controls = { Row( @@ -131,7 +124,7 @@ fun TransparencySchemesSettingsScreen() { IconButton( modifier = Modifier.padding(start = 12.dp), onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } DropdownMenu( expanded = showMenu, @@ -139,7 +132,7 @@ fun TransparencySchemesSettingsScreen() { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Edit, null) + Icon(painterResource(R.drawable.edit_24px), null) }, text = { Text(stringResource(R.string.edit)) }, onClick = { @@ -151,7 +144,7 @@ fun TransparencySchemesSettingsScreen() { ) DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.ContentCopy, null) + Icon(painterResource(R.drawable.content_copy_24px), null) }, text = { Text(stringResource(R.string.duplicate)) }, onClick = { @@ -161,7 +154,7 @@ fun TransparencySchemesSettingsScreen() { ) DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Delete, null) + Icon(painterResource(R.drawable.delete_24px), null) }, text = { Text(stringResource(R.string.menu_delete)) }, onClick = { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/typography/TypographiesSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/typography/TypographiesSettingsScreen.kt index 2df177ccf..38d082a10 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/typography/TypographiesSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/typography/TypographiesSettingsScreen.kt @@ -4,14 +4,6 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Add -import androidx.compose.material.icons.rounded.ContentCopy -import androidx.compose.material.icons.rounded.Delete -import androidx.compose.material.icons.rounded.Edit -import androidx.compose.material.icons.rounded.MoreVert -import androidx.compose.material.icons.rounded.RadioButtonChecked -import androidx.compose.material.icons.rounded.RadioButtonUnchecked import androidx.compose.material3.AlertDialog import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -28,6 +20,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -62,7 +55,7 @@ fun TypographiesSettingsScreen() { title = stringResource(R.string.preference_screen_typography), topBarActions = { IconButton(onClick = { viewModel.createNew(context) }) { - Icon(Icons.Rounded.Add, null) + Icon(painterResource(R.drawable.add_24px), null) } }, ) { @@ -74,7 +67,9 @@ fun TypographiesSettingsScreen() { Preference( icon = { Icon( - if (theme.id == selectedTheme) Icons.Rounded.RadioButtonChecked else Icons.Rounded.RadioButtonUnchecked, + painterResource( + if (theme.id == selectedTheme) R.drawable.radio_button_checked_24px else R.drawable.radio_button_unchecked_24px + ), contentDescription = null, tint = MaterialTheme.colorScheme.primary ) @@ -94,7 +89,7 @@ fun TypographiesSettingsScreen() { IconButton( modifier = Modifier.padding(start = 12.dp), onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } DropdownMenu( expanded = showMenu, @@ -102,7 +97,7 @@ fun TypographiesSettingsScreen() { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.ContentCopy, null) + Icon(painterResource(R.drawable.content_copy_24px), null) }, text = { Text(stringResource(R.string.duplicate)) }, onClick = { @@ -129,7 +124,9 @@ fun TypographiesSettingsScreen() { Preference( icon = { Icon( - if (theme.id == selectedTheme) Icons.Rounded.RadioButtonChecked else Icons.Rounded.RadioButtonUnchecked, + painterResource( + if (theme.id == selectedTheme) R.drawable.radio_button_checked_24px else R.drawable.radio_button_unchecked_24px + ), contentDescription = null, tint = MaterialTheme.colorScheme.primary ) @@ -149,7 +146,7 @@ fun TypographiesSettingsScreen() { IconButton( modifier = Modifier.padding(start = 12.dp), onClick = { showMenu = true }) { - Icon(Icons.Rounded.MoreVert, null) + Icon(painterResource(R.drawable.more_vert_24px), null) } DropdownMenu( expanded = showMenu, @@ -157,7 +154,7 @@ fun TypographiesSettingsScreen() { ) { DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Edit, null) + Icon(painterResource(R.drawable.edit_24px), null) }, text = { Text(stringResource(R.string.edit)) }, onClick = { @@ -169,7 +166,7 @@ fun TypographiesSettingsScreen() { ) DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.ContentCopy, null) + Icon(painterResource(R.drawable.content_copy_24px), null) }, text = { Text(stringResource(R.string.duplicate)) }, onClick = { @@ -179,7 +176,7 @@ fun TypographiesSettingsScreen() { ) DropdownMenuItem( leadingIcon = { - Icon(Icons.Rounded.Delete, null) + Icon(painterResource(R.drawable.delete_24px), null) }, text = { Text(stringResource(R.string.menu_delete)) }, onClick = { diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/typography/TypographySettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/typography/TypographySettingsScreen.kt index 39377b3f0..019892a42 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/typography/TypographySettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/typography/TypographySettingsScreen.kt @@ -1,6 +1,7 @@ package de.mm20.launcher2.ui.settings.typography import android.content.Context +import androidx.annotation.DrawableRes import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.clickable @@ -19,16 +20,6 @@ import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.OpenInNew -import androidx.compose.material.icons.rounded.FormatBold -import androidx.compose.material.icons.rounded.FormatLineSpacing -import androidx.compose.material.icons.rounded.FormatSize -import androidx.compose.material.icons.rounded.OpenInNew -import androidx.compose.material.icons.rounded.Person -import androidx.compose.material.icons.rounded.RestartAlt -import androidx.compose.material.icons.rounded.Tag -import androidx.compose.material.icons.rounded.Work import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults @@ -58,6 +49,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.capitalize @@ -71,7 +63,6 @@ import androidx.compose.ui.unit.em import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel -import de.mm20.launcher2.icons.LetterSpacing2 import de.mm20.launcher2.themes.typography.DefaultEmphasizedTextStyles import de.mm20.launcher2.themes.typography.DefaultTextStyles import de.mm20.launcher2.themes.typography.FontManager @@ -292,7 +283,7 @@ fun TypographySettingsScreen(themeId: UUID) { ) }, leadingIcon = { Icon( - Icons.Rounded.Tag, + painterResource(R.drawable.tag_20px), contentDescription = null, modifier = Modifier.size(FilterChipDefaults.IconSize) ) @@ -411,8 +402,8 @@ fun TypographySettingsScreen(themeId: UUID) { text = { Text(previewTexts.Short1) }, icon = { Icon( - Icons.Rounded.Person, - contentDescription = null + painterResource(R.drawable.person_24px_filled), + contentDescription = null, ) }, onClick = {} @@ -422,7 +413,7 @@ fun TypographySettingsScreen(themeId: UUID) { text = { Text(previewTexts.Short2) }, icon = { Icon( - Icons.Rounded.Work, + painterResource(R.drawable.enterprise_24px), contentDescription = null ) }, @@ -900,7 +891,7 @@ private fun getFontSummary(context: Context, fontFamily: ThemeFontFamily?): Stri @Composable private fun SliderRow( - icon: ImageVector, + @DrawableRes icon: Int, min: Float, max: Float, step: Float = 1f, @@ -916,7 +907,7 @@ private fun SliderRow( horizontalArrangement = Arrangement.spacedBy(8.dp, Alignment.Start), ) { Icon( - imageVector = icon, + painter = painterResource(icon), contentDescription = null, modifier = Modifier.padding(end = 8.dp), tint = MaterialTheme.colorScheme.primary @@ -1108,7 +1099,7 @@ private fun TextStylePreference( } SliderRow( - icon = Icons.Rounded.FormatBold, + icon = R.drawable.format_bold_24px, min = 100f, max = 900f, step = 100f, @@ -1119,7 +1110,7 @@ private fun TextStylePreference( } ) SliderRow( - icon = Icons.Rounded.FormatSize, + icon = R.drawable.format_size_24px, min = floor((defaultValue?.fontSize ?: defaultValueParent?.fontSize)!! / 2f), max = ceil((defaultValue?.fontSize ?: defaultValueParent?.fontSize)!! * 2f), value = actualFontSize.toFloat(), @@ -1131,7 +1122,7 @@ private fun TextStylePreference( } ) SliderRow( - icon = Icons.Rounded.FormatLineSpacing, + icon = R.drawable.format_line_spacing_24px, min = 0.5f, max = 2f, step = 0.05f, @@ -1142,7 +1133,7 @@ private fun TextStylePreference( } ) SliderRow( - icon = Icons.Rounded.LetterSpacing2, + icon = R.drawable.format_letter_spacing_24px, min = -0.25f, max = 1f, step = 0.01f, @@ -1172,7 +1163,7 @@ private fun TextStylePreference( } ) { Icon( - Icons.Rounded.RestartAlt, null, + painterResource(R.drawable.restart_alt_20px), null, modifier = Modifier .padding(ButtonDefaults.IconSpacing) .size(ButtonDefaults.IconSize) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/unitconverter/UnitConverterHelpSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/unitconverter/UnitConverterHelpSettingsScreen.kt index 8a28592cd..6f84d66cd 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/unitconverter/UnitConverterHelpSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/unitconverter/UnitConverterHelpSettingsScreen.kt @@ -18,6 +18,7 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel @@ -66,10 +67,11 @@ fun UnitConverterHelpSettingsScreen() { private fun DimensionHeader(dimension: Dimension) { Row( modifier = Modifier.background(MaterialTheme.colorScheme.surfaceContainer).fillMaxWidth() - .padding(start = 8.dp, top = 16.dp, end = 16.dp, bottom = 16.dp) + .padding(start = 8.dp, top = 16.dp, end = 16.dp, bottom = 16.dp), + verticalAlignment = Alignment.CenterVertically, ) { Icon( - getDimensionIcon(dimension), + painterResource(getDimensionIcon(dimension)), null, modifier = Modifier.padding(end = 8.dp), tint = MaterialTheme.colorScheme.secondary, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/unitconverter/UnitConverterSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/unitconverter/UnitConverterSettingsScreen.kt index 720a6087f..d82b1cfd9 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/unitconverter/UnitConverterSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/unitconverter/UnitConverterSettingsScreen.kt @@ -1,7 +1,5 @@ package de.mm20.launcher2.ui.settings.unitconverter -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.Help import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue @@ -50,7 +48,7 @@ fun UnitConverterSettingsScreen() { PreferenceCategory { Preference( title = stringResource(R.string.preference_search_supportedunits), - icon = Icons.AutoMirrored.Default.Help, + icon = R.drawable.help_24px, onClick = { navController?.navigate("settings/search/unitconverter/help") } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherIntegrationSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherIntegrationSettingsScreen.kt index a2a22cbd5..97e7f13c0 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherIntegrationSettingsScreen.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherIntegrationSettingsScreen.kt @@ -2,10 +2,7 @@ package de.mm20.launcher2.ui.settings.weather import android.app.PendingIntent import androidx.appcompat.app.AppCompatActivity -import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Info import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable @@ -30,7 +27,6 @@ import de.mm20.launcher2.ui.BuildConfig import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.common.WeatherLocationSearchDialog import de.mm20.launcher2.ui.component.Banner -import de.mm20.launcher2.ui.component.MissingPermissionBanner import de.mm20.launcher2.ui.component.preferences.GuardedPreference import de.mm20.launcher2.ui.component.preferences.ListPreference import de.mm20.launcher2.ui.component.preferences.Preference @@ -68,7 +64,7 @@ fun WeatherIntegrationSettingsScreen() { modifier = Modifier.padding(16.dp), text = state.message ?: stringResource(R.string.plugin_state_setup_required), - icon = Icons.Rounded.Info, + icon = R.drawable.error_24px, primaryAction = { TextButton(onClick = { try { diff --git a/core/base/build.gradle.kts b/core/base/build.gradle.kts index bb2c24ead..7d82b64e7 100644 --- a/core/base/build.gradle.kts +++ b/core/base/build.gradle.kts @@ -53,7 +53,6 @@ dependencies { implementation(libs.androidx.palette) runtimeOnly(libs.androidx.compose.ui) runtimeOnly(libs.androidx.compose.runtime) - implementation(libs.androidx.compose.materialicons) implementation(libs.stringsimilarity) diff --git a/core/base/src/main/java/de/mm20/launcher2/icons/BatteryIcons.kt b/core/base/src/main/java/de/mm20/launcher2/icons/BatteryIcons.kt deleted file mode 100644 index afdeae8b3..000000000 --- a/core/base/src/main/java/de/mm20/launcher2/icons/BatteryIcons.kt +++ /dev/null @@ -1,538 +0,0 @@ -package de.mm20.launcher2.icons - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.group - -val Icons.Rounded.Battery0Bar - get() = materialIcon("Icons.Rounded.Battery0Bar") { - materialPath { - moveTo(17f, 5f) - verticalLineToRelative(16f) - curveToRelative(0f, 0.55f, -0.45f, 1f, -1f, 1f) - horizontalLineTo(8f) - curveToRelative(-0.55f, 0f, -1f, -0.45f, -1f, -1f) - verticalLineTo(5f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - verticalLineTo(3f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - curveToRelative(0.55f, 0f, 1f, 0.45f, 1f, 1f) - verticalLineToRelative(1f) - horizontalLineToRelative(2f) - curveTo(16.55f, 4f, 17f, 4.45f, 17f, 5f) - close() - moveTo(15f, 6f) - horizontalLineTo(9f) - verticalLineToRelative(14f) - horizontalLineToRelative(6f) - verticalLineTo(6f) - close() - } - } - -val Icons.Rounded.Battery1Bar - get() = materialIcon("Icons.Rounded.Battery1Bar") { - materialPath { - moveTo(17f, 5f) - verticalLineToRelative(16f) - curveToRelative(0f, 0.55f, -0.45f, 1f, -1f, 1f) - horizontalLineTo(8f) - curveToRelative(-0.55f, 0f, -1f, -0.45f, -1f, -1f) - verticalLineTo(5f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - verticalLineTo(3f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - curveToRelative(0.55f, 0f, 1f, 0.45f, 1f, 1f) - verticalLineToRelative(1f) - horizontalLineToRelative(2f) - curveTo(16.55f, 4f, 17f, 4.45f, 17f, 5f) - close() - moveTo(15f, 6f) - horizontalLineTo(9f) - verticalLineToRelative(12f) - horizontalLineToRelative(6f) - verticalLineTo(6f) - close() - } - } - -val Icons.Rounded.Battery2Bar - get() = materialIcon("Icons.Rounded.Battery2Bar") { - materialPath { - moveTo(17f, 5f) - verticalLineToRelative(16f) - curveToRelative(0f, 0.55f, -0.45f, 1f, -1f, 1f) - horizontalLineTo(8f) - curveToRelative(-0.55f, 0f, -1f, -0.45f, -1f, -1f) - verticalLineTo(5f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - verticalLineTo(3f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - curveToRelative(0.55f, 0f, 1f, 0.45f, 1f, 1f) - verticalLineToRelative(1f) - horizontalLineToRelative(2f) - curveTo(16.55f, 4f, 17f, 4.45f, 17f, 5f) - close() - moveTo(15f, 6f) - horizontalLineTo(9f) - verticalLineToRelative(10f) - horizontalLineToRelative(6f) - verticalLineTo(6f) - close() - } - } - -val Icons.Rounded.Battery3Bar - get() = materialIcon("Icons.Rounded.Battery3Bar") { - materialPath { - moveTo(17f, 5f) - verticalLineToRelative(16f) - curveToRelative(0f, 0.55f, -0.45f, 1f, -1f, 1f) - horizontalLineTo(8f) - curveToRelative(-0.55f, 0f, -1f, -0.45f, -1f, -1f) - verticalLineTo(5f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - verticalLineTo(3f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - curveToRelative(0.55f, 0f, 1f, 0.45f, 1f, 1f) - verticalLineToRelative(1f) - horizontalLineToRelative(2f) - curveTo(16.55f, 4f, 17f, 4.45f, 17f, 5f) - close() - moveTo(15f, 6f) - horizontalLineTo(9f) - verticalLineToRelative(8f) - horizontalLineToRelative(6f) - verticalLineTo(6f) - close() - } - } - -val Icons.Rounded.Battery4Bar - get() = materialIcon("Icons.Rounded.Battery4Bar") { - materialPath { - moveTo(17f, 5f) - verticalLineToRelative(16f) - curveToRelative(0f, 0.55f, -0.45f, 1f, -1f, 1f) - horizontalLineTo(8f) - curveToRelative(-0.55f, 0f, -1f, -0.45f, -1f, -1f) - verticalLineTo(5f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - verticalLineTo(3f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - curveToRelative(0.55f, 0f, 1f, 0.45f, 1f, 1f) - verticalLineToRelative(1f) - horizontalLineToRelative(2f) - curveTo(16.55f, 4f, 17f, 4.45f, 17f, 5f) - close() - moveTo(15f, 6f) - horizontalLineTo(9f) - verticalLineToRelative(6f) - horizontalLineToRelative(6f) - verticalLineTo(6f) - close() - } - } - -val Icons.Rounded.Battery5Bar - get() = materialIcon("Icons.Rounded.Battery5Bar") { - materialPath { - moveTo(17f, 5f) - verticalLineToRelative(16f) - curveToRelative(0f, 0.55f, -0.45f, 1f, -1f, 1f) - horizontalLineTo(8f) - curveToRelative(-0.55f, 0f, -1f, -0.45f, -1f, -1f) - verticalLineTo(5f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - verticalLineTo(3f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - curveToRelative(0.55f, 0f, 1f, 0.45f, 1f, 1f) - verticalLineToRelative(1f) - horizontalLineToRelative(2f) - curveTo(16.55f, 4f, 17f, 4.45f, 17f, 5f) - close() - moveTo(15f, 6f) - horizontalLineTo(9f) - verticalLineToRelative(4f) - horizontalLineToRelative(6f) - verticalLineTo(6f) - close() - } - } - -val Icons.Rounded.Battery6Bar - get() = materialIcon("Icons.Rounded.Battery6Bar") { - materialPath { - moveTo(17f, 5f) - verticalLineToRelative(16f) - curveToRelative(0f, 0.55f, -0.45f, 1f, -1f, 1f) - horizontalLineTo(8f) - curveToRelative(-0.55f, 0f, -1f, -0.45f, -1f, -1f) - verticalLineTo(5f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - verticalLineTo(3f) - curveToRelative(0f, -0.55f, 0.45f, -1f, 1f, -1f) - horizontalLineToRelative(2f) - curveToRelative(0.55f, 0f, 1f, 0.45f, 1f, 1f) - verticalLineToRelative(1f) - horizontalLineToRelative(2f) - curveTo(16.55f, 4f, 17f, 4.45f, 17f, 5f) - close() - moveTo(15f, 6f) - horizontalLineTo(9f) - verticalLineToRelative(2f) - horizontalLineToRelative(6f) - verticalLineTo(6f) - close() - } - } - -val Icons.Rounded.BatteryCharging0Bar - get() = materialIcon("Icons.Rounded.BatteryCharging0Bar") { - group( - scaleX = 0.26458333f, - scaleY = 0.26458333f, - ) { - materialPath { - moveTo(41.574219f, 7.5585938f) - curveTo(39.495479f, 7.5585937f, 37.794922f, 9.2591505f, 37.794922f, 11.337891f) - lineTo(37.794922f, 15.117188f) - lineTo(30.236328f, 15.117188f) - curveTo(28.157588f, 15.117187f, 26.457031f, 16.819697f, 26.457031f, 18.898438f) - lineTo(26.457031f, 79.369141f) - curveTo(26.457031f, 81.447881f, 28.157588f, 83.150391f, 30.236328f, 83.150391f) - lineTo(60.472656f, 83.150391f) - curveTo(62.551396f, 83.150391f, 64.251953f, 81.447881f, 64.251953f, 79.369141f) - lineTo(64.251953f, 18.898438f) - curveTo(64.251953f, 16.819697f, 62.551396f, 15.117188f, 60.472656f, 15.117188f) - lineTo(52.914062f, 15.117188f) - lineTo(52.914062f, 11.337891f) - curveTo(52.914063f, 9.2591505f, 51.213506f, 7.5585938f, 49.134766f, 7.5585938f) - lineTo(41.574219f, 7.5585938f) - close() - moveTo(34.015625f, 22.677734f) - lineTo(56.693359f, 22.677734f) - lineTo(56.693359f, 75.589844f) - lineTo(34.015625f, 75.589844f) - lineTo(34.015625f, 22.677734f) - close() - moveTo(47.253906f, 32.126953f) - curveTo(46.605486f, 32.112843f, 45.950535f, 32.41843f, 45.582031f, 33.109375f) - lineTo(35.490234f, 52.005859f) - curveTo(34.809919f, 53.290899f, 35.716123f, 54.802734f, 37.152344f, 54.802734f) - lineTo(41.574219f, 54.802734f) - lineTo(41.574219f, 68.03125f) - curveTo(41.574219f, 69.996604f, 44.219867f, 70.640241f, 45.126953f, 68.939453f) - lineTo(55.21875f, 50.041016f) - curveTo(55.899065f, 48.755976f, 54.955066f, 47.244141f, 53.556641f, 47.244141f) - lineTo(49.134766f, 47.244141f) - lineTo(49.134766f, 34.015625f) - curveTo(49.134766f, 32.848696f, 48.201598f, 32.147575f, 47.253906f, 32.126953f) - close() - } - } - } - -val Icons.Rounded.BatteryCharging1Bar - get() = materialIcon("Icons.Rounded.BatteryCharging1Bar") { - group( - scaleX = 0.26458333f, - scaleY = 0.26458333f, - ) { - materialPath { - moveTo(41.574219f, 7.5585938f) - curveTo(39.495479f, 7.5585937f, 37.794922f, 9.2591505f, 37.794922f, 11.337891f) - lineTo(37.794922f, 15.117188f) - lineTo(30.236328f, 15.117188f) - curveTo(28.157588f, 15.117187f, 26.457031f, 16.819697f, 26.457031f, 18.898438f) - lineTo(26.457031f, 79.369141f) - curveTo(26.457031f, 81.447881f, 28.157588f, 83.150391f, 30.236328f, 83.150391f) - lineTo(60.472656f, 83.150391f) - curveTo(62.551396f, 83.150391f, 64.251953f, 81.447881f, 64.251953f, 79.369141f) - lineTo(64.251953f, 18.898438f) - curveTo(64.251953f, 16.819697f, 62.551396f, 15.117188f, 60.472656f, 15.117188f) - lineTo(52.914062f, 15.117188f) - lineTo(52.914062f, 11.337891f) - curveTo(52.914063f, 9.2591505f, 51.213506f, 7.5585938f, 49.134766f, 7.5585938f) - lineTo(41.574219f, 7.5585938f) - close() - moveTo(34.015625f, 22.677734f) - lineTo(56.693359f, 22.677734f) - lineTo(56.693359f, 68.03125f) - lineTo(45.611328f, 68.03125f) - lineTo(45.126953f, 68.939453f) - curveTo(44.219867f, 70.640241f, 41.574219f, 69.996604f, 41.574219f, 68.03125f) - lineTo(34.015625f, 68.03125f) - lineTo(34.015625f, 22.677734f) - close() - moveTo(41.574219f, 68.03125f) - lineTo(45.611328f, 68.03125f) - lineTo(55.21875f, 50.041016f) - curveTo(55.899065f, 48.755976f, 54.955066f, 47.244141f, 53.556641f, 47.244141f) - lineTo(49.134766f, 47.244141f) - lineTo(49.134766f, 34.015625f) - curveTo(49.134766f, 32.050271f, 46.489118f, 31.408588f, 45.582031f, 33.109375f) - lineTo(35.490234f, 52.005859f) - curveTo(34.809919f, 53.290899f, 35.716123f, 54.802734f, 37.152344f, 54.802734f) - lineTo(41.574219f, 54.802734f) - lineTo(41.574219f, 68.03125f) - close() - } - } - } - -val Icons.Rounded.BatteryCharging2Bar - get() = materialIcon("Icons.Rounded.BatteryCharging2Bar") { - group( - scaleX = 0.26458333f, - scaleY = 0.26458333f, - ) { - materialPath { - moveTo(41.574219f, 7.5585938f) - curveTo(39.495479f, 7.5585937f, 37.794922f, 9.2591505f, 37.794922f, 11.337891f) - lineTo(37.794922f, 15.117188f) - lineTo(30.236328f, 15.117188f) - curveTo(28.157588f, 15.117187f, 26.457031f, 16.819697f, 26.457031f, 18.898438f) - lineTo(26.457031f, 79.369141f) - curveTo(26.457031f, 81.447881f, 28.157588f, 83.150391f, 30.236328f, 83.150391f) - lineTo(60.472656f, 83.150391f) - curveTo(62.551396f, 83.150391f, 64.251953f, 81.447881f, 64.251953f, 79.369141f) - lineTo(64.251953f, 18.898438f) - curveTo(64.251953f, 16.819697f, 62.551396f, 15.117188f, 60.472656f, 15.117188f) - lineTo(52.914062f, 15.117188f) - lineTo(52.914062f, 11.337891f) - curveTo(52.914063f, 9.2591505f, 51.213506f, 7.5585938f, 49.134766f, 7.5585938f) - lineTo(41.574219f, 7.5585938f) - close() - moveTo(34.015625f, 22.677734f) - lineTo(56.693359f, 22.677734f) - lineTo(56.693359f, 60.472656f) - lineTo(49.648438f, 60.472656f) - lineTo(45.126953f, 68.939453f) - curveTo(44.219867f, 70.640241f, 41.574219f, 69.996604f, 41.574219f, 68.03125f) - lineTo(41.574219f, 60.472656f) - lineTo(34.015625f, 60.472656f) - lineTo(34.015625f, 22.677734f) - close() - moveTo(41.574219f, 60.472656f) - lineTo(49.648438f, 60.472656f) - lineTo(55.21875f, 50.041016f) - curveTo(55.899065f, 48.755976f, 54.955066f, 47.244141f, 53.556641f, 47.244141f) - lineTo(49.134766f, 47.244141f) - lineTo(49.134766f, 34.015625f) - curveTo(49.134766f, 32.050271f, 46.489118f, 31.408588f, 45.582031f, 33.109375f) - lineTo(35.490234f, 52.005859f) - curveTo(34.809919f, 53.290899f, 35.716123f, 54.802734f, 37.152344f, 54.802734f) - lineTo(41.574219f, 54.802734f) - lineTo(41.574219f, 60.472656f) - close() - } - } - } - -val Icons.Rounded.BatteryCharging3Bar - get() = materialIcon("Icons.Rounded.BatteryCharging3Bar") { - group( - scaleX = 0.26458333f, - scaleY = 0.26458333f, - ) { - materialPath { - moveTo(41.574219f, 7.5585938f) - curveTo(39.495479f, 7.5585937f, 37.794922f, 9.2591505f, 37.794922f, 11.337891f) - lineTo(37.794922f, 15.117188f) - lineTo(30.236328f, 15.117188f) - curveTo(28.157588f, 15.117187f, 26.457031f, 16.819697f, 26.457031f, 18.898438f) - lineTo(26.457031f, 79.369141f) - curveTo(26.457031f, 81.447881f, 28.157588f, 83.150391f, 30.236328f, 83.150391f) - lineTo(60.472656f, 83.150391f) - curveTo(62.551396f, 83.150391f, 64.251953f, 81.447881f, 64.251953f, 79.369141f) - lineTo(64.251953f, 18.898438f) - curveTo(64.251953f, 16.819697f, 62.551396f, 15.117188f, 60.472656f, 15.117188f) - lineTo(52.914062f, 15.117188f) - lineTo(52.914062f, 11.337891f) - curveTo(52.914063f, 9.2591505f, 51.213506f, 7.5585938f, 49.134766f, 7.5585938f) - lineTo(41.574219f, 7.5585938f) - close() - moveTo(34.015625f, 22.677734f) - lineTo(56.693359f, 22.677734f) - lineTo(56.693359f, 52.914062f) - lineTo(53.683594f, 52.914062f) - lineTo(45.126953f, 68.939453f) - curveTo(44.219867f, 70.640241f, 41.574219f, 69.996604f, 41.574219f, 68.03125f) - lineTo(41.574219f, 54.802734f) - lineTo(37.152344f, 54.802734f) - curveTo(36.048819f, 54.802734f, 35.258483f, 53.910469f, 35.259766f, 52.914062f) - lineTo(34.015625f, 52.914062f) - lineTo(34.015625f, 22.677734f) - close() - moveTo(35.259766f, 52.914062f) - lineTo(53.683594f, 52.914062f) - lineTo(55.21875f, 50.041016f) - curveTo(55.899065f, 48.755976f, 54.955066f, 47.244141f, 53.556641f, 47.244141f) - lineTo(49.134766f, 47.244141f) - lineTo(49.134766f, 34.015625f) - curveTo(49.134766f, 32.050271f, 46.489118f, 31.408588f, 45.582031f, 33.109375f) - lineTo(35.490234f, 52.005859f) - curveTo(35.332642f, 52.303535f, 35.260152f, 52.613661f, 35.259766f, 52.914062f) - close() - } - } - } - -val Icons.Rounded.BatteryCharging4Bar - get() = materialIcon("Icons.Rounded.BatteryCharging4Bar") { - group( - scaleX = 0.26458333f, - scaleY = 0.26458333f, - ) { - materialPath { - moveTo(41.574219f, 7.5585938f) - curveTo(39.495479f, 7.5585937f, 37.794922f, 9.2591505f, 37.794922f, 11.337891f) - lineTo(37.794922f, 15.117188f) - lineTo(30.236328f, 15.117188f) - curveTo(28.157588f, 15.117187f, 26.457031f, 16.819697f, 26.457031f, 18.898438f) - lineTo(26.457031f, 79.369141f) - curveTo(26.457031f, 81.447881f, 28.157588f, 83.150391f, 30.236328f, 83.150391f) - lineTo(60.472656f, 83.150391f) - curveTo(62.551396f, 83.150391f, 64.251953f, 81.447881f, 64.251953f, 79.369141f) - lineTo(64.251953f, 18.898438f) - curveTo(64.251953f, 16.819697f, 62.551396f, 15.117188f, 60.472656f, 15.117188f) - lineTo(52.914062f, 15.117188f) - lineTo(52.914062f, 11.337891f) - curveTo(52.914063f, 9.2591505f, 51.213506f, 7.5585938f, 49.134766f, 7.5585938f) - lineTo(41.574219f, 7.5585938f) - close() - moveTo(34.015625f, 22.677734f) - lineTo(56.693359f, 22.677734f) - lineTo(56.693359f, 45.353516f) - lineTo(49.134766f, 45.353516f) - lineTo(49.134766f, 47.244141f) - lineTo(53.556641f, 47.244141f) - curveTo(54.955066f, 47.244141f, 55.899065f, 48.755976f, 55.21875f, 50.041016f) - lineTo(45.126953f, 68.939453f) - curveTo(44.219867f, 70.640241f, 41.574219f, 69.996604f, 41.574219f, 68.03125f) - lineTo(41.574219f, 54.802734f) - lineTo(37.152344f, 54.802734f) - curveTo(35.716123f, 54.802734f, 34.809919f, 53.290899f, 35.490234f, 52.005859f) - lineTo(39.042969f, 45.353516f) - lineTo(34.015625f, 45.353516f) - lineTo(34.015625f, 22.677734f) - close() - moveTo(39.042969f, 45.353516f) - lineTo(49.134766f, 45.353516f) - lineTo(49.134766f, 34.015625f) - curveTo(49.134766f, 32.050271f, 46.489118f, 31.408588f, 45.582031f, 33.109375f) - lineTo(39.042969f, 45.353516f) - close() - } - } - } - -val Icons.Rounded.BatteryCharging5Bar - get() = materialIcon("Icons.Rounded.BatteryCharging5Bar") { - group( - scaleX = 0.26458333f, - scaleY = 0.26458333f, - ) { - materialPath { - moveTo(41.574219f, 7.5585938f) - curveTo(39.495479f, 7.5585937f, 37.794922f, 9.2591505f, 37.794922f, 11.337891f) - lineTo(37.794922f, 15.117188f) - lineTo(30.236328f, 15.117188f) - curveTo(28.157588f, 15.117187f, 26.457031f, 16.819697f, 26.457031f, 18.898438f) - lineTo(26.457031f, 79.369141f) - curveTo(26.457031f, 81.447881f, 28.157588f, 83.150391f, 30.236328f, 83.150391f) - lineTo(60.472656f, 83.150391f) - curveTo(62.551396f, 83.150391f, 64.251953f, 81.447881f, 64.251953f, 79.369141f) - lineTo(64.251953f, 18.898438f) - curveTo(64.251953f, 16.819697f, 62.551396f, 15.117188f, 60.472656f, 15.117188f) - lineTo(52.914062f, 15.117188f) - lineTo(52.914062f, 11.337891f) - curveTo(52.914063f, 9.2591505f, 51.213506f, 7.5585938f, 49.134766f, 7.5585938f) - lineTo(41.574219f, 7.5585938f) - close() - moveTo(34.015625f, 22.677734f) - lineTo(56.693359f, 22.677734f) - lineTo(56.693359f, 37.794922f) - lineTo(49.134766f, 37.794922f) - lineTo(49.134766f, 47.244141f) - lineTo(53.556641f, 47.244141f) - curveTo(54.955066f, 47.244141f, 55.899065f, 48.755976f, 55.21875f, 50.041016f) - lineTo(45.126953f, 68.939453f) - curveTo(44.219867f, 70.640241f, 41.574219f, 69.996604f, 41.574219f, 68.03125f) - lineTo(41.574219f, 54.802734f) - lineTo(37.152344f, 54.802734f) - curveTo(35.716123f, 54.802734f, 34.809919f, 53.290899f, 35.490234f, 52.005859f) - lineTo(43.080078f, 37.794922f) - lineTo(34.015625f, 37.794922f) - lineTo(34.015625f, 22.677734f) - close() - moveTo(43.080078f, 37.794922f) - lineTo(49.134766f, 37.794922f) - lineTo(49.134766f, 34.015625f) - curveTo(49.134766f, 32.050271f, 46.489118f, 31.408588f, 45.582031f, 33.109375f) - lineTo(43.080078f, 37.794922f) - close() - } - } - } - -val Icons.Rounded.BatteryCharging6Bar - get() = materialIcon("Icons.Rounded.BatteryCharging6Bar") { - group( - scaleX = 0.26458333f, - scaleY = 0.26458333f, - ) { - materialPath { - moveTo(41.574219f, 7.5585938f) - curveTo(39.495479f, 7.5585937f, 37.794922f, 9.2591505f, 37.794922f, 11.337891f) - lineTo(37.794922f, 15.117188f) - lineTo(30.236328f, 15.117188f) - curveTo(28.157588f, 15.117187f, 26.457031f, 16.819697f, 26.457031f, 18.898438f) - lineTo(26.457031f, 79.369141f) - curveTo(26.457031f, 81.447881f, 28.157588f, 83.150391f, 30.236328f, 83.150391f) - lineTo(60.472656f, 83.150391f) - curveTo(62.551396f, 83.150391f, 64.251953f, 81.447881f, 64.251953f, 79.369141f) - lineTo(64.251953f, 18.898438f) - curveTo(64.251953f, 16.819697f, 62.551396f, 15.117188f, 60.472656f, 15.117188f) - lineTo(52.914062f, 15.117188f) - lineTo(52.914062f, 11.337891f) - curveTo(52.914063f, 9.2591505f, 51.213506f, 7.5585938f, 49.134766f, 7.5585938f) - lineTo(41.574219f, 7.5585938f) - close() - moveTo(34.015625f, 22.677734f) - lineTo(56.693359f, 22.677734f) - lineTo(56.693359f, 30.236328f) - lineTo(34.015625f, 30.236328f) - lineTo(34.015625f, 22.677734f) - close() - moveTo(47.253906f, 32.126953f) - curveTo(48.201598f, 32.147575f, 49.134766f, 32.848696f, 49.134766f, 34.015625f) - lineTo(49.134766f, 47.244141f) - lineTo(53.556641f, 47.244141f) - curveTo(54.955066f, 47.244141f, 55.899065f, 48.755976f, 55.21875f, 50.041016f) - lineTo(45.126953f, 68.939453f) - curveTo(44.219867f, 70.640241f, 41.574219f, 69.996604f, 41.574219f, 68.03125f) - lineTo(41.574219f, 54.802734f) - lineTo(37.152344f, 54.802734f) - curveTo(35.716123f, 54.802734f, 34.809919f, 53.290899f, 35.490234f, 52.005859f) - lineTo(45.582031f, 33.109375f) - curveTo(45.950535f, 32.41843f, 46.605486f, 32.112843f, 47.253906f, 32.126953f) - close() - } - } - } \ No newline at end of file diff --git a/core/base/src/main/java/de/mm20/launcher2/icons/Icons.kt b/core/base/src/main/java/de/mm20/launcher2/icons/Icons.kt index bc1553905..4f9e8af89 100644 --- a/core/base/src/main/java/de/mm20/launcher2/icons/Icons.kt +++ b/core/base/src/main/java/de/mm20/launcher2/icons/Icons.kt @@ -1,1908 +1,7 @@ package de.mm20.launcher2.icons -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.materialIcon -import androidx.compose.material.icons.materialPath -import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.unit.dp - -val Icons.Rounded.Pdf: ImageVector - get() = materialIcon("Icons.Rounded.Pdf") { - materialPath { - moveTo(11.129145f, 3.328324f) - curveTo(8.6213132f, 3.3999763f, 9.5656688f, 7.7995412f, 9.9955824f, 9.1752658f) - curveTo(9.9669215f, 9.2469181f, 9.5802228f, 11.696644f, 7.000739f, 15.89547f) - curveTo(7.000739f, 15.89547f, 1.985188f, 18.489173f, 3.1746167f, 20.438116f) - curveTo(4.1347578f, 21.957146f, 6.4999564f, 20.380906f, 8.5205521f, 16.611993f) - curveTo(8.5205521f, 16.611993f, 11.126568f, 15.694396f, 14.580212f, 15.436448f) - curveTo(14.580212f, 15.436448f, 20.113003f, 17.930845f, 20.858187f, 15.279709f) - curveTo(21.603372f, 12.642903f, 16.487507f, 13.216122f, 15.599018f, 13.488401f) - curveTo(15.599018f, 13.488401f, 12.675603f, 11.569238f, 12.016402f, 8.9037707f) - curveTo(12.016402f, 8.9037707f, 13.636976f, 3.2566717f, 11.129145f, 3.328324f) - close() - - moveTo(11.157134f, 4.2015868f) - curveTo(11.93098f, 4.2875695f, 11.157134f, 7.2115443f, 11.157134f, 7.2831966f) - curveTo(11.142804f, 7.2115443f, 10.626907f, 4.1442649f, 11.157134f, 4.2015868f) - moveTo(11.157134f, 10.681084f) - curveTo(11.200126f, 10.681084f, 11.828763f, 12.39962f, 13.863687f, 14.190928f) - curveTo(13.863687f, 14.190928f, 10.526593f, 14.850019f, 9.007564f, 15.50922f) - curveTo(9.007564f, 15.50922f, 10.440611f, 13.00262f, 11.157134f, 10.681084f) - close() - - moveTo(17.642229f, 14.515604f) - curveTo(18.690144f, 14.571358f, 20.077401f, 14.907787f, 20.012913f, 15.251718f) - curveTo(19.89827f, 15.724625f, 16.774564f, 14.563186f, 16.774564f, 14.563186f) - curveTo(16.982356f, 14.509446f, 17.292924f, 14.497019f, 17.642229f, 14.515604f) - close() - - moveTo(6.6564719f, 17.227756f) - curveTo(5.8969573f, 18.961742f, 4.6069915f, 20.066196f, 4.2773909f, 20.051866f) - curveTo(3.9477902f, 20.037535f, 5.2807473f, 17.757984f, 6.6564719f, 17.227756f) - close() - } - } - -val Icons.Rounded.WeatherCloud - get() = materialIcon("Icons.Rounded.WeatherCloud") { - materialPath { - moveTo(15.240234f, 6.953125f) - arcTo(4.2818656f, 4.2818656f, 0f, false, false, 11.722656f, 8.7949219f) - arcTo(3.8614116f, 3.8614116f, 0f, false, false, 9.2871094f, 7.9296875f) - arcTo(3.8614116f, 3.8614116f, 0f, false, false, 5.4257812f, 11.791016f) - arcTo(3.8614116f, 3.8614116f, 0f, false, false, 5.4335938f, 12.035156f) - arcTo(3.0096498f, 3.0096498f, 0f, false, false, 4.8671875f, 11.980469f) - arcTo(3.0096498f, 3.0096498f, 0f, false, false, 1.8574219f, 14.990234f) - arcTo(3.0096498f, 3.0096498f, 0f, false, false, 4.8671875f, 18f) - arcTo(3.0096498f, 3.0096498f, 0f, false, false, 4.9316406f, 18f) - lineTo(19.220703f, 18f) - lineTo(19.220703f, 17.998047f) - arcTo(2.5873528f, 2.5873528f, 0f, false, false, 21.742188f, 15.412109f) - arcTo(2.5873528f, 2.5873528f, 0f, false, false, 19.214844f, 12.826172f) - arcTo(4.2818656f, 4.2818656f, 0f, false, false, 19.523438f, 11.234375f) - arcTo(4.2818656f, 4.2818656f, 0f, false, false, 15.240234f, 6.953125f) - close() - } - } - -val Icons.Rounded.WeatherLightRain - get() = materialIcon("Icons.Rounded.WeatherLightRain") { - materialPath { - moveTo(7.7747158f, 16.298471f) - curveTo(7.7747158f, 16.298471f, 6.3149844f, 17.454229f, 6.1717047f, 18.266809f) - arcTo(1.237673f, 1.237673f, 0f, false, false, 7.1769077f, 19.699334f) - arcTo(1.237673f, 1.237673f, 0f, false, false, 8.6094328f, 18.696345f) - curveTo(8.7527126f, 17.883765f, 7.7747158f, 16.298471f, 7.7747158f, 16.298471f) - close() - moveTo(12.3092f, 16.298471f) - curveTo(12.3092f, 16.298471f, 10.849468f, 17.454229f, 10.706189f, 18.266809f) - arcTo(1.237673f, 1.237673f, 0f, false, false, 11.711392f, 19.699334f) - arcTo(1.237673f, 1.237673f, 0f, false, false, 13.143917f, 18.696345f) - curveTo(13.287198f, 17.883765f, 12.3092f, 16.298471f, 12.3092f, 16.298471f) - close() - moveTo(16.843685f, 16.298471f) - curveTo(16.843685f, 16.298471f, 15.383952f, 17.454229f, 15.240673f, 18.266809f) - arcTo(1.237673f, 1.237673f, 0f, false, false, 16.245876f, 19.699334f) - arcTo(1.237673f, 1.237673f, 0f, false, false, 17.678401f, 18.696345f) - curveTo(17.821682f, 17.883765f, 16.843685f, 16.298471f, 16.843685f, 16.298471f) - close() - } - } - -val Icons.Rounded.WeatherHail - get() = materialIcon("Icons.Rounded.WeatherHail") { - materialPath { - moveTo(7.4093667f, 16.258438f) - curveTo(6.6975174f, 16.235656f, 6.09006f, 16.947847f, 6.2243877f, 17.647106f) - curveTo(6.3138584f, 18.353739f, 7.1127111f, 18.841403f, 7.7821731f, 18.599057f) - curveTo(8.4660776f, 18.399808f, 8.8227568f, 17.533933f, 8.4775745f, 16.910825f) - curveTo(8.2792236f, 16.515419f, 7.8517895f, 16.254332f, 7.4093667f, 16.258438f) - close() - moveTo(11.935705f, 16.258438f) - curveTo(11.223856f, 16.235656f, 10.616399f, 16.947847f, 10.750726f, 17.647106f) - curveTo(10.840183f, 18.35367f, 11.639079f, 18.841563f, 12.308486f, 18.598897f) - curveTo(12.992113f, 18.399396f, 13.348471f, 17.533766f, 13.003396f, 16.910825f) - curveTo(12.805121f, 16.51558f, 12.377952f, 16.254528f, 11.935705f, 16.258438f) - close() - moveTo(16.462044f, 16.258438f) - curveTo(15.750195f, 16.235656f, 15.142737f, 16.947847f, 15.277065f, 17.647106f) - curveTo(15.366522f, 18.35367f, 16.165418f, 18.841563f, 16.834825f, 18.598897f) - curveTo(17.518452f, 18.399396f, 17.87481f, 17.533766f, 17.529735f, 16.910825f) - curveTo(17.331459f, 16.51558f, 16.904291f, 16.254528f, 16.462044f, 16.258438f) - close() - } - } - -val Icons.Rounded.WeatherSleetSnow - get() = materialIcon("Icons.Rounded.WeatherSleetSnow") { - materialPath { - moveTo(11.935705f, 16.258438f) - curveTo(11.223856f, 16.235656f, 10.616399f, 16.947847f, 10.750726f, 17.647106f) - curveTo(10.840183f, 18.35367f, 11.639079f, 18.841563f, 12.308486f, 18.598897f) - curveTo(12.992113f, 18.399396f, 13.348471f, 17.533766f, 13.003396f, 16.910825f) - curveTo(12.805121f, 16.51558f, 12.377952f, 16.254528f, 11.935705f, 16.258438f) - close() - } - } - -val Icons.Rounded.WeatherSleetRain - get() = materialIcon("Icons.Rounded.WeatherSleetRain") { - materialPath { - moveTo(6.347656f, 15.96875f) - curveTo(5.938469f, 15.896599f, 5.550666f, 16.166984f, 5.478515f, 16.576172f) - lineTo(5.044922f, 19.039062f) - curveTo(4.972771f, 19.44825f, 5.243156f, 19.836052f, 5.652344f, 19.908203f) - curveTo(6.061531f, 19.980354f, 6.449333f, 19.708016f, 6.521484f, 19.298828f) - lineTo(6.955078f, 16.837891f) - curveTo(7.0272288f, 16.428703f, 6.7568437f, 16.040901f, 6.347656f, 15.96875f) - close() - moveTo(18.347656f, 15.96875f) - curveTo(17.938469f, 15.896599f, 17.550666f, 16.166984f, 17.478516f, 16.576172f) - lineTo(17.044922f, 19.039062f) - curveTo(16.972771f, 19.44825f, 17.243156f, 19.836052f, 17.652344f, 19.908203f) - curveTo(18.061531f, 19.980354f, 18.449333f, 19.708016f, 18.521484f, 19.298828f) - lineTo(18.955078f, 16.837891f) - curveTo(19.027229f, 16.428703f, 18.756844f, 16.040901f, 18.347656f, 15.96875f) - close() - } - } - -val Icons.Rounded.WeatherRain - get() = materialIcon("Icons.Rounded.WeatherRain") { - materialPath { - moveTo(6.347656f, 15.96875f) - curveTo(5.938469f, 15.896599f, 5.550666f, 16.166984f, 5.478515f, 16.576172f) - lineTo(5.044922f, 19.039062f) - curveTo(4.972771f, 19.44825f, 5.243156f, 19.836052f, 5.652344f, 19.908203f) - curveTo(6.061531f, 19.980354f, 6.449333f, 19.708016f, 6.521484f, 19.298828f) - lineTo(6.955078f, 16.837891f) - curveTo(7.0272288f, 16.428703f, 6.7568437f, 16.040901f, 6.347656f, 15.96875f) - close() - moveTo(9.3476561f, 15.96875f) - curveTo(8.9384685f, 15.896599f, 8.5506663f, 16.166984f, 8.4785155f, 16.576172f) - lineTo(8.0449218f, 19.039062f) - curveTo(7.9727709f, 19.44825f, 8.243156f, 19.836052f, 8.6523436f, 19.908203f) - curveTo(9.0615312f, 19.980354f, 9.4493334f, 19.708016f, 9.5214842f, 19.298828f) - lineTo(9.955078f, 16.837891f) - curveTo(10.027229f, 16.428703f, 9.7568437f, 16.040901f, 9.3476561f, 15.96875f) - close() - moveTo(12.347656f, 15.96875f) - curveTo(11.938469f, 15.896599f, 11.550666f, 16.166984f, 11.478516f, 16.576172f) - lineTo(11.044922f, 19.039062f) - curveTo(10.972771f, 19.44825f, 11.243156f, 19.836052f, 11.652344f, 19.908203f) - curveTo(12.061531f, 19.980354f, 12.449333f, 19.708016f, 12.521484f, 19.298828f) - lineTo(12.955078f, 16.837891f) - curveTo(13.027229f, 16.428703f, 12.756844f, 16.040901f, 12.347656f, 15.96875f) - close() - moveTo(15.347656f, 15.96875f) - curveTo(14.938469f, 15.896599f, 14.550666f, 16.166984f, 14.478516f, 16.576172f) - lineTo(14.044922f, 19.039062f) - curveTo(13.972771f, 19.44825f, 14.243156f, 19.836052f, 14.652344f, 19.908203f) - curveTo(15.061531f, 19.980354f, 15.449333f, 19.708016f, 15.521484f, 19.298828f) - lineTo(15.955078f, 16.837891f) - curveTo(16.027229f, 16.428703f, 15.756844f, 16.040901f, 15.347656f, 15.96875f) - close() - moveTo(18.347656f, 15.96875f) - curveTo(17.938469f, 15.896599f, 17.550666f, 16.166984f, 17.478516f, 16.576172f) - lineTo(17.044922f, 19.039062f) - curveTo(16.972771f, 19.44825f, 17.243156f, 19.836052f, 17.652344f, 19.908203f) - curveTo(18.061531f, 19.980354f, 18.449333f, 19.708016f, 18.521484f, 19.298828f) - lineTo(18.955078f, 16.837891f) - curveTo(19.027229f, 16.428703f, 18.756844f, 16.040901f, 18.347656f, 15.96875f) - close() - } - } - -val Icons.Rounded.WeatherLightRainAnimatable - get() = materialIcon("Icons.Rounded.WeatherLightRainAnimatable") { - materialPath { - moveTo(4.828129f, 0f) - curveTo(4.828129f, 0f, 3.6375041f, 1.3394488f, 3.6375041f, 2.1332031f) - curveTo(3.6375041f, 2.7907671f, 4.1705651f, 3.3238281f, 4.828129f, 3.3238281f) - curveTo(5.485693f, 3.3238281f, 6.018754f, 2.7907671f, 6.018754f, 2.1332031f) - curveTo(6.018754f, 1.3394488f, 4.828129f, 0f, 4.828129f, 0f) - close() - moveTo(12.765629f, 0f) - curveTo(12.765629f, 0f, 11.575004f, 1.3394488f, 11.575004f, 2.1332031f) - curveTo(11.575004f, 2.7907671f, 12.108065f, 3.3238281f, 12.765629f, 3.3238281f) - curveTo(13.423193f, 3.3238281f, 13.956254f, 2.7907671f, 13.956254f, 2.1332031f) - curveTo(13.956254f, 1.3394488f, 12.765629f, 0f, 12.765629f, 0f) - close() - moveTo(20.703129f, 0f) - curveTo(20.703129f, 0f, 19.512504f, 1.3394488f, 19.512504f, 2.1332031f) - curveTo(19.512504f, 2.7907671f, 20.045565f, 3.3238281f, 20.703129f, 3.3238281f) - curveTo(21.360693f, 3.3238281f, 21.893754f, 2.7907671f, 21.893754f, 2.1332031f) - curveTo(21.893754f, 1.3394488f, 20.703129f, 0f, 20.703129f, 0f) - close() - moveTo(8.796879f, 3.96875f) - curveTo(8.796879f, 3.96875f, 7.606254f, 5.3081983f, 7.606254f, 6.101953f) - curveTo(7.606254f, 6.759517f, 8.1393151f, 7.292578f, 8.796879f, 7.292578f) - curveTo(9.4544429f, 7.292578f, 9.987504f, 6.759517f, 9.987504f, 6.101953f) - curveTo(9.987504f, 5.3081983f, 8.796879f, 3.96875f, 8.796879f, 3.96875f) - close() - moveTo(16.734379f, 3.96875f) - curveTo(16.734379f, 3.96875f, 16.659965f, 4.0524664f, 16.548344f, 4.1904419f) - curveTo(16.21348f, 4.6043688f, 15.543754f, 5.5066369f, 15.543754f, 6.101953f) - curveTo(15.54381f, 6.7411813f, 16.048624f, 7.2662972f, 16.687353f, 7.2915446f) - curveTo(16.70302f, 7.2921986f, 16.718698f, 7.2925434f, 16.734379f, 7.292578f) - curveTo(17.391943f, 7.292578f, 17.925004f, 6.759517f, 17.925004f, 6.101953f) - curveTo(17.925004f, 5.3081983f, 16.734379f, 3.96875f, 16.734379f, 3.96875f) - close() - moveTo(4.828129f, 7.9374999f) - curveTo(4.828129f, 7.9374999f, 3.6375041f, 9.2769485f, 3.6375041f, 10.070703f) - curveTo(3.6375041f, 10.728267f, 4.1705651f, 11.261328f, 4.828129f, 11.261328f) - curveTo(5.485693f, 11.261328f, 6.018754f, 10.728267f, 6.018754f, 10.070703f) - curveTo(6.018754f, 9.2769485f, 4.828129f, 7.9374999f, 4.828129f, 7.9374999f) - close() - moveTo(12.765629f, 7.9374999f) - curveTo(12.765629f, 7.9374999f, 12.691215f, 8.0212162f, 12.579594f, 8.1591919f) - curveTo(12.24473f, 8.5731188f, 11.575004f, 9.4753868f, 11.575004f, 10.070703f) - curveTo(11.57496f, 10.567853f, 11.883816f, 11.012697f, 12.349634f, 11.186397f) - curveTo(12.364344f, 11.191857f, 12.379161f, 11.197026f, 12.394075f, 11.2019f) - curveTo(12.499019f, 11.236323f, 12.608242f, 11.255976f, 12.718603f, 11.260295f) - curveTo(12.73427f, 11.260949f, 12.749948f, 11.261293f, 12.765629f, 11.261328f) - curveTo(13.423193f, 11.261328f, 13.956254f, 10.728267f, 13.956254f, 10.070703f) - curveTo(13.956254f, 9.2769485f, 12.765629f, 7.9374999f, 12.765629f, 7.9374999f) - close() - moveTo(20.703129f, 7.9374999f) - curveTo(20.703129f, 7.9374999f, 20.628715f, 8.0212162f, 20.517094f, 8.1591919f) - curveTo(20.18223f, 8.5731188f, 19.512504f, 9.4753868f, 19.512504f, 10.070703f) - curveTo(19.51256f, 10.709931f, 20.017374f, 11.235047f, 20.656103f, 11.260295f) - curveTo(20.67177f, 11.260949f, 20.687448f, 11.261293f, 20.703129f, 11.261328f) - curveTo(21.360693f, 11.261328f, 21.893754f, 10.728267f, 21.893754f, 10.070703f) - curveTo(21.893754f, 9.2769485f, 20.703129f, 7.9374999f, 20.703129f, 7.9374999f) - close() - moveTo(8.796879f, 11.90625f) - curveTo(8.796879f, 11.90625f, 7.606254f, 13.245698f, 7.606254f, 14.039453f) - curveTo(7.606254f, 14.697017f, 8.1393151f, 15.230078f, 8.796879f, 15.230078f) - curveTo(9.4544429f, 15.230078f, 9.987504f, 14.697017f, 9.987504f, 14.039453f) - curveTo(9.987504f, 13.245698f, 8.796879f, 11.90625f, 8.796879f, 11.90625f) - close() - moveTo(16.734379f, 11.90625f) - curveTo(16.734379f, 11.90625f, 15.543754f, 13.245698f, 15.543754f, 14.039453f) - curveTo(15.543754f, 14.697017f, 16.076815f, 15.230078f, 16.734379f, 15.230078f) - curveTo(17.391943f, 15.230078f, 17.925004f, 14.697017f, 17.925004f, 14.039453f) - curveTo(17.925004f, 13.245698f, 16.734379f, 11.90625f, 16.734379f, 11.90625f) - close() - moveTo(4.828129f, 15.875f) - curveTo(4.828129f, 15.875f, 3.6375041f, 17.214448f, 3.6375041f, 18.008203f) - curveTo(3.6375041f, 18.665767f, 4.1705651f, 19.198828f, 4.828129f, 19.198828f) - curveTo(5.485693f, 19.198828f, 6.018754f, 18.665767f, 6.018754f, 18.008203f) - curveTo(6.018754f, 17.214448f, 4.828129f, 15.875f, 4.828129f, 15.875f) - close() - moveTo(12.765629f, 15.875f) - curveTo(12.765629f, 15.875f, 11.575004f, 17.214448f, 11.575004f, 18.008203f) - curveTo(11.575004f, 18.665767f, 12.108065f, 19.198828f, 12.765629f, 19.198828f) - curveTo(13.423193f, 19.198828f, 13.956254f, 18.665767f, 13.956254f, 18.008203f) - curveTo(13.956254f, 17.214448f, 12.765629f, 15.875f, 12.765629f, 15.875f) - close() - moveTo(20.703129f, 15.875f) - curveTo(20.703129f, 15.875f, 19.512504f, 17.214448f, 19.512504f, 18.008203f) - curveTo(19.512504f, 18.665767f, 20.045565f, 19.198828f, 20.703129f, 19.198828f) - curveTo(21.360693f, 19.198828f, 21.893754f, 18.665767f, 21.893754f, 18.008203f) - curveTo(21.893754f, 17.214448f, 20.703129f, 15.875f, 20.703129f, 15.875f) - close() - } - } - - -val Icons.Rounded.WeatherHailAnimatable - get() = materialIcon("Icons.Rounded.WeatherHailAnimatable") { - materialPath { - moveTo(4.8281292f, 1.0583334f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 3.5971949f, 2.2892661f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 3.5201987f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 6.0585449f, 2.2892661f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 1.0583334f) - close() - moveTo(12.765629f, 1.0583334f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 11.534695f, 2.2892661f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 3.5201987f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 13.996045f, 2.2892661f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 1.0583334f) - close() - moveTo(20.703129f, 1.0583334f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 19.472195f, 2.2892661f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 3.5201987f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 21.933545f, 2.2892661f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 1.0583334f) - close() - moveTo(8.7968792f, 5.0270833f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 7.5659449f, 6.258016f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 8.7968792f, 7.4889487f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 10.027295f, 6.258016f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 8.7968792f, 5.0270833f) - close() - moveTo(16.734379f, 5.0270833f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 15.503445f, 6.258016f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 16.734379f, 7.4889487f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 17.964795f, 6.258016f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 16.734379f, 5.0270833f) - close() - moveTo(4.8281292f, 8.9958333f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 3.5971949f, 10.226766f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 11.457699f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 6.0585449f, 10.226766f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 8.9958333f) - close() - moveTo(12.765629f, 8.9958333f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 11.534695f, 10.226766f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 11.457699f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 13.996045f, 10.226766f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 8.9958333f) - close() - moveTo(20.703129f, 8.9958333f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 19.472195f, 10.226766f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 11.457699f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 21.933545f, 10.226766f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 8.9958333f) - close() - moveTo(8.7968792f, 12.964583f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 7.5659449f, 14.195516f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 8.7968792f, 15.426449f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 10.027295f, 14.195516f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 8.7968792f, 12.964583f) - close() - moveTo(16.734379f, 12.964583f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 15.503445f, 14.195516f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 16.734379f, 15.426449f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 17.964795f, 14.195516f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 16.734379f, 12.964583f) - close() - moveTo(4.8281292f, 16.933333f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 3.5971949f, 18.164266f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 19.395199f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 6.0585449f, 18.164266f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 4.8281292f, 16.933333f) - close() - moveTo(12.765629f, 16.933333f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 11.534695f, 18.164266f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 19.395199f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 13.996045f, 18.164266f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 12.765629f, 16.933333f) - close() - moveTo(20.703129f, 16.933333f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 19.472195f, 18.164266f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 19.395199f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 21.933545f, 18.164266f) - arcTo(1.2307138f, 1.2307138f, 0f, false, false, 20.703129f, 16.933333f) - close() - } - } - - -val Icons.Rounded.WeatherRainAnimatable - get() = materialIcon("Icons.Rounded.WeatherRainAnimatable") { - materialPath { - moveTo(4.828129f, 0.1133928f) - curveTo(4.41263f, 0.1133928f, 4.0777866f, 0.4477181f, 4.0777866f, 0.8632184f) - verticalLineTo(4.8634909f) - curveTo(4.0777866f, 5.278991f, 4.41263f, 5.6133161f, 4.828129f, 5.6133161f) - curveTo(5.243628f, 5.6133161f, 5.5779529f, 5.278991f, 5.5779529f, 4.8634909f) - verticalLineTo(0.8632184f) - curveTo(5.5779529f, 0.4477181f, 5.243628f, 0.1133928f, 4.828129f, 0.1133928f) - close() - moveTo(12.765629f, 0.1133928f) - curveTo(12.35013f, 0.1133928f, 12.015286f, 0.4477181f, 12.015286f, 0.8632184f) - verticalLineTo(4.8634909f) - curveTo(12.015286f, 5.278991f, 12.35013f, 5.6133161f, 12.765629f, 5.6133161f) - curveTo(13.181128f, 5.6133161f, 13.515453f, 5.278991f, 13.515453f, 4.8634909f) - verticalLineTo(0.8632184f) - curveTo(13.515453f, 0.4477181f, 13.181128f, 0.1133928f, 12.765629f, 0.1133928f) - close() - moveTo(20.703129f, 0.1133928f) - curveTo(20.28763f, 0.1133928f, 19.952786f, 0.4477181f, 19.952786f, 0.8632184f) - verticalLineTo(4.8634909f) - curveTo(19.952786f, 5.278991f, 20.28763f, 5.6133161f, 20.703129f, 5.6133161f) - curveTo(21.118628f, 5.6133161f, 21.452953f, 5.278991f, 21.452953f, 4.8634909f) - verticalLineTo(0.8632184f) - curveTo(21.452953f, 0.4477181f, 21.118628f, 0.1133928f, 20.703129f, 0.1133928f) - close() - moveTo(8.796879f, 4.0821433f) - curveTo(8.3813799f, 4.0821433f, 8.0465365f, 4.4164684f, 8.0465365f, 4.8319684f) - verticalLineTo(8.8322408f) - curveTo(8.0465365f, 9.247741f, 8.3813799f, 9.582066f, 8.796879f, 9.582066f) - curveTo(9.212378f, 9.582066f, 9.5467028f, 9.247741f, 9.5467028f, 8.8322408f) - verticalLineTo(4.8319684f) - curveTo(9.5467028f, 4.4164684f, 9.212378f, 4.0821433f, 8.796879f, 4.0821433f) - close() - moveTo(16.734379f, 4.0821433f) - curveTo(16.31888f, 4.0821433f, 15.984036f, 4.4164684f, 15.984036f, 4.8319684f) - verticalLineTo(8.8322408f) - curveTo(15.984036f, 9.247741f, 16.31888f, 9.582066f, 16.734379f, 9.582066f) - curveTo(17.149878f, 9.582066f, 17.484203f, 9.247741f, 17.484203f, 8.8322408f) - verticalLineTo(4.8319684f) - curveTo(17.484203f, 4.4164684f, 17.149878f, 4.0821433f, 16.734379f, 4.0821433f) - close() - moveTo(4.828129f, 8.0508932f) - curveTo(4.41263f, 8.0508932f, 4.0777866f, 8.3852183f, 4.0777866f, 8.8007184f) - verticalLineTo(12.800991f) - curveTo(4.0777866f, 13.216491f, 4.41263f, 13.550816f, 4.828129f, 13.550816f) - curveTo(5.243628f, 13.550816f, 5.5779529f, 13.216491f, 5.5779529f, 12.800991f) - verticalLineTo(8.8007184f) - curveTo(5.5779529f, 8.3852183f, 5.243628f, 8.0508932f, 4.828129f, 8.0508932f) - close() - moveTo(12.765629f, 8.0508932f) - curveTo(12.35013f, 8.0508932f, 12.015286f, 8.3852183f, 12.015286f, 8.8007184f) - verticalLineTo(12.800991f) - curveTo(12.015286f, 13.216491f, 12.35013f, 13.550816f, 12.765629f, 13.550816f) - curveTo(13.181128f, 13.550816f, 13.515453f, 13.216491f, 13.515453f, 12.800991f) - verticalLineTo(8.8007184f) - curveTo(13.515453f, 8.3852183f, 13.181128f, 8.0508932f, 12.765629f, 8.0508932f) - close() - moveTo(20.703129f, 8.0508932f) - curveTo(20.28763f, 8.0508932f, 19.952786f, 8.3852183f, 19.952786f, 8.8007184f) - verticalLineTo(12.800991f) - curveTo(19.952786f, 13.216491f, 20.28763f, 13.550816f, 20.703129f, 13.550816f) - curveTo(21.118628f, 13.550816f, 21.452953f, 13.216491f, 21.452953f, 12.800991f) - verticalLineTo(8.8007184f) - curveTo(21.452953f, 8.3852183f, 21.118628f, 8.0508932f, 20.703129f, 8.0508932f) - close() - moveTo(8.796879f, 12.019643f) - curveTo(8.3813799f, 12.019643f, 8.0465365f, 12.353968f, 8.0465365f, 12.769468f) - verticalLineTo(16.769741f) - curveTo(8.0465365f, 17.185241f, 8.3813799f, 17.519566f, 8.796879f, 17.519566f) - curveTo(9.212378f, 17.519566f, 9.5467028f, 17.185241f, 9.5467028f, 16.769741f) - verticalLineTo(12.769468f) - curveTo(9.5467028f, 12.353968f, 9.212378f, 12.019643f, 8.796879f, 12.019643f) - close() - moveTo(16.734379f, 12.019643f) - curveTo(16.31888f, 12.019643f, 15.984036f, 12.353968f, 15.984036f, 12.769468f) - verticalLineTo(16.769741f) - curveTo(15.984036f, 17.185241f, 16.31888f, 17.519566f, 16.734379f, 17.519566f) - curveTo(17.149878f, 17.519566f, 17.484203f, 17.185241f, 17.484203f, 16.769741f) - verticalLineTo(12.769468f) - curveTo(17.484203f, 12.353968f, 17.149878f, 12.019643f, 16.734379f, 12.019643f) - close() - moveTo(4.828129f, 15.988393f) - curveTo(4.41263f, 15.988393f, 4.0777866f, 16.322718f, 4.0777866f, 16.738218f) - verticalLineTo(20.738491f) - curveTo(4.0777866f, 21.153991f, 4.41263f, 21.488316f, 4.828129f, 21.488316f) - curveTo(5.243628f, 21.488316f, 5.5779529f, 21.153991f, 5.5779529f, 20.738491f) - verticalLineTo(16.738218f) - curveTo(5.5779529f, 16.322718f, 5.243628f, 15.988393f, 4.828129f, 15.988393f) - close() - moveTo(12.765629f, 15.988393f) - curveTo(12.35013f, 15.988393f, 12.015286f, 16.322718f, 12.015286f, 16.738218f) - verticalLineTo(20.738491f) - curveTo(12.015286f, 21.153991f, 12.35013f, 21.488316f, 12.765629f, 21.488316f) - curveTo(13.181128f, 21.488316f, 13.515453f, 21.153991f, 13.515453f, 20.738491f) - verticalLineTo(16.738218f) - curveTo(13.515453f, 16.322718f, 13.181128f, 15.988393f, 12.765629f, 15.988393f) - close() - moveTo(20.703129f, 15.988393f) - curveTo(20.28763f, 15.988393f, 19.952786f, 16.322718f, 19.952786f, 16.738218f) - verticalLineTo(20.738491f) - curveTo(19.952786f, 21.153991f, 20.28763f, 21.488316f, 20.703129f, 21.488316f) - curveTo(21.118628f, 21.488316f, 21.452953f, 21.153991f, 21.452953f, 20.738491f) - verticalLineTo(16.738218f) - curveTo(21.452953f, 16.322718f, 21.118628f, 15.988393f, 20.703129f, 15.988393f) - close() - - } - } - -val Icons.Rounded.WeatherSleetRainAnimatable - get() = materialIcon("Icons.Rounded.WeatherSleetRainAnimatable") { - materialPath { - moveTo(4.8281293f, 0.11317139f) - curveTo(4.4126296f, 0.11317139f, 4.0777866f, 0.44749611f, 4.0777866f, 0.86299642f) - verticalLineTo(4.8632689f) - curveTo(4.0777866f, 5.278769f, 4.4126296f, 5.6130941f, 4.8281293f, 5.6130941f) - curveTo(5.2436283f, 5.6130941f, 5.5779543f, 5.278769f, 5.5779543f, 4.8632689f) - verticalLineTo(0.86299642f) - curveTo(5.5779543f, 0.44749611f, 5.2436283f, 0.11317139f, 4.8281293f, 0.11317139f) - close() - moveTo(12.765629f, 0.11317139f) - curveTo(12.35013f, 0.11317139f, 12.015287f, 0.44749611f, 12.015287f, 0.86299642f) - verticalLineTo(4.8632689f) - curveTo(12.015287f, 5.278769f, 12.35013f, 5.6130941f, 12.765629f, 5.6130941f) - curveTo(13.181128f, 5.6130941f, 13.515454f, 5.278769f, 13.515454f, 4.8632689f) - verticalLineTo(0.86299642f) - curveTo(13.515454f, 0.44749611f, 13.181128f, 0.11317139f, 12.765629f, 0.11317139f) - close() - moveTo(20.703129f, 0.11317139f) - curveTo(20.287629f, 0.11317139f, 19.952787f, 0.44749611f, 19.952787f, 0.86299642f) - verticalLineTo(4.8632689f) - curveTo(19.952787f, 5.278769f, 20.287629f, 5.6130941f, 20.703129f, 5.6130941f) - curveTo(21.118628f, 5.6130941f, 21.452953f, 5.278769f, 21.452953f, 4.8632689f) - verticalLineTo(0.86299642f) - curveTo(21.452953f, 0.44749611f, 21.118628f, 0.11317139f, 20.703129f, 0.11317139f) - close() - moveTo(4.8281293f, 8.0506712f) - curveTo(4.4126296f, 8.0506712f, 4.0777866f, 8.3849963f, 4.0777866f, 8.8004964f) - verticalLineTo(12.800769f) - curveTo(4.0777866f, 13.216269f, 4.4126296f, 13.550594f, 4.8281293f, 13.550594f) - curveTo(5.2436283f, 13.550594f, 5.5779543f, 13.216269f, 5.5779543f, 12.800769f) - verticalLineTo(8.8004964f) - curveTo(5.5779543f, 8.3849963f, 5.2436283f, 8.0506712f, 4.8281293f, 8.0506712f) - close() - moveTo(12.765629f, 8.0506712f) - curveTo(12.35013f, 8.0506712f, 12.015287f, 8.3849963f, 12.015287f, 8.8004964f) - verticalLineTo(12.800769f) - curveTo(12.015287f, 13.216269f, 12.35013f, 13.550594f, 12.765629f, 13.550594f) - curveTo(13.181128f, 13.550594f, 13.515454f, 13.216269f, 13.515454f, 12.800769f) - verticalLineTo(8.8004964f) - curveTo(13.515454f, 8.3849963f, 13.181128f, 8.0506712f, 12.765629f, 8.0506712f) - close() - moveTo(20.703129f, 8.0506712f) - curveTo(20.287629f, 8.0506712f, 19.952787f, 8.3849963f, 19.952787f, 8.8004964f) - verticalLineTo(12.800769f) - curveTo(19.952787f, 13.216269f, 20.287629f, 13.550594f, 20.703129f, 13.550594f) - curveTo(21.118628f, 13.550594f, 21.452953f, 13.216269f, 21.452953f, 12.800769f) - verticalLineTo(8.8004964f) - curveTo(21.452953f, 8.3849963f, 21.118628f, 8.0506712f, 20.703129f, 8.0506712f) - close() - moveTo(4.8281293f, 15.988171f) - curveTo(4.4126296f, 15.988171f, 4.0777866f, 16.322496f, 4.0777866f, 16.737996f) - verticalLineTo(20.738269f) - curveTo(4.0777866f, 21.153769f, 4.4126296f, 21.488094f, 4.8281293f, 21.488094f) - curveTo(5.2436283f, 21.488094f, 5.5779543f, 21.153769f, 5.5779543f, 20.738269f) - verticalLineTo(16.737996f) - curveTo(5.5779543f, 16.322496f, 5.2436283f, 15.988171f, 4.8281293f, 15.988171f) - close() - moveTo(12.765629f, 15.988171f) - curveTo(12.35013f, 15.988171f, 12.015287f, 16.322496f, 12.015287f, 16.737996f) - verticalLineTo(20.738269f) - curveTo(12.015287f, 21.153769f, 12.35013f, 21.488094f, 12.765629f, 21.488094f) - curveTo(13.181128f, 21.488094f, 13.515454f, 21.153769f, 13.515454f, 20.738269f) - verticalLineTo(16.737996f) - curveTo(13.515454f, 16.322496f, 13.181128f, 15.988171f, 12.765629f, 15.988171f) - close() - moveTo(20.703129f, 15.988171f) - curveTo(20.287629f, 15.988171f, 19.952787f, 16.322496f, 19.952787f, 16.737996f) - verticalLineTo(20.738269f) - curveTo(19.952787f, 21.153769f, 20.287629f, 21.488094f, 20.703129f, 21.488094f) - curveTo(21.118628f, 21.488094f, 21.452953f, 21.153769f, 21.452953f, 20.738269f) - verticalLineTo(16.737996f) - curveTo(21.452953f, 16.322496f, 21.118628f, 15.988171f, 20.703129f, 15.988171f) - close() - } - } - -val Icons.Rounded.WeatherSleetSnowAnimatable - get() = materialIcon("Icons.Rounded.WeatherSleetSnowAnimatable") { - materialPath { - moveTo(8.796879f, 5.0270833f) - curveTo(7.8632606f, 4.9745641f, 7.2031834f, 6.1917513f, 7.7668228f, 6.9446931f) - curveTo(8.2182954f, 7.6432508f, 9.3919824f, 7.6787827f, 9.8262364f, 6.9412491f) - curveTo(10.250965f, 6.3103634f, 9.9588313f, 5.3184227f, 9.2064902f, 5.0975184f) - curveTo(9.0753076f, 5.0509595f, 8.9361544f, 5.0263693f, 8.796879f, 5.0270833f) - close() - moveTo(16.734379f, 5.0270833f) - curveTo(15.800761f, 4.974564f, 15.140683f, 6.1917512f, 15.704322f, 6.9446931f) - curveTo(16.155795f, 7.643251f, 17.329482f, 7.6787825f, 17.763736f, 6.9412491f) - curveTo(18.188465f, 6.3103636f, 17.896331f, 5.3184225f, 17.14399f, 5.0975184f) - curveTo(17.012808f, 5.0509596f, 16.873654f, 5.0263694f, 16.734379f, 5.0270833f) - close() - moveTo(8.796879f, 12.964583f) - curveTo(7.8632606f, 12.912064f, 7.2031834f, 14.129251f, 7.7668228f, 14.882193f) - curveTo(8.2182957f, 15.580751f, 9.3919822f, 15.616282f, 9.8262364f, 14.878749f) - curveTo(10.250965f, 14.247863f, 9.9588308f, 13.255923f, 9.2064902f, 13.035018f) - curveTo(9.0753077f, 12.988459f, 8.9361544f, 12.963869f, 8.796879f, 12.964583f) - close() - moveTo(16.734379f, 12.964583f) - curveTo(15.800761f, 12.912064f, 15.140683f, 14.129251f, 15.704322f, 14.882193f) - curveTo(16.155795f, 15.580751f, 17.329482f, 15.616282f, 17.763736f, 14.878749f) - curveTo(18.188465f, 14.247863f, 17.896331f, 13.255923f, 17.14399f, 13.035018f) - curveTo(17.012808f, 12.988459f, 16.873654f, 12.963869f, 16.734379f, 12.964583f) - close() - } - } - -val Icons.Rounded.WeatherFog - get() = materialIcon("Icons.Rounded.WeatherFog") { - materialPath { - moveTo(9.7558594f, 9.9609375f) - curveTo(9.2018594f, 9.9609375f, 8.7558594f, 10.406937f, 8.7558594f, 10.960938f) - curveTo(8.7558594f, 11.514938f, 9.2018594f, 11.960938f, 9.7558594f, 11.960938f) - lineTo(19.662109f, 11.960938f) - curveTo(20.216109f, 11.960937f, 20.662109f, 11.514938f, 20.662109f, 10.960938f) - curveTo(20.662109f, 10.406937f, 20.216109f, 9.9609375f, 19.662109f, 9.9609375f) - lineTo(9.7558594f, 9.9609375f) - close() - moveTo(2.390625f, 12.818359f) - curveTo(1.836625f, 12.818359f, 1.390625f, 13.264359f, 1.390625f, 13.818359f) - curveTo(1.390625f, 14.372359f, 1.836625f, 14.818359f, 2.390625f, 14.818359f) - lineTo(11.5625f, 14.818359f) - curveTo(12.1165f, 14.818359f, 12.5625f, 14.372359f, 12.5625f, 13.818359f) - curveTo(12.5625f, 13.264359f, 12.1165f, 12.818359f, 11.5625f, 12.818359f) - lineTo(2.390625f, 12.818359f) - close() - moveTo(14.847656f, 12.818359f) - curveTo(14.293656f, 12.818359f, 13.847656f, 13.264359f, 13.847656f, 13.818359f) - curveTo(13.847656f, 14.372359f, 14.293656f, 14.818359f, 14.847656f, 14.818359f) - lineTo(21.183594f, 14.818359f) - curveTo(21.737594f, 14.818359f, 22.183594f, 14.372359f, 22.183594f, 13.818359f) - curveTo(22.183594f, 13.264359f, 21.737594f, 12.818359f, 21.183594f, 12.818359f) - lineTo(14.847656f, 12.818359f) - close() - } - } - -val Icons.Rounded.NotificationBadge - get() = materialIcon("Icons.Rounded.Badge") { - materialPath { - moveTo(11.826172f, 2.0507812f) - curveTo(9.3350327f, 2.0955476f, 6.8902426f, 3.0711501f, 5.03125f, 4.8867188f) - curveTo(2.0568619f, 7.7916288f, 1.1976573f, 12.247433f, 2.8769531f, 16.050781f) - curveTo(4.5562487f, 19.854128f, 8.4275333f, 22.217552f, 12.578125f, 21.976562f) - arcTo(1f, 1f, 0f, false, false, 13.517578f, 20.921875f) - arcTo(1f, 1f, 0f, false, false, 12.462891f, 19.980469f) - curveTo(9.1386756f, 20.173477f, 6.0519814f, 18.28634f, 4.7070312f, 15.240234f) - curveTo(3.3620806f, 12.194127f, 4.0474958f, 8.6429527f, 6.4296875f, 6.3164062f) - curveTo(8.8118791f, 3.9898597f, 12.379106f, 3.3881285f, 15.392578f, 4.8046875f) - curveTo(18.406051f, 6.2212464f, 20.218777f, 9.3531497f, 19.947266f, 12.671875f) - arcTo(1f, 1f, 0f, false, false, 20.861328f, 13.748047f) - arcTo(1f, 1f, 0f, false, false, 21.941406f, 12.833984f) - curveTo(22.11091f, 10.762115f, 21.627235f, 8.7461001f, 20.630859f, 7.0253906f) - curveTo(19.634483f, 5.3046802f, 18.125441f, 3.8804465f, 16.244141f, 2.9960938f) - curveTo(14.833165f, 2.332829f, 13.320855f, 2.0239214f, 11.826172f, 2.0507812f) - close() - moveTo(18f, 14f) - arcTo(4f, 4f, 0f, false, false, 14f, 18f) - arcTo(4f, 4f, 0f, false, false, 18f, 22f) - arcTo(4f, 4f, 0f, false, false, 22f, 18f) - arcTo(4f, 4f, 0f, false, false, 18f, 14f) - close() - } - } - -val Icons.Rounded.GitHub - get() = materialIcon("Icons.Rounded.GitHub") { - materialPath { - moveTo(12f, 2f) - arcTo(10f, 10f, 0f, false, false, 2f, 12f) - curveTo(2f, 16.42f, 4.87f, 20.17f, 8.84f, 21.5f) - curveTo(9.34f, 21.58f, 9.5f, 21.27f, 9.5f, 21f) - curveTo(9.5f, 20.77f, 9.5f, 20.14f, 9.5f, 19.31f) - curveTo(6.73f, 19.91f, 6.14f, 17.97f, 6.14f, 17.97f) - curveTo(5.68f, 16.81f, 5.03f, 16.5f, 5.03f, 16.5f) - curveTo(4.12f, 15.88f, 5.1f, 15.9f, 5.1f, 15.9f) - curveTo(6.1f, 15.97f, 6.63f, 16.93f, 6.63f, 16.93f) - curveTo(7.5f, 18.45f, 8.97f, 18f, 9.54f, 17.76f) - curveTo(9.63f, 17.11f, 9.89f, 16.67f, 10.17f, 16.42f) - curveTo(7.95f, 16.17f, 5.62f, 15.31f, 5.62f, 11.5f) - curveTo(5.62f, 10.39f, 6f, 9.5f, 6.65f, 8.79f) - curveTo(6.55f, 8.54f, 6.2f, 7.5f, 6.75f, 6.15f) - curveTo(6.75f, 6.15f, 7.59f, 5.88f, 9.5f, 7.17f) - curveTo(10.29f, 6.95f, 11.15f, 6.84f, 12f, 6.84f) - curveTo(12.85f, 6.84f, 13.71f, 6.95f, 14.5f, 7.17f) - curveTo(16.41f, 5.88f, 17.25f, 6.15f, 17.25f, 6.15f) - curveTo(17.8f, 7.5f, 17.45f, 8.54f, 17.35f, 8.79f) - curveTo(18f, 9.5f, 18.38f, 10.39f, 18.38f, 11.5f) - curveTo(18.38f, 15.32f, 16.04f, 16.16f, 13.81f, 16.41f) - curveTo(14.17f, 16.72f, 14.5f, 17.33f, 14.5f, 18.26f) - curveTo(14.5f, 19.6f, 14.5f, 20.68f, 14.5f, 21f) - curveTo(14.5f, 21.27f, 14.66f, 21.59f, 15.17f, 21.5f) - curveTo(19.14f, 20.16f, 22f, 16.42f, 22f, 12f) - arcTo(10f, 10f, 0f, false, false, 12f, 2f) - close() - } - } - -val Icons.Rounded.Telegram - get() = materialIcon("Icons.Rounded.Telegram") { - materialPath { - moveTo(9.78f, 18.65f) - lineTo(10.06f, 14.42f) - lineTo(17.74f, 7.5f) - curveTo(18.08f, 7.19f, 17.67f, 7.04f, 17.22f, 7.31f) - lineTo(7.74f, 13.3f) - lineTo(3.64f, 12f) - curveTo(2.76f, 11.75f, 2.75f, 11.14f, 3.84f, 10.7f) - lineTo(19.81f, 4.54f) - curveTo(20.54f, 4.21f, 21.24f, 4.72f, 20.96f, 5.84f) - lineTo(18.24f, 18.65f) - curveTo(18.05f, 19.56f, 17.5f, 19.78f, 16.74f, 19.36f) - lineTo(12.6f, 16.3f) - lineTo(10.61f, 18.23f) - curveTo(10.38f, 18.46f, 10.19f, 18.65f, 9.78f, 18.65f) - close() - } - } - -val Icons.Rounded.Signal - get() = materialIcon("Icons.Rounded.Signal") { - materialPath { - moveTo(11.355945f, 1.9820878f) - curveTo(10.0436f, 2.0655696f, 8.7649581f, 2.4055267f, 7.586184f, 2.9832267f) - lineTo(8.2563273f, 4.1457871f) - curveTo(9.2280638f, 3.6816254f, 10.280688f, 3.4041485f, 11.355945f, 3.3240053f) - close() - moveToRelative(1.338656f, 0.00326f) - verticalLineToRelative(1.3419206f) - curveToRelative(1.068577f, 0.083487f, 2.116547f, 0.3673228f, 3.084943f, 0.8348259f) - lineTo(16.451317f, 3.0011655f) - curveTo(15.275885f, 2.4201272f, 13.996929f, 2.075513f, 12.694601f, 1.985352f) - close() - moveTo(6.4236234f, 3.6517428f) - curveTo(5.3316725f, 4.3797082f, 4.3928304f, 5.3186302f, 3.6615236f, 6.4105816f) - lineTo(4.824084f, 7.080725f) - curveTo(5.4318345f, 6.1891319f, 6.2021737f, 5.4220536f, 7.0937673f, 4.8143031f) - close() - moveToRelative(11.1869936f, 0.022829f) - lineToRelative(-0.671774f, 1.1625603f) - curveToRelative(0.768041f, 0.5276096f, 1.446087f, 1.1791914f, 2.010431f, 1.9305341f) - curveToRelative(0.08349f, 0.1068682f, 0.162887f, 0.2207222f, 0.239686f, 0.3342566f) - lineTo(20.35152f, 6.4301481f) - curveTo(20.244661f, 6.2698614f, 20.134061f, 6.1125345f, 20.020525f, 5.9589279f) - curveTo(19.345984f, 5.0673347f, 18.532265f, 4.29568f, 17.610617f, 3.6745718f) - close() - moveToRelative(-5.613878f, 0.9783103f) - curveToRelative(-1.312345f, 0f, -2.6018667f, 0.3544746f, -3.7338895f, 1.0223357f) - curveTo(7.1341648f, 6.3397372f, 6.2036973f, 7.2983832f, 5.5692314f, 8.4471004f) - curveTo(4.934759f, 9.5991592f, 4.6194134f, 10.894733f, 4.6561405f, 12.207079f) - curveToRelative(0.036733f, 1.312344f, 0.4255131f, 2.590922f, 1.1234279f, 3.702908f) - lineToRelative(-0.7060149f, 3.0132f) - lineToRelative(3.0131998f, -0.706014f) - curveToRelative(0.96506f, 0.604412f, 2.0572737f, 0.982235f, 3.1892957f, 1.092448f) - curveToRelative(1.132023f, 0.113534f, 2.277329f, -0.03945f, 3.342565f, -0.443502f) - curveToRelative(1.061898f, -0.407396f, 2.016809f, -1.056501f, 2.788188f, -1.894666f) - curveToRelative(0.771379f, -0.838162f, 1.334481f, -1.842907f, 1.651716f, -2.938196f) - curveToRelative(0.313885f, -1.091951f, 0.371731f, -2.246725f, 0.164684f, -3.365392f) - curveTo(19.019505f, 9.5458598f, 18.554503f, 8.4896596f, 17.866609f, 7.5780306f) - curveTo(17.18205f, 6.6697396f, 16.29754f, 5.9316859f, 15.275713f, 5.4241143f) - curveTo(14.257226f, 4.9165459f, 13.135439f, 4.6528786f, 11.996739f, 4.6528786f) - close() - moveTo(2.9897496f, 7.5682475f) - curveTo(2.4087114f, 8.7503597f, 2.068921f, 10.033896f, 1.9820886f, 11.3429f) - horizontalLineTo(3.3240061f) - curveTo(3.4041494f, 10.267647f, 3.6848069f, 9.2150962f, 4.15231f, 8.2400215f) - close() - moveToRelative(18.0302834f, 0.024458f) - lineToRelative(-1.16256f, 0.6701438f) - curveToRelative(0.323915f, 0.6812174f, 0.560951f, 1.4091759f, 0.697863f, 2.1571767f) - curveToRelative(0.05676f, 0.307227f, 0.09728f, 0.615661f, 0.120659f, 0.922874f) - horizontalLineToRelative(1.341916f) - curveTo(21.991089f, 10.952202f, 21.944564f, 10.564438f, 21.874425f, 10.177078f) - curveTo(21.707451f, 9.2788057f, 21.42075f, 8.4074936f, 21.020033f, 7.5927055f) - close() - moveTo(1.9853497f, 12.681556f) - curveToRelative(0.076805f, 1.158739f, 0.35762f, 2.293786f, 0.8217818f, 3.352348f) - lineTo(4.2256834f, 15.909985f) - curveTo(3.72145f, 14.901518f, 3.4141515f, 13.8069f, 3.3240061f, 12.681556f) - close() - moveToRelative(18.6906443f, 0f) - curveToRelative(-0.04676f, 0.584377f, -0.154404f, 1.16238f, -0.31469f, 1.726721f) - curveToRelative(-0.133562f, 0.464165f, -0.306586f, 0.914331f, -0.513614f, 1.348439f) - lineToRelative(1.16256f, 0.671774f) - curveToRelative(0.260467f, -0.52761f, 0.473908f, -1.079066f, 0.637534f, -1.650086f) - curveToRelative(0.197013f, -0.684556f, 0.320115f, -1.388915f, 0.366866f, -2.096848f) - close() - moveToRelative(-1.500078f, 4.23446f) - curveToRelative(-0.23374f, 0.343946f, -0.490735f, 0.667833f, -0.771236f, 0.975049f) - curveToRelative(-0.444125f, 0.480859f, -0.937991f, 0.907665f, -1.475619f, 1.278328f) - lineToRelative(0.670143f, 1.16256f) - curveToRelative(0.651163f, -0.437449f, 1.252682f, -0.954911f, 1.790309f, -1.535949f) - curveToRelative(0.347287f, -0.380679f, 0.665124f, -0.782417f, 0.948963f, -1.209845f) - close() - moveTo(4.4930885f, 17.229075f) - lineTo(3.0875808f, 17.352994f) - lineTo(2.3701523f, 20.421631f) - curveToRelative(-0.1703202f, 0.721289f, 0.4803266f, 1.371997f, 1.2049538f, 1.201693f) - lineToRelative(3.1925571f, -0.746777f) - lineToRelative(0.3896942f, -1.465838f) - lineToRelative(-3.3621312f, 0.787542f) - close() - moveToRelative(11.2766725f, 2.612092f) - curveToRelative(-0.220395f, 0.103523f, -0.44307f, 0.20014f, -0.670144f, 0.286969f) - curveToRelative(-0.774716f, 0.297194f, -1.583548f, 0.477808f, -2.405016f, 0.544593f) - verticalLineToRelative(1.34192f) - curveToRelative(0.981754f, -0.07011f, 1.952802f, -0.280304f, 2.881128f, -0.634272f) - curveToRelative(0.293847f, -0.113525f, 0.581966f, -0.238027f, 0.865806f, -0.37828f) - close() - moveToRelative(-7.3634259f, 0.07989f) - lineToRelative(-0.3505616f, 1.309307f) - curveToRelative(0.9383444f, 0.400717f, 1.934383f, 0.658013f, 2.9528705f, 0.758191f) - curveToRelative(0.116892f, 0.01325f, 0.230431f, 0.01924f, 0.347301f, 0.02935f) - verticalLineToRelative(-1.341911f) - curveToRelative(-0.07345f, -0.0066f, -0.143489f, -0.01456f, -0.213599f, -0.02119f) - curveToRelative(-0.948358f, -0.0935f, -1.8711298f, -0.339697f, -2.7360109f, -0.733734f) - close() - } - } - -val Icons.Rounded.Fdroid - get() = materialIcon("Icons.Rounded.Fdroid") { - materialPath { - moveTo(4.4570312f, 3.6269531f) - arcTo(0.44109249f, 0.44109249f, 0f, false, false, 4.1757812f, 3.71875f) - arcTo(0.44109249f, 0.44109249f, 0f, false, false, 4.0957031f, 4.3378906f) - lineTo(5.3691406f, 5.984375f) - curveTo(5.3240789f, 6.102208f, 5.2949219f, 6.2272726f, 5.2949219f, 6.3613281f) - lineTo(5.2949219f, 6.5507812f) - lineTo(5.2949219f, 7.4199219f) - lineTo(5.2949219f, 7.7714844f) - lineTo(5.2949219f, 8.640625f) - lineTo(5.2949219f, 8.8300781f) - curveTo(5.2949219f, 9.4165531f, 5.7670378f, 9.8886719f, 6.3535156f, 9.8886719f) - lineTo(17.646484f, 9.8886719f) - curveTo(18.232962f, 9.8886719f, 18.705078f, 9.4165531f, 18.705078f, 8.8300781f) - lineTo(18.705078f, 8.640625f) - lineTo(18.705078f, 6.5507812f) - lineTo(18.705078f, 6.3613281f) - curveTo(18.705078f, 6.2272726f, 18.675921f, 6.102208f, 18.630859f, 5.984375f) - lineTo(19.904297f, 4.3378906f) - arcTo(0.44109249f, 0.44109249f, 0f, false, false, 19.824219f, 3.71875f) - arcTo(0.44109249f, 0.44109249f, 0f, false, false, 19.566406f, 3.6269531f) - arcTo(0.44109249f, 0.44109249f, 0f, false, false, 19.207031f, 3.796875f) - lineTo(17.990234f, 5.3710938f) - curveTo(17.881129f, 5.3332803f, 17.768779f, 5.3027344f, 17.646484f, 5.3027344f) - lineTo(6.3535156f, 5.3027344f) - curveTo(6.2312214f, 5.3027344f, 6.1188708f, 5.3332803f, 6.0097656f, 5.3710938f) - lineTo(4.7929688f, 3.796875f) - arcTo(0.44109249f, 0.44109249f, 0f, false, false, 4.4570312f, 3.6269531f) - close() - moveTo(8.5664062f, 6.625f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 8.6035156f, 6.625f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 9.7949219f, 7.8164062f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 8.6035156f, 9.0078125f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 7.4121094f, 7.8164062f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 8.5664062f, 6.625f) - close() - moveTo(15.447266f, 6.625f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 15.484375f, 6.625f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 16.675781f, 7.8164062f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 15.484375f, 9.0078125f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 14.292969f, 7.8164062f) - arcTo(1.1909523f, 1.1909465f, 0f, false, true, 15.447266f, 6.625f) - close() - moveTo(6.3535156f, 10.242188f) - curveTo(5.7670378f, 10.242188f, 5.2949219f, 10.714306f, 5.2949219f, 11.300781f) - lineTo(5.2949219f, 11.572266f) - lineTo(5.2949219f, 13.771484f) - lineTo(5.2949219f, 15.888672f) - lineTo(5.2949219f, 18.087891f) - lineTo(5.2949219f, 18.359375f) - curveTo(5.2949219f, 18.94585f, 5.7670378f, 19.417969f, 6.3535156f, 19.417969f) - lineTo(17.646484f, 19.417969f) - curveTo(18.232962f, 19.417969f, 18.705078f, 18.94585f, 18.705078f, 18.359375f) - lineTo(18.705078f, 18.087891f) - lineTo(18.705078f, 11.572266f) - lineTo(18.705078f, 11.300781f) - curveTo(18.705078f, 10.714306f, 18.232962f, 10.242187f, 17.646484f, 10.242188f) - lineTo(6.3535156f, 10.242188f) - close() - } - } - -val Icons.Rounded.Wikipedia - get() = materialIcon("Icons.Rounded.Wikipedia") { - materialPath { - moveTo(14.97f, 18.95f) - lineTo(12.41f, 12.92f) - curveTo(11.39f, 14.91f, 10.27f, 17f, 9.31f, 18.95f) - curveTo(9.3f, 18.96f, 8.84f, 18.95f, 8.84f, 18.95f) - curveTo(7.37f, 15.5f, 5.85f, 12.1f, 4.37f, 8.68f) - curveTo(4.03f, 7.84f, 2.83f, 6.5f, 2f, 6.5f) - curveTo(2f, 6.4f, 2f, 6.18f, 2f, 6.05f) - horizontalLineTo(7.06f) - verticalLineTo(6.5f) - curveTo(6.46f, 6.5f, 5.44f, 6.9f, 5.7f, 7.55f) - curveTo(6.42f, 9.09f, 8.94f, 15.06f, 9.63f, 16.58f) - curveTo(10.1f, 15.64f, 11.43f, 13.16f, 12f, 12.11f) - curveTo(11.55f, 11.23f, 10.13f, 7.93f, 9.71f, 7.11f) - curveTo(9.39f, 6.57f, 8.58f, 6.5f, 7.96f, 6.5f) - curveTo(7.96f, 6.35f, 7.97f, 6.25f, 7.96f, 6.06f) - lineTo(12.42f, 6.07f) - verticalLineTo(6.47f) - curveTo(11.81f, 6.5f, 11.24f, 6.71f, 11.5f, 7.29f) - curveTo(12.1f, 8.53f, 12.45f, 9.42f, 13f, 10.57f) - curveTo(13.17f, 10.23f, 14.07f, 8.38f, 14.5f, 7.41f) - curveTo(14.76f, 6.76f, 14.37f, 6.5f, 13.29f, 6.5f) - curveTo(13.3f, 6.38f, 13.3f, 6.17f, 13.3f, 6.07f) - curveTo(14.69f, 6.06f, 16.78f, 6.06f, 17.15f, 6.05f) - verticalLineTo(6.47f) - curveTo(16.44f, 6.5f, 15.71f, 6.88f, 15.33f, 7.46f) - lineTo(13.5f, 11.3f) - curveTo(13.68f, 11.81f, 15.46f, 15.76f, 15.65f, 16.2f) - lineTo(19.5f, 7.37f) - curveTo(19.2f, 6.65f, 18.34f, 6.5f, 18f, 6.5f) - curveTo(18f, 6.37f, 18f, 6.2f, 18f, 6.05f) - lineTo(22f, 6.08f) - verticalLineTo(6.1f) - lineTo(22f, 6.5f) - curveTo(21.12f, 6.5f, 20.57f, 7f, 20.25f, 7.75f) - curveTo(19.45f, 9.54f, 17f, 15.24f, 15.4f, 18.95f) - curveTo(15.4f, 18.95f, 14.97f, 18.95f, 14.97f, 18.95f) - close() - } - } - -val Icons.Rounded.WhatsApp - get() = materialIcon("Icons.Rounded.WhatsApp") { - materialPath { - moveTo(12.04f, 2f) - curveTo(6.58f, 2f, 2.13f, 6.45f, 2.13f, 11.91f) - curveTo(2.13f, 13.66f, 2.59f, 15.36f, 3.45f, 16.86f) - lineTo(2.05f, 22f) - lineTo(7.3f, 20.62f) - curveTo(8.75f, 21.41f, 10.38f, 21.83f, 12.04f, 21.83f) - curveTo(17.5f, 21.83f, 21.95f, 17.38f, 21.95f, 11.92f) - curveTo(21.95f, 9.27f, 20.92f, 6.78f, 19.05f, 4.91f) - curveTo(17.18f, 3.03f, 14.69f, 2f, 12.04f, 2f) - moveTo(12.05f, 3.67f) - curveTo(14.25f, 3.67f, 16.31f, 4.53f, 17.87f, 6.09f) - curveTo(19.42f, 7.65f, 20.28f, 9.72f, 20.28f, 11.92f) - curveTo(20.28f, 16.46f, 16.58f, 20.15f, 12.04f, 20.15f) - curveTo(10.56f, 20.15f, 9.11f, 19.76f, 7.85f, 19f) - lineTo(7.55f, 18.83f) - lineTo(4.43f, 19.65f) - lineTo(5.26f, 16.61f) - lineTo(5.06f, 16.29f) - curveTo(4.24f, 15f, 3.8f, 13.47f, 3.8f, 11.91f) - curveTo(3.81f, 7.37f, 7.5f, 3.67f, 12.05f, 3.67f) - moveTo(8.53f, 7.33f) - curveTo(8.37f, 7.33f, 8.1f, 7.39f, 7.87f, 7.64f) - curveTo(7.65f, 7.89f, 7f, 8.5f, 7f, 9.71f) - curveTo(7f, 10.93f, 7.89f, 12.1f, 8f, 12.27f) - curveTo(8.14f, 12.44f, 9.76f, 14.94f, 12.25f, 16f) - curveTo(12.84f, 16.27f, 13.3f, 16.42f, 13.66f, 16.53f) - curveTo(14.25f, 16.72f, 14.79f, 16.69f, 15.22f, 16.63f) - curveTo(15.7f, 16.56f, 16.68f, 16.03f, 16.89f, 15.45f) - curveTo(17.1f, 14.87f, 17.1f, 14.38f, 17.04f, 14.27f) - curveTo(16.97f, 14.17f, 16.81f, 14.11f, 16.56f, 14f) - curveTo(16.31f, 13.86f, 15.09f, 13.26f, 14.87f, 13.18f) - curveTo(14.64f, 13.1f, 14.5f, 13.06f, 14.31f, 13.3f) - curveTo(14.15f, 13.55f, 13.67f, 14.11f, 13.53f, 14.27f) - curveTo(13.38f, 14.44f, 13.24f, 14.46f, 13f, 14.34f) - curveTo(12.74f, 14.21f, 11.94f, 13.95f, 11f, 13.11f) - curveTo(10.26f, 12.45f, 9.77f, 11.64f, 9.62f, 11.39f) - curveTo(9.5f, 11.15f, 9.61f, 11f, 9.73f, 10.89f) - curveTo(9.84f, 10.78f, 10f, 10.6f, 10.1f, 10.45f) - curveTo(10.23f, 10.31f, 10.27f, 10.2f, 10.35f, 10.04f) - curveTo(10.43f, 9.87f, 10.39f, 9.73f, 10.33f, 9.61f) - curveTo(10.27f, 9.5f, 9.77f, 8.26f, 9.56f, 7.77f) - curveTo(9.36f, 7.29f, 9.16f, 7.35f, 9f, 7.34f) - curveTo(8.86f, 7.34f, 8.7f, 7.33f, 8.53f, 7.33f) - close() - } - } - -val Icons.Rounded.Rain - get() = materialIcon("Icons.Rounded.Rain") { - materialPath { - moveTo(13.95f, 21.9f) - quadToRelative(-0.375f, 0.2f, -0.762f, 0.062f) - quadToRelative(-0.388f, -0.137f, -0.588f, -0.512f) - lineToRelative(-1.5f, -3f) - quadToRelative(-0.2f, -0.375f, -0.062f, -0.762f) - quadToRelative(0.137f, -0.388f, 0.512f, -0.588f) - quadToRelative(0.375f, -0.2f, 0.762f, -0.062f) - quadToRelative(0.388f, 0.137f, 0.588f, 0.512f) - lineToRelative(1.5f, 3f) - quadToRelative(0.2f, 0.375f, 0.063f, 0.762f) - quadToRelative(-0.138f, 0.388f, -0.513f, 0.588f) - close() - moveToRelative(6f, 0f) - quadToRelative(-0.375f, 0.2f, -0.762f, 0.062f) - quadToRelative(-0.388f, -0.137f, -0.588f, -0.512f) - lineToRelative(-1.5f, -3f) - quadToRelative(-0.2f, -0.375f, -0.062f, -0.762f) - quadToRelative(0.137f, -0.388f, 0.512f, -0.588f) - quadToRelative(0.375f, -0.2f, 0.762f, -0.062f) - quadToRelative(0.388f, 0.137f, 0.588f, 0.512f) - lineToRelative(1.5f, 3f) - quadToRelative(0.2f, 0.375f, 0.063f, 0.762f) - quadToRelative(-0.138f, 0.388f, -0.513f, 0.588f) - close() - moveToRelative(-12f, 0f) - quadToRelative(-0.375f, 0.2f, -0.762f, 0.062f) - quadToRelative(-0.388f, -0.137f, -0.588f, -0.512f) - lineToRelative(-1.5f, -3f) - quadToRelative(-0.2f, -0.375f, -0.062f, -0.762f) - quadToRelative(0.137f, -0.388f, 0.512f, -0.588f) - quadToRelative(0.375f, -0.2f, 0.762f, -0.062f) - quadToRelative(0.388f, 0.137f, 0.588f, 0.512f) - lineToRelative(1.5f, 3f) - quadToRelative(0.2f, 0.375f, 0.063f, 0.762f) - quadToRelative(-0.138f, 0.388f, -0.513f, 0.588f) - close() - moveTo(7.5f, 16f) - quadToRelative(-2.275f, 0f, -3.887f, -1.613f) - quadTo(2f, 12.775f, 2f, 10.5f) - quadToRelative(0f, -2.075f, 1.375f, -3.625f) - quadToRelative(1.375f, -1.55f, 3.4f, -1.825f) - quadToRelative(0.8f, -1.425f, 2.188f, -2.238f) - quadTo(10.35f, 2f, 12f, 2f) - quadToRelative(2.25f, 0f, 3.912f, 1.438f) - quadToRelative(1.663f, 1.437f, 2.013f, 3.587f) - quadToRelative(1.725f, 0.15f, 2.9f, 1.425f) - quadTo(22f, 9.725f, 22f, 11.5f) - quadToRelative(0f, 1.875f, -1.312f, 3.188f) - quadTo(19.375f, 16f, 17.5f, 16f) - close() - moveToRelative(0f, -2f) - horizontalLineToRelative(10f) - quadToRelative(1.05f, 0f, 1.775f, -0.725f) - quadTo(20f, 12.55f, 20f, 11.5f) - quadToRelative(0f, -1.05f, -0.725f, -1.775f) - quadTo(18.55f, 9f, 17.5f, 9f) - horizontalLineTo(16f) - verticalLineTo(8f) - quadToRelative(0f, -1.65f, -1.175f, -2.825f) - quadTo(13.65f, 4f, 12f, 4f) - quadToRelative(-1.2f, 0f, -2.188f, 0.65f) - quadToRelative(-0.987f, 0.65f, -1.487f, 1.75f) - lineToRelative(-0.25f, 0.6f) - horizontalLineTo(7.45f) - quadToRelative(-1.425f, 0.05f, -2.437f, 1.062f) - quadTo(4f, 9.075f, 4f, 10.5f) - quadToRelative(0f, 1.45f, 1.025f, 2.475f) - quadTo(6.05f, 14f, 7.5f, 14f) - close() - moveTo(12f, 9f) - close() - - } - } - -val Icons.Rounded.HumidityPercentage - get() = materialIcon("Icons.Rounded.HumidityPercentage") { - materialPath { - moveTo(14.5f, 18f) - quadToRelative(0.625f, 0f, 1.062f, -0.438f) - quadTo(16f, 17.125f, 16f, 16.5f) - reflectiveQuadToRelative(-0.438f, -1.062f) - quadTo(15.125f, 15f, 14.5f, 15f) - reflectiveQuadToRelative(-1.062f, 0.438f) - quadTo(13f, 15.875f, 13f, 16.5f) - reflectiveQuadToRelative(0.438f, 1.062f) - quadTo(13.875f, 18f, 14.5f, 18f) - close() - moveToRelative(-5.75f, -0.75f) - quadToRelative(0.3f, 0.3f, 0.7f, 0.3f) - quadToRelative(0.4f, 0f, 0.7f, -0.3f) - lineToRelative(5.1f, -5.1f) - quadToRelative(0.3f, -0.3f, 0.3f, -0.7f) - quadToRelative(0f, -0.4f, -0.3f, -0.7f) - quadToRelative(-0.3f, -0.3f, -0.712f, -0.3f) - quadToRelative(-0.413f, 0f, -0.713f, 0.3f) - lineTo(8.75f, 15.825f) - quadToRelative(-0.3f, 0.3f, -0.3f, 0.713f) - quadToRelative(0f, 0.412f, 0.3f, 0.712f) - close() - moveTo(9.5f, 13f) - quadToRelative(0.625f, 0f, 1.062f, -0.438f) - quadTo(11f, 12.125f, 11f, 11.5f) - reflectiveQuadToRelative(-0.438f, -1.062f) - quadTo(10.125f, 10f, 9.5f, 10f) - reflectiveQuadToRelative(-1.062f, 0.438f) - quadTo(8f, 10.875f, 8f, 11.5f) - reflectiveQuadToRelative(0.438f, 1.062f) - quadTo(8.875f, 13f, 9.5f, 13f) - close() - moveToRelative(2.5f, 9f) - quadToRelative(-3.175f, 0f, -5.587f, -2.212f) - quadTo(4f, 17.575f, 4f, 13.8f) - quadToRelative(0f, -2.375f, 1.8f, -5.15f) - quadToRelative(1.8f, -2.775f, 5.45f, -6f) - quadToRelative(0.15f, -0.125f, 0.35f, -0.2f) - quadToRelative(0.2f, -0.075f, 0.4f, -0.075f) - reflectiveQuadToRelative(0.4f, 0.075f) - quadToRelative(0.2f, 0.075f, 0.35f, 0.2f) - quadToRelative(3.65f, 3.225f, 5.45f, 6f) - quadTo(20f, 11.425f, 20f, 13.8f) - quadToRelative(0f, 3.775f, -2.413f, 5.988f) - quadTo(15.175f, 22f, 12f, 22f) - close() - moveToRelative(0f, -2f) - quadToRelative(2.525f, 0f, 4.262f, -1.725f) - quadTo(18f, 16.55f, 18f, 13.8f) - quadToRelative(0f, -1.775f, -1.475f, -4.063f) - quadTo(15.05f, 7.45f, 12f, 4.65f) - quadToRelative(-3.05f, 2.8f, -4.525f, 5.087f) - quadTo(6f, 12.025f, 6f, 13.8f) - quadToRelative(0f, 2.75f, 1.737f, 4.475f) - quadTo(9.475f, 20f, 12f, 20f) - close() - moveToRelative(0f, -6.2f) - close() - } - } - -private val _CableCar = materialIcon("Icons.Rounded.CableCar") { - materialPath { - moveTo(21f, 4.5f) - lineTo(3f, 7.5f) - verticalLineTo(9f) - lineTo(10.999512f, 7.6669922f) - verticalLineTo(10.000488f) - horizontalLineTo(6f) - curveToRelative(-1.1079945f, 0f, -1.9995117f, 0.891517f, -1.9995117f, 1.999512f) - verticalLineToRelative(6f) - curveToRelative(0f, 1.107995f, 0.8915172f, 1.999512f, 1.9995117f, 1.999512f) - horizontalLineToRelative(12f) - curveToRelative(1.107995f, 0f, 1.999512f, -0.891517f, 1.999512f, -1.999512f) - verticalLineToRelative(-6f) - curveToRelative(0f, -1.107995f, -0.891517f, -1.999512f, -1.999512f, -1.999512f) - horizontalLineTo(13.000488f) - verticalLineTo(7.3330078f) - lineTo(21f, 6f) - close() - moveTo(6f, 12f) - horizontalLineToRelative(4.999512f) - verticalLineToRelative(3f) - horizontalLineTo(6f) - close() - moveToRelative(7.000488f, 0f) - horizontalLineTo(18f) - verticalLineToRelative(3f) - horizontalLineToRelative(-4.999512f) - close() - } -} -val Icons.Rounded.CableCar - get() = _CableCar - - -private val _Stethoscope = materialIcon("Icons.Rounded.Stethoscope") { - materialPath { - moveTo(13.5f, 22f) - quadTo(10.8f, 22f, 8.9f, 20.1f) - quadTo(7f, 18.2f, 7f, 15.5f) - verticalLineTo(14.925f) - quadTo(4.85f, 14.575f, 3.425f, 12.9125f) - quadTo(2f, 11.25f, 2f, 9f) - verticalLineTo(4f) - quadTo(2f, 3.575f, 2.2875f, 3.2875f) - quadTo(2.575f, 3f, 3f, 3f) - horizontalLineTo(5f) - quadTo(5f, 2.575f, 5.2875f, 2.2875f) - quadTo(5.575f, 2f, 6f, 2f) - quadTo(6.425f, 2f, 6.7125f, 2.2875f) - quadTo(7f, 2.575f, 7f, 3f) - verticalLineTo(5f) - quadTo(7f, 5.425f, 6.7125f, 5.7125f) - quadTo(6.425f, 6f, 6f, 6f) - quadTo(5.575f, 6f, 5.2875f, 5.7125f) - quadTo(5f, 5.425f, 5f, 5f) - horizontalLineTo(4f) - verticalLineTo(9f) - quadTo(4f, 10.65f, 5.175f, 11.825f) - quadTo(6.35f, 13f, 8f, 13f) - quadTo(9.65f, 13f, 10.825f, 11.825f) - quadTo(12f, 10.65f, 12f, 9f) - verticalLineTo(5f) - horizontalLineTo(11f) - quadTo(11f, 5.425f, 10.7125f, 5.7125f) - quadTo(10.425f, 6f, 10f, 6f) - quadTo(9.575f, 6f, 9.2875f, 5.7125f) - quadTo(9f, 5.425f, 9f, 5f) - verticalLineTo(3f) - quadTo(9f, 2.575f, 9.2875f, 2.2875f) - quadTo(9.575f, 2f, 10f, 2f) - quadTo(10.425f, 2f, 10.7125f, 2.2875f) - quadTo(11f, 2.575f, 11f, 3f) - horizontalLineToRelative(2f) - quadTo(13.425f, 3f, 13.7125f, 3.2875f) - quadTo(14f, 3.575f, 14f, 4f) - verticalLineToRelative(5f) - quadToRelative(0f, 2.25f, -1.425f, 3.9125f) - quadTo(11.15f, 14.575f, 9f, 14.925f) - verticalLineTo(15.5f) - quadToRelative(0f, 1.875f, 1.3125f, 3.1875f) - quadTo(11.625f, 20f, 13.5f, 20f) - quadTo(15.375f, 20f, 16.6875f, 18.6875f) - quadTo(18f, 17.375f, 18f, 15.5f) - verticalLineTo(13.825f) - quadTo(17.125f, 13.5f, 16.5625f, 12.7375f) - quadTo(16f, 11.975f, 16f, 11f) - quadTo(16f, 9.75f, 16.875f, 8.875f) - quadTo(17.75f, 8f, 19f, 8f) - quadTo(20.25f, 8f, 21.125f, 8.875f) - quadTo(22f, 9.75f, 22f, 11f) - quadTo(22f, 11.975f, 21.4375f, 12.7375f) - quadTo(20.875f, 13.5f, 20f, 13.825f) - verticalLineTo(15.5f) - quadToRelative(0f, 2.7f, -1.9f, 4.6f) - quadToRelative(-1.9f, 1.9f, -4.6f, 1.9f) - close() - } -} - -val Icons.Rounded.Stethoscope - get() = _Stethoscope - -private val _Dentistry = materialIcon("Icons.Rounded.Dentistry") { - materialPath { - moveTo(17f, 2.9875f) - quadToRelative(1.65f, 0f, 2.825f, 1.175f) - quadTo(21f, 5.3375f, 21f, 6.9875f) - quadTo(21f, 7.2625f, 20.9625f, 7.725f) - quadTo(20.925f, 8.1875f, 20.85f, 8.7875f) - lineToRelative(-1.375f, 10.075f) - quadToRelative(-0.125f, 0.95f, -0.8625f, 1.55f) - quadToRelative(-0.7375f, 0.6f, -1.6875f, 0.6f) - quadToRelative(-0.575f, 0f, -1.0625f, -0.25f) - quadToRelative(-0.4875f, -0.25f, -0.8125f, -0.7f) - lineToRelative(-2.675f, -3.9f) - quadToRelative(-0.05f, -0.1f, -0.1625f, -0.1375f) - quadToRelative(-0.1125f, -0.0375f, -0.2375f, -0.0375f) - quadToRelative(-0.1f, 0f, -0.4f, 0.225f) - lineToRelative(-2.6f, 3.775f) - quadTo(8.625f, 20.4875f, 8.1125f, 20.75f) - quadTo(7.6f, 21.0125f, 7.025f, 21.0125f) - quadTo(6.075f, 21.0125f, 5.35f, 20.4f) - quadTo(4.625f, 19.7875f, 4.5f, 18.8375f) - lineTo(3.15f, 8.7875f) - quadTo(3.075f, 8.1875f, 3.0375f, 7.725f) - quadTo(3f, 7.2625f, 3f, 6.9875f) - quadTo(3f, 5.3375f, 4.175f, 4.1625f) - quadTo(5.35f, 2.9875f, 7f, 2.9875f) - quadTo(7.9f, 2.9875f, 8.4375f, 3.225f) - quadTo(8.975f, 3.4625f, 9.475f, 3.7375f) - quadTo(9.975f, 4.0125f, 10.5375f, 4.25f) - quadTo(11.1f, 4.4875f, 12f, 4.4875f) - quadToRelative(0.9f, 0f, 1.4625f, -0.2375f) - quadToRelative(0.5625f, -0.2375f, 1.0625f, -0.5125f) - quadToRelative(0.5f, -0.275f, 1.05f, -0.5125f) - quadTo(16.125f, 2.9875f, 17f, 2.9875f) - close() - } -} - -val Icons.Rounded.Dentistry - get() = _Dentistry - -private val _Eyeglasses = materialIcon("Icons.Rounded.Eyeglasses") { - materialPath { - moveTo(6.85f, 15f) - quadTo(7.625f, 15f, 8.2375f, 14.55f) - quadTo(8.85f, 14.1f, 9.1f, 13.375f) - lineToRelative(0.375f, -1.15f) - quadToRelative(0.4f, -1.2f, -0.2f, -2.2125f) - quadTo(8.675f, 9f, 7.55f, 9f) - horizontalLineTo(4.025f) - lineTo(4.5f, 12.925f) - quadTo(4.625f, 13.8f, 5.2875f, 14.4f) - quadTo(5.95f, 15f, 6.85f, 15f) - close() - moveToRelative(10.3f, 0f) - quadToRelative(0.9f, 0f, 1.5625f, -0.6f) - quadTo(19.375f, 13.8f, 19.5f, 12.925f) - lineTo(19.975f, 9f) - horizontalLineToRelative(-3.5f) - quadToRelative(-1.125f, 0f, -1.725f, 1.025f) - quadToRelative(-0.6f, 1.025f, -0.2f, 2.225f) - lineToRelative(0.35f, 1.125f) - quadTo(15.15f, 14.1f, 15.7625f, 14.55f) - quadTo(16.375f, 15f, 17.15f, 15f) - close() - moveTo(6.85f, 17f) - quadTo(5.2f, 17f, 3.9625f, 15.9125f) - quadTo(2.725f, 14.825f, 2.525f, 13.175f) - lineTo(2f, 9f) - quadTo(1.575f, 9f, 1.2875f, 8.7125f) - quadTo(1f, 8.425f, 1f, 8f) - quadTo(1f, 7.575f, 1.2875f, 7.2875f) - quadTo(1.575f, 7f, 2f, 7f) - horizontalLineTo(7.55f) - quadTo(8.65f, 7f, 9.5625f, 7.5375f) - quadTo(10.475f, 8.075f, 11f, 9f) - horizontalLineToRelative(2.025f) - quadTo(13.55f, 8.075f, 14.4625f, 7.5375f) - quadTo(15.375f, 7f, 16.475f, 7f) - horizontalLineTo(22f) - quadTo(22.425f, 7f, 22.7125f, 7.2875f) - quadTo(23f, 7.575f, 23f, 8f) - quadTo(23f, 8.425f, 22.7125f, 8.7125f) - quadTo(22.425f, 9f, 22f, 9f) - lineToRelative(-0.525f, 4.175f) - quadToRelative(-0.2f, 1.65f, -1.4375f, 2.7375f) - quadTo(18.8f, 17f, 17.15f, 17f) - quadTo(15.725f, 17f, 14.5875f, 16.1875f) - quadTo(13.45f, 15.375f, 13f, 14.025f) - lineTo(12.625f, 12.9f) - quadToRelative(-0.05f, -0.175f, -0.1f, -0.3625f) - quadTo(12.475f, 12.35f, 12.425f, 12f) - horizontalLineToRelative(-0.85f) - quadToRelative(-0.05f, 0.3f, -0.1f, 0.4875f) - quadToRelative(-0.05f, 0.1875f, -0.1f, 0.3625f) - lineTo(11f, 14f) - quadTo(10.55f, 15.35f, 9.4125f, 16.175f) - quadTo(8.275f, 17f, 6.85f, 17f) - close() - } -} - -val Icons.Rounded.Eyeglasses - get() = _Eyeglasses - -private val _Monument = materialIcon("Icons.Rounded.Monument") { - materialPath { - moveTo(12f, 1.9995117f) - lineTo(10.000488f, 4.0004883f) - lineTo(10.000488f, 16.000488f) - lineTo(9f, 16.000488f) - curveTo(8.4460012f, 16.000488f, 7.9995117f, 16.445512f, 7.9995117f, 16.999512f) - lineTo(7.9995117f, 19.999512f) - lineTo(7.0004883f, 19.999512f) - curveTo(6.4464888f, 19.999512f, 6f, 20.446001f, 6f, 21f) - curveTo(6f, 21.553999f, 6.4464888f, 22.000488f, 7.0004883f, 22.000488f) - lineTo(16.999512f, 22.000488f) - curveTo(17.553511f, 22.000488f, 18f, 21.553999f, 18f, 21f) - curveTo(18f, 20.446001f, 17.553511f, 19.999512f, 16.999512f, 19.999512f) - lineTo(16.000488f, 19.999512f) - lineTo(16.000488f, 16.999512f) - curveTo(16.000488f, 16.445512f, 15.553998f, 16.000488f, 15f, 16.000488f) - lineTo(13.999512f, 16.000488f) - lineTo(13.999512f, 4.0004883f) - lineTo(12f, 1.9995117f) - close() - } - -} -val Icons.Rounded.Monument - get() = _Monument - -private val _Candle = materialIcon("Icons.Rounded.Candle") { - materialPath { - moveTo(240f, -160f) - horizontalLineToRelative(480f) - quadToRelative(17f, 0f, 28.5f, -11.5f) - reflectiveQuadTo(760f, -200f) - horizontalLineTo(200f) - quadToRelative(0f, 17f, 11.5f, 28.5f) - reflectiveQuadTo(240f, -160f) - close() - moveToRelative(240f, -480f) - quadToRelative(-48f, 0f, -80f, -33.5f) - reflectiveQuadTo(370f, -755f) - quadToRelative(2f, -44f, 27f, -78.5f) - reflectiveQuadToRelative(56f, -62.5f) - quadToRelative(6f, -5f, 12.5f, -7.5f) - reflectiveQuadTo(480f, -906f) - quadToRelative(8f, 0f, 14.5f, 2.5f) - reflectiveQuadTo(507f, -896f) - quadToRelative(31f, 28f, 56f, 62.5f) - reflectiveQuadToRelative(27f, 78.5f) - quadToRelative(2f, 48f, -30f, 81.5f) - reflectiveQuadTo(480f, -640f) - close() - moveToRelative(-40f, 360f) - horizontalLineToRelative(80f) - verticalLineToRelative(-240f) - horizontalLineToRelative(-80f) - verticalLineToRelative(240f) - close() - moveToRelative(40f, -440f) - quadToRelative(13f, 0f, 21.5f, -9f) - reflectiveQuadToRelative(8.5f, -22f) - quadToRelative(0f, -17f, -9.5f, -31f) - reflectiveQuadTo(480f, -809f) - quadToRelative(-11f, 13f, -20.5f, 27f) - reflectiveQuadToRelative(-9.5f, 31f) - quadToRelative(0f, 13f, 8.5f, 22f) - reflectiveQuadToRelative(21.5f, 9f) - close() - moveToRelative(330f, 440f) - quadToRelative(13f, 0f, 21.5f, -8.5f) - reflectiveQuadTo(840f, -310f) - quadToRelative(0f, -13f, -8.5f, -21.5f) - reflectiveQuadTo(810f, -340f) - quadToRelative(-13f, 0f, -21.5f, 8.5f) - reflectiveQuadTo(780f, -310f) - quadToRelative(0f, 13f, 8.5f, 21.5f) - reflectiveQuadTo(810f, -280f) - close() - moveTo(720f, -80f) - horizontalLineTo(240f) - quadToRelative(-50f, 0f, -85f, -35f) - reflectiveQuadToRelative(-35f, -85f) - verticalLineToRelative(-40f) - quadToRelative(0f, -17f, 11.5f, -28.5f) - reflectiveQuadTo(160f, -280f) - horizontalLineToRelative(200f) - verticalLineToRelative(-240f) - quadToRelative(0f, -33f, 23.5f, -56.5f) - reflectiveQuadTo(440f, -600f) - horizontalLineToRelative(80f) - quadToRelative(33f, 0f, 56.5f, 23.5f) - reflectiveQuadTo(600f, -520f) - verticalLineToRelative(240f) - horizontalLineToRelative(104f) - quadToRelative(-2f, -8f, -3f, -15f) - reflectiveQuadToRelative(-1f, -15f) - quadToRelative(0f, -46f, 32f, -78f) - reflectiveQuadToRelative(78f, -32f) - quadToRelative(46f, 0f, 78f, 32f) - reflectiveQuadToRelative(32f, 78f) - quadToRelative(0f, 38f, -22.5f, 67f) - reflectiveQuadTo(840f, -204f) - verticalLineToRelative(4f) - quadToRelative(0f, 50f, -35f, 85f) - reflectiveQuadToRelative(-85f, 35f) - close() - moveToRelative(-240f, -80f) - close() - moveToRelative(-40f, -120f) - horizontalLineToRelative(80f) - horizontalLineToRelative(-80f) - close() - moveToRelative(40f, -484f) - close() - } -} - -val Icons.Rounded.Candle - get() = _Candle - -private val _Nextcloud = materialIcon("Icons.Rounded.Nextcloud") { - materialPath { - moveTo(11.999888f, 7.437f) - curveTo(9.920569f, 7.437f, 8.172661f, 8.8561823f, 7.6293348f, 10.767446f) - curveTo(7.1564978f, 9.7557586f, 6.1414535f, 9.0410206f, 4.9588016f, 9.0410206f) - curveTo(3.3341937f, 9.0410206f, 2.000046f, 10.375392f, 2.000046f, 12f) - curveToRelative(0f, 1.624608f, 1.3341477f, 2.958979f, 2.9587556f, 2.958979f) - curveToRelative(1.1826519f, 0f, 2.1976962f, -0.714738f, 2.6705332f, -1.726425f) - curveTo(8.172661f, 15.143818f, 9.920569f, 16.563f, 11.999888f, 16.563f) - curveToRelative(2.079319f, 0f, 3.827227f, -1.419182f, 4.370553f, -3.330446f) - curveToRelative(0.472837f, 1.011687f, 1.487882f, 1.726425f, 2.670534f, 1.726425f) - curveToRelative(1.624608f, 0f, 2.958979f, -1.334371f, 2.958979f, -2.958979f) - curveToRelative(0f, -1.624608f, -1.334371f, -2.9589794f, -2.958979f, -2.9589794f) - curveToRelative(-1.182652f, 0f, -2.197697f, 0.714738f, -2.670534f, 1.7264254f) - curveTo(15.827115f, 8.8561823f, 14.079207f, 7.437f, 11.999888f, 7.437f) - close() - moveToRelative(0f, 1.7613346f) - curveToRelative(1.557028f, 0f, 2.801666f, 1.2446374f, 2.801666f, 2.8016654f) - curveToRelative(0f, 1.557028f, -1.244638f, 2.801665f, -2.801666f, 2.801665f) - curveToRelative(-1.557028f, 0f, -2.8016653f, -1.244637f, -2.8016653f, -2.801665f) - curveToRelative(0f, -1.557028f, 1.2446373f, -2.8016654f, 2.8016653f, -2.8016654f) - close() - moveTo(4.9588016f, 10.798103f) - curveToRelative(0.6733396f, 0f, 1.2018966f, 0.528557f, 1.2018966f, 1.201897f) - curveToRelative(0f, 0.67334f, -0.528557f, 1.201897f, -1.2018966f, 1.201897f) - curveTo(4.285462f, 13.201897f, 3.756905f, 12.67334f, 3.756905f, 12f) - curveToRelative(0f, -0.67334f, 0.528557f, -1.201897f, 1.2018966f, -1.201897f) - close() - moveToRelative(14.0821734f, 0f) - curveToRelative(0.673339f, 0f, 1.201896f, 0.528557f, 1.201896f, 1.201897f) - curveToRelative(0f, 0.67334f, -0.528557f, 1.201897f, -1.201896f, 1.201897f) - curveToRelative(-0.67334f, 0f, -1.201897f, -0.528557f, -1.201897f, -1.201897f) - curveToRelative(0f, -0.67334f, 0.528557f, -1.201897f, 1.201897f, -1.201897f) - close() - } -} - -val Icons.Rounded.Nextcloud - get() = _Nextcloud - -private val _Owncloud = materialIcon("Icons.Rounded.Owncloud") { - materialPath { - moveTo(15.751538f, 13.867862f) - curveToRelative(0.0048f, -0.06458f, 0.0081f, -0.12959f, 0.0099f, -0.194825f) - curveToRelative(0.000878f, -0.03229f, 0.0024f, -0.06458f, 0.0024f, -0.09708f) - curveToRelative(0f, -0.540766f, -0.115314f, -1.054955f, -0.321341f, -1.520383f) - curveToRelative(-0.02109f, -0.04744f, -0.04261f, -0.09445f, -0.06545f, -0.141012f) - curveToRelative(-0.02262f, -0.04547f, -0.04547f, -0.09071f, -0.06963f, -0.135302f) - curveToRelative(-0.333201f, -0.611711f, -0.831356f, -1.120848f, -1.433843f, -1.468766f) - curveToRelative(-0.04459f, -0.02592f, -0.08983f, -0.05074f, -0.135521f, -0.0749f) - curveToRelative(-0.04569f, -0.02372f, -0.09159f, -0.04722f, -0.138376f, -0.06919f) - curveToRelative(-0.462573f, -0.2185468f, -0.976322f, -0.345282f, -1.517967f, -0.3575822f) - curveToRelative(-0.02921f, -0.0006589f, -0.05821f, -0.00242f, -0.08742f, -0.00242f) - curveToRelative(-0.03624f, 0f, -0.07182f, 0.00176f, -0.107846f, 0.00286f) - curveToRelative(-0.06502f, 0.00176f, -0.129371f, 0.00527f, -0.193287f, 0.010323f) - curveToRelative(-0.59414f, 0.047224f, -1.149842f, 0.2319452f, -1.635038f, 0.5236342f) - curveToRelative(-0.04503f, 0.02724f, -0.089396f, 0.05557f, -0.1333247f, 0.08456f) - curveToRelative(-0.044368f, 0.02921f, -0.087858f, 0.05952f, -0.1309084f, 0.09049f) - curveToRelative(-0.251275f, 0.181426f, -0.4794862f, 0.392725f, -0.6791435f, 0.629282f) - curveToRelative(-0.033386f, 0.03954f, -0.065894f, 0.07995f, -0.097742f, 0.120805f) - curveToRelative(-0.031409f, 0.04041f, -0.06194f, 0.08149f, -0.091592f, 0.123002f) - curveToRelative(-0.4403883f, 0.616982f, -0.700448f, 1.370804f, -0.700448f, 2.184589f) - curveToRelative(0f, 0.214813f, 0.019109f, 0.425233f, 0.053813f, 0.630162f) - curveToRelative(0.00988f, 0.05887f, 0.021086f, 0.11773f, 0.033825f, 0.175716f) - curveToRelative(0.013838f, 0.06326f, 0.029432f, 0.125857f, 0.046345f, 0.188016f) - curveToRelative(0.094008f, 0.343964f, 0.2350203f, 0.66838f, 0.4166667f, 0.96556f) - curveToRelative(0.027456f, 0.04503f, 0.05601f, 0.0894f, 0.085442f, 0.133105f) - curveToRelative(0.029432f, 0.04393f, 0.060183f, 0.08698f, 0.091372f, 0.12959f) - curveToRelative(0.070506f, 0.09621f, 0.145405f, 0.188895f, 0.2244772f, 0.277851f) - curveToRelative(0.043051f, 0.04832f, 0.087199f, 0.09577f, 0.1326656f, 0.142111f) - curveToRelative(0.041733f, 0.04239f, 0.084563f, 0.08368f, 0.1280531f, 0.124319f) - curveToRelative(0.672553f, 0.621595f, 1.570901f, 1.002679f, 2.556668f, 1.002679f) - curveToRelative(0.949965f, 0f, 1.818003f, -0.353848f, 2.48177f, -0.935688f) - curveToRelative(0.03822f, -0.0336f, 0.07556f, -0.06787f, 0.112458f, -0.103013f) - curveToRelative(0.03778f, -0.0358f, 0.0749f, -0.07226f, 0.110921f, -0.109603f) - curveToRelative(0.551749f, -0.56932f, 0.925585f, -1.311281f, 1.032113f, -2.136048f) - curveToRelative(0.0083f, -0.06392f, 0.01494f, -0.128053f, 0.01999f, -0.192849f) - moveTo(8.5517923f, 15.752197f) - curveTo(8.5227992f, 15.706511f, 8.4946846f, 15.660386f, 8.4676682f, 15.613382f) - curveTo(8.260543f, 15.256239f, 8.1059128f, 14.86527f, 8.0147601f, 14.450581f) - curveTo(7.9178967f, 14.430373f, 7.8175189f, 14.41983f, 7.714725f, 14.41983f) - curveToRelative(-0.010982f, 0f, -0.021525f, 0.0011f, -0.032288f, 0.0015f) - curveToRelative(-0.051617f, 0.0011f, -0.1023546f, 0.0048f, -0.1524337f, 0.0112f) - curveToRelative(-0.051177f, 0.0064f, -0.1016956f, 0.01559f, -0.1511158f, 0.02702f) - curveToRelative(-0.4344579f, 0.101916f, -0.7946758f, 0.395801f, -0.9870849f, 0.787428f) - curveToRelative(-0.022623f, 0.04613f, -0.04305f, 0.09357f, -0.060842f, 0.14233f) - curveToRelative(-0.017791f, 0.04854f, -0.032947f, 0.09818f, -0.045686f, 0.1487f) - curveToRelative(-0.028334f, 0.114215f, -0.045247f, 0.233263f, -0.045247f, 0.356264f) - curveToRelative(0f, 0.283342f, 0.081928f, 0.547575f, 0.220963f, 0.772491f) - curveToRelative(0.027236f, 0.04415f, 0.056668f, 0.08654f, 0.088078f, 0.127395f) - curveToRelative(0.03097f, 0.03998f, 0.063697f, 0.07841f, 0.098621f, 0.115094f) - curveToRelative(0.2688455f, 0.282463f, 0.647294f, 0.459497f, 1.0670357f, 0.459497f) - curveToRelative(0.6246705f, 0f, 1.1586277f, -0.391188f, 1.3730012f, -0.94074f) - curveToRelative(-0.1636358f, -0.166932f, -0.3129945f, -0.34748f, -0.446319f, -0.540109f) - curveToRelative(-0.03075f, -0.04459f, -0.060402f, -0.08984f, -0.089615f, -0.135741f) - moveTo(19.987392f, 14.365798f) - curveToRelative(-0.0022f, -0.05337f, -0.0057f, -0.106309f, -0.01054f, -0.159023f) - curveToRelative(-0.0051f, -0.0525f, -0.0112f, -0.104771f, -0.01889f, -0.156388f) - curveToRelative(-0.205368f, -1.372562f, -1.368169f, -2.435424f, -2.78466f, -2.486382f) - curveToRelative(-0.03536f, -0.0013f, -0.07051f, -0.0026f, -0.106308f, -0.0026f) - curveToRelative(-0.0156f, 0f, -0.03097f, 0.000879f, -0.04657f, 0.0011f) - curveToRelative(-0.05118f, 0.000659f, -0.102135f, 0.0031f, -0.152873f, 0.0064f) - curveToRelative(-0.416886f, 0.02833f, -0.809831f, 0.144087f, -1.161044f, 0.329468f) - curveToRelative(0.211518f, 0.465647f, 0.337814f, 0.97764f, 0.3589f, 1.516429f) - curveToRelative(0.002f, 0.05359f, 0.004f, 0.107187f, 0.004f, 0.16122f) - curveToRelative(0f, 0.01581f, -0.0011f, 0.03141f, -0.0011f, 0.047f) - curveToRelative(-0.000879f, 0.06875f, -0.0033f, 0.137058f, -0.0075f, 0.204929f) - curveToRelative(-0.06216f, 1.013881f, -0.496178f, 1.928264f, -1.167853f, 2.608724f) - curveToRelative(0.535495f, 0.595897f, 1.31172f, 0.971491f, 2.174047f, 0.971491f) - curveToRelative(0.744596f, 0f, 1.424618f, -0.280268f, 1.941442f, -0.740204f) - curveToRelative(0.0391f, -0.03492f, 0.07754f, -0.07051f, 0.114655f, -0.107407f) - curveToRelative(0.03756f, -0.03712f, 0.07424f, -0.07534f, 0.109823f, -0.114435f) - curveToRelative(0.470479f, -0.519022f, 0.757336f, -1.207389f, 0.757336f, -1.961211f) - curveToRelative(0f, -0.03998f, -0.0013f, -0.07951f, -0.0029f, -0.119048f) - moveToRelative(0.538131f, -0.103013f) - curveToRelative(-0.08061f, 0f, -0.159243f, 0.0084f, -0.236338f, 0.02065f) - curveToRelative(0.004f, 0.06677f, 0.0068f, 0.133764f, 0.0068f, 0.201414f) - curveToRelative(0f, 0.857495f, -0.336716f, 1.637454f, -0.884072f, 2.216219f) - curveToRelative(0.270603f, 0.312335f, 0.66882f, 0.510894f, 1.113601f, 0.510894f) - curveTo(21.338429f, 17.211958f, 22f, 16.550388f, 22f, 15.737481f) - curveTo(22f, 14.924355f, 21.338429f, 14.262784f, 20.525523f, 14.262784f) - moveTo(8.3971622f, 9.7091029f) - curveToRelative(0.00857f, 0.054252f, 0.019329f, 0.1076261f, 0.03097f, 0.1607802f) - curveToRelative(0.027456f, 0.1221226f, 0.062599f, 0.2413899f, 0.1056493f, 0.3567039f) - curveToRelative(0.019109f, 0.05118f, 0.040195f, 0.101256f, 0.062379f, 0.150896f) - curveToRelative(0.021745f, 0.04876f, 0.044808f, 0.09664f, 0.069408f, 0.143867f) - curveToRelative(0.071604f, 0.137937f, 0.1546302f, 0.269065f, 0.2479793f, 0.391847f) - curveToRelative(0.1880162f, -0.217229f, 0.3979968f, -0.414909f, 0.6273063f, -0.588429f) - curveToRelative(0.04305f, -0.03251f, 0.087199f, -0.06392f, 0.131787f, -0.09511f) - curveToRelative(0.044368f, -0.03075f, 0.089395f, -0.06062f, 0.1350817f, -0.08962f) - curveToRelative(0.6183012f, -0.3949218f, 1.3492792f, -0.6277456f, 2.1336322f, -0.6378492f) - curveToRelative(0.01779f, -0.0002197f, 0.03536f, -0.00132f, 0.05293f, -0.00132f) - curveToRelative(0.05096f, 0f, 0.101476f, 0.00198f, 0.152214f, 0.00373f) - curveToRelative(0.06963f, 0.00264f, 0.139035f, 0.00703f, 0.207784f, 0.013179f) - curveToRelative(0.4707f, 0.041293f, 0.918336f, 0.1631963f, 1.329731f, 0.3514321f) - curveToRelative(0.04195f, -0.1884554f, 0.0648f, -0.3839395f, 0.0648f, -0.5846951f) - curveToRelative(0f, -0.1493586f, -0.01274f, -0.2956422f, -0.03624f, -0.4386312f) - curveToRelative(-0.0086f, -0.050293f, -0.01823f, -0.1003726f, -0.02943f, -0.1500123f) - curveToRelative(-0.0112f, -0.050079f, -0.02372f, -0.099499f, -0.03778f, -0.1482605f) - curveToRelative(-0.321341f, -1.127438f, -1.360042f, -1.9557196f, -2.589395f, -1.9557196f) - curveToRelative(-1.014102f, 0f, -1.8988319f, 0.5638289f, -2.3578901f, 1.3943069f) - curveToRelative(-0.025699f, 0.046126f, -0.050079f, 0.093349f, -0.072922f, 0.1412318f) - curveToRelative(-0.023722f, 0.04964f, -0.045686f, 0.1005974f, -0.066333f, 0.1519943f) - curveTo(8.433187f, 8.590231f, 8.3633398f, 8.929363f, 8.3633398f, 9.284529f) - curveToRelative(0f, 0.090054f, 0.00461f, 0.1790107f, 0.013179f, 0.2666491f) - curveToRelative(0.00549f, 0.053154f, 0.0123f, 0.1056493f, 0.020647f, 0.1579248f) - moveTo(15.57077f, 11.624627f) - curveToRelative(0.38943f, -0.204709f, 0.825426f, -0.331883f, 1.287559f, -0.361535f) - curveToRelative(-0.119267f, -1.375198f, -1.276138f, -2.4578285f, -2.681646f, -2.4578285f) - curveToRelative(-0.05381f, 0f, -0.107187f, 0.00198f, -0.160122f, 0.00505f) - curveToRelative(0.0246f, 0.1546301f, 0.03778f, 0.3127746f, 0.03778f, 0.4742137f) - curveToRelative(0f, 0.2503954f, -0.03119f, 0.4933228f, -0.0894f, 0.7261468f) - curveToRelative(0.675848f, 0.374934f, 1.234406f, 0.935907f, 1.605825f, 1.613952f) - moveToRelative(-9.4344104f, 3.44777f) - curveToRelative(0.2416096f, -0.462353f, 0.6806801f, -0.806098f, 1.2045335f, -0.918556f) - curveToRelative(0.04964f, -0.01054f, 0.099938f, -0.01889f, 0.1508962f, -0.02526f) - curveToRelative(0.050299f, -0.0064f, 0.1012563f, -0.01076f, 0.1526533f, -0.01274f) - curveToRelative(0.023502f, -0.000878f, 0.046784f, -0.0018f, 0.070286f, -0.0018f) - curveToRelative(0.082586f, 0f, 0.1636356f, 0.0061f, 0.2433667f, 0.01691f) - curveToRelative(-0.02482f, -0.181646f, -0.038658f, -0.366587f, -0.038658f, -0.555043f) - curveToRelative(0f, -0.904938f, 0.2967405f, -1.741785f, 0.7977508f, -2.418731f) - curveToRelative(-0.1135556f, -0.14123f, -0.2148119f, -0.292785f, -0.3015717f, -0.453565f) - curveToRelative(-0.024161f, -0.04503f, -0.047443f, -0.09093f, -0.069408f, -0.137498f) - curveToRelative(-0.022184f, -0.04635f, -0.042831f, -0.09357f, -0.062599f, -0.141232f) - curveToRelative(-0.078194f, -0.189554f, -0.1370585f, -0.388772f, -0.1752768f, -0.595238f) - curveToRelative(-0.06787f, -0.00461f, -0.1361799f, -0.00791f, -0.2053681f, -0.00791f) - curveToRelative(-0.5060622f, 0f, -0.9822527f, 0.1293709f, -1.3978211f, 0.3562642f) - curveToRelative(-0.045906f, 0.02526f, -0.090933f, 0.05184f, -0.1353014f, 0.07929f) - curveToRelative(-0.043929f, 0.02702f, -0.08676f, 0.05535f, -0.1289316f, 0.08478f) - curveToRelative(-0.473994f, 0.328809f, -0.8462924f, 0.794017f, -1.060007f, 1.338517f) - curveToRelative(-0.01867f, 0.04788f, -0.036241f, 0.09642f, -0.052715f, 0.145625f) - curveToRelative(-0.016254f, 0.04876f, -0.03119f, 0.09818f, -0.044808f, 0.14826f) - curveToRelative(-0.067211f, 0.245783f, -0.1038921f, 0.503866f, -0.1038921f, 0.770515f) - curveToRelative(0f, 0.948867f, 0.4544456f, 1.792963f, 1.1568705f, 2.327359f) - moveToRelative(-0.1208042f, 0.290371f) - curveToRelative(-0.8120278f, -0.586892f, -1.341592f, -1.54125f, -1.341592f, -2.61773f) - curveToRelative(0f, -0.274996f, 0.034704f, -0.542084f, 0.099719f, -0.797092f) - curveToRelative(-0.027016f, -0.000879f, -0.053813f, -0.0022f, -0.081049f, -0.0022f) - curveTo(3.2078281f, 11.945748f, 2f, 13.153796f, 2f, 14.638597f) - curveToRelative(0f, 1.484801f, 1.2078281f, 2.692848f, 2.6926287f, 2.692848f) - curveToRelative(0.5660253f, 0f, 1.0914163f, -0.175935f, 1.5252153f, -0.475312f) - curveToRelative(-0.1790107f, -0.277631f, -0.2833422f, -0.607757f, -0.2833422f, -0.961825f) - curveToRelative(0f, -0.185161f, 0.028334f, -0.363513f, 0.081049f, -0.531541f) - moveTo(6.3243718f, 9.9298462f) - curveTo(6.2079599f, 9.7257959f, 6.1407485f, 9.4903364f, 6.1407485f, 9.2392821f) - curveToRelative(0f, -0.7724916f, 0.6284045f, -1.4008961f, 1.4006766f, -1.4008961f) - curveToRelative(0.2857582f, 0f, 0.5515287f, 0.08654f, 0.7731505f, 0.233922f) - curveToRelative(-0.1645141f, 0.3709804f, -0.256765f, 0.7808381f, -0.256765f, 1.212221f) - curveToRelative(0f, 0.079512f, 0.00395f, 0.1579248f, 0.010104f, 0.2356791f) - curveToRelative(-0.054692f, -0.00264f, -0.1096029f, -0.00417f, -0.1649535f, -0.00417f) - curveToRelative(-0.5732736f, 0f, -1.1116236f, 0.1508961f, -1.578589f, 0.4138113f) - } -} - -val Icons.Rounded.Owncloud - get() = _Owncloud - -private val _Google = materialIcon("Icons.Rounded.Google") { - materialPath { - moveTo(2f, 12f) - curveTo(2f, 6.486f, 6.486f, 2f, 12f, 2f) - curveToRelative(2.22695f, 0f, 4.33476f, 0.716476f, 6.09562f, 2.072f) - lineTo(15.77181f, 7.09067f) - curveTo(14.68305f, 6.252571f, 13.37876f, 5.809524f, 12f, 5.809524f) - curveTo(8.58657f, 5.809524f, 5.809524f, 8.58657f, 5.809524f, 12f) - curveToRelative(0f, 3.41343f, 2.777046f, 6.19048f, 6.190476f, 6.19048f) - curveToRelative(2.74924f, 0f, 5.08552f, -1.80124f, 5.89067f, -4.28572f) - horizontalLineTo(12f) - verticalLineTo(10.09524f) - horizontalLineTo(22f) - verticalLineTo(12f) - curveTo(22f, 17.514f, 17.514f, 22f, 12f, 22f) - curveTo(6.486f, 22f, 2f, 17.514f, 2f, 12f) - close() - } -} - -val Icons.Rounded.Google - get() = _Google - -private val _PrivateSpace = materialIcon("Icons.Rounded.PrivateSpace") { - materialPath { - moveTo(11.999784f, 1.9998779f) - lineTo(3.9997559f, 5.0002116f) - verticalLineToRelative(6.0895504f) - curveToRelative(0f, 5.049995f, 3.410033f, 9.760447f, 8.0000281f, 10.910446f) - curveToRelative(4.589996f, -1.149999f, 8.000029f, -5.860451f, 8.000029f, -10.910446f) - verticalLineTo(5.0002116f) - close() - moveToRelative(0f, 4.0002727f) - curveToRelative(1.929998f, 0f, 3.500045f, 1.5700466f, 3.500045f, 3.5000447f) - curveToRelative(0f, 1.5799987f, -1.05959f, 2.9098487f, -2.499589f, 3.3398477f) - verticalLineToRelative(2.160075f) - horizontalLineToRelative(1.999878f) - verticalLineToRelative(1.999878f) - horizontalLineTo(13.00024f) - verticalLineToRelative(0.999939f) - horizontalLineTo(10.999845f) - verticalLineTo(12.840043f) - curveTo(9.5598468f, 12.410044f, 8.5002563f, 11.090194f, 8.5002563f, 9.5001953f) - curveToRelative(0f, -1.9299981f, 1.5695297f, -3.5000447f, 3.4995277f, -3.5000447f) - close() - moveToRelative(0f, 1.9998779f) - curveToRelative(-0.827999f, 0f, -1.49965f, 0.6721676f, -1.49965f, 1.5001668f) - curveToRelative(0f, 0.8279987f, 0.671651f, 1.4996497f, 1.49965f, 1.4996497f) - curveToRelative(0.828f, 0f, 1.500167f, -0.671651f, 1.500167f, -1.4996497f) - curveToRelative(0f, -0.8279992f, -0.672167f, -1.5001668f, -1.500167f, -1.5001668f) - close() - } -} - -val Icons.Rounded.PrivateSpace - get() = _PrivateSpace - -private val _BreezyWeather = materialIcon("Icons.Rounded.BreezyWeather") { - materialPath { - moveTo(11.51596f, 15.483644f) - curveToRelative(-0.270954f, 0.445157f, -0.619347f, 0.870954f, -1.006439f, 1.258046f) - curveToRelative(-0.5806338f, 0.580637f, -1.1999812f, 1.02579f, -1.8967447f, 1.354821f) - curveToRelative(0.8709544f, 0.483862f, 1.8580387f, 0.793534f, 2.9031837f, 0.851599f) - close() - moveTo(8.5160015f, 11.51596f) - curveTo(8.0708487f, 11.245006f, 7.6450471f, 10.896616f, 7.2579555f, 10.509525f) - curveTo(6.6966767f, 9.9482422f, 6.2515202f, 9.3288948f, 5.9224934f, 8.6514863f) - curveTo(5.4386307f, 9.5224406f, 5.1483101f, 10.49017f, 5.070894f, 11.535315f) - horizontalLineToRelative(3.4451075f) - close() - moveToRelative(6.9676425f, 0.967729f) - curveToRelative(0.445153f, 0.270955f, 0.870954f, 0.619344f, 1.258046f, 1.006436f) - curveToRelative(0.580634f, 0.580637f, 1.02579f, 1.199984f, 1.354817f, 1.877393f) - curveToRelative(0.483863f, -0.870954f, 0.774184f, -1.858038f, 0.8516f, -2.903184f) - horizontalLineTo(15.483644f) - close() - moveTo(12.483685f, 8.5160053f) - curveTo(12.75464f, 8.0708488f, 13.103033f, 7.6450509f, 13.490125f, 7.2579593f) - curveTo(14.051407f, 6.6966767f, 14.670751f, 6.251524f, 15.348159f, 5.9224934f) - curveTo(14.49656f, 5.4579857f, 13.509479f, 5.1483139f, 12.483685f, 5.090249f) - close() - moveTo(5.7483025f, 17.76748f) - curveToRelative(1.6064278f, 0f, 2.9225387f, -0.561279f, 4.0644549f, -1.703199f) - curveToRelative(1.0257906f, -1.02579f, 1.5677176f, -2.20642f, 1.6838476f, -3.580592f) - horizontalLineTo(0f) - curveToRelative(0.096756f, 1.393527f, 0.6580535f, 2.554802f, 1.6838476f, 3.580592f) - curveToRelative(1.1419162f, 1.14192f, 2.4580271f, 1.703199f, 4.0644549f, 1.703199f) - close() - moveTo(7.9353678f, 9.8127613f) - curveTo(8.961158f, 10.838552f, 10.141784f, 11.380479f, 11.51596f, 11.496605f) - verticalLineTo(0f) - curveTo(10.122429f, 0.096756f, 8.961158f, 0.6580573f, 7.9353678f, 1.6838476f) - curveTo(6.7934477f, 2.8257677f, 6.2321652f, 4.1612297f, 6.2321652f, 5.7483025f) - curveToRelative(0f, 1.5870766f, 0.5612825f, 2.9225387f, 1.7032026f, 4.0644588f) - close() - moveToRelative(4.5483172f, 2.6902827f) - verticalLineToRelative(11.51596f) - curveToRelative(1.393531f, -0.09676f, 2.593512f, -0.677412f, 3.580593f, -1.683848f) - curveToRelative(1.14192f, -1.14192f, 1.703202f, -2.477382f, 1.703202f, -4.083809f) - curveToRelative(0f, -1.606428f, -0.561282f, -2.922539f, -1.703202f, -4.064459f) - curveToRelative(-1.025791f, -1.02579f, -2.206417f, -1.587073f, -3.580593f, -1.683844f) - close() - moveToRelative(5.767658f, -6.270875f) - curveToRelative(-1.606428f, 0f, -2.922539f, 0.5612825f, -4.064455f, 1.7031988f) - curveTo(13.161098f, 8.9611581f, 12.61917f, 10.141788f, 12.50304f, 11.51596f) - horizontalLineTo(23.999646f) - curveTo(23.90289f, 10.122433f, 23.341592f, 8.9611581f, 22.315798f, 7.9353678f) - curveTo(21.173882f, 6.7934515f, 19.838416f, 6.232169f, 18.251343f, 6.232169f) - close() - - } -} - -val Icons.Rounded.BreezyWeather - get() = _BreezyWeather - -private val _TollOff = materialIcon("Icons.Rounded.TollOff") { - materialPath { - moveTo(2.8066406f, 3.2207031f) - curveToRelative(-0.2556191f, 0f, -0.5111625f, 0.099053f, -0.7070312f, 0.2949219f) - curveToRelative(-0.3917371f, 0.3917372f, -0.3917371f, 1.0223253f, 0f, 1.4140625f) - lineToRelative(1.3339844f, 1.3320312f) - verticalLineToRelative(0.00195f) - curveTo(1.933574f, 7.7156369f, 0.99999996f, 9.7483802f, 1f, 12f) - curveToRelative(3e-7f, 3.23f, 1.9196876f, 6.009532f, 4.6796875f, 7.269531f) - curveTo(6.2896876f, 19.549531f, 7.0000003f, 19.129219f, 7f, 18.449219f) - verticalLineToRelative(-0.179688f) - curveToRelative(-3e-7f, -0.37f, -0.2303127f, -0.689609f, -0.5703125f, -0.849609f) - curveTo(4.399687f, 16.459922f, 2.9999999f, 14.39f, 3f, 12f) - curveToRelative(-2e-7f, -1.698485f, 0.7060878f, -3.2344795f, 1.84375f, -4.3261719f) - lineToRelative(2.3925781f, 2.3906249f) - verticalLineToRelative(0.002f) - curveTo(7.0825208f, 10.685478f, 6.9999996f, 11.333026f, 7f, 12f) - curveToRelative(0f, 4.42f, 3.58f, 8f, 8f, 8f) - curveToRelative(0.666973f, 0f, 1.314475f, -0.08252f, 1.933594f, -0.236328f) - horizontalLineToRelative(0.002f) - lineToRelative(2.134765f, 2.136719f) - curveToRelative(0.391737f, 0.391737f, 1.022326f, 0.391737f, 1.414063f, 0f) - curveToRelative(0.391737f, -0.391738f, 0.391737f, -1.024279f, 0f, -1.416016f) - lineTo(18.955078f, 18.955078f) - lineTo(17.46875f, 17.46875f) - lineTo(9.53125f, 9.53125f) - lineTo(8.0449219f, 8.0449219f) - lineTo(6.5273437f, 6.5273437f) - lineTo(5.0507812f, 5.0507812f) - lineTo(3.515625f, 3.515625f) - curveTo(3.3197565f, 3.3197565f, 3.0622597f, 3.2207031f, 2.8066406f, 3.2207031f) - close() - moveTo(15f, 4f) - curveToRelative(-2.25366f, 2e-7f, -4.288489f, 0.9314658f, -5.7421875f, 2.4296875f) - lineTo(10.673828f, 7.8457031f) - curveTo(11.766133f, 6.7086818f, 13.30143f, 6.0000002f, 15f, 6f) - curveToRelative(3.31f, 4e-7f, 6f, 2.6899997f, 6f, 6f) - curveToRelative(0f, 1.69857f, -0.708682f, 3.233867f, -1.845703f, 4.326172f) - lineToRelative(1.416015f, 1.416015f) - curveTo(22.068533f, 16.288488f, 23f, 14.25366f, 23f, 12f) - curveTo(23f, 7.5799994f, 19.42f, 3.9999997f, 15f, 4f) - close() - moveToRelative(-5.9980469f, 7.832031f) - lineToRelative(6.1660159f, 6.166016f) - curveTo(15.112392f, 17.999575f, 15.055942f, 18f, 15f, 18f) - curveTo(11.69f, 18f, 9.0000004f, 15.31f, 9f, 12f) - curveToRelative(2e-7f, -0.05594f, 0.0004292f, -0.112391f, 0.00195f, -0.167969f) - close() - } -} - -val Icons.Outlined.TollOff - get() = _TollOff - -val _CutCorner = materialIcon("Icons.Rounded.CutCorner") { - materialPath { - moveTo(2f, 3f) - verticalLineTo(22f) - horizontalLineTo(21f) - verticalLineTo(11.585938f) - lineTo(12.414063f, 3f) - close() - moveToRelative(2f, 2f) - horizontalLineToRelative(7.585938f) - lineTo(19f, 12.414063f) - verticalLineTo(20f) - horizontalLineTo(4f) - close() - } -} - -val Icons.Rounded.CutCorner - get() = _CutCorner - -val _RoundedCornerAlt = materialIcon("Icons.Rounded.RoundedCornerAlt") { - materialPath { - moveTo(2f, 3f) - verticalLineTo(22f) - horizontalLineTo(21f) - verticalLineTo(12f) - curveTo(21f, 7.0412819f, 16.958718f, 3f, 12f, 3f) - close() - moveToRelative(2f, 2f) - horizontalLineToRelative(8f) - curveToRelative(3.877838f, 0f, 7f, 3.1221621f, 7f, 7f) - verticalLineToRelative(8f) - horizontalLineTo(4f) - close() - } -} - -val Icons.Rounded.RoundedCornerAlt - get() = _RoundedCornerAlt - -private val _LetterSpacing2 = materialIcon("Icons.Rounded.LetterSpacing2") { - materialPath { - moveTo(6.7f, 21.5125f) - quadToRelative(-0.275f, 0.275f, -0.7f, 0.275f) - quadToRelative(-0.425f, 0f, -0.7f, -0.275f) - lineToRelative(-2.6f, -2.6f) - quadToRelative(-0.3f, -0.3f, -0.3f, -0.7f) - quadToRelative(0f, -0.4f, 0.3f, -0.7f) - lineToRelative(2.6f, -2.6f) - quadToRelative(0.275f, -0.275f, 0.6875f, -0.275f) - quadToRelative(0.4125f, 0f, 0.7125f, 0.275f) - quadToRelative(0.3f, 0.3f, 0.3f, 0.7125f) - quadToRelative(0f, 0.4125f, -0.3f, 0.7125f) - lineToRelative(-0.875f, 0.875f) - horizontalLineToRelative(12.35f) - lineToRelative(-0.9f, -0.9f) - quadTo(17f, 16.0375f, 17f, 15.625f) - quadToRelative(0f, -0.4125f, 0.3f, -0.7125f) - quadToRelative(0.275f, -0.275f, 0.7f, -0.275f) - quadToRelative(0.425f, 0f, 0.7f, 0.275f) - lineToRelative(2.6f, 2.6f) - quadToRelative(0.3f, 0.3f, 0.3f, 0.7f) - quadToRelative(0f, 0.4f, -0.3f, 0.7f) - lineToRelative(-2.6f, 2.6f) - quadToRelative(-0.275f, 0.275f, -0.6875f, 0.275f) - quadToRelative(-0.4125f, 0f, -0.7125f, -0.275f) - quadToRelative(-0.3f, -0.3f, -0.3f, -0.7125f) - quadToRelative(0f, -0.4125f, 0.3f, -0.7125f) - lineToRelative(0.875f, -0.875f) - horizontalLineTo(5.825f) - lineToRelative(0.9f, 0.9f) - quadTo(7f, 20.3875f, 7f, 20.8f) - quadTo(7f, 21.2125f, 6.7f, 21.5125f) - close() - moveToRelative(0.65f, -9.5f) - lineToRelative(3.425f, -9.2f) - quadTo(10.875f, 2.5375f, 11.1125f, 2.375f) - quadTo(11.35f, 2.2125f, 11.65f, 2.2125f) - horizontalLineToRelative(0.7f) - quadToRelative(0.3f, 0f, 0.5375f, 0.1625f) - quadToRelative(0.2375f, 0.1625f, 0.3375f, 0.4375f) - lineToRelative(3.425f, 9.225f) - quadToRelative(0.15f, 0.425f, -0.1f, 0.8f) - quadToRelative(-0.25f, 0.375f, -0.7f, 0.375f) - quadToRelative(-0.275f, 0f, -0.5125f, -0.1625f) - quadTo(15.1f, 12.8875f, 15f, 12.6125f) - lineToRelative(-0.75f, -2.2f) - horizontalLineTo(9.8f) - lineTo(9f, 12.6375f) - quadToRelative(-0.1f, 0.275f, -0.325f, 0.425f) - quadToRelative(-0.225f, 0.15f, -0.5f, 0.15f) - quadToRelative(-0.475f, 0f, -0.7375f, -0.3875f) - quadTo(7.175f, 12.4375f, 7.35f, 12.0125f) - close() - moveToRelative(3f, -3.2f) - horizontalLineToRelative(3.3f) - lineToRelative(-1.6f, -4.55f) - horizontalLineToRelative(-0.1f) - close() - } -} - -val Icons.Rounded.LetterSpacing2 - get() = _LetterSpacing2 - // adapted from: https://www.flaticon.com/free-icons/climb -private val _Climbing = materialIcon("Icons.Rounded.Climbing") { +/*private val _Climbing = materialIcon("Icons.Rounded.Climbing") { materialPath { moveTo(x = 12.9f, y = 23.92f) curveToRelative( @@ -2305,47 +404,4 @@ private val _Climbing = materialIcon("Icons.Rounded.Climbing") { val Icons.Rounded.Climbing get() = _Climbing - -private val _Cube = materialIcon("Icons.Rounded.Cube") { - materialPath { - moveTo(11f, 19.425f) - verticalLineToRelative(-6.85f) - lineTo(5f, 9.1f) - verticalLineToRelative(6.85f) - close() - moveToRelative(2f, 0f) - lineToRelative(6f, -3.475f) - verticalLineTo(9.1f) - lineToRelative(-6f, 3.475f) - close() - moveTo(12f, 10.85f) - lineTo(17.925f, 7.425f) - lineTo(12f, 4f) - lineTo(6.075f, 7.425f) - close() - moveTo(4f, 17.7f) - quadTo(3.525f, 17.425f, 3.2625f, 16.975f) - quadTo(3f, 16.525f, 3f, 15.975f) - verticalLineToRelative(-7.95f) - quadToRelative(0f, -0.55f, 0.2625f, -1f) - quadTo(3.525f, 6.575f, 4f, 6.3f) - lineTo(11f, 2.275f) - quadTo(11.475f, 2f, 12f, 2f) - quadTo(12.525f, 2f, 13f, 2.275f) - lineTo(20f, 6.3f) - quadTo(20.475f, 6.575f, 20.7375f, 7.025f) - quadTo(21f, 7.475f, 21f, 8.025f) - verticalLineToRelative(7.95f) - quadToRelative(0f, 0.55f, -0.2625f, 1f) - quadTo(20.475f, 17.425f, 20f, 17.7f) - lineToRelative(-7f, 4.025f) - quadTo(12.525f, 22f, 12f, 22f) - quadTo(11.475f, 22f, 11f, 21.725f) - close() - moveTo(12f, 12f) - close() - } -} - -val Icons.Rounded.Cube - get() = _Cube \ No newline at end of file +*/ \ No newline at end of file diff --git a/core/base/src/main/java/de/mm20/launcher2/icons/LauncherIconLayer.kt b/core/base/src/main/java/de/mm20/launcher2/icons/LauncherIconLayer.kt index 8ab1d68d8..942006d1f 100644 --- a/core/base/src/main/java/de/mm20/launcher2/icons/LauncherIconLayer.kt +++ b/core/base/src/main/java/de/mm20/launcher2/icons/LauncherIconLayer.kt @@ -1,7 +1,7 @@ package de.mm20.launcher2.icons import android.graphics.drawable.Drawable -import androidx.compose.ui.graphics.vector.ImageVector +import androidx.annotation.DrawableRes sealed interface LauncherIconLayer @@ -54,8 +54,9 @@ data class TextLayer( val color: Int = 0, ) : LauncherIconLayer + data class VectorLayer( - val vector: ImageVector, + @DrawableRes val icon: Int, val color: Int = 0, ) : LauncherIconLayer diff --git a/core/base/src/main/java/de/mm20/launcher2/search/Contact.kt b/core/base/src/main/java/de/mm20/launcher2/search/Contact.kt index 6861fc08f..a07727187 100644 --- a/core/base/src/main/java/de/mm20/launcher2/search/Contact.kt +++ b/core/base/src/main/java/de/mm20/launcher2/search/Contact.kt @@ -1,8 +1,7 @@ package de.mm20.launcher2.search import android.content.Context -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Person +import de.mm20.launcher2.base.R import de.mm20.launcher2.icons.ColorLayer import de.mm20.launcher2.icons.StaticLauncherIcon import de.mm20.launcher2.icons.TextLayer @@ -39,7 +38,7 @@ interface Contact : SavableSearchable { } return StaticLauncherIcon( - foregroundLayer = VectorLayer(Icons.Rounded.Person), + foregroundLayer = VectorLayer(R.drawable.person_24px), backgroundLayer = ColorLayer(0xFF2364AA.toInt()) ) } diff --git a/core/base/src/main/java/de/mm20/launcher2/search/File.kt b/core/base/src/main/java/de/mm20/launcher2/search/File.kt index fbf4e3582..362e67ae4 100644 --- a/core/base/src/main/java/de/mm20/launcher2/search/File.kt +++ b/core/base/src/main/java/de/mm20/launcher2/search/File.kt @@ -6,6 +6,7 @@ import de.mm20.launcher2.base.R import de.mm20.launcher2.icons.ColorLayer import de.mm20.launcher2.icons.StaticLauncherIcon import de.mm20.launcher2.icons.TintedIconLayer +import de.mm20.launcher2.icons.VectorLayer import kotlinx.collections.immutable.ImmutableMap import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -55,9 +56,8 @@ interface File : SavableSearchable { } } return StaticLauncherIcon( - foregroundLayer = TintedIconLayer( - icon = ContextCompat.getDrawable(context, resId)!!, - scale = 0.5f, + foregroundLayer = VectorLayer( + icon = resId, color = ContextCompat.getColor(context, bgColor) ), backgroundLayer = ColorLayer(ContextCompat.getColor(context, bgColor)) diff --git a/core/base/src/main/java/de/mm20/launcher2/search/Location.kt b/core/base/src/main/java/de/mm20/launcher2/search/Location.kt index 42cea6232..c80069a13 100644 --- a/core/base/src/main/java/de/mm20/launcher2/search/Location.kt +++ b/core/base/src/main/java/de/mm20/launcher2/search/Location.kt @@ -4,125 +4,11 @@ import android.content.Context import android.content.Intent import android.net.Uri import android.os.Bundle -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.rounded.DirectionsBike -import androidx.compose.material.icons.rounded.AccountBalance -import androidx.compose.material.icons.rounded.AttachFile -import androidx.compose.material.icons.rounded.AttachMoney -import androidx.compose.material.icons.rounded.Attractions -import androidx.compose.material.icons.rounded.BakeryDining -import androidx.compose.material.icons.rounded.Bed -import androidx.compose.material.icons.rounded.Bento -import androidx.compose.material.icons.rounded.Book -import androidx.compose.material.icons.rounded.BreakfastDining -import androidx.compose.material.icons.rounded.BrunchDining -import androidx.compose.material.icons.rounded.CarRental -import androidx.compose.material.icons.rounded.CarRepair -import androidx.compose.material.icons.rounded.Casino -import androidx.compose.material.icons.rounded.Checkroom -import androidx.compose.material.icons.rounded.Church -import androidx.compose.material.icons.rounded.ContentCut -import androidx.compose.material.icons.rounded.Diamond -import androidx.compose.material.icons.rounded.DirectionsBoat -import androidx.compose.material.icons.rounded.DirectionsBus -import androidx.compose.material.icons.rounded.DirectionsCar -import androidx.compose.material.icons.rounded.DirectionsTransit -import androidx.compose.material.icons.rounded.Discount -import androidx.compose.material.icons.rounded.DownhillSkiing -import androidx.compose.material.icons.rounded.ElectricScooter -import androidx.compose.material.icons.rounded.EvStation -import androidx.compose.material.icons.rounded.Fastfood -import androidx.compose.material.icons.rounded.Festival -import androidx.compose.material.icons.rounded.FitnessCenter -import androidx.compose.material.icons.rounded.Flight -import androidx.compose.material.icons.rounded.Forest -import androidx.compose.material.icons.rounded.Gavel -import androidx.compose.material.icons.rounded.Hiking -import androidx.compose.material.icons.rounded.Hotel -import androidx.compose.material.icons.rounded.Icecream -import androidx.compose.material.icons.rounded.Kayaking -import androidx.compose.material.icons.rounded.KebabDining -import androidx.compose.material.icons.rounded.Liquor -import androidx.compose.material.icons.rounded.LocalAtm -import androidx.compose.material.icons.rounded.LocalBar -import androidx.compose.material.icons.rounded.LocalCafe -import androidx.compose.material.icons.rounded.LocalCarWash -import androidx.compose.material.icons.rounded.LocalConvenienceStore -import androidx.compose.material.icons.rounded.LocalFireDepartment -import androidx.compose.material.icons.rounded.LocalFlorist -import androidx.compose.material.icons.rounded.LocalGasStation -import androidx.compose.material.icons.rounded.LocalGroceryStore -import androidx.compose.material.icons.rounded.LocalHospital -import androidx.compose.material.icons.rounded.LocalLaundryService -import androidx.compose.material.icons.rounded.LocalMall -import androidx.compose.material.icons.rounded.LocalParking -import androidx.compose.material.icons.rounded.LocalPharmacy -import androidx.compose.material.icons.rounded.LocalPizza -import androidx.compose.material.icons.rounded.LocalPolice -import androidx.compose.material.icons.rounded.LocalPostOffice -import androidx.compose.material.icons.rounded.LocalTaxi -import androidx.compose.material.icons.rounded.LunchDining -import androidx.compose.material.icons.rounded.Moped -import androidx.compose.material.icons.rounded.Mosque -import androidx.compose.material.icons.rounded.Motorcycle -import androidx.compose.material.icons.rounded.Museum -import androidx.compose.material.icons.rounded.MusicNote -import androidx.compose.material.icons.rounded.Newspaper -import androidx.compose.material.icons.rounded.Nightlife -import androidx.compose.material.icons.rounded.NordicWalking -import androidx.compose.material.icons.rounded.Palette -import androidx.compose.material.icons.rounded.Paragliding -import androidx.compose.material.icons.rounded.Park -import androidx.compose.material.icons.rounded.Pets -import androidx.compose.material.icons.rounded.Phone -import androidx.compose.material.icons.rounded.Place -import androidx.compose.material.icons.rounded.Pool -import androidx.compose.material.icons.rounded.RamenDining -import androidx.compose.material.icons.rounded.Restaurant -import androidx.compose.material.icons.rounded.School -import androidx.compose.material.icons.rounded.ShoppingBag -import androidx.compose.material.icons.rounded.Skateboarding -import androidx.compose.material.icons.rounded.Snowboarding -import androidx.compose.material.icons.rounded.SoupKitchen -import androidx.compose.material.icons.rounded.Sports -import androidx.compose.material.icons.rounded.SportsBar -import androidx.compose.material.icons.rounded.SportsBaseball -import androidx.compose.material.icons.rounded.SportsBasketball -import androidx.compose.material.icons.rounded.SportsCricket -import androidx.compose.material.icons.rounded.SportsFootball -import androidx.compose.material.icons.rounded.SportsGolf -import androidx.compose.material.icons.rounded.SportsGymnastics -import androidx.compose.material.icons.rounded.SportsHandball -import androidx.compose.material.icons.rounded.SportsHockey -import androidx.compose.material.icons.rounded.SportsMartialArts -import androidx.compose.material.icons.rounded.SportsMotorsports -import androidx.compose.material.icons.rounded.SportsRugby -import androidx.compose.material.icons.rounded.SportsSoccer -import androidx.compose.material.icons.rounded.SportsTennis -import androidx.compose.material.icons.rounded.SportsVolleyball -import androidx.compose.material.icons.rounded.Stadium -import androidx.compose.material.icons.rounded.Subway -import androidx.compose.material.icons.rounded.Surfing -import androidx.compose.material.icons.rounded.Synagogue -import androidx.compose.material.icons.rounded.TakeoutDining -import androidx.compose.material.icons.rounded.TempleBuddhist -import androidx.compose.material.icons.rounded.TempleHindu -import androidx.compose.material.icons.rounded.Terminal -import androidx.compose.material.icons.rounded.TheaterComedy -import androidx.compose.material.icons.rounded.Theaters -import androidx.compose.material.icons.rounded.Train -import androidx.compose.material.icons.rounded.Tram -import androidx.compose.material.icons.rounded.Wc import androidx.core.content.ContextCompat +import androidx.core.net.toUri import de.mm20.launcher2.base.R -import de.mm20.launcher2.icons.CableCar -import de.mm20.launcher2.icons.Candle import de.mm20.launcher2.icons.ColorLayer -import de.mm20.launcher2.icons.Dentistry -import de.mm20.launcher2.icons.Eyeglasses -import de.mm20.launcher2.icons.Monument import de.mm20.launcher2.icons.StaticLauncherIcon -import de.mm20.launcher2.icons.Stethoscope import de.mm20.launcher2.icons.VectorLayer import de.mm20.launcher2.ktx.tryStartActivity import de.mm20.launcher2.search.location.Address @@ -135,8 +21,6 @@ import de.mm20.launcher2.search.location.PaymentMethod import java.time.LocalDateTime import java.time.temporal.TemporalAdjusters import android.location.Location as AndroidLocation -import androidx.core.net.toUri -import de.mm20.launcher2.icons.Climbing interface Location : SavableSearchable { @@ -178,142 +62,143 @@ interface Location : SavableSearchable { } override fun getPlaceholderIcon(context: Context): StaticLauncherIcon { - val (vector, bgColor) = when (icon) { + val (icon, bgColor) = when (icon) { // blue: transportation - LocationIcon.Car -> Icons.Rounded.DirectionsCar to R.color.blue - LocationIcon.CarRental -> Icons.Rounded.CarRental to R.color.blue - LocationIcon.CarRepair -> Icons.Rounded.CarRepair to R.color.blue - LocationIcon.CarWash -> Icons.Rounded.LocalCarWash to R.color.blue - LocationIcon.ChargingStation -> Icons.Rounded.EvStation to R.color.blue - LocationIcon.GasStation -> Icons.Rounded.LocalGasStation to R.color.blue - LocationIcon.Parking -> Icons.Rounded.LocalParking to R.color.blue - LocationIcon.Bus -> Icons.Rounded.DirectionsBus to R.color.blue - LocationIcon.Tram -> Icons.Rounded.Tram to R.color.blue - LocationIcon.Subway -> Icons.Rounded.Subway to R.color.blue - LocationIcon.Train -> Icons.Rounded.Train to R.color.blue - LocationIcon.CableCar -> Icons.Rounded.CableCar to R.color.blue - LocationIcon.Airport -> Icons.Rounded.Flight to R.color.blue - LocationIcon.Boat -> Icons.Rounded.DirectionsBoat to R.color.blue - LocationIcon.Moped -> Icons.Rounded.Moped to R.color.blue - LocationIcon.Bike -> Icons.AutoMirrored.Rounded.DirectionsBike to R.color.blue - LocationIcon.Motorcycle -> Icons.Rounded.Motorcycle to R.color.blue - LocationIcon.ElectricScooter -> Icons.Rounded.ElectricScooter to R.color.blue - LocationIcon.Taxi -> Icons.Rounded.LocalTaxi to R.color.blue - LocationIcon.GenericTransit -> Icons.Rounded.DirectionsTransit to R.color.blue + LocationIcon.Car -> R.drawable.directions_car_24px to R.color.blue + LocationIcon.CarRental -> R.drawable.car_rental_24px to R.color.blue + LocationIcon.CarRepair -> R.drawable.car_repair_24px to R.color.blue + LocationIcon.CarWash -> R.drawable.local_car_wash_24px to R.color.blue + LocationIcon.ChargingStation -> R.drawable.ev_station_24px to R.color.blue + LocationIcon.GasStation -> R.drawable.local_gas_station_24px to R.color.blue + LocationIcon.Parking -> R.drawable.local_parking_24px to R.color.blue + LocationIcon.Bus -> R.drawable.directions_bus_24px to R.color.blue + LocationIcon.Tram -> R.drawable.tram_24px to R.color.blue + LocationIcon.Subway -> R.drawable.subway_24px to R.color.blue + LocationIcon.Train -> R.drawable.train_24px to R.color.blue + LocationIcon.CableCar -> R.drawable.cable_car_24px to R.color.blue + LocationIcon.AerialTramway -> R.drawable.gondola_lift_24px to R.color.blue + LocationIcon.Airport -> R.drawable.flight_24px to R.color.blue + LocationIcon.Boat -> R.drawable.directions_boat_24px to R.color.blue + LocationIcon.Moped -> R.drawable.moped_24px to R.color.blue + LocationIcon.Bike -> R.drawable.directions_bike_24px to R.color.blue + LocationIcon.Motorcycle -> R.drawable.motorcycle_24px to R.color.blue + LocationIcon.ElectricScooter -> R.drawable.electric_scooter_24px to R.color.blue + LocationIcon.Taxi -> R.drawable.local_taxi_24px to R.color.blue + LocationIcon.GenericTransit -> R.drawable.train_24px to R.color.blue // cyan: art, culture, entertainment - LocationIcon.ArtGallery -> Icons.Rounded.Palette to R.color.cyan - LocationIcon.Museum -> Icons.Rounded.Museum to R.color.cyan - LocationIcon.Theater -> Icons.Rounded.TheaterComedy to R.color.cyan - LocationIcon.MovieTheater -> Icons.Rounded.Theaters to R.color.cyan - LocationIcon.AmusementPark -> Icons.Rounded.Attractions to R.color.cyan - LocationIcon.NightClub -> Icons.Rounded.Nightlife to R.color.cyan - LocationIcon.ConcertHall -> Icons.Rounded.MusicNote to R.color.cyan - LocationIcon.Stadium -> Icons.Rounded.Stadium to R.color.cyan - LocationIcon.Casino -> Icons.Rounded.Casino to R.color.cyan - LocationIcon.Circus -> Icons.Rounded.Festival to R.color.cyan + LocationIcon.ArtGallery -> R.drawable.palette_24px to R.color.cyan + LocationIcon.Museum -> R.drawable.museum_24px to R.color.cyan + LocationIcon.Theater -> R.drawable.theater_comedy_24px to R.color.cyan + LocationIcon.MovieTheater -> R.drawable.theaters_24px to R.color.cyan + LocationIcon.AmusementPark -> R.drawable.attractions_24px to R.color.cyan + LocationIcon.NightClub -> R.drawable.nightlife_24px to R.color.cyan + LocationIcon.ConcertHall -> R.drawable.music_note_24px to R.color.cyan + LocationIcon.Stadium -> R.drawable.stadium_24px to R.color.cyan + LocationIcon.Casino -> R.drawable.casino_24px to R.color.cyan + LocationIcon.Circus -> R.drawable.festival_24px to R.color.cyan // pink: hotels - LocationIcon.Hotel -> Icons.Rounded.Hotel to R.color.pink + LocationIcon.Hotel -> R.drawable.hotel_24px to R.color.pink // orange: food and drink - LocationIcon.Restaurant -> Icons.Rounded.Restaurant to R.color.orange - LocationIcon.Cafe -> Icons.Rounded.LocalCafe to R.color.orange - LocationIcon.FastFood -> Icons.Rounded.Fastfood to R.color.orange - LocationIcon.Pizza -> Icons.Rounded.LocalPizza to R.color.orange - LocationIcon.Burger -> Icons.Rounded.LunchDining to R.color.orange - LocationIcon.Kebab -> Icons.Rounded.KebabDining to R.color.orange - LocationIcon.IceCream -> Icons.Rounded.Icecream to R.color.orange - LocationIcon.Ramen -> Icons.Rounded.RamenDining to R.color.orange - LocationIcon.Soup -> Icons.Rounded.SoupKitchen to R.color.orange - LocationIcon.Bar -> Icons.Rounded.LocalBar to R.color.orange - LocationIcon.Brunch -> Icons.Rounded.BrunchDining to R.color.orange - LocationIcon.Breakfast -> Icons.Rounded.BreakfastDining to R.color.orange - LocationIcon.Pub -> Icons.Rounded.SportsBar to R.color.orange - LocationIcon.JapaneseCuisine -> Icons.Rounded.Bento to R.color.orange - LocationIcon.AsianCuisine -> Icons.Rounded.TakeoutDining to R.color.orange + LocationIcon.Restaurant -> R.drawable.restaurant_24px to R.color.orange + LocationIcon.Cafe -> R.drawable.local_cafe_24px to R.color.orange + LocationIcon.FastFood -> R.drawable.fastfood_24px to R.color.orange + LocationIcon.Pizza -> R.drawable.local_pizza_24px to R.color.orange + LocationIcon.Burger -> R.drawable.lunch_dining_24px to R.color.orange + LocationIcon.Kebab -> R.drawable.kebab_dining_24px to R.color.orange + LocationIcon.IceCream -> R.drawable.icecream_24px to R.color.orange + LocationIcon.Ramen -> R.drawable.ramen_dining_24px to R.color.orange + LocationIcon.Soup -> R.drawable.soup_kitchen_24px to R.color.orange + LocationIcon.Bar -> R.drawable.local_bar_24px to R.color.orange + LocationIcon.Brunch -> R.drawable.brunch_dining_24px to R.color.orange + LocationIcon.Breakfast -> R.drawable.breakfast_dining_24px to R.color.orange + LocationIcon.Pub -> R.drawable.sports_bar_24px to R.color.orange + LocationIcon.JapaneseCuisine -> R.drawable.bento_24px to R.color.orange + LocationIcon.AsianCuisine -> R.drawable.takeout_dining_24px to R.color.orange // indigo: business and shopping - LocationIcon.Shopping -> Icons.Rounded.ShoppingBag to R.color.indigo - LocationIcon.Supermarket -> Icons.Rounded.LocalGroceryStore to R.color.indigo - LocationIcon.Florist -> Icons.Rounded.LocalFlorist to R.color.indigo - LocationIcon.Kiosk -> Icons.Rounded.Newspaper to R.color.indigo - LocationIcon.FurnitureStore -> Icons.Rounded.Bed to R.color.indigo - LocationIcon.CellPhoneStore -> Icons.Rounded.Phone to R.color.indigo - LocationIcon.BookStore -> Icons.Rounded.Book to R.color.indigo - LocationIcon.ClothingStore -> Icons.Rounded.Checkroom to R.color.indigo - LocationIcon.ConvenienceStore -> Icons.Rounded.LocalConvenienceStore to R.color.indigo - LocationIcon.DiscountStore -> Icons.Rounded.Discount to R.color.indigo - LocationIcon.JewelryStore -> Icons.Rounded.Diamond to R.color.indigo - LocationIcon.ShoppingMall -> Icons.Rounded.LocalMall to R.color.indigo - LocationIcon.LiquorStore -> Icons.Rounded.Liquor to R.color.indigo - LocationIcon.PetStore -> Icons.Rounded.Pets to R.color.indigo - LocationIcon.Bakery -> Icons.Rounded.BakeryDining to R.color.indigo - LocationIcon.Optician -> Icons.Rounded.Eyeglasses to R.color.indigo - LocationIcon.Pharmacy -> Icons.Rounded.LocalPharmacy to R.color.indigo - LocationIcon.HairSalon -> Icons.Rounded.ContentCut to R.color.indigo - LocationIcon.Laundromat -> Icons.Rounded.LocalLaundryService to R.color.indigo - LocationIcon.Stationery -> Icons.Rounded.AttachFile to R.color.indigo + LocationIcon.Shopping -> R.drawable.shopping_bag_24px to R.color.indigo + LocationIcon.Supermarket -> R.drawable.grocery_24px to R.color.indigo + LocationIcon.Florist -> R.drawable.local_florist_24px to R.color.indigo + LocationIcon.Kiosk -> R.drawable.newspaper_24px to R.color.indigo + LocationIcon.FurnitureStore -> R.drawable.bed_24px to R.color.indigo + LocationIcon.CellPhoneStore -> R.drawable.mobile_24px to R.color.indigo + LocationIcon.BookStore -> R.drawable.book_24px to R.color.indigo + LocationIcon.ClothingStore -> R.drawable.apparel_24px to R.color.indigo + LocationIcon.ConvenienceStore -> R.drawable.local_convenience_store_24px to R.color.indigo + LocationIcon.DiscountStore -> R.drawable.percent_discount_24px to R.color.indigo + LocationIcon.JewelryStore -> R.drawable.diamond_24px to R.color.indigo + LocationIcon.ShoppingMall -> R.drawable.local_mall_24px to R.color.indigo + LocationIcon.LiquorStore -> R.drawable.liquor_24px to R.color.indigo + LocationIcon.PetStore -> R.drawable.pets_24px to R.color.indigo + LocationIcon.Bakery -> R.drawable.bakery_dining_24px to R.color.indigo + LocationIcon.Optician -> R.drawable.eyeglasses_24px to R.color.indigo + LocationIcon.Pharmacy -> R.drawable.local_pharmacy_24px to R.color.indigo + LocationIcon.HairSalon -> R.drawable.content_cut_24px to R.color.indigo + LocationIcon.Laundromat -> R.drawable.local_laundry_service_24px to R.color.indigo + LocationIcon.Stationery -> R.drawable.attach_file_24px to R.color.indigo // purple: sports and recreation - LocationIcon.Sports -> Icons.Rounded.Sports to R.color.purple - LocationIcon.FitnessCenter -> Icons.Rounded.FitnessCenter to R.color.purple - LocationIcon.Soccer -> Icons.Rounded.SportsSoccer to R.color.purple - LocationIcon.Basketball -> Icons.Rounded.SportsBasketball to R.color.purple - LocationIcon.Golf -> Icons.Rounded.SportsGolf to R.color.purple - LocationIcon.Tennis -> Icons.Rounded.SportsTennis to R.color.purple - LocationIcon.Baseball -> Icons.Rounded.SportsBaseball to R.color.purple - LocationIcon.Rugby -> Icons.Rounded.SportsRugby to R.color.purple - LocationIcon.AmericanFootball -> Icons.Rounded.SportsFootball to R.color.purple - LocationIcon.Hiking -> Icons.Rounded.Hiking to R.color.purple - LocationIcon.Swimming -> Icons.Rounded.Pool to R.color.purple - LocationIcon.Surfing -> Icons.Rounded.Surfing to R.color.purple - LocationIcon.Motorsports -> Icons.Rounded.SportsMotorsports to R.color.purple - LocationIcon.Handball -> Icons.Rounded.SportsHandball to R.color.purple - LocationIcon.Volleyball -> Icons.Rounded.SportsVolleyball to R.color.purple - LocationIcon.Skiing -> Icons.Rounded.DownhillSkiing to R.color.purple - LocationIcon.Kayaking -> Icons.Rounded.Kayaking to R.color.purple - LocationIcon.Skateboarding -> Icons.Rounded.Skateboarding to R.color.purple - LocationIcon.Cricket -> Icons.Rounded.SportsCricket to R.color.purple - LocationIcon.Climbing -> Icons.Rounded.Climbing to R.color.purple - LocationIcon.MartialArts -> Icons.Rounded.SportsMartialArts to R.color.purple - LocationIcon.NordicWalking -> Icons.Rounded.NordicWalking to R.color.purple - LocationIcon.Paragliding -> Icons.Rounded.Paragliding to R.color.purple - LocationIcon.Gymnastics -> Icons.Rounded.SportsGymnastics to R.color.purple - LocationIcon.Snowboarding -> Icons.Rounded.Snowboarding to R.color.purple - LocationIcon.Hockey -> Icons.Rounded.SportsHockey to R.color.purple - LocationIcon.Hackerspace -> Icons.Rounded.Terminal to R.color.purple + LocationIcon.Sports -> R.drawable.sports_24px to R.color.purple + LocationIcon.FitnessCenter -> R.drawable.fitness_center_24px to R.color.purple + LocationIcon.Soccer -> R.drawable.sports_soccer_24px to R.color.purple + LocationIcon.Basketball -> R.drawable.sports_basketball_24px to R.color.purple + LocationIcon.Golf -> R.drawable.sports_golf_24px to R.color.purple + LocationIcon.Tennis -> R.drawable.sports_tennis_24px to R.color.purple + LocationIcon.Baseball -> R.drawable.sports_baseball_24px to R.color.purple + LocationIcon.Rugby -> R.drawable.sports_rugby_24px to R.color.purple + LocationIcon.AmericanFootball -> R.drawable.sports_football_24px to R.color.purple + LocationIcon.Hiking -> R.drawable.hiking_24px to R.color.purple + LocationIcon.Swimming -> R.drawable.pool_24px to R.color.purple + LocationIcon.Surfing -> R.drawable.surfing_24px to R.color.purple + LocationIcon.Motorsports -> R.drawable.sports_motorsports_24px to R.color.purple + LocationIcon.Handball -> R.drawable.sports_handball_24px to R.color.purple + LocationIcon.Volleyball -> R.drawable.sports_volleyball_24px to R.color.purple + LocationIcon.Skiing -> R.drawable.downhill_skiing_24px to R.color.purple + LocationIcon.Kayaking -> R.drawable.kayaking_24px to R.color.purple + LocationIcon.Skateboarding -> R.drawable.skateboarding_24px to R.color.purple + LocationIcon.Cricket -> R.drawable.sports_cricket_24px to R.color.purple + //LocationIcon.Climbing -> Icons.Rounded.Climbing to R.color.purple + LocationIcon.MartialArts -> R.drawable.sports_martial_arts_24px to R.color.purple + LocationIcon.NordicWalking -> R.drawable.nordic_walking_24px to R.color.purple + LocationIcon.Paragliding -> R.drawable.paragliding_24px to R.color.purple + LocationIcon.Gymnastics -> R.drawable.sports_gymnastics_24px to R.color.purple + LocationIcon.Snowboarding -> R.drawable.snowboarding_24px to R.color.purple + LocationIcon.Hockey -> R.drawable.sports_hockey_24px to R.color.purple + LocationIcon.Hackerspace -> R.drawable.terminal_24px to R.color.purple // green: finances - LocationIcon.Bank -> Icons.Rounded.AttachMoney to R.color.green - LocationIcon.Atm -> Icons.Rounded.LocalAtm to R.color.green + LocationIcon.Bank -> R.drawable.universal_currency_alt_24px to R.color.green + LocationIcon.Atm -> R.drawable.credit_card_24px to R.color.green // red: health - LocationIcon.Hospital -> Icons.Rounded.LocalHospital to R.color.red - LocationIcon.Clinic -> Icons.Rounded.LocalHospital to R.color.red - LocationIcon.Dentist -> Icons.Rounded.Dentistry to R.color.red - LocationIcon.Physician -> Icons.Rounded.Stethoscope to R.color.red + LocationIcon.Hospital -> R.drawable.emergency_24px to R.color.red + LocationIcon.Clinic -> R.drawable.health_cross_24px to R.color.red + LocationIcon.Dentist -> R.drawable.dentistry_24px to R.color.red + LocationIcon.Physician -> R.drawable.stethoscope_24px to R.color.red // light green: nature - LocationIcon.Park -> Icons.Rounded.Park to R.color.lightgreen - LocationIcon.Forest -> Icons.Rounded.Forest to R.color.lightgreen + LocationIcon.Park -> R.drawable.park_24px to R.color.lightgreen + LocationIcon.Forest -> R.drawable.forest_24px to R.color.lightgreen // brown: places of worship and remembrance - LocationIcon.Monument -> Icons.Rounded.Monument to R.color.brown - LocationIcon.Church -> Icons.Rounded.Church to R.color.brown - LocationIcon.Mosque -> Icons.Rounded.Mosque to R.color.brown - LocationIcon.Synagogue -> Icons.Rounded.Synagogue to R.color.brown - LocationIcon.HinduTemple -> Icons.Rounded.TempleHindu to R.color.brown - LocationIcon.BuddhistTemple -> Icons.Rounded.TempleBuddhist to R.color.brown - LocationIcon.PlaceOfWorship -> Icons.Rounded.Candle to R.color.brown + LocationIcon.Monument -> R.drawable.chess_rook_24px to R.color.brown + LocationIcon.Church -> R.drawable.church_24px to R.color.brown + LocationIcon.Mosque -> R.drawable.mosque_24px to R.color.brown + LocationIcon.Synagogue -> R.drawable.synagogue_24px to R.color.brown + LocationIcon.HinduTemple -> R.drawable.temple_hindu_24px to R.color.brown + LocationIcon.BuddhistTemple -> R.drawable.temple_buddhist_24px to R.color.brown + LocationIcon.PlaceOfWorship -> R.drawable.candle_24px to R.color.brown // bluegrey: public services - LocationIcon.GovernmentBuilding -> Icons.Rounded.AccountBalance to R.color.bluegrey - LocationIcon.Police -> Icons.Rounded.LocalPolice to R.color.bluegrey - LocationIcon.FireDepartment -> Icons.Rounded.LocalFireDepartment to R.color.bluegrey - LocationIcon.Courthouse -> Icons.Rounded.Gavel to R.color.bluegrey - LocationIcon.PostOffice -> Icons.Rounded.LocalPostOffice to R.color.bluegrey - LocationIcon.Library -> Icons.Rounded.Book to R.color.bluegrey - LocationIcon.School -> Icons.Rounded.School to R.color.bluegrey - LocationIcon.University -> Icons.Rounded.School to R.color.bluegrey - LocationIcon.PublicBathroom -> Icons.Rounded.Wc to R.color.bluegrey + LocationIcon.GovernmentBuilding -> R.drawable.account_balance_24px to R.color.bluegrey + LocationIcon.Police -> R.drawable.local_police_24px to R.color.bluegrey + LocationIcon.FireDepartment -> R.drawable.local_fire_department_24px to R.color.bluegrey + LocationIcon.Courthouse -> R.drawable.gavel_24px to R.color.bluegrey + LocationIcon.PostOffice -> R.drawable.local_post_office_24px to R.color.bluegrey + LocationIcon.Library -> R.drawable.local_library_24px to R.color.bluegrey + LocationIcon.School -> R.drawable.school_24px to R.color.bluegrey + LocationIcon.University -> R.drawable.school_24px to R.color.bluegrey + LocationIcon.PublicBathroom -> R.drawable.wc_24px to R.color.bluegrey - null -> Icons.Rounded.Place to R.color.bluegrey + else -> R.drawable.location_on_24px to R.color.bluegrey } return StaticLauncherIcon( foregroundLayer = VectorLayer( - vector = vector, + icon = icon, color = ContextCompat.getColor(context, bgColor) ), backgroundLayer = ColorLayer(ContextCompat.getColor(context, bgColor)) diff --git a/core/base/src/main/java/de/mm20/launcher2/search/Tag.kt b/core/base/src/main/java/de/mm20/launcher2/search/Tag.kt index 74eb8d8c9..0f1676cde 100644 --- a/core/base/src/main/java/de/mm20/launcher2/search/Tag.kt +++ b/core/base/src/main/java/de/mm20/launcher2/search/Tag.kt @@ -2,8 +2,7 @@ package de.mm20.launcher2.search import android.content.Context import android.os.Bundle -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Tag +import de.mm20.launcher2.base.R import de.mm20.launcher2.icons.ColorLayer import de.mm20.launcher2.icons.StaticLauncherIcon import de.mm20.launcher2.icons.VectorLayer @@ -11,7 +10,7 @@ import de.mm20.launcher2.icons.VectorLayer data class Tag( val tag: String, override val labelOverride: String? = null -): SavableSearchable { +) : SavableSearchable { override val domain: String = Domain @@ -23,13 +22,14 @@ data class Tag( override fun launch(context: Context, options: Bundle?): Boolean { return false } + override fun overrideLabel(label: String): SavableSearchable { return this.copy(labelOverride = label) } override fun getPlaceholderIcon(context: Context): StaticLauncherIcon { return StaticLauncherIcon( - foregroundLayer = VectorLayer(Icons.Rounded.Tag), + foregroundLayer = VectorLayer(R.drawable.tag_20px), backgroundLayer = ColorLayer() ) } diff --git a/core/base/src/main/res/drawable/_123_24px.xml b/core/base/src/main/res/drawable/_123_24px.xml new file mode 100644 index 000000000..ae62eee31 --- /dev/null +++ b/core/base/src/main/res/drawable/_123_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/account_balance_24px.xml b/core/base/src/main/res/drawable/account_balance_24px.xml new file mode 100644 index 000000000..e2c01cbef --- /dev/null +++ b/core/base/src/main/res/drawable/account_balance_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/account_box_24px.xml b/core/base/src/main/res/drawable/account_box_24px.xml new file mode 100644 index 000000000..af9e42c64 --- /dev/null +++ b/core/base/src/main/res/drawable/account_box_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/add_20px.xml b/core/base/src/main/res/drawable/add_20px.xml new file mode 100644 index 000000000..4472da7b4 --- /dev/null +++ b/core/base/src/main/res/drawable/add_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/add_24px.xml b/core/base/src/main/res/drawable/add_24px.xml new file mode 100644 index 000000000..fe955f0ab --- /dev/null +++ b/core/base/src/main/res/drawable/add_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/adjust_24px.xml b/core/base/src/main/res/drawable/adjust_24px.xml new file mode 100644 index 000000000..6736f14f1 --- /dev/null +++ b/core/base/src/main/res/drawable/adjust_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/air_20px.xml b/core/base/src/main/res/drawable/air_20px.xml new file mode 100644 index 000000000..ad4fa455b --- /dev/null +++ b/core/base/src/main/res/drawable/air_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/air_24px.xml b/core/base/src/main/res/drawable/air_24px.xml new file mode 100644 index 000000000..883265d7a --- /dev/null +++ b/core/base/src/main/res/drawable/air_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/alarm_24px.xml b/core/base/src/main/res/drawable/alarm_24px.xml new file mode 100644 index 000000000..7241add18 --- /dev/null +++ b/core/base/src/main/res/drawable/alarm_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/align_vertical_bottom_24px.xml b/core/base/src/main/res/drawable/align_vertical_bottom_24px.xml new file mode 100644 index 000000000..5759cd18e --- /dev/null +++ b/core/base/src/main/res/drawable/align_vertical_bottom_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/align_vertical_center_24px.xml b/core/base/src/main/res/drawable/align_vertical_center_24px.xml new file mode 100644 index 000000000..2c1bdb2c7 --- /dev/null +++ b/core/base/src/main/res/drawable/align_vertical_center_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/align_vertical_top_24px.xml b/core/base/src/main/res/drawable/align_vertical_top_24px.xml new file mode 100644 index 000000000..5eadd6c40 --- /dev/null +++ b/core/base/src/main/res/drawable/align_vertical_top_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/apk_document_24px.xml b/core/base/src/main/res/drawable/apk_document_24px.xml new file mode 100644 index 000000000..14d2317ad --- /dev/null +++ b/core/base/src/main/res/drawable/apk_document_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/apparel_24px.xml b/core/base/src/main/res/drawable/apparel_24px.xml new file mode 100644 index 000000000..27700f8f5 --- /dev/null +++ b/core/base/src/main/res/drawable/apparel_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/apps_20px.xml b/core/base/src/main/res/drawable/apps_20px.xml new file mode 100644 index 000000000..1c693da4a --- /dev/null +++ b/core/base/src/main/res/drawable/apps_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/apps_24px.xml b/core/base/src/main/res/drawable/apps_24px.xml new file mode 100644 index 000000000..200471806 --- /dev/null +++ b/core/base/src/main/res/drawable/apps_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/arrow_back_24px.xml b/core/base/src/main/res/drawable/arrow_back_24px.xml new file mode 100644 index 000000000..9a80bddf2 --- /dev/null +++ b/core/base/src/main/res/drawable/arrow_back_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/arrow_circle_down_24px.xml b/core/base/src/main/res/drawable/arrow_circle_down_24px.xml new file mode 100644 index 000000000..03edb80d2 --- /dev/null +++ b/core/base/src/main/res/drawable/arrow_circle_down_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/arrow_circle_up_24px.xml b/core/base/src/main/res/drawable/arrow_circle_up_24px.xml new file mode 100644 index 000000000..b51ebff3d --- /dev/null +++ b/core/base/src/main/res/drawable/arrow_circle_up_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/arrow_downward_24px.xml b/core/base/src/main/res/drawable/arrow_downward_24px.xml new file mode 100644 index 000000000..84e252456 --- /dev/null +++ b/core/base/src/main/res/drawable/arrow_downward_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/arrow_drop_down_20px.xml b/core/base/src/main/res/drawable/arrow_drop_down_20px.xml new file mode 100644 index 000000000..a6142d781 --- /dev/null +++ b/core/base/src/main/res/drawable/arrow_drop_down_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/arrow_drop_down_24px.xml b/core/base/src/main/res/drawable/arrow_drop_down_24px.xml new file mode 100644 index 000000000..9332234e4 --- /dev/null +++ b/core/base/src/main/res/drawable/arrow_drop_down_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/arrow_drop_up_24px.xml b/core/base/src/main/res/drawable/arrow_drop_up_24px.xml new file mode 100644 index 000000000..917def92d --- /dev/null +++ b/core/base/src/main/res/drawable/arrow_drop_up_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/arrow_outward_24px.xml b/core/base/src/main/res/drawable/arrow_outward_24px.xml new file mode 100644 index 000000000..26cb57279 --- /dev/null +++ b/core/base/src/main/res/drawable/arrow_outward_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/assistant_navigation_20px.xml b/core/base/src/main/res/drawable/assistant_navigation_20px.xml new file mode 100644 index 000000000..ce35ee02d --- /dev/null +++ b/core/base/src/main/res/drawable/assistant_navigation_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/assistant_navigation_24px.xml b/core/base/src/main/res/drawable/assistant_navigation_24px.xml new file mode 100644 index 000000000..4432851ce --- /dev/null +++ b/core/base/src/main/res/drawable/assistant_navigation_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/attach_file_24px.xml b/core/base/src/main/res/drawable/attach_file_24px.xml new file mode 100644 index 000000000..94ca5fb77 --- /dev/null +++ b/core/base/src/main/res/drawable/attach_file_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/attractions_24px.xml b/core/base/src/main/res/drawable/attractions_24px.xml new file mode 100644 index 000000000..f945ecb2e --- /dev/null +++ b/core/base/src/main/res/drawable/attractions_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/auto_awesome_20dp.xml b/core/base/src/main/res/drawable/auto_awesome_20dp.xml new file mode 100644 index 000000000..3ffdc4041 --- /dev/null +++ b/core/base/src/main/res/drawable/auto_awesome_20dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/core/base/src/main/res/drawable/auto_awesome_24dp.xml b/core/base/src/main/res/drawable/auto_awesome_24dp.xml new file mode 100644 index 000000000..a6929da9b --- /dev/null +++ b/core/base/src/main/res/drawable/auto_awesome_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/core/base/src/main/res/drawable/autorenew_24px.xml b/core/base/src/main/res/drawable/autorenew_24px.xml new file mode 100644 index 000000000..4ac69c08f --- /dev/null +++ b/core/base/src/main/res/drawable/autorenew_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/bakery_dining_24px.xml b/core/base/src/main/res/drawable/bakery_dining_24px.xml new file mode 100644 index 000000000..5d32b1b14 --- /dev/null +++ b/core/base/src/main/res/drawable/bakery_dining_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_0_bar_24px.xml b/core/base/src/main/res/drawable/battery_0_bar_24px.xml new file mode 100644 index 000000000..8b3fa32c1 --- /dev/null +++ b/core/base/src/main/res/drawable/battery_0_bar_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_1_bar_24px.xml b/core/base/src/main/res/drawable/battery_1_bar_24px.xml new file mode 100644 index 000000000..ced45872f --- /dev/null +++ b/core/base/src/main/res/drawable/battery_1_bar_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_2_bar_24px.xml b/core/base/src/main/res/drawable/battery_2_bar_24px.xml new file mode 100644 index 000000000..85e8c5d13 --- /dev/null +++ b/core/base/src/main/res/drawable/battery_2_bar_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_3_bar_24px.xml b/core/base/src/main/res/drawable/battery_3_bar_24px.xml new file mode 100644 index 000000000..e8672504b --- /dev/null +++ b/core/base/src/main/res/drawable/battery_3_bar_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_4_bar_24px.xml b/core/base/src/main/res/drawable/battery_4_bar_24px.xml new file mode 100644 index 000000000..9ce1cd64a --- /dev/null +++ b/core/base/src/main/res/drawable/battery_4_bar_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_5_bar_24px.xml b/core/base/src/main/res/drawable/battery_5_bar_24px.xml new file mode 100644 index 000000000..6c564cfba --- /dev/null +++ b/core/base/src/main/res/drawable/battery_5_bar_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_6_bar_24px.xml b/core/base/src/main/res/drawable/battery_6_bar_24px.xml new file mode 100644 index 000000000..d90e8a3cd --- /dev/null +++ b/core/base/src/main/res/drawable/battery_6_bar_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_charging_20_24px.xml b/core/base/src/main/res/drawable/battery_charging_20_24px.xml new file mode 100644 index 000000000..05213ca28 --- /dev/null +++ b/core/base/src/main/res/drawable/battery_charging_20_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_charging_30_24px.xml b/core/base/src/main/res/drawable/battery_charging_30_24px.xml new file mode 100644 index 000000000..cb7e13786 --- /dev/null +++ b/core/base/src/main/res/drawable/battery_charging_30_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_charging_50_20px.xml b/core/base/src/main/res/drawable/battery_charging_50_20px.xml new file mode 100644 index 000000000..23f825771 --- /dev/null +++ b/core/base/src/main/res/drawable/battery_charging_50_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_charging_50_24px.xml b/core/base/src/main/res/drawable/battery_charging_50_24px.xml new file mode 100644 index 000000000..7e124fcaf --- /dev/null +++ b/core/base/src/main/res/drawable/battery_charging_50_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_charging_60_20px.xml b/core/base/src/main/res/drawable/battery_charging_60_20px.xml new file mode 100644 index 000000000..1a98e436a --- /dev/null +++ b/core/base/src/main/res/drawable/battery_charging_60_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_charging_60_24px.xml b/core/base/src/main/res/drawable/battery_charging_60_24px.xml new file mode 100644 index 000000000..b17689d55 --- /dev/null +++ b/core/base/src/main/res/drawable/battery_charging_60_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_charging_80_24px.xml b/core/base/src/main/res/drawable/battery_charging_80_24px.xml new file mode 100644 index 000000000..33346722c --- /dev/null +++ b/core/base/src/main/res/drawable/battery_charging_80_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_charging_90_24px.xml b/core/base/src/main/res/drawable/battery_charging_90_24px.xml new file mode 100644 index 000000000..36d22cd5f --- /dev/null +++ b/core/base/src/main/res/drawable/battery_charging_90_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_charging_full_24px.xml b/core/base/src/main/res/drawable/battery_charging_full_24px.xml new file mode 100644 index 000000000..62076bfed --- /dev/null +++ b/core/base/src/main/res/drawable/battery_charging_full_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/battery_full_24px.xml b/core/base/src/main/res/drawable/battery_full_24px.xml new file mode 100644 index 000000000..62252a4df --- /dev/null +++ b/core/base/src/main/res/drawable/battery_full_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/bed_24px.xml b/core/base/src/main/res/drawable/bed_24px.xml new file mode 100644 index 000000000..425ce4869 --- /dev/null +++ b/core/base/src/main/res/drawable/bed_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/bento_24px.xml b/core/base/src/main/res/drawable/bento_24px.xml new file mode 100644 index 000000000..8bd7b5c07 --- /dev/null +++ b/core/base/src/main/res/drawable/bento_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/bolt_24px.xml b/core/base/src/main/res/drawable/bolt_24px.xml new file mode 100644 index 000000000..070a0cbb3 --- /dev/null +++ b/core/base/src/main/res/drawable/bolt_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/bolt_24px_filled.xml b/core/base/src/main/res/drawable/bolt_24px_filled.xml new file mode 100644 index 000000000..afcf9e25e --- /dev/null +++ b/core/base/src/main/res/drawable/bolt_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/book_24px.xml b/core/base/src/main/res/drawable/book_24px.xml new file mode 100644 index 000000000..21cb86a63 --- /dev/null +++ b/core/base/src/main/res/drawable/book_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/breakfast_dining_24px.xml b/core/base/src/main/res/drawable/breakfast_dining_24px.xml new file mode 100644 index 000000000..4460338e4 --- /dev/null +++ b/core/base/src/main/res/drawable/breakfast_dining_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/breezy_weather.xml b/core/base/src/main/res/drawable/breezy_weather.xml new file mode 100644 index 000000000..efaa866e7 --- /dev/null +++ b/core/base/src/main/res/drawable/breezy_weather.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/base/src/main/res/drawable/brunch_dining_24px.xml b/core/base/src/main/res/drawable/brunch_dining_24px.xml new file mode 100644 index 000000000..42d20f9ab --- /dev/null +++ b/core/base/src/main/res/drawable/brunch_dining_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/bug_report_20px.xml b/core/base/src/main/res/drawable/bug_report_20px.xml new file mode 100644 index 000000000..223a11996 --- /dev/null +++ b/core/base/src/main/res/drawable/bug_report_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/bug_report_24px.xml b/core/base/src/main/res/drawable/bug_report_24px.xml new file mode 100644 index 000000000..e50feef6c --- /dev/null +++ b/core/base/src/main/res/drawable/bug_report_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/build_20px.xml b/core/base/src/main/res/drawable/build_20px.xml new file mode 100644 index 000000000..92a46f558 --- /dev/null +++ b/core/base/src/main/res/drawable/build_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/cable_car_20px.xml b/core/base/src/main/res/drawable/cable_car_20px.xml new file mode 100644 index 000000000..7ed1269fe --- /dev/null +++ b/core/base/src/main/res/drawable/cable_car_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/cable_car_24px.xml b/core/base/src/main/res/drawable/cable_car_24px.xml new file mode 100644 index 000000000..b3c0117c1 --- /dev/null +++ b/core/base/src/main/res/drawable/cable_car_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/calculate_24px.xml b/core/base/src/main/res/drawable/calculate_24px.xml new file mode 100644 index 000000000..4ff2cefe7 --- /dev/null +++ b/core/base/src/main/res/drawable/calculate_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/call_20px.xml b/core/base/src/main/res/drawable/call_20px.xml new file mode 100644 index 000000000..9a48f7714 --- /dev/null +++ b/core/base/src/main/res/drawable/call_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/call_24px.xml b/core/base/src/main/res/drawable/call_24px.xml new file mode 100644 index 000000000..cdfabff84 --- /dev/null +++ b/core/base/src/main/res/drawable/call_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/candle_24px.xml b/core/base/src/main/res/drawable/candle_24px.xml new file mode 100644 index 000000000..25d908475 --- /dev/null +++ b/core/base/src/main/res/drawable/candle_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/car_rental_24px.xml b/core/base/src/main/res/drawable/car_rental_24px.xml new file mode 100644 index 000000000..51b80106c --- /dev/null +++ b/core/base/src/main/res/drawable/car_rental_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/car_repair_24px.xml b/core/base/src/main/res/drawable/car_repair_24px.xml new file mode 100644 index 000000000..4331b6c52 --- /dev/null +++ b/core/base/src/main/res/drawable/car_repair_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/casino_24px.xml b/core/base/src/main/res/drawable/casino_24px.xml new file mode 100644 index 000000000..a940175e9 --- /dev/null +++ b/core/base/src/main/res/drawable/casino_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/change_circle_24px.xml b/core/base/src/main/res/drawable/change_circle_24px.xml new file mode 100644 index 000000000..b2d3f8c05 --- /dev/null +++ b/core/base/src/main/res/drawable/change_circle_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/check_20px.xml b/core/base/src/main/res/drawable/check_20px.xml new file mode 100644 index 000000000..66bf338f3 --- /dev/null +++ b/core/base/src/main/res/drawable/check_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/check_24px.xml b/core/base/src/main/res/drawable/check_24px.xml new file mode 100644 index 000000000..c29f360ee --- /dev/null +++ b/core/base/src/main/res/drawable/check_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/check_24px_sharp.xml b/core/base/src/main/res/drawable/check_24px_sharp.xml new file mode 100644 index 000000000..280f0bd80 --- /dev/null +++ b/core/base/src/main/res/drawable/check_24px_sharp.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/check_circle_20px.xml b/core/base/src/main/res/drawable/check_circle_20px.xml new file mode 100644 index 000000000..58883cfe0 --- /dev/null +++ b/core/base/src/main/res/drawable/check_circle_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/check_circle_24px.xml b/core/base/src/main/res/drawable/check_circle_24px.xml new file mode 100644 index 000000000..8a03582d0 --- /dev/null +++ b/core/base/src/main/res/drawable/check_circle_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/check_circle_24px_filled.xml b/core/base/src/main/res/drawable/check_circle_24px_filled.xml new file mode 100644 index 000000000..27aa04320 --- /dev/null +++ b/core/base/src/main/res/drawable/check_circle_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/check_circle_48px.xml b/core/base/src/main/res/drawable/check_circle_48px.xml new file mode 100644 index 000000000..d9ade2f61 --- /dev/null +++ b/core/base/src/main/res/drawable/check_circle_48px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/chess_rook_24px.xml b/core/base/src/main/res/drawable/chess_rook_24px.xml new file mode 100644 index 000000000..70fb555ad --- /dev/null +++ b/core/base/src/main/res/drawable/chess_rook_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/chevron_backward_24px.xml b/core/base/src/main/res/drawable/chevron_backward_24px.xml new file mode 100644 index 000000000..b4b89a922 --- /dev/null +++ b/core/base/src/main/res/drawable/chevron_backward_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/chevron_forward_24px.xml b/core/base/src/main/res/drawable/chevron_forward_24px.xml new file mode 100644 index 000000000..da6478ac8 --- /dev/null +++ b/core/base/src/main/res/drawable/chevron_forward_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/church_24px.xml b/core/base/src/main/res/drawable/church_24px.xml new file mode 100644 index 000000000..444bd2fc8 --- /dev/null +++ b/core/base/src/main/res/drawable/church_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/circle_24px.xml b/core/base/src/main/res/drawable/circle_24px.xml new file mode 100644 index 000000000..29228525c --- /dev/null +++ b/core/base/src/main/res/drawable/circle_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/circle_24px_filled.xml b/core/base/src/main/res/drawable/circle_24px_filled.xml new file mode 100644 index 000000000..d7e8c25ba --- /dev/null +++ b/core/base/src/main/res/drawable/circle_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/close_20px.xml b/core/base/src/main/res/drawable/close_20px.xml new file mode 100644 index 000000000..0299cb718 --- /dev/null +++ b/core/base/src/main/res/drawable/close_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/close_24px.xml b/core/base/src/main/res/drawable/close_24px.xml new file mode 100644 index 000000000..77be1d01e --- /dev/null +++ b/core/base/src/main/res/drawable/close_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/colorize_20px.xml b/core/base/src/main/res/drawable/colorize_20px.xml new file mode 100644 index 000000000..acb1b7d29 --- /dev/null +++ b/core/base/src/main/res/drawable/colorize_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/commute_20px.xml b/core/base/src/main/res/drawable/commute_20px.xml new file mode 100644 index 000000000..500166c9a --- /dev/null +++ b/core/base/src/main/res/drawable/commute_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/content_copy_24px.xml b/core/base/src/main/res/drawable/content_copy_24px.xml new file mode 100644 index 000000000..765ac6129 --- /dev/null +++ b/core/base/src/main/res/drawable/content_copy_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/content_cut_24px.xml b/core/base/src/main/res/drawable/content_cut_24px.xml new file mode 100644 index 000000000..3b53c6026 --- /dev/null +++ b/core/base/src/main/res/drawable/content_cut_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/credit_card_20px.xml b/core/base/src/main/res/drawable/credit_card_20px.xml new file mode 100644 index 000000000..73b9ea1c8 --- /dev/null +++ b/core/base/src/main/res/drawable/credit_card_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/credit_card_24px.xml b/core/base/src/main/res/drawable/credit_card_24px.xml new file mode 100644 index 000000000..8ffffac0a --- /dev/null +++ b/core/base/src/main/res/drawable/credit_card_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/credit_card_off_20px.xml b/core/base/src/main/res/drawable/credit_card_off_20px.xml new file mode 100644 index 000000000..462430fc6 --- /dev/null +++ b/core/base/src/main/res/drawable/credit_card_off_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/crop_square_24px.xml b/core/base/src/main/res/drawable/crop_square_24px.xml new file mode 100644 index 000000000..4ae88b5a8 --- /dev/null +++ b/core/base/src/main/res/drawable/crop_square_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/cut_corner_20px.xml b/core/base/src/main/res/drawable/cut_corner_20px.xml new file mode 100644 index 000000000..b25c44d8f --- /dev/null +++ b/core/base/src/main/res/drawable/cut_corner_20px.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/core/base/src/main/res/drawable/dark_mode_20px.xml b/core/base/src/main/res/drawable/dark_mode_20px.xml new file mode 100644 index 000000000..1144b0537 --- /dev/null +++ b/core/base/src/main/res/drawable/dark_mode_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/dark_mode_24px.xml b/core/base/src/main/res/drawable/dark_mode_24px.xml new file mode 100644 index 000000000..7fff6e10e --- /dev/null +++ b/core/base/src/main/res/drawable/dark_mode_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/dark_mode_24px_filled.xml b/core/base/src/main/res/drawable/dark_mode_24px_filled.xml new file mode 100644 index 000000000..e4f428c80 --- /dev/null +++ b/core/base/src/main/res/drawable/dark_mode_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/delete_24px.xml b/core/base/src/main/res/drawable/delete_24px.xml new file mode 100644 index 000000000..f744b7733 --- /dev/null +++ b/core/base/src/main/res/drawable/delete_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/dentistry_24px.xml b/core/base/src/main/res/drawable/dentistry_24px.xml new file mode 100644 index 000000000..f06b6b065 --- /dev/null +++ b/core/base/src/main/res/drawable/dentistry_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/deployed_code_24px.xml b/core/base/src/main/res/drawable/deployed_code_24px.xml new file mode 100644 index 000000000..05593b44f --- /dev/null +++ b/core/base/src/main/res/drawable/deployed_code_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/description_20px.xml b/core/base/src/main/res/drawable/description_20px.xml new file mode 100644 index 000000000..e02bac1b5 --- /dev/null +++ b/core/base/src/main/res/drawable/description_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/description_24px.xml b/core/base/src/main/res/drawable/description_24px.xml new file mode 100644 index 000000000..f55b9ad85 --- /dev/null +++ b/core/base/src/main/res/drawable/description_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/device_thermostat_24px.xml b/core/base/src/main/res/drawable/device_thermostat_24px.xml new file mode 100644 index 000000000..050c077d9 --- /dev/null +++ b/core/base/src/main/res/drawable/device_thermostat_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/diamond_24px.xml b/core/base/src/main/res/drawable/diamond_24px.xml new file mode 100644 index 000000000..14459a2da --- /dev/null +++ b/core/base/src/main/res/drawable/diamond_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/directions_20px.xml b/core/base/src/main/res/drawable/directions_20px.xml new file mode 100644 index 000000000..230d7451d --- /dev/null +++ b/core/base/src/main/res/drawable/directions_20px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/directions_24px.xml b/core/base/src/main/res/drawable/directions_24px.xml new file mode 100644 index 000000000..f1a33e3f2 --- /dev/null +++ b/core/base/src/main/res/drawable/directions_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/directions_bike_24px.xml b/core/base/src/main/res/drawable/directions_bike_24px.xml new file mode 100644 index 000000000..a586a3b02 --- /dev/null +++ b/core/base/src/main/res/drawable/directions_bike_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/directions_boat_20px.xml b/core/base/src/main/res/drawable/directions_boat_20px.xml new file mode 100644 index 000000000..25171d726 --- /dev/null +++ b/core/base/src/main/res/drawable/directions_boat_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/directions_boat_24px.xml b/core/base/src/main/res/drawable/directions_boat_24px.xml new file mode 100644 index 000000000..0eb5cf2fa --- /dev/null +++ b/core/base/src/main/res/drawable/directions_boat_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/directions_bus_20px.xml b/core/base/src/main/res/drawable/directions_bus_20px.xml new file mode 100644 index 000000000..2d86d5676 --- /dev/null +++ b/core/base/src/main/res/drawable/directions_bus_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/directions_bus_24px.xml b/core/base/src/main/res/drawable/directions_bus_24px.xml new file mode 100644 index 000000000..252a94e92 --- /dev/null +++ b/core/base/src/main/res/drawable/directions_bus_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/directions_car_24px.xml b/core/base/src/main/res/drawable/directions_car_24px.xml new file mode 100644 index 000000000..415d54248 --- /dev/null +++ b/core/base/src/main/res/drawable/directions_car_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/directions_railway_20px.xml b/core/base/src/main/res/drawable/directions_railway_20px.xml new file mode 100644 index 000000000..baf98d4b5 --- /dev/null +++ b/core/base/src/main/res/drawable/directions_railway_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/do_not_disturb_on_24px.xml b/core/base/src/main/res/drawable/do_not_disturb_on_24px.xml new file mode 100644 index 000000000..81cf7ddcf --- /dev/null +++ b/core/base/src/main/res/drawable/do_not_disturb_on_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/downhill_skiing_24px.xml b/core/base/src/main/res/drawable/downhill_skiing_24px.xml new file mode 100644 index 000000000..7fb89660d --- /dev/null +++ b/core/base/src/main/res/drawable/downhill_skiing_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/drag_indicator_24px.xml b/core/base/src/main/res/drawable/drag_indicator_24px.xml new file mode 100644 index 000000000..b10d45cdf --- /dev/null +++ b/core/base/src/main/res/drawable/drag_indicator_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/edit_20px.xml b/core/base/src/main/res/drawable/edit_20px.xml new file mode 100644 index 000000000..766bacb29 --- /dev/null +++ b/core/base/src/main/res/drawable/edit_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/edit_24px.xml b/core/base/src/main/res/drawable/edit_24px.xml new file mode 100644 index 000000000..4d1d11fac --- /dev/null +++ b/core/base/src/main/res/drawable/edit_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/electric_scooter_24px.xml b/core/base/src/main/res/drawable/electric_scooter_24px.xml new file mode 100644 index 000000000..c0eb898e0 --- /dev/null +++ b/core/base/src/main/res/drawable/electric_scooter_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/emergency_24px.xml b/core/base/src/main/res/drawable/emergency_24px.xml new file mode 100644 index 000000000..6370606b8 --- /dev/null +++ b/core/base/src/main/res/drawable/emergency_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_food_beverage_24px.xml b/core/base/src/main/res/drawable/emoji_food_beverage_24px.xml new file mode 100644 index 000000000..f2146d7f9 --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_food_beverage_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_food_beverage_24px_filled.xml b/core/base/src/main/res/drawable/emoji_food_beverage_24px_filled.xml new file mode 100644 index 000000000..74034beb6 --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_food_beverage_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_nature_24px.xml b/core/base/src/main/res/drawable/emoji_nature_24px.xml new file mode 100644 index 000000000..378d1bd05 --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_nature_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_nature_24px_filled.xml b/core/base/src/main/res/drawable/emoji_nature_24px_filled.xml new file mode 100644 index 000000000..d8ea9b8fe --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_nature_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_objects_24px.xml b/core/base/src/main/res/drawable/emoji_objects_24px.xml new file mode 100644 index 000000000..0875ed431 --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_objects_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_objects_24px_filled.xml b/core/base/src/main/res/drawable/emoji_objects_24px_filled.xml new file mode 100644 index 000000000..cbdf6e52f --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_objects_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_people_24px.xml b/core/base/src/main/res/drawable/emoji_people_24px.xml new file mode 100644 index 000000000..bdcd1abf0 --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_people_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_people_24px_filled.xml b/core/base/src/main/res/drawable/emoji_people_24px_filled.xml new file mode 100644 index 000000000..bdcd1abf0 --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_people_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_symbols_24px.xml b/core/base/src/main/res/drawable/emoji_symbols_24px.xml new file mode 100644 index 000000000..6eda07fb4 --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_symbols_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_symbols_24px_filled.xml b/core/base/src/main/res/drawable/emoji_symbols_24px_filled.xml new file mode 100644 index 000000000..6eda07fb4 --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_symbols_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_transportation_24px.xml b/core/base/src/main/res/drawable/emoji_transportation_24px.xml new file mode 100644 index 000000000..7f0ede6ea --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_transportation_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/emoji_transportation_24px_filled.xml b/core/base/src/main/res/drawable/emoji_transportation_24px_filled.xml new file mode 100644 index 000000000..bac9ebda0 --- /dev/null +++ b/core/base/src/main/res/drawable/emoji_transportation_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/encrypted_20px.xml b/core/base/src/main/res/drawable/encrypted_20px.xml new file mode 100644 index 000000000..ff261254d --- /dev/null +++ b/core/base/src/main/res/drawable/encrypted_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/encrypted_24px.xml b/core/base/src/main/res/drawable/encrypted_24px.xml new file mode 100644 index 000000000..2f28f0ac7 --- /dev/null +++ b/core/base/src/main/res/drawable/encrypted_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/encrypted_24px_filled.xml b/core/base/src/main/res/drawable/encrypted_24px_filled.xml new file mode 100644 index 000000000..a425a28b4 --- /dev/null +++ b/core/base/src/main/res/drawable/encrypted_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/enterprise_20px.xml b/core/base/src/main/res/drawable/enterprise_20px.xml new file mode 100644 index 000000000..b28ce07da --- /dev/null +++ b/core/base/src/main/res/drawable/enterprise_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/enterprise_24px.xml b/core/base/src/main/res/drawable/enterprise_24px.xml new file mode 100644 index 000000000..0b1e95532 --- /dev/null +++ b/core/base/src/main/res/drawable/enterprise_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/enterprise_24px_filled.xml b/core/base/src/main/res/drawable/enterprise_24px_filled.xml new file mode 100644 index 000000000..27bdf49b1 --- /dev/null +++ b/core/base/src/main/res/drawable/enterprise_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/enterprise_off_20px.xml b/core/base/src/main/res/drawable/enterprise_off_20px.xml new file mode 100644 index 000000000..a3ce6629f --- /dev/null +++ b/core/base/src/main/res/drawable/enterprise_off_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/enterprise_off_48px.xml b/core/base/src/main/res/drawable/enterprise_off_48px.xml new file mode 100644 index 000000000..f46f4cfac --- /dev/null +++ b/core/base/src/main/res/drawable/enterprise_off_48px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/error_20px.xml b/core/base/src/main/res/drawable/error_20px.xml new file mode 100644 index 000000000..7e98f71fb --- /dev/null +++ b/core/base/src/main/res/drawable/error_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/error_24px.xml b/core/base/src/main/res/drawable/error_24px.xml new file mode 100644 index 000000000..2d7ca85dc --- /dev/null +++ b/core/base/src/main/res/drawable/error_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/error_24px_filled.xml b/core/base/src/main/res/drawable/error_24px_filled.xml new file mode 100644 index 000000000..a9b2d6b70 --- /dev/null +++ b/core/base/src/main/res/drawable/error_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/error_48px.xml b/core/base/src/main/res/drawable/error_48px.xml new file mode 100644 index 000000000..60fc26a9e --- /dev/null +++ b/core/base/src/main/res/drawable/error_48px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/ev_station_24px.xml b/core/base/src/main/res/drawable/ev_station_24px.xml new file mode 100644 index 000000000..57bfef8dd --- /dev/null +++ b/core/base/src/main/res/drawable/ev_station_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/event_24px.xml b/core/base/src/main/res/drawable/event_24px.xml new file mode 100644 index 000000000..a64476921 --- /dev/null +++ b/core/base/src/main/res/drawable/event_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/extension_24px.xml b/core/base/src/main/res/drawable/extension_24px.xml new file mode 100644 index 000000000..88e5cef46 --- /dev/null +++ b/core/base/src/main/res/drawable/extension_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/extension_48px.xml b/core/base/src/main/res/drawable/extension_48px.xml new file mode 100644 index 000000000..953a152b6 --- /dev/null +++ b/core/base/src/main/res/drawable/extension_48px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/eyeglasses_24px.xml b/core/base/src/main/res/drawable/eyeglasses_24px.xml new file mode 100644 index 000000000..3f02ad0fd --- /dev/null +++ b/core/base/src/main/res/drawable/eyeglasses_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/fastfood_24px.xml b/core/base/src/main/res/drawable/fastfood_24px.xml new file mode 100644 index 000000000..9d9dea8c9 --- /dev/null +++ b/core/base/src/main/res/drawable/fastfood_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/fdroid.xml b/core/base/src/main/res/drawable/fdroid.xml new file mode 100644 index 000000000..0fca903ff --- /dev/null +++ b/core/base/src/main/res/drawable/fdroid.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/core/base/src/main/res/drawable/festival_24px.xml b/core/base/src/main/res/drawable/festival_24px.xml new file mode 100644 index 000000000..c4ce7450a --- /dev/null +++ b/core/base/src/main/res/drawable/festival_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/file_save_24px.xml b/core/base/src/main/res/drawable/file_save_24px.xml new file mode 100644 index 000000000..07e55de53 --- /dev/null +++ b/core/base/src/main/res/drawable/file_save_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/filter_alt_20px.xml b/core/base/src/main/res/drawable/filter_alt_20px.xml new file mode 100644 index 000000000..42ced7859 --- /dev/null +++ b/core/base/src/main/res/drawable/filter_alt_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/filter_alt_24px.xml b/core/base/src/main/res/drawable/filter_alt_24px.xml new file mode 100644 index 000000000..0afa9b51d --- /dev/null +++ b/core/base/src/main/res/drawable/filter_alt_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/filter_alt_24px_filled.xml b/core/base/src/main/res/drawable/filter_alt_24px_filled.xml new file mode 100644 index 000000000..098db38fd --- /dev/null +++ b/core/base/src/main/res/drawable/filter_alt_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/find_in_page_24px.xml b/core/base/src/main/res/drawable/find_in_page_24px.xml new file mode 100644 index 000000000..5f622495a --- /dev/null +++ b/core/base/src/main/res/drawable/find_in_page_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/fit_page_height_24px.xml b/core/base/src/main/res/drawable/fit_page_height_24px.xml new file mode 100644 index 000000000..5d2060d5d --- /dev/null +++ b/core/base/src/main/res/drawable/fit_page_height_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/fitness_center_24px.xml b/core/base/src/main/res/drawable/fitness_center_24px.xml new file mode 100644 index 000000000..ecaa2c28b --- /dev/null +++ b/core/base/src/main/res/drawable/fitness_center_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/flag_24px.xml b/core/base/src/main/res/drawable/flag_24px.xml new file mode 100644 index 000000000..be8a0b4c6 --- /dev/null +++ b/core/base/src/main/res/drawable/flag_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/flag_24px_filled.xml b/core/base/src/main/res/drawable/flag_24px_filled.xml new file mode 100644 index 000000000..57c1494b8 --- /dev/null +++ b/core/base/src/main/res/drawable/flag_24px_filled.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/flight_20px.xml b/core/base/src/main/res/drawable/flight_20px.xml new file mode 100644 index 000000000..1bee7ac3b --- /dev/null +++ b/core/base/src/main/res/drawable/flight_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/flight_24px.xml b/core/base/src/main/res/drawable/flight_24px.xml new file mode 100644 index 000000000..db4b04ba1 --- /dev/null +++ b/core/base/src/main/res/drawable/flight_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/forest_24px.xml b/core/base/src/main/res/drawable/forest_24px.xml new file mode 100644 index 000000000..8cf520008 --- /dev/null +++ b/core/base/src/main/res/drawable/forest_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/format_bold_24px.xml b/core/base/src/main/res/drawable/format_bold_24px.xml new file mode 100644 index 000000000..61aa7f509 --- /dev/null +++ b/core/base/src/main/res/drawable/format_bold_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/format_letter_spacing_24px.xml b/core/base/src/main/res/drawable/format_letter_spacing_24px.xml new file mode 100644 index 000000000..f58624121 --- /dev/null +++ b/core/base/src/main/res/drawable/format_letter_spacing_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/format_line_spacing_24px.xml b/core/base/src/main/res/drawable/format_line_spacing_24px.xml new file mode 100644 index 000000000..b9ebed7f8 --- /dev/null +++ b/core/base/src/main/res/drawable/format_line_spacing_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/format_size_24px.xml b/core/base/src/main/res/drawable/format_size_24px.xml new file mode 100644 index 000000000..d47b248a4 --- /dev/null +++ b/core/base/src/main/res/drawable/format_size_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/gavel_24px.xml b/core/base/src/main/res/drawable/gavel_24px.xml new file mode 100644 index 000000000..16d53bc91 --- /dev/null +++ b/core/base/src/main/res/drawable/gavel_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/gesture_24px.xml b/core/base/src/main/res/drawable/gesture_24px.xml new file mode 100644 index 000000000..9349cf180 --- /dev/null +++ b/core/base/src/main/res/drawable/gesture_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/github.xml b/core/base/src/main/res/drawable/github.xml new file mode 100644 index 000000000..9ce9d5d3d --- /dev/null +++ b/core/base/src/main/res/drawable/github.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/base/src/main/res/drawable/gondola_lift_20px.xml b/core/base/src/main/res/drawable/gondola_lift_20px.xml new file mode 100644 index 000000000..ec794945a --- /dev/null +++ b/core/base/src/main/res/drawable/gondola_lift_20px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/gondola_lift_24px.xml b/core/base/src/main/res/drawable/gondola_lift_24px.xml new file mode 100644 index 000000000..54f44bd46 --- /dev/null +++ b/core/base/src/main/res/drawable/gondola_lift_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/grocery_24px.xml b/core/base/src/main/res/drawable/grocery_24px.xml new file mode 100644 index 000000000..c2b53b8b9 --- /dev/null +++ b/core/base/src/main/res/drawable/grocery_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/group_24px.xml b/core/base/src/main/res/drawable/group_24px.xml new file mode 100644 index 000000000..93f124e64 --- /dev/null +++ b/core/base/src/main/res/drawable/group_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/handyman_20px.xml b/core/base/src/main/res/drawable/handyman_20px.xml new file mode 100644 index 000000000..3c1b0df92 --- /dev/null +++ b/core/base/src/main/res/drawable/handyman_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/handyman_24px.xml b/core/base/src/main/res/drawable/handyman_24px.xml new file mode 100644 index 000000000..6255c60e2 --- /dev/null +++ b/core/base/src/main/res/drawable/handyman_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/hard_disk_24px.xml b/core/base/src/main/res/drawable/hard_disk_24px.xml new file mode 100644 index 000000000..381d7dfe7 --- /dev/null +++ b/core/base/src/main/res/drawable/hard_disk_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/health_cross_24px.xml b/core/base/src/main/res/drawable/health_cross_24px.xml new file mode 100644 index 000000000..9d1cd3fd8 --- /dev/null +++ b/core/base/src/main/res/drawable/health_cross_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/heat_24px.xml b/core/base/src/main/res/drawable/heat_24px.xml new file mode 100644 index 000000000..7390db6d0 --- /dev/null +++ b/core/base/src/main/res/drawable/heat_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/height_24px.xml b/core/base/src/main/res/drawable/height_24px.xml new file mode 100644 index 000000000..bfff8efec --- /dev/null +++ b/core/base/src/main/res/drawable/height_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/help_20px.xml b/core/base/src/main/res/drawable/help_20px.xml new file mode 100644 index 000000000..c2e31b854 --- /dev/null +++ b/core/base/src/main/res/drawable/help_20px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/help_24px.xml b/core/base/src/main/res/drawable/help_24px.xml new file mode 100644 index 000000000..757e94bd2 --- /dev/null +++ b/core/base/src/main/res/drawable/help_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/hiking_24px.xml b/core/base/src/main/res/drawable/hiking_24px.xml new file mode 100644 index 000000000..a33145461 --- /dev/null +++ b/core/base/src/main/res/drawable/hiking_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/home_24px.xml b/core/base/src/main/res/drawable/home_24px.xml new file mode 100644 index 000000000..7189a8a26 --- /dev/null +++ b/core/base/src/main/res/drawable/home_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/hotel_24px.xml b/core/base/src/main/res/drawable/hotel_24px.xml new file mode 100644 index 000000000..dec280aac --- /dev/null +++ b/core/base/src/main/res/drawable/hotel_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/hourglass_bottom_20px.xml b/core/base/src/main/res/drawable/hourglass_bottom_20px.xml new file mode 100644 index 000000000..8557314a6 --- /dev/null +++ b/core/base/src/main/res/drawable/hourglass_bottom_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/humidity_percentage_20px.xml b/core/base/src/main/res/drawable/humidity_percentage_20px.xml new file mode 100644 index 000000000..f21e99479 --- /dev/null +++ b/core/base/src/main/res/drawable/humidity_percentage_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/icecream_24px.xml b/core/base/src/main/res/drawable/icecream_24px.xml new file mode 100644 index 000000000..017315ee1 --- /dev/null +++ b/core/base/src/main/res/drawable/icecream_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/image_search_24px.xml b/core/base/src/main/res/drawable/image_search_24px.xml new file mode 100644 index 000000000..032c2adf1 --- /dev/null +++ b/core/base/src/main/res/drawable/image_search_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/info_20px.xml b/core/base/src/main/res/drawable/info_20px.xml new file mode 100644 index 000000000..2354e59d1 --- /dev/null +++ b/core/base/src/main/res/drawable/info_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/info_24px.xml b/core/base/src/main/res/drawable/info_24px.xml new file mode 100644 index 000000000..1578e982c --- /dev/null +++ b/core/base/src/main/res/drawable/info_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/kayaking_24px.xml b/core/base/src/main/res/drawable/kayaking_24px.xml new file mode 100644 index 000000000..095f334f2 --- /dev/null +++ b/core/base/src/main/res/drawable/kayaking_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/kebab_dining_24px.xml b/core/base/src/main/res/drawable/kebab_dining_24px.xml new file mode 100644 index 000000000..9b1dd8621 --- /dev/null +++ b/core/base/src/main/res/drawable/kebab_dining_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/keyboard_24px.xml b/core/base/src/main/res/drawable/keyboard_24px.xml new file mode 100644 index 000000000..918a4464f --- /dev/null +++ b/core/base/src/main/res/drawable/keyboard_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/keyboard_arrow_down_24px.xml b/core/base/src/main/res/drawable/keyboard_arrow_down_24px.xml new file mode 100644 index 000000000..0f2341b65 --- /dev/null +++ b/core/base/src/main/res/drawable/keyboard_arrow_down_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/keyboard_arrow_up_24px.xml b/core/base/src/main/res/drawable/keyboard_arrow_up_24px.xml new file mode 100644 index 000000000..2b77f886b --- /dev/null +++ b/core/base/src/main/res/drawable/keyboard_arrow_up_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/label_24px.xml b/core/base/src/main/res/drawable/label_24px.xml new file mode 100644 index 000000000..fb1d1b506 --- /dev/null +++ b/core/base/src/main/res/drawable/label_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/language_20px.xml b/core/base/src/main/res/drawable/language_20px.xml new file mode 100644 index 000000000..94f370659 --- /dev/null +++ b/core/base/src/main/res/drawable/language_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/language_24px.xml b/core/base/src/main/res/drawable/language_24px.xml new file mode 100644 index 000000000..2211f7a26 --- /dev/null +++ b/core/base/src/main/res/drawable/language_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/light_mode_20px.xml b/core/base/src/main/res/drawable/light_mode_20px.xml new file mode 100644 index 000000000..957744b9c --- /dev/null +++ b/core/base/src/main/res/drawable/light_mode_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/light_mode_24px.xml b/core/base/src/main/res/drawable/light_mode_24px.xml new file mode 100644 index 000000000..e190360fd --- /dev/null +++ b/core/base/src/main/res/drawable/light_mode_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/light_mode_24px_filled.xml b/core/base/src/main/res/drawable/light_mode_24px_filled.xml new file mode 100644 index 000000000..43fa6fc76 --- /dev/null +++ b/core/base/src/main/res/drawable/light_mode_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/link_24px.xml b/core/base/src/main/res/drawable/link_24px.xml new file mode 100644 index 000000000..0691d9ced --- /dev/null +++ b/core/base/src/main/res/drawable/link_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/link_off_24px.xml b/core/base/src/main/res/drawable/link_off_24px.xml new file mode 100644 index 000000000..591444556 --- /dev/null +++ b/core/base/src/main/res/drawable/link_off_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/liquor_24px.xml b/core/base/src/main/res/drawable/liquor_24px.xml new file mode 100644 index 000000000..43bff606e --- /dev/null +++ b/core/base/src/main/res/drawable/liquor_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_bar_24px.xml b/core/base/src/main/res/drawable/local_bar_24px.xml new file mode 100644 index 000000000..058fba483 --- /dev/null +++ b/core/base/src/main/res/drawable/local_bar_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_cafe_24px.xml b/core/base/src/main/res/drawable/local_cafe_24px.xml new file mode 100644 index 000000000..c78c90c46 --- /dev/null +++ b/core/base/src/main/res/drawable/local_cafe_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_car_wash_24px.xml b/core/base/src/main/res/drawable/local_car_wash_24px.xml new file mode 100644 index 000000000..3e347ff7f --- /dev/null +++ b/core/base/src/main/res/drawable/local_car_wash_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_convenience_store_24px.xml b/core/base/src/main/res/drawable/local_convenience_store_24px.xml new file mode 100644 index 000000000..7d31d5bf7 --- /dev/null +++ b/core/base/src/main/res/drawable/local_convenience_store_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_fire_department_24px.xml b/core/base/src/main/res/drawable/local_fire_department_24px.xml new file mode 100644 index 000000000..4b6c9d85c --- /dev/null +++ b/core/base/src/main/res/drawable/local_fire_department_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_florist_24px.xml b/core/base/src/main/res/drawable/local_florist_24px.xml new file mode 100644 index 000000000..a78031ef1 --- /dev/null +++ b/core/base/src/main/res/drawable/local_florist_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_gas_station_24px.xml b/core/base/src/main/res/drawable/local_gas_station_24px.xml new file mode 100644 index 000000000..f9a9fc2be --- /dev/null +++ b/core/base/src/main/res/drawable/local_gas_station_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_laundry_service_24px.xml b/core/base/src/main/res/drawable/local_laundry_service_24px.xml new file mode 100644 index 000000000..861f55585 --- /dev/null +++ b/core/base/src/main/res/drawable/local_laundry_service_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_library_24px.xml b/core/base/src/main/res/drawable/local_library_24px.xml new file mode 100644 index 000000000..fe6a84977 --- /dev/null +++ b/core/base/src/main/res/drawable/local_library_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_mall_24px.xml b/core/base/src/main/res/drawable/local_mall_24px.xml new file mode 100644 index 000000000..fdb8f449f --- /dev/null +++ b/core/base/src/main/res/drawable/local_mall_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_parking_24px.xml b/core/base/src/main/res/drawable/local_parking_24px.xml new file mode 100644 index 000000000..4e3c63ec1 --- /dev/null +++ b/core/base/src/main/res/drawable/local_parking_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_pharmacy_24px.xml b/core/base/src/main/res/drawable/local_pharmacy_24px.xml new file mode 100644 index 000000000..008994564 --- /dev/null +++ b/core/base/src/main/res/drawable/local_pharmacy_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_pizza_24px.xml b/core/base/src/main/res/drawable/local_pizza_24px.xml new file mode 100644 index 000000000..93fef9c33 --- /dev/null +++ b/core/base/src/main/res/drawable/local_pizza_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_police_24px.xml b/core/base/src/main/res/drawable/local_police_24px.xml new file mode 100644 index 000000000..a06c76558 --- /dev/null +++ b/core/base/src/main/res/drawable/local_police_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_post_office_24px.xml b/core/base/src/main/res/drawable/local_post_office_24px.xml new file mode 100644 index 000000000..030324f37 --- /dev/null +++ b/core/base/src/main/res/drawable/local_post_office_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/local_taxi_24px.xml b/core/base/src/main/res/drawable/local_taxi_24px.xml new file mode 100644 index 000000000..f799c3020 --- /dev/null +++ b/core/base/src/main/res/drawable/local_taxi_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/location_on_20px.xml b/core/base/src/main/res/drawable/location_on_20px.xml new file mode 100644 index 000000000..14fd8727a --- /dev/null +++ b/core/base/src/main/res/drawable/location_on_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/location_on_24px.xml b/core/base/src/main/res/drawable/location_on_24px.xml new file mode 100644 index 000000000..9ef7daae7 --- /dev/null +++ b/core/base/src/main/res/drawable/location_on_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/location_on_24px_filled.xml b/core/base/src/main/res/drawable/location_on_24px_filled.xml new file mode 100644 index 000000000..6b0864339 --- /dev/null +++ b/core/base/src/main/res/drawable/location_on_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/lock_20px.xml b/core/base/src/main/res/drawable/lock_20px.xml new file mode 100644 index 000000000..8275f1617 --- /dev/null +++ b/core/base/src/main/res/drawable/lock_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/lock_24px.xml b/core/base/src/main/res/drawable/lock_24px.xml new file mode 100644 index 000000000..11d93f2f1 --- /dev/null +++ b/core/base/src/main/res/drawable/lock_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/lock_48px.xml b/core/base/src/main/res/drawable/lock_48px.xml new file mode 100644 index 000000000..a39aeb405 --- /dev/null +++ b/core/base/src/main/res/drawable/lock_48px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/lock_open_20px.xml b/core/base/src/main/res/drawable/lock_open_20px.xml new file mode 100644 index 000000000..d9f8e551b --- /dev/null +++ b/core/base/src/main/res/drawable/lock_open_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/login_24px.xml b/core/base/src/main/res/drawable/login_24px.xml new file mode 100644 index 000000000..cba594fbf --- /dev/null +++ b/core/base/src/main/res/drawable/login_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/logout_20px.xml b/core/base/src/main/res/drawable/logout_20px.xml new file mode 100644 index 000000000..e75e1073a --- /dev/null +++ b/core/base/src/main/res/drawable/logout_20px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/lunch_dining_24px.xml b/core/base/src/main/res/drawable/lunch_dining_24px.xml new file mode 100644 index 000000000..41b2a0587 --- /dev/null +++ b/core/base/src/main/res/drawable/lunch_dining_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/mail_24px.xml b/core/base/src/main/res/drawable/mail_24px.xml new file mode 100644 index 000000000..d26c5380c --- /dev/null +++ b/core/base/src/main/res/drawable/mail_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/manage_search_24px.xml b/core/base/src/main/res/drawable/manage_search_24px.xml new file mode 100644 index 000000000..1e3507d6e --- /dev/null +++ b/core/base/src/main/res/drawable/manage_search_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/mobile_24px.xml b/core/base/src/main/res/drawable/mobile_24px.xml new file mode 100644 index 000000000..0f49a213b --- /dev/null +++ b/core/base/src/main/res/drawable/mobile_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/mobile_arrow_up_right_20px.xml b/core/base/src/main/res/drawable/mobile_arrow_up_right_20px.xml new file mode 100644 index 000000000..d28ddb8cb --- /dev/null +++ b/core/base/src/main/res/drawable/mobile_arrow_up_right_20px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/mobile_arrow_up_right_24px.xml b/core/base/src/main/res/drawable/mobile_arrow_up_right_24px.xml new file mode 100644 index 000000000..4c8a5a60f --- /dev/null +++ b/core/base/src/main/res/drawable/mobile_arrow_up_right_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/monorail_20px.xml b/core/base/src/main/res/drawable/monorail_20px.xml new file mode 100644 index 000000000..9a1f3cd1d --- /dev/null +++ b/core/base/src/main/res/drawable/monorail_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/mood_24px.xml b/core/base/src/main/res/drawable/mood_24px.xml new file mode 100644 index 000000000..27f9c7f61 --- /dev/null +++ b/core/base/src/main/res/drawable/mood_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/mood_24px_filled.xml b/core/base/src/main/res/drawable/mood_24px_filled.xml new file mode 100644 index 000000000..291d3e5b2 --- /dev/null +++ b/core/base/src/main/res/drawable/mood_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/moped_24px.xml b/core/base/src/main/res/drawable/moped_24px.xml new file mode 100644 index 000000000..24fbb5035 --- /dev/null +++ b/core/base/src/main/res/drawable/moped_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/more_vert_24px.xml b/core/base/src/main/res/drawable/more_vert_24px.xml new file mode 100644 index 000000000..e4aa85d59 --- /dev/null +++ b/core/base/src/main/res/drawable/more_vert_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/mosque_24px.xml b/core/base/src/main/res/drawable/mosque_24px.xml new file mode 100644 index 000000000..a0ebe1b2f --- /dev/null +++ b/core/base/src/main/res/drawable/mosque_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/motorcycle_24px.xml b/core/base/src/main/res/drawable/motorcycle_24px.xml new file mode 100644 index 000000000..4c8a57328 --- /dev/null +++ b/core/base/src/main/res/drawable/motorcycle_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/museum_24px.xml b/core/base/src/main/res/drawable/museum_24px.xml new file mode 100644 index 000000000..71c25d347 --- /dev/null +++ b/core/base/src/main/res/drawable/museum_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/music_note_48px.xml b/core/base/src/main/res/drawable/music_note_48px.xml new file mode 100644 index 000000000..943d50d7a --- /dev/null +++ b/core/base/src/main/res/drawable/music_note_48px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/newspaper_24px.xml b/core/base/src/main/res/drawable/newspaper_24px.xml new file mode 100644 index 000000000..0e410b4fb --- /dev/null +++ b/core/base/src/main/res/drawable/newspaper_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/nextcloud.xml b/core/base/src/main/res/drawable/nextcloud.xml new file mode 100644 index 000000000..5f1eb9889 --- /dev/null +++ b/core/base/src/main/res/drawable/nextcloud.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/core/base/src/main/res/drawable/nightlife_24px.xml b/core/base/src/main/res/drawable/nightlife_24px.xml new file mode 100644 index 000000000..66602aff6 --- /dev/null +++ b/core/base/src/main/res/drawable/nightlife_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/nordic_walking_24px.xml b/core/base/src/main/res/drawable/nordic_walking_24px.xml new file mode 100644 index 000000000..7296dabbd --- /dev/null +++ b/core/base/src/main/res/drawable/nordic_walking_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/north_20px.xml b/core/base/src/main/res/drawable/north_20px.xml new file mode 100644 index 000000000..171932f99 --- /dev/null +++ b/core/base/src/main/res/drawable/north_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/notes_24px.xml b/core/base/src/main/res/drawable/notes_24px.xml new file mode 100644 index 000000000..3297bad92 --- /dev/null +++ b/core/base/src/main/res/drawable/notes_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/notifications_24px.xml b/core/base/src/main/res/drawable/notifications_24px.xml new file mode 100644 index 000000000..9f9b7238f --- /dev/null +++ b/core/base/src/main/res/drawable/notifications_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/opacity_24px.xml b/core/base/src/main/res/drawable/opacity_24px.xml new file mode 100644 index 000000000..c1f78de45 --- /dev/null +++ b/core/base/src/main/res/drawable/opacity_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/open_in_browser_24px.xml b/core/base/src/main/res/drawable/open_in_browser_24px.xml new file mode 100644 index 000000000..ea211ce82 --- /dev/null +++ b/core/base/src/main/res/drawable/open_in_browser_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/open_in_new_20px.xml b/core/base/src/main/res/drawable/open_in_new_20px.xml new file mode 100644 index 000000000..aa5526b49 --- /dev/null +++ b/core/base/src/main/res/drawable/open_in_new_20px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/open_in_new_24px.xml b/core/base/src/main/res/drawable/open_in_new_24px.xml new file mode 100644 index 000000000..5d3077e9c --- /dev/null +++ b/core/base/src/main/res/drawable/open_in_new_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/owncloud.xml b/core/base/src/main/res/drawable/owncloud.xml new file mode 100644 index 000000000..b31891c65 --- /dev/null +++ b/core/base/src/main/res/drawable/owncloud.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/core/base/src/main/res/drawable/palette_20px.xml b/core/base/src/main/res/drawable/palette_20px.xml new file mode 100644 index 000000000..6835832f0 --- /dev/null +++ b/core/base/src/main/res/drawable/palette_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/paragliding_24px.xml b/core/base/src/main/res/drawable/paragliding_24px.xml new file mode 100644 index 000000000..4fabb0b3f --- /dev/null +++ b/core/base/src/main/res/drawable/paragliding_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/park_24px.xml b/core/base/src/main/res/drawable/park_24px.xml new file mode 100644 index 000000000..5c2f3547d --- /dev/null +++ b/core/base/src/main/res/drawable/park_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/pause_24px.xml b/core/base/src/main/res/drawable/pause_24px.xml new file mode 100644 index 000000000..e2a6ca9d9 --- /dev/null +++ b/core/base/src/main/res/drawable/pause_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/payments_24px.xml b/core/base/src/main/res/drawable/payments_24px.xml new file mode 100644 index 000000000..677a99201 --- /dev/null +++ b/core/base/src/main/res/drawable/payments_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/percent_discount_24px.xml b/core/base/src/main/res/drawable/percent_discount_24px.xml new file mode 100644 index 000000000..de0149cbc --- /dev/null +++ b/core/base/src/main/res/drawable/percent_discount_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/person_20px.xml b/core/base/src/main/res/drawable/person_20px.xml new file mode 100644 index 000000000..d40011af2 --- /dev/null +++ b/core/base/src/main/res/drawable/person_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/person_24px.xml b/core/base/src/main/res/drawable/person_24px.xml new file mode 100644 index 000000000..117cdc7c8 --- /dev/null +++ b/core/base/src/main/res/drawable/person_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/person_24px_filled.xml b/core/base/src/main/res/drawable/person_24px_filled.xml new file mode 100644 index 000000000..0e644092b --- /dev/null +++ b/core/base/src/main/res/drawable/person_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/person_add_24px.xml b/core/base/src/main/res/drawable/person_add_24px.xml new file mode 100644 index 000000000..c83baa57d --- /dev/null +++ b/core/base/src/main/res/drawable/person_add_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/person_search_24px.xml b/core/base/src/main/res/drawable/person_search_24px.xml new file mode 100644 index 000000000..d891ce58c --- /dev/null +++ b/core/base/src/main/res/drawable/person_search_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/pets_24px.xml b/core/base/src/main/res/drawable/pets_24px.xml new file mode 100644 index 000000000..d128c5491 --- /dev/null +++ b/core/base/src/main/res/drawable/pets_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/play_arrow_24px.xml b/core/base/src/main/res/drawable/play_arrow_24px.xml new file mode 100644 index 000000000..b7b67fccc --- /dev/null +++ b/core/base/src/main/res/drawable/play_arrow_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/play_circle_24px.xml b/core/base/src/main/res/drawable/play_circle_24px.xml new file mode 100644 index 000000000..b70941b19 --- /dev/null +++ b/core/base/src/main/res/drawable/play_circle_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/pool_24px.xml b/core/base/src/main/res/drawable/pool_24px.xml new file mode 100644 index 000000000..21deb90c7 --- /dev/null +++ b/core/base/src/main/res/drawable/pool_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/power_24px.xml b/core/base/src/main/res/drawable/power_24px.xml new file mode 100644 index 000000000..25b528854 --- /dev/null +++ b/core/base/src/main/res/drawable/power_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/power_settings_new_24px.xml b/core/base/src/main/res/drawable/power_settings_new_24px.xml new file mode 100644 index 000000000..e17a4fbf1 --- /dev/null +++ b/core/base/src/main/res/drawable/power_settings_new_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/public_20px.xml b/core/base/src/main/res/drawable/public_20px.xml new file mode 100644 index 000000000..a1589d3a7 --- /dev/null +++ b/core/base/src/main/res/drawable/public_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/public_24px.xml b/core/base/src/main/res/drawable/public_24px.xml new file mode 100644 index 000000000..459403cb9 --- /dev/null +++ b/core/base/src/main/res/drawable/public_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/query_stats_24px.xml b/core/base/src/main/res/drawable/query_stats_24px.xml new file mode 100644 index 000000000..b66662e9d --- /dev/null +++ b/core/base/src/main/res/drawable/query_stats_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/radio_button_checked_24px.xml b/core/base/src/main/res/drawable/radio_button_checked_24px.xml new file mode 100644 index 000000000..07c8b970e --- /dev/null +++ b/core/base/src/main/res/drawable/radio_button_checked_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/radio_button_unchecked_24px.xml b/core/base/src/main/res/drawable/radio_button_unchecked_24px.xml new file mode 100644 index 000000000..19ce24093 --- /dev/null +++ b/core/base/src/main/res/drawable/radio_button_unchecked_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/rainy_20px.xml b/core/base/src/main/res/drawable/rainy_20px.xml new file mode 100644 index 000000000..4e3a7b901 --- /dev/null +++ b/core/base/src/main/res/drawable/rainy_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/ramen_dining_24px.xml b/core/base/src/main/res/drawable/ramen_dining_24px.xml new file mode 100644 index 000000000..a9d52f537 --- /dev/null +++ b/core/base/src/main/res/drawable/ramen_dining_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/resize_24px.xml b/core/base/src/main/res/drawable/resize_24px.xml new file mode 100644 index 000000000..6b841865b --- /dev/null +++ b/core/base/src/main/res/drawable/resize_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/restart_alt_20px.xml b/core/base/src/main/res/drawable/restart_alt_20px.xml new file mode 100644 index 000000000..b00b4e257 --- /dev/null +++ b/core/base/src/main/res/drawable/restart_alt_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/restart_alt_24px.xml b/core/base/src/main/res/drawable/restart_alt_24px.xml new file mode 100644 index 000000000..92c713995 --- /dev/null +++ b/core/base/src/main/res/drawable/restart_alt_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/restaurant_24px.xml b/core/base/src/main/res/drawable/restaurant_24px.xml new file mode 100644 index 000000000..975ae006f --- /dev/null +++ b/core/base/src/main/res/drawable/restaurant_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/rounded_corner_24px.xml b/core/base/src/main/res/drawable/rounded_corner_24px.xml new file mode 100644 index 000000000..4ee287a28 --- /dev/null +++ b/core/base/src/main/res/drawable/rounded_corner_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/rounded_corner_alt_24px.xml b/core/base/src/main/res/drawable/rounded_corner_alt_24px.xml new file mode 100644 index 000000000..bf3745d87 --- /dev/null +++ b/core/base/src/main/res/drawable/rounded_corner_alt_24px.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/core/base/src/main/res/drawable/rule_settings_24px.xml b/core/base/src/main/res/drawable/rule_settings_24px.xml new file mode 100644 index 000000000..51514e85a --- /dev/null +++ b/core/base/src/main/res/drawable/rule_settings_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/save_24px.xml b/core/base/src/main/res/drawable/save_24px.xml new file mode 100644 index 000000000..d694ddd15 --- /dev/null +++ b/core/base/src/main/res/drawable/save_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/schedule_24px.xml b/core/base/src/main/res/drawable/schedule_24px.xml new file mode 100644 index 000000000..9ca4dfdfa --- /dev/null +++ b/core/base/src/main/res/drawable/schedule_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/school_24px.xml b/core/base/src/main/res/drawable/school_24px.xml new file mode 100644 index 000000000..e917fb300 --- /dev/null +++ b/core/base/src/main/res/drawable/school_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/search_24px.xml b/core/base/src/main/res/drawable/search_24px.xml new file mode 100644 index 000000000..29b92ebfa --- /dev/null +++ b/core/base/src/main/res/drawable/search_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/settings_20px.xml b/core/base/src/main/res/drawable/settings_20px.xml new file mode 100644 index 000000000..ef60f4aaa --- /dev/null +++ b/core/base/src/main/res/drawable/settings_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/settings_24px_filled.xml b/core/base/src/main/res/drawable/settings_24px_filled.xml new file mode 100644 index 000000000..b29b12f90 --- /dev/null +++ b/core/base/src/main/res/drawable/settings_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/settings_backup_restore_24px.xml b/core/base/src/main/res/drawable/settings_backup_restore_24px.xml new file mode 100644 index 000000000..e973460af --- /dev/null +++ b/core/base/src/main/res/drawable/settings_backup_restore_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/severe_cold_24px.xml b/core/base/src/main/res/drawable/severe_cold_24px.xml new file mode 100644 index 000000000..6618c8e03 --- /dev/null +++ b/core/base/src/main/res/drawable/severe_cold_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/share_20px.xml b/core/base/src/main/res/drawable/share_20px.xml new file mode 100644 index 000000000..99472570d --- /dev/null +++ b/core/base/src/main/res/drawable/share_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/share_24px.xml b/core/base/src/main/res/drawable/share_24px.xml new file mode 100644 index 000000000..1550e6a87 --- /dev/null +++ b/core/base/src/main/res/drawable/share_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/shopping_bag_24px.xml b/core/base/src/main/res/drawable/shopping_bag_24px.xml new file mode 100644 index 000000000..4557db9ab --- /dev/null +++ b/core/base/src/main/res/drawable/shopping_bag_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/show_chart_24px.xml b/core/base/src/main/res/drawable/show_chart_24px.xml new file mode 100644 index 000000000..396f2cfca --- /dev/null +++ b/core/base/src/main/res/drawable/show_chart_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/skateboarding_24px.xml b/core/base/src/main/res/drawable/skateboarding_24px.xml new file mode 100644 index 000000000..6959d0507 --- /dev/null +++ b/core/base/src/main/res/drawable/skateboarding_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/skip_next_24px.xml b/core/base/src/main/res/drawable/skip_next_24px.xml new file mode 100644 index 000000000..8c66d0a31 --- /dev/null +++ b/core/base/src/main/res/drawable/skip_next_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/skip_previous_24px.xml b/core/base/src/main/res/drawable/skip_previous_24px.xml new file mode 100644 index 000000000..8ae8a1254 --- /dev/null +++ b/core/base/src/main/res/drawable/skip_previous_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sms_24px.xml b/core/base/src/main/res/drawable/sms_24px.xml new file mode 100644 index 000000000..1a10c7358 --- /dev/null +++ b/core/base/src/main/res/drawable/sms_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/snowboarding_24px.xml b/core/base/src/main/res/drawable/snowboarding_24px.xml new file mode 100644 index 000000000..e9562d83b --- /dev/null +++ b/core/base/src/main/res/drawable/snowboarding_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sort_24px.xml b/core/base/src/main/res/drawable/sort_24px.xml new file mode 100644 index 000000000..0faf7a3b0 --- /dev/null +++ b/core/base/src/main/res/drawable/sort_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/soup_kitchen_24px.xml b/core/base/src/main/res/drawable/soup_kitchen_24px.xml new file mode 100644 index 000000000..245e8f387 --- /dev/null +++ b/core/base/src/main/res/drawable/soup_kitchen_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/speed_24px.xml b/core/base/src/main/res/drawable/speed_24px.xml new file mode 100644 index 000000000..4b453c574 --- /dev/null +++ b/core/base/src/main/res/drawable/speed_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/splitscreen_right_20px.xml b/core/base/src/main/res/drawable/splitscreen_right_20px.xml new file mode 100644 index 000000000..79cabf67d --- /dev/null +++ b/core/base/src/main/res/drawable/splitscreen_right_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/splitscreen_top_20px.xml b/core/base/src/main/res/drawable/splitscreen_top_20px.xml new file mode 100644 index 000000000..102599cec --- /dev/null +++ b/core/base/src/main/res/drawable/splitscreen_top_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_24px.xml b/core/base/src/main/res/drawable/sports_24px.xml new file mode 100644 index 000000000..64ab5d4a5 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_bar_24px.xml b/core/base/src/main/res/drawable/sports_bar_24px.xml new file mode 100644 index 000000000..1366a6480 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_bar_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_baseball_24px.xml b/core/base/src/main/res/drawable/sports_baseball_24px.xml new file mode 100644 index 000000000..433f5a8a3 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_baseball_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_basketball_24px.xml b/core/base/src/main/res/drawable/sports_basketball_24px.xml new file mode 100644 index 000000000..188a72127 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_basketball_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_cricket_24px.xml b/core/base/src/main/res/drawable/sports_cricket_24px.xml new file mode 100644 index 000000000..d8470ce55 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_cricket_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_esports_24px.xml b/core/base/src/main/res/drawable/sports_esports_24px.xml new file mode 100644 index 000000000..80039ce0c --- /dev/null +++ b/core/base/src/main/res/drawable/sports_esports_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_football_24px.xml b/core/base/src/main/res/drawable/sports_football_24px.xml new file mode 100644 index 000000000..ec332658e --- /dev/null +++ b/core/base/src/main/res/drawable/sports_football_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_golf_24px.xml b/core/base/src/main/res/drawable/sports_golf_24px.xml new file mode 100644 index 000000000..a01d07132 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_golf_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_gymnastics_24px.xml b/core/base/src/main/res/drawable/sports_gymnastics_24px.xml new file mode 100644 index 000000000..7ca422fa4 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_gymnastics_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_handball_24px.xml b/core/base/src/main/res/drawable/sports_handball_24px.xml new file mode 100644 index 000000000..407525aca --- /dev/null +++ b/core/base/src/main/res/drawable/sports_handball_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_hockey_24px.xml b/core/base/src/main/res/drawable/sports_hockey_24px.xml new file mode 100644 index 000000000..cf6e7af2a --- /dev/null +++ b/core/base/src/main/res/drawable/sports_hockey_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_martial_arts_24px.xml b/core/base/src/main/res/drawable/sports_martial_arts_24px.xml new file mode 100644 index 000000000..1b5efcc98 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_martial_arts_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_motorsports_24px.xml b/core/base/src/main/res/drawable/sports_motorsports_24px.xml new file mode 100644 index 000000000..995320721 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_motorsports_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_rugby_24px.xml b/core/base/src/main/res/drawable/sports_rugby_24px.xml new file mode 100644 index 000000000..5f59eca0a --- /dev/null +++ b/core/base/src/main/res/drawable/sports_rugby_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_soccer_24px.xml b/core/base/src/main/res/drawable/sports_soccer_24px.xml new file mode 100644 index 000000000..73ec04233 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_soccer_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_tennis_24px.xml b/core/base/src/main/res/drawable/sports_tennis_24px.xml new file mode 100644 index 000000000..77fe00e77 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_tennis_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sports_volleyball_24px.xml b/core/base/src/main/res/drawable/sports_volleyball_24px.xml new file mode 100644 index 000000000..15219caf3 --- /dev/null +++ b/core/base/src/main/res/drawable/sports_volleyball_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/square_foot_24px.xml b/core/base/src/main/res/drawable/square_foot_24px.xml new file mode 100644 index 000000000..23b94f851 --- /dev/null +++ b/core/base/src/main/res/drawable/square_foot_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/stadium_24px.xml b/core/base/src/main/res/drawable/stadium_24px.xml new file mode 100644 index 000000000..b5a3f47b1 --- /dev/null +++ b/core/base/src/main/res/drawable/stadium_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/star_20px.xml b/core/base/src/main/res/drawable/star_20px.xml new file mode 100644 index 000000000..67f02b674 --- /dev/null +++ b/core/base/src/main/res/drawable/star_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/star_20px_filled.xml b/core/base/src/main/res/drawable/star_20px_filled.xml new file mode 100644 index 000000000..31f2906e1 --- /dev/null +++ b/core/base/src/main/res/drawable/star_20px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/star_24px.xml b/core/base/src/main/res/drawable/star_24px.xml new file mode 100644 index 000000000..d594005df --- /dev/null +++ b/core/base/src/main/res/drawable/star_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/star_24px_filled.xml b/core/base/src/main/res/drawable/star_24px_filled.xml new file mode 100644 index 000000000..be3f896e5 --- /dev/null +++ b/core/base/src/main/res/drawable/star_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/star_24px_outlined.xml b/core/base/src/main/res/drawable/star_24px_outlined.xml new file mode 100644 index 000000000..d594005df --- /dev/null +++ b/core/base/src/main/res/drawable/star_24px_outlined.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/star_half_20px.xml b/core/base/src/main/res/drawable/star_half_20px.xml new file mode 100644 index 000000000..d0b2a21e1 --- /dev/null +++ b/core/base/src/main/res/drawable/star_half_20px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/stethoscope_24px.xml b/core/base/src/main/res/drawable/stethoscope_24px.xml new file mode 100644 index 000000000..df3addaf3 --- /dev/null +++ b/core/base/src/main/res/drawable/stethoscope_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/sticky_note_2_24px.xml b/core/base/src/main/res/drawable/sticky_note_2_24px.xml new file mode 100644 index 000000000..e1000c826 --- /dev/null +++ b/core/base/src/main/res/drawable/sticky_note_2_24px.xml @@ -0,0 +1,11 @@ + + + diff --git a/core/base/src/main/res/drawable/straighten_24px.xml b/core/base/src/main/res/drawable/straighten_24px.xml new file mode 100644 index 000000000..5acc3fae0 --- /dev/null +++ b/core/base/src/main/res/drawable/straighten_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/subway_20px.xml b/core/base/src/main/res/drawable/subway_20px.xml new file mode 100644 index 000000000..84a0e6bd1 --- /dev/null +++ b/core/base/src/main/res/drawable/subway_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/subway_24px.xml b/core/base/src/main/res/drawable/subway_24px.xml new file mode 100644 index 000000000..3f60fddb5 --- /dev/null +++ b/core/base/src/main/res/drawable/subway_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/surfing_24px.xml b/core/base/src/main/res/drawable/surfing_24px.xml new file mode 100644 index 000000000..b6c37256d --- /dev/null +++ b/core/base/src/main/res/drawable/surfing_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/swap_horiz_24px.xml b/core/base/src/main/res/drawable/swap_horiz_24px.xml new file mode 100644 index 000000000..bc21a60a5 --- /dev/null +++ b/core/base/src/main/res/drawable/swap_horiz_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/swap_vert_24px.xml b/core/base/src/main/res/drawable/swap_vert_24px.xml new file mode 100644 index 000000000..6abfd0d71 --- /dev/null +++ b/core/base/src/main/res/drawable/swap_vert_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/swipe_down_alt_24px.xml b/core/base/src/main/res/drawable/swipe_down_alt_24px.xml new file mode 100644 index 000000000..3969ea908 --- /dev/null +++ b/core/base/src/main/res/drawable/swipe_down_alt_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/swipe_left_alt_24px.xml b/core/base/src/main/res/drawable/swipe_left_alt_24px.xml new file mode 100644 index 000000000..f25e99110 --- /dev/null +++ b/core/base/src/main/res/drawable/swipe_left_alt_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/swipe_right_alt_24px.xml b/core/base/src/main/res/drawable/swipe_right_alt_24px.xml new file mode 100644 index 000000000..28953faa8 --- /dev/null +++ b/core/base/src/main/res/drawable/swipe_right_alt_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/swipe_up_alt_24px.xml b/core/base/src/main/res/drawable/swipe_up_alt_24px.xml new file mode 100644 index 000000000..0f7dcb2de --- /dev/null +++ b/core/base/src/main/res/drawable/swipe_up_alt_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/synagogue_24px.xml b/core/base/src/main/res/drawable/synagogue_24px.xml new file mode 100644 index 000000000..0c5e1d80d --- /dev/null +++ b/core/base/src/main/res/drawable/synagogue_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/table_rows_24px.xml b/core/base/src/main/res/drawable/table_rows_24px.xml new file mode 100644 index 000000000..93ad47c98 --- /dev/null +++ b/core/base/src/main/res/drawable/table_rows_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/tag_20px.xml b/core/base/src/main/res/drawable/tag_20px.xml new file mode 100644 index 000000000..fcae325a9 --- /dev/null +++ b/core/base/src/main/res/drawable/tag_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/tag_24px.xml b/core/base/src/main/res/drawable/tag_24px.xml new file mode 100644 index 000000000..8b8c3d843 --- /dev/null +++ b/core/base/src/main/res/drawable/tag_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/takeout_dining_24px.xml b/core/base/src/main/res/drawable/takeout_dining_24px.xml new file mode 100644 index 000000000..a09419179 --- /dev/null +++ b/core/base/src/main/res/drawable/takeout_dining_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/task_alt_24px.xml b/core/base/src/main/res/drawable/task_alt_24px.xml new file mode 100644 index 000000000..b16325d2b --- /dev/null +++ b/core/base/src/main/res/drawable/task_alt_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/telegram.xml b/core/base/src/main/res/drawable/telegram.xml new file mode 100644 index 000000000..ef8eb2fb4 --- /dev/null +++ b/core/base/src/main/res/drawable/telegram.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/core/base/src/main/res/drawable/temple_buddhist_24px.xml b/core/base/src/main/res/drawable/temple_buddhist_24px.xml new file mode 100644 index 000000000..668f572b0 --- /dev/null +++ b/core/base/src/main/res/drawable/temple_buddhist_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/temple_hindu_24px.xml b/core/base/src/main/res/drawable/temple_hindu_24px.xml new file mode 100644 index 000000000..fc221ae52 --- /dev/null +++ b/core/base/src/main/res/drawable/temple_hindu_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/terminal_24px.xml b/core/base/src/main/res/drawable/terminal_24px.xml new file mode 100644 index 000000000..4fc77865a --- /dev/null +++ b/core/base/src/main/res/drawable/terminal_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/text_fields_24px.xml b/core/base/src/main/res/drawable/text_fields_24px.xml new file mode 100644 index 000000000..ef60dd893 --- /dev/null +++ b/core/base/src/main/res/drawable/text_fields_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/theater_comedy_24px.xml b/core/base/src/main/res/drawable/theater_comedy_24px.xml new file mode 100644 index 000000000..7230ce66d --- /dev/null +++ b/core/base/src/main/res/drawable/theater_comedy_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/theaters_24px.xml b/core/base/src/main/res/drawable/theaters_24px.xml new file mode 100644 index 000000000..7ecda3c16 --- /dev/null +++ b/core/base/src/main/res/drawable/theaters_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/timer_24px.xml b/core/base/src/main/res/drawable/timer_24px.xml new file mode 100644 index 000000000..6bd174aec --- /dev/null +++ b/core/base/src/main/res/drawable/timer_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/today_20px.xml b/core/base/src/main/res/drawable/today_20px.xml new file mode 100644 index 000000000..0770a3023 --- /dev/null +++ b/core/base/src/main/res/drawable/today_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/today_24px.xml b/core/base/src/main/res/drawable/today_24px.xml new file mode 100644 index 000000000..e1dca1370 --- /dev/null +++ b/core/base/src/main/res/drawable/today_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/toggle_on_24px.xml b/core/base/src/main/res/drawable/toggle_on_24px.xml new file mode 100644 index 000000000..489bfc773 --- /dev/null +++ b/core/base/src/main/res/drawable/toggle_on_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/toll_20px.xml b/core/base/src/main/res/drawable/toll_20px.xml new file mode 100644 index 000000000..2faf01607 --- /dev/null +++ b/core/base/src/main/res/drawable/toll_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/toll_off_20px.xml b/core/base/src/main/res/drawable/toll_off_20px.xml new file mode 100644 index 000000000..3340b0994 --- /dev/null +++ b/core/base/src/main/res/drawable/toll_off_20px.xml @@ -0,0 +1,13 @@ + + + + diff --git a/core/base/src/main/res/drawable/train_20px.xml b/core/base/src/main/res/drawable/train_20px.xml new file mode 100644 index 000000000..3acc9464c --- /dev/null +++ b/core/base/src/main/res/drawable/train_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/train_24px.xml b/core/base/src/main/res/drawable/train_24px.xml new file mode 100644 index 000000000..9858788f8 --- /dev/null +++ b/core/base/src/main/res/drawable/train_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/tram_20px.xml b/core/base/src/main/res/drawable/tram_20px.xml new file mode 100644 index 000000000..1935df9ef --- /dev/null +++ b/core/base/src/main/res/drawable/tram_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/tram_24px.xml b/core/base/src/main/res/drawable/tram_24px.xml new file mode 100644 index 000000000..50db90f76 --- /dev/null +++ b/core/base/src/main/res/drawable/tram_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/translate_24px.xml b/core/base/src/main/res/drawable/translate_24px.xml new file mode 100644 index 000000000..22acb3da5 --- /dev/null +++ b/core/base/src/main/res/drawable/translate_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/travel_explore_24px.xml b/core/base/src/main/res/drawable/travel_explore_24px.xml new file mode 100644 index 000000000..ddd65ab50 --- /dev/null +++ b/core/base/src/main/res/drawable/travel_explore_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/trophy_24px.xml b/core/base/src/main/res/drawable/trophy_24px.xml new file mode 100644 index 000000000..7021a0da7 --- /dev/null +++ b/core/base/src/main/res/drawable/trophy_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/trophy_24px_filled.xml b/core/base/src/main/res/drawable/trophy_24px_filled.xml new file mode 100644 index 000000000..5cf5c46e0 --- /dev/null +++ b/core/base/src/main/res/drawable/trophy_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/tune_24px.xml b/core/base/src/main/res/drawable/tune_24px.xml new file mode 100644 index 000000000..cc1f7ebb0 --- /dev/null +++ b/core/base/src/main/res/drawable/tune_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/unarchive_24px.xml b/core/base/src/main/res/drawable/unarchive_24px.xml new file mode 100644 index 000000000..73ff0586a --- /dev/null +++ b/core/base/src/main/res/drawable/unarchive_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/unfold_more_24px.xml b/core/base/src/main/res/drawable/unfold_more_24px.xml new file mode 100644 index 000000000..93021ab0f --- /dev/null +++ b/core/base/src/main/res/drawable/unfold_more_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/universal_currency_alt_24px.xml b/core/base/src/main/res/drawable/universal_currency_alt_24px.xml new file mode 100644 index 000000000..a3efeba6c --- /dev/null +++ b/core/base/src/main/res/drawable/universal_currency_alt_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/verified_20px.xml b/core/base/src/main/res/drawable/verified_20px.xml new file mode 100644 index 000000000..2b80f8768 --- /dev/null +++ b/core/base/src/main/res/drawable/verified_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/visibility_20px.xml b/core/base/src/main/res/drawable/visibility_20px.xml new file mode 100644 index 000000000..aba1fd255 --- /dev/null +++ b/core/base/src/main/res/drawable/visibility_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/visibility_24px.xml b/core/base/src/main/res/drawable/visibility_24px.xml new file mode 100644 index 000000000..8076b0cfd --- /dev/null +++ b/core/base/src/main/res/drawable/visibility_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/visibility_24px_filled.xml b/core/base/src/main/res/drawable/visibility_24px_filled.xml new file mode 100644 index 000000000..603a5743e --- /dev/null +++ b/core/base/src/main/res/drawable/visibility_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/visibility_off_20px.xml b/core/base/src/main/res/drawable/visibility_off_20px.xml new file mode 100644 index 000000000..c1919e660 --- /dev/null +++ b/core/base/src/main/res/drawable/visibility_off_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/visibility_off_24px.xml b/core/base/src/main/res/drawable/visibility_off_24px.xml new file mode 100644 index 000000000..50ba19a57 --- /dev/null +++ b/core/base/src/main/res/drawable/visibility_off_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/visibility_off_24px_filled.xml b/core/base/src/main/res/drawable/visibility_off_24px_filled.xml new file mode 100644 index 000000000..6e8c54d90 --- /dev/null +++ b/core/base/src/main/res/drawable/visibility_off_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/wallpaper_24px.xml b/core/base/src/main/res/drawable/wallpaper_24px.xml new file mode 100644 index 000000000..ad1462707 --- /dev/null +++ b/core/base/src/main/res/drawable/wallpaper_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/wand_stars_20px.xml b/core/base/src/main/res/drawable/wand_stars_20px.xml new file mode 100644 index 000000000..aac7b78c1 --- /dev/null +++ b/core/base/src/main/res/drawable/wand_stars_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/warning_20px.xml b/core/base/src/main/res/drawable/warning_20px.xml new file mode 100644 index 000000000..91dc29b6d --- /dev/null +++ b/core/base/src/main/res/drawable/warning_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/warning_24px.xml b/core/base/src/main/res/drawable/warning_24px.xml new file mode 100644 index 000000000..74172c9d1 --- /dev/null +++ b/core/base/src/main/res/drawable/warning_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/warning_24px_filled.xml b/core/base/src/main/res/drawable/warning_24px_filled.xml new file mode 100644 index 000000000..364ab3a26 --- /dev/null +++ b/core/base/src/main/res/drawable/warning_24px_filled.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/wc_24px.xml b/core/base/src/main/res/drawable/wc_24px.xml new file mode 100644 index 000000000..e9f200bd6 --- /dev/null +++ b/core/base/src/main/res/drawable/wc_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/weight_24px.xml b/core/base/src/main/res/drawable/weight_24px.xml new file mode 100644 index 000000000..16802333b --- /dev/null +++ b/core/base/src/main/res/drawable/weight_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/widgets_20px.xml b/core/base/src/main/res/drawable/widgets_20px.xml new file mode 100644 index 000000000..15ba21d1b --- /dev/null +++ b/core/base/src/main/res/drawable/widgets_20px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/widgets_24px.xml b/core/base/src/main/res/drawable/widgets_24px.xml new file mode 100644 index 000000000..07a225043 --- /dev/null +++ b/core/base/src/main/res/drawable/widgets_24px.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/base/src/main/res/drawable/wikipedia.xml b/core/base/src/main/res/drawable/wikipedia.xml new file mode 100644 index 000000000..5d4e5e6ff --- /dev/null +++ b/core/base/src/main/res/drawable/wikipedia.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/i18n/src/main/res/values-de/strings.xml b/core/i18n/src/main/res/values-de/strings.xml index 21a2979c8..2bb1a005c 100644 --- a/core/i18n/src/main/res/values-de/strings.xml +++ b/core/i18n/src/main/res/values-de/strings.xml @@ -637,7 +637,7 @@ Krankenhaus Post Polizei - Zahnarzt + Zahnarztpraxis Bücherei Eisdiele Theater @@ -646,7 +646,7 @@ Klinik Bekleidungsgeschäft Lebensmittelgeschäft - Friseur + Friseur:in Buchhandlung Bäckerei Handygeschäft @@ -655,7 +655,7 @@ Blumenhandlung Einkaufszentrum Augenoptiker:in - Juwelier + Juwelier:in Wäscherei Bank Fußballplatz @@ -665,7 +665,7 @@ Museum Fitnesscenter Fast Food - Arzt + Arztpraxis Parkplatz Universität Basketballfeld diff --git a/core/shared/src/main/java/de/mm20/launcher2/search/location/Departure.kt b/core/shared/src/main/java/de/mm20/launcher2/search/location/Departure.kt index d564076f5..17acd05a9 100644 --- a/core/shared/src/main/java/de/mm20/launcher2/search/location/Departure.kt +++ b/core/shared/src/main/java/de/mm20/launcher2/search/location/Departure.kt @@ -79,6 +79,7 @@ enum class LineType { Boat, Monorail, CableCar, + AerialTramway, CommuterTrain, RegionalTrain, Train, diff --git a/core/shared/src/main/java/de/mm20/launcher2/search/location/LocationIcon.kt b/core/shared/src/main/java/de/mm20/launcher2/search/location/LocationIcon.kt index 555f5a7b9..83b732ac5 100644 --- a/core/shared/src/main/java/de/mm20/launcher2/search/location/LocationIcon.kt +++ b/core/shared/src/main/java/de/mm20/launcher2/search/location/LocationIcon.kt @@ -14,6 +14,7 @@ enum class LocationIcon { Train, Subway, CableCar, + AerialTramway, Airport, Boat, Taxi, diff --git a/data/applications/build.gradle.kts b/data/applications/build.gradle.kts index 4fc48d276..5f5f5c3b7 100644 --- a/data/applications/build.gradle.kts +++ b/data/applications/build.gradle.kts @@ -41,7 +41,6 @@ dependencies { implementation(libs.bundles.kotlin) implementation(libs.androidx.core) implementation(libs.androidx.appcompat) - implementation(libs.androidx.compose.materialicons) implementation(libs.bundles.androidx.lifecycle) diff --git a/data/applications/src/main/java/de/mm20/launcher2/applications/LockedPrivateProfileApp.kt b/data/applications/src/main/java/de/mm20/launcher2/applications/LockedPrivateProfileApp.kt index 028ce2154..c4a12aa8c 100644 --- a/data/applications/src/main/java/de/mm20/launcher2/applications/LockedPrivateProfileApp.kt +++ b/data/applications/src/main/java/de/mm20/launcher2/applications/LockedPrivateProfileApp.kt @@ -8,8 +8,6 @@ import android.os.Bundle import android.os.UserHandle import android.os.UserManager import android.util.Log -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Lock import androidx.core.content.getSystemService import de.mm20.launcher2.icons.ColorLayer import de.mm20.launcher2.icons.LauncherIcon @@ -25,7 +23,7 @@ internal data class LockedPrivateProfileApp( override val componentName: ComponentName, override val user: UserHandle, internal val userSerialNumber: Long, -): Application { +) : Application { override val isSuspended: Boolean = false override val versionName: String? = null override val canUninstall: Boolean = false @@ -43,7 +41,8 @@ internal data class LockedPrivateProfileApp( override val domain: String = LauncherApp.Domain override val canShareApk: Boolean = false - override val key: String = "${domain}://${componentName.packageName}:${componentName.className}:${userSerialNumber}" + override val key: String = + "${domain}://${componentName.packageName}:${componentName.className}:${userSerialNumber}" override fun overrideLabel(label: String): SavableSearchable { // We don't expose custom labels for locked apps @@ -86,7 +85,7 @@ internal data class LockedPrivateProfileApp( override fun getPlaceholderIcon(context: Context): StaticLauncherIcon { return StaticLauncherIcon( foregroundLayer = VectorLayer( - vector = Icons.Rounded.Lock, + icon = R.drawable.lock_24px, ), backgroundLayer = ColorLayer(0) ) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 16bde5e69..c5785bac2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,6 @@ jetbrains-markdown = "0.7.3" androidx-compose = "1.10.0-alpha05" androidx-compose-material3 = "1.5.0-alpha06" -androidx-compose-materialicons = "1.7.8" androidx-lifecycle = "2.9.4" androidx-core = "1.17.0" androidx-appcompat = "1.7.1" @@ -65,7 +64,6 @@ androidx-compose-foundation = { group = "androidx.compose.foundation", name = "f androidx-compose-foundationlayout = { group = "androidx.compose.foundation", name = "foundation-layout", version.ref = "androidx-compose" } androidx-compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "androidx-compose" } androidx-compose-uitooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "androidx-compose" } -androidx-compose-materialicons = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "androidx-compose-materialicons" } androidx-compose-animation = { group = "androidx.compose.animation", name = "animation", version.ref = "androidx-compose" } androidx-compose-animationgraphics = { group = "androidx.compose.animation", name = "animation-graphics", version.ref = "androidx-compose" } androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "androidx-compose-material3" } diff --git a/services/badges/build.gradle.kts b/services/badges/build.gradle.kts index fe7b6cbb0..3c1c83fd9 100644 --- a/services/badges/build.gradle.kts +++ b/services/badges/build.gradle.kts @@ -42,7 +42,6 @@ dependencies { implementation(libs.bundles.kotlin) implementation(libs.androidx.core) implementation(libs.androidx.appcompat) - implementation(libs.androidx.compose.materialicons) implementation(libs.bundles.androidx.lifecycle) implementation(libs.koin.android) diff --git a/services/badges/src/main/java/de/mm20/launcher2/badges/Badge.kt b/services/badges/src/main/java/de/mm20/launcher2/badges/Badge.kt index 26de8c16b..36d7ce488 100644 --- a/services/badges/src/main/java/de/mm20/launcher2/badges/Badge.kt +++ b/services/badges/src/main/java/de/mm20/launcher2/badges/Badge.kt @@ -2,6 +2,7 @@ package de.mm20.launcher2.badges import android.graphics.drawable.Drawable import android.util.Log +import androidx.annotation.DrawableRes import androidx.compose.ui.graphics.vector.ImageVector sealed interface BadgeIcon { @@ -9,12 +10,12 @@ sealed interface BadgeIcon { value class Drawable(val drawable: android.graphics.drawable.Drawable): BadgeIcon @JvmInline - value class Vector(val imageVector: ImageVector): BadgeIcon + value class Vector(@DrawableRes val iconRes: Int): BadgeIcon } fun BadgeIcon(drawable: Drawable): BadgeIcon = BadgeIcon.Drawable(drawable) -fun BadgeIcon(imageVector: ImageVector): BadgeIcon = BadgeIcon.Vector(imageVector) +fun BadgeIcon(@DrawableRes iconRes: Int): BadgeIcon = BadgeIcon.Vector(iconRes) interface Badge { val number: Int? diff --git a/services/badges/src/main/java/de/mm20/launcher2/badges/providers/CloudBadgeProvider.kt b/services/badges/src/main/java/de/mm20/launcher2/badges/providers/CloudBadgeProvider.kt index c97d75932..f9fd164a8 100644 --- a/services/badges/src/main/java/de/mm20/launcher2/badges/providers/CloudBadgeProvider.kt +++ b/services/badges/src/main/java/de/mm20/launcher2/badges/providers/CloudBadgeProvider.kt @@ -1,19 +1,17 @@ package de.mm20.launcher2.badges.providers import android.content.Context -import androidx.compose.material.icons.Icons import de.mm20.launcher2.badges.Badge import de.mm20.launcher2.badges.BadgeIcon import de.mm20.launcher2.badges.MutableBadge import de.mm20.launcher2.search.File import de.mm20.launcher2.search.Searchable import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOf class CloudBadgeProvider( private val context: Context -): BadgeProvider { +) : BadgeProvider { override fun getBadge(searchable: Searchable): Flow { if (searchable is File) { val iconResId = searchable.providerIconRes diff --git a/services/badges/src/main/java/de/mm20/launcher2/badges/providers/HiddenItemBadgeProvider.kt b/services/badges/src/main/java/de/mm20/launcher2/badges/providers/HiddenItemBadgeProvider.kt index a5df83fe2..2e435c4fa 100644 --- a/services/badges/src/main/java/de/mm20/launcher2/badges/providers/HiddenItemBadgeProvider.kt +++ b/services/badges/src/main/java/de/mm20/launcher2/badges/providers/HiddenItemBadgeProvider.kt @@ -1,9 +1,8 @@ package de.mm20.launcher2.badges.providers -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.VisibilityOff import de.mm20.launcher2.badges.Badge import de.mm20.launcher2.badges.BadgeIcon +import de.mm20.launcher2.badges.R import de.mm20.launcher2.search.SavableSearchable import de.mm20.launcher2.search.Searchable import de.mm20.launcher2.searchable.SavableSearchableRepository @@ -36,7 +35,7 @@ class HiddenItemBadgeProvider( return hiddenItemKeys.map { keys -> if (searchable.key in keys) { Badge( - icon = BadgeIcon(Icons.Rounded.VisibilityOff) + icon = BadgeIcon(R.drawable.visibility_off_20px) ) } else { null diff --git a/services/badges/src/main/java/de/mm20/launcher2/badges/providers/ProfileBadgeProvider.kt b/services/badges/src/main/java/de/mm20/launcher2/badges/providers/ProfileBadgeProvider.kt index 1417a1de7..af399a7e1 100644 --- a/services/badges/src/main/java/de/mm20/launcher2/badges/providers/ProfileBadgeProvider.kt +++ b/services/badges/src/main/java/de/mm20/launcher2/badges/providers/ProfileBadgeProvider.kt @@ -1,11 +1,8 @@ package de.mm20.launcher2.badges.providers -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.Lock -import androidx.compose.material.icons.rounded.Work import de.mm20.launcher2.badges.Badge import de.mm20.launcher2.badges.BadgeIcon -import de.mm20.launcher2.icons.PrivateSpace +import de.mm20.launcher2.badges.R import de.mm20.launcher2.profiles.Profile import de.mm20.launcher2.profiles.ProfileManager import de.mm20.launcher2.search.AppShortcut @@ -22,7 +19,7 @@ class ProfileBadgeProvider : BadgeProvider, KoinComponent { private val profileManager: ProfileManager by inject() override fun getBadge(searchable: Searchable): Flow = flow { - val userHandle = when(searchable) { + val userHandle = when (searchable) { is Application -> searchable.user is AppShortcut -> searchable.user else -> null @@ -30,7 +27,7 @@ class ProfileBadgeProvider : BadgeProvider, KoinComponent { if (userHandle != null) { emitAll( profileManager.getProfile(userHandle).map { - when(it?.type) { + when (it?.type) { Profile.Type.Work -> WorkProfile Profile.Type.Private -> PrivateProfile else -> null @@ -44,11 +41,11 @@ class ProfileBadgeProvider : BadgeProvider, KoinComponent { companion object { private val WorkProfile = Badge( - icon = BadgeIcon(Icons.Rounded.Work) + icon = BadgeIcon(R.drawable.enterprise_20px) ) private val PrivateProfile = Badge( - icon = BadgeIcon(Icons.Rounded.PrivateSpace) + icon = BadgeIcon(R.drawable.encrypted_20px) ) } } \ No newline at end of file diff --git a/services/badges/src/main/java/de/mm20/launcher2/badges/providers/SuspendedAppsBadgeProvider.kt b/services/badges/src/main/java/de/mm20/launcher2/badges/providers/SuspendedAppsBadgeProvider.kt index c25fb5fae..1e42dcbe4 100644 --- a/services/badges/src/main/java/de/mm20/launcher2/badges/providers/SuspendedAppsBadgeProvider.kt +++ b/services/badges/src/main/java/de/mm20/launcher2/badges/providers/SuspendedAppsBadgeProvider.kt @@ -1,7 +1,5 @@ package de.mm20.launcher2.badges.providers -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.rounded.HourglassBottom import de.mm20.launcher2.badges.Badge import de.mm20.launcher2.badges.BadgeIcon import de.mm20.launcher2.badges.MutableBadge @@ -9,7 +7,6 @@ import de.mm20.launcher2.badges.R import de.mm20.launcher2.search.Application import de.mm20.launcher2.search.Searchable import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.channelFlow import kotlinx.coroutines.flow.flowOf import org.koin.core.component.KoinComponent @@ -17,7 +14,7 @@ class SuspendedAppsBadgeProvider : BadgeProvider, KoinComponent { override fun getBadge(searchable: Searchable): Flow { return if (searchable is Application && searchable.isSuspended) { - flowOf(MutableBadge(icon = BadgeIcon(Icons.Rounded.HourglassBottom))) + flowOf(MutableBadge(icon = BadgeIcon(R.drawable.hourglass_bottom_20px))) } else { flowOf(null) }