diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 43227e67f..f62808bee 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -205,6 +205,7 @@ dependencies { baselineProfile(projects.baselineProfile) implementation(projects.i18n) + implementation(projects.icons.customMaterialSymbols) implementation(projects.icons.materialSymbols) implementation(projects.icons.simpleIcons) implementation(projects.core.archive) diff --git a/app/src/main/java/eu/kanade/presentation/browse/ExtensionDetailsScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/ExtensionDetailsScreen.kt index f40c0639d..36f830d2c 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/ExtensionDetailsScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/ExtensionDetailsScreen.kt @@ -34,10 +34,8 @@ 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.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -51,13 +49,13 @@ import eu.kanade.presentation.components.AppBarActions import eu.kanade.presentation.components.WarningBanner import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget import eu.kanade.presentation.more.settings.widget.TrailingWidgetBuffer -import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.extension.model.Extension import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsViewModel import eu.kanade.tachiyomi.util.system.LocaleHelper import eu.kanade.tachiyomi.util.system.copyToClipboard import mihon.icons.materialsymbols.MaterialSymbols +import mihon.icons.materialsymbols.rounded.Eyeglasses2 import mihon.icons.materialsymbols.rounded.Settings import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.ScrollbarLazyColumn @@ -351,7 +349,7 @@ private fun DetailsHeader( modifier = Modifier.padding(horizontal = MaterialTheme.padding.small), title = stringResource(MR.strings.pref_incognito_mode), subtitle = stringResource(MR.strings.pref_incognito_mode_extension_summary), - icon = ImageVector.vectorResource(R.drawable.ic_glasses_24dp), + icon = MaterialSymbols.Rounded.Eyeglasses2, widget = { Row( verticalAlignment = Alignment.CenterVertically, diff --git a/app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt index eb0c49ddc..b7e523be6 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt @@ -64,8 +64,8 @@ import mihon.domain.extension.model.ExtensionStore import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.rounded.Close import mihon.icons.materialsymbols.rounded.Download -import mihon.icons.materialsymbols.rounded.ExpandMore import mihon.icons.materialsymbols.rounded.Info +import mihon.icons.materialsymbols.rounded.KeyboardArrowDown import mihon.icons.materialsymbols.rounded.Refresh import mihon.icons.materialsymbols.rounded.Settings import mihon.icons.materialsymbols.rounded.VerifiedUser @@ -641,7 +641,7 @@ private fun ExtensionSplitButton( contentPadding = SplitButtonDefaults.trailingButtonContentPaddingFor(size), ) { Icon( - imageVector = MaterialSymbols.Rounded.ExpandMore, + imageVector = MaterialSymbols.Rounded.KeyboardArrowDown, contentDescription = stringResource(MR.strings.action_menu), modifier = Modifier.size(SplitButtonDefaults.trailingButtonIconSizeFor(size)), ) diff --git a/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt index fb4572ac8..3d59c497d 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt @@ -22,8 +22,8 @@ import eu.kanade.tachiyomi.ui.browse.source.SourcesViewModel import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceViewModel.Listing import eu.kanade.tachiyomi.util.system.LocaleHelper import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.rounded.PushPin -import mihon.icons.materialsymbols.roundedfilled.PushPin +import mihon.icons.materialsymbols.rounded.Keep +import mihon.icons.materialsymbols.roundedfilled.Keep import tachiyomi.domain.source.model.Pin import tachiyomi.domain.source.model.Source import tachiyomi.i18n.MR @@ -143,7 +143,7 @@ private fun SourcePinButton( isPinned: Boolean, onClick: () -> Unit, ) { - val icon = if (isPinned) MaterialSymbols.RoundedFilled.PushPin else MaterialSymbols.Rounded.PushPin + val icon = if (isPinned) MaterialSymbols.RoundedFilled.Keep else MaterialSymbols.Rounded.Keep val tint = if (isPinned) { MaterialTheme.colorScheme.primary } else { diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseIcons.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseIcons.kt index 81e6dfa47..a018c233b 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseIcons.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseIcons.kt @@ -29,8 +29,8 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.extension.model.Extension import eu.kanade.tachiyomi.extension.util.ExtensionLoader import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.rounded.Dangerous -import mihon.icons.materialsymbols.rounded.Warning +import mihon.icons.materialsymbols.roundedfilled.Dangerous +import mihon.icons.materialsymbols.roundedfilled.Warning import tachiyomi.core.common.util.lang.withIOContext import tachiyomi.domain.source.model.Source import tachiyomi.source.local.isLocal @@ -49,7 +49,7 @@ fun SourceIcon( when { source.isStub && icon == null -> { Image( - imageVector = MaterialSymbols.Rounded.Warning, + imageVector = MaterialSymbols.RoundedFilled.Warning, contentDescription = null, colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.error), modifier = modifier.then(defaultModifier), @@ -113,7 +113,7 @@ fun ExtensionIcon( } } is Extension.NotLoaded -> Image( - imageVector = MaterialSymbols.Rounded.Dangerous, + imageVector = MaterialSymbols.RoundedFilled.Dangerous, contentDescription = null, colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.error), modifier = modifier.then(defaultModifier), diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt index cf9c608b4..440a9df3d 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt @@ -16,8 +16,9 @@ import eu.kanade.presentation.components.SearchToolbar import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.Source import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.automirroredrounded.ViewList -import mihon.icons.materialsymbols.rounded.ViewModule +import mihon.icons.materialsymbols.automirroredroundedfilled.ViewList +import mihon.icons.materialsymbols.roundedfilled.ViewCompact +import mihon.icons.materialsymbols.roundedfilled.ViewModule import tachiyomi.domain.library.model.LibraryDisplayMode import tachiyomi.i18n.MR import tachiyomi.presentation.core.i18n.stringResource @@ -57,10 +58,12 @@ fun BrowseSourceToolbar( add( AppBar.Action( title = stringResource(MR.strings.action_display_mode), - icon = if (displayMode == LibraryDisplayMode.List) { - MaterialSymbols.AutoMirroredRounded.ViewList - } else { - MaterialSymbols.Rounded.ViewModule + icon = when (displayMode) { + LibraryDisplayMode.List -> MaterialSymbols.AutoMirroredRoundedFilled.ViewList + LibraryDisplayMode.ComfortableGrid -> MaterialSymbols.RoundedFilled.ViewModule + LibraryDisplayMode.CompactGrid, + LibraryDisplayMode.CoverOnlyGrid, + -> MaterialSymbols.RoundedFilled.ViewCompact }, onClick = { selectingDisplayMode = true }, ), diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchResultItems.kt b/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchResultItems.kt index 80eb5703f..debe0b517 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchResultItems.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchResultItems.kt @@ -22,7 +22,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.automirroredrounded.ArrowForward -import mihon.icons.materialsymbols.rounded.Error +import mihon.icons.materialsymbols.roundedfilled.Error import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.i18n.stringResource @@ -90,7 +90,7 @@ fun GlobalSearchErrorResultItem(message: String?) { horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, ) { - Icon(imageVector = MaterialSymbols.Rounded.Error, contentDescription = null) + Icon(imageVector = MaterialSymbols.RoundedFilled.Error, contentDescription = null) Spacer(Modifier.height(4.dp)) Text( text = message ?: stringResource(MR.strings.unknown_error), diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchToolbar.kt b/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchToolbar.kt index 2184c57b7..19ea6d8b2 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchToolbar.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/GlobalSearchToolbar.kt @@ -28,7 +28,7 @@ import eu.kanade.tachiyomi.ui.browse.source.globalsearch.SourceFilter import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.rounded.DoneAll import mihon.icons.materialsymbols.rounded.FilterList -import mihon.icons.materialsymbols.rounded.PushPin +import mihon.icons.materialsymbols.rounded.Keep import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.i18n.stringResource @@ -82,7 +82,7 @@ fun GlobalSearchToolbar( onClick = { onChangeSearchFilter(SourceFilter.PinnedOnly) }, leadingIcon = { Icon( - imageVector = MaterialSymbols.Rounded.PushPin, + imageVector = MaterialSymbols.Rounded.Keep, contentDescription = null, modifier = Modifier .size(FilterChipDefaults.IconSize), diff --git a/app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt b/app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt index 498cd5e8d..166f540d8 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt @@ -31,7 +31,7 @@ import eu.kanade.presentation.components.TabbedDialog import eu.kanade.presentation.components.TabbedDialogPaddings import mihon.app.di.appGraph import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.rounded.PeopleAlt +import mihon.icons.materialsymbols.rounded.Group import tachiyomi.core.common.preference.TriState import tachiyomi.domain.manga.model.Manga import tachiyomi.i18n.MR @@ -174,7 +174,7 @@ fun ScanlatorFilterItem( horizontalArrangement = Arrangement.spacedBy(24.dp), ) { Icon( - imageVector = MaterialSymbols.Rounded.PeopleAlt, + imageVector = MaterialSymbols.Rounded.Group, contentDescription = null, tint = if (active) { MaterialTheme.colorScheme.active diff --git a/app/src/main/java/eu/kanade/presentation/manga/DuplicateMangaDialog.kt b/app/src/main/java/eu/kanade/presentation/manga/DuplicateMangaDialog.kt index 879f35aba..bdfaa05bd 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/DuplicateMangaDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/DuplicateMangaDialog.kt @@ -58,14 +58,14 @@ import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.rounded.Add import mihon.icons.materialsymbols.rounded.AttachMoney import mihon.icons.materialsymbols.rounded.Block -import mihon.icons.materialsymbols.rounded.Brush +import mihon.icons.materialsymbols.rounded.Check import mihon.icons.materialsymbols.rounded.Close -import mihon.icons.materialsymbols.rounded.Done import mihon.icons.materialsymbols.rounded.DoneAll -import mihon.icons.materialsymbols.rounded.Pause import mihon.icons.materialsymbols.rounded.Person import mihon.icons.materialsymbols.rounded.Schedule -import mihon.icons.materialsymbols.rounded.Warning +import mihon.icons.materialsymbols.roundedfilled.Brush +import mihon.icons.materialsymbols.roundedfilled.Pause +import mihon.icons.materialsymbols.roundedfilled.Warning import tachiyomi.domain.manga.model.Manga import tachiyomi.domain.manga.model.MangaWithChapterCount import tachiyomi.domain.source.model.StubSource @@ -238,7 +238,7 @@ private fun DuplicateMangaListItem( if (!manga.artist.isNullOrBlank() && manga.author != manga.artist) { MangaDetailRow( text = manga.artist!!, - iconImageVector = MaterialSymbols.Rounded.Brush, + iconImageVector = MaterialSymbols.RoundedFilled.Brush, maxLines = 2, ) } @@ -257,9 +257,9 @@ private fun DuplicateMangaListItem( SManga.ONGOING.toLong() -> MaterialSymbols.Rounded.Schedule SManga.COMPLETED.toLong() -> MaterialSymbols.Rounded.DoneAll SManga.LICENSED.toLong() -> MaterialSymbols.Rounded.AttachMoney - SManga.PUBLISHING_FINISHED.toLong() -> MaterialSymbols.Rounded.Done + SManga.PUBLISHING_FINISHED.toLong() -> MaterialSymbols.Rounded.Check SManga.CANCELLED.toLong() -> MaterialSymbols.Rounded.Close - SManga.ON_HIATUS.toLong() -> MaterialSymbols.Rounded.Pause + SManga.ON_HIATUS.toLong() -> MaterialSymbols.RoundedFilled.Pause else -> MaterialSymbols.Rounded.Block }, ) @@ -272,7 +272,7 @@ private fun DuplicateMangaListItem( ) { if (source is StubSource) { Icon( - imageVector = MaterialSymbols.Rounded.Warning, + imageVector = MaterialSymbols.RoundedFilled.Warning, contentDescription = null, modifier = Modifier.size(16.dp), tint = MaterialTheme.colorScheme.error, diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/ChapterDownloadIndicator.kt b/app/src/main/java/eu/kanade/presentation/manga/components/ChapterDownloadIndicator.kt index 2eabd65eb..2b4ecd1b5 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/ChapterDownloadIndicator.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/ChapterDownloadIndicator.kt @@ -24,14 +24,14 @@ import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.hapticfeedback.HapticFeedback import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback -import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp import eu.kanade.presentation.components.DropdownMenu -import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.download.model.Download +import mihon.icons.custommaterialsymbols.CustomMaterialSymbols +import mihon.icons.custommaterialsymbols.rounded.DownloadArrow +import mihon.icons.custommaterialsymbols.rounded.DownloadCircle import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.rounded.ArrowDownward import mihon.icons.materialsymbols.rounded.Error import mihon.icons.materialsymbols.roundedfilled.CheckCircle import tachiyomi.i18n.MR @@ -99,7 +99,7 @@ private fun NotDownloadedIndicator( contentAlignment = Alignment.Center, ) { Icon( - painter = painterResource(R.drawable.ic_download_chapter_24dp), + imageVector = CustomMaterialSymbols.Rounded.DownloadCircle, contentDescription = stringResource(MR.strings.manga_download), modifier = Modifier.size(IndicatorSize), tint = MaterialTheme.colorScheme.onSurfaceVariant, @@ -179,7 +179,7 @@ private fun DownloadingIndicator( ) } Icon( - imageVector = MaterialSymbols.Rounded.ArrowDownward, + imageVector = CustomMaterialSymbols.Rounded.DownloadArrow, contentDescription = null, modifier = ArrowModifier, tint = arrowColor, @@ -279,4 +279,4 @@ private val IndicatorModifier = Modifier .size(IndicatorSize) .padding(IndicatorPadding) private val ArrowModifier = Modifier - .size(IndicatorSize - 7.dp) + .size(IndicatorSize) diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt b/app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt index 60df31061..805002697 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt @@ -40,18 +40,18 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback -import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp import eu.kanade.presentation.components.DownloadDropdownMenu import eu.kanade.presentation.components.DropdownMenu import eu.kanade.presentation.manga.DownloadAction -import eu.kanade.tachiyomi.R import kotlinx.coroutines.Job import kotlinx.coroutines.delay import kotlinx.coroutines.isActive import kotlinx.coroutines.launch +import mihon.icons.custommaterialsymbols.CustomMaterialSymbols +import mihon.icons.custommaterialsymbols.rounded.DonePrevious import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.automirroredrounded.Label import mihon.icons.materialsymbols.rounded.BookmarkAdd @@ -149,7 +149,7 @@ fun MangaBottomActionMenu( if (onMarkPreviousAsReadClicked != null) { Button( title = stringResource(MR.strings.action_mark_previous_as_read), - icon = ImageVector.vectorResource(R.drawable.ic_done_prev_24dp), + icon = CustomMaterialSymbols.Rounded.DonePrevious, toConfirm = confirm[4], onLongClick = { onLongClickItem(4) }, onClick = onMarkPreviousAsReadClicked, diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/MangaChapterListItem.kt b/app/src/main/java/eu/kanade/presentation/manga/components/MangaChapterListItem.kt index f60393b53..c1ad3b9cc 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/MangaChapterListItem.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/MangaChapterListItem.kt @@ -31,8 +31,8 @@ import me.saket.swipe.SwipeableActionsBox import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.rounded.BookmarkAdd import mihon.icons.materialsymbols.rounded.BookmarkRemove +import mihon.icons.materialsymbols.rounded.Check import mihon.icons.materialsymbols.rounded.Delete -import mihon.icons.materialsymbols.rounded.Done import mihon.icons.materialsymbols.rounded.Download import mihon.icons.materialsymbols.rounded.FileDownloadOff import mihon.icons.materialsymbols.rounded.RemoveDone @@ -192,7 +192,7 @@ private fun getSwipeAction( ): me.saket.swipe.SwipeAction? { return when (action) { LibraryPreferences.ChapterSwipeAction.ToggleRead -> swipeAction( - icon = if (!read) MaterialSymbols.Rounded.Done else MaterialSymbols.Rounded.RemoveDone, + icon = if (!read) MaterialSymbols.Rounded.Check else MaterialSymbols.Rounded.RemoveDone, background = background, isUndo = read, onSwipe = onSwipe, diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt b/app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt index 9fff9db1f..6d4a7206d 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt @@ -82,19 +82,19 @@ import mihon.app.di.appGraph import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.rounded.AttachMoney import mihon.icons.materialsymbols.rounded.Block -import mihon.icons.materialsymbols.rounded.Brush +import mihon.icons.materialsymbols.rounded.Check import mihon.icons.materialsymbols.rounded.Close -import mihon.icons.materialsymbols.rounded.Done import mihon.icons.materialsymbols.rounded.DoneAll import mihon.icons.materialsymbols.rounded.Favorite import mihon.icons.materialsymbols.rounded.HourglassEmpty -import mihon.icons.materialsymbols.rounded.Pause import mihon.icons.materialsymbols.rounded.Person import mihon.icons.materialsymbols.rounded.Public import mihon.icons.materialsymbols.rounded.Schedule import mihon.icons.materialsymbols.rounded.Sync -import mihon.icons.materialsymbols.rounded.Warning +import mihon.icons.materialsymbols.roundedfilled.Brush import mihon.icons.materialsymbols.roundedfilled.Favorite +import mihon.icons.materialsymbols.roundedfilled.Pause +import mihon.icons.materialsymbols.roundedfilled.Warning import org.intellij.markdown.MarkdownElementTypes import org.intellij.markdown.MarkdownTokenTypes import org.intellij.markdown.ast.findChildOfType @@ -230,7 +230,7 @@ fun MangaActionRow( } else { pluralStringResource(MR.plurals.num_trackers, count = trackingCount, trackingCount) }, - icon = if (trackingCount == 0) MaterialSymbols.Rounded.Sync else MaterialSymbols.Rounded.Done, + icon = if (trackingCount == 0) MaterialSymbols.Rounded.Sync else MaterialSymbols.Rounded.Check, color = if (trackingCount == 0) defaultActionButtonColor else MaterialTheme.colorScheme.primary, onClick = onTrackingClicked, ) @@ -491,7 +491,7 @@ private fun ColumnScope.MangaContentInfo( verticalAlignment = Alignment.CenterVertically, ) { Icon( - imageVector = MaterialSymbols.Rounded.Brush, + imageVector = MaterialSymbols.RoundedFilled.Brush, contentDescription = null, modifier = Modifier.size(16.dp), ) @@ -519,9 +519,9 @@ private fun ColumnScope.MangaContentInfo( SManga.ONGOING.toLong() -> MaterialSymbols.Rounded.Schedule SManga.COMPLETED.toLong() -> MaterialSymbols.Rounded.DoneAll SManga.LICENSED.toLong() -> MaterialSymbols.Rounded.AttachMoney - SManga.PUBLISHING_FINISHED.toLong() -> MaterialSymbols.Rounded.Done + SManga.PUBLISHING_FINISHED.toLong() -> MaterialSymbols.Rounded.Check SManga.CANCELLED.toLong() -> MaterialSymbols.Rounded.Close - SManga.ON_HIATUS.toLong() -> MaterialSymbols.Rounded.Pause + SManga.ON_HIATUS.toLong() -> MaterialSymbols.RoundedFilled.Pause else -> MaterialSymbols.Rounded.Block }, contentDescription = null, @@ -546,7 +546,7 @@ private fun ColumnScope.MangaContentInfo( DotSeparatorText() if (isStubSource) { Icon( - imageVector = MaterialSymbols.Rounded.Warning, + imageVector = MaterialSymbols.RoundedFilled.Warning, contentDescription = null, modifier = Modifier .padding(end = 4.dp) @@ -667,7 +667,7 @@ private fun MangaSummary( modifier = Modifier.background(Brush.verticalGradient(colors = colors)), contentAlignment = Alignment.Center, ) { - val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_caret_down) + val image = AnimatedImageVector.animatedVectorResource(R.drawable.animated_caret_flip) Icon( painter = rememberAnimatedVectorPainter(image, !expanded), contentDescription = stringResource( diff --git a/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt b/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt index c766947a9..8149898f7 100644 --- a/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt @@ -3,24 +3,22 @@ package eu.kanade.presentation.more import androidx.compose.foundation.layout.PaddingValues import androidx.compose.material3.HorizontalDivider import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.dp import eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget -import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.more.DownloadQueueState import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.automirroredrounded.Help import mihon.icons.materialsymbols.automirroredrounded.Label import mihon.icons.materialsymbols.rounded.CloudOff import mihon.icons.materialsymbols.rounded.Download +import mihon.icons.materialsymbols.rounded.Eyeglasses2 import mihon.icons.materialsymbols.rounded.Info import mihon.icons.materialsymbols.rounded.QueryStats import mihon.icons.materialsymbols.rounded.Settings import mihon.icons.materialsymbols.rounded.Storage -import mihon.icons.materialsymbols.rounded.VolunteerActivism +import mihon.icons.materialsymbols.roundedfilled.VolunteerActivism import tachiyomi.core.common.Constants import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.ScrollbarLazyColumn @@ -65,7 +63,7 @@ fun MoreScreen( SwitchPreferenceWidget( title = stringResource(MR.strings.pref_incognito_mode), subtitle = stringResource(MR.strings.pref_incognito_mode_summary), - icon = ImageVector.vectorResource(R.drawable.ic_glasses_24dp), + icon = MaterialSymbols.Rounded.Eyeglasses2, checked = incognitoMode, onCheckedChanged = onIncognitoModeChange, ) @@ -136,7 +134,7 @@ fun MoreScreen( item { TextPreferenceWidget( title = stringResource(MR.strings.label_support_us), - icon = MaterialSymbols.Rounded.VolunteerActivism, + icon = MaterialSymbols.RoundedFilled.VolunteerActivism, onPreferenceClick = onClickSupport, ) } diff --git a/app/src/main/java/eu/kanade/presentation/more/NewUpdateScreen.kt b/app/src/main/java/eu/kanade/presentation/more/NewUpdateScreen.kt index 03d402abb..a1e6afcdd 100644 --- a/app/src/main/java/eu/kanade/presentation/more/NewUpdateScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/NewUpdateScreen.kt @@ -18,7 +18,7 @@ import eu.kanade.presentation.theme.TachiyomiPreviewTheme import eu.kanade.tachiyomi.ui.more.NewUpdateScreenModel import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.automirroredrounded.OpenInNew -import mihon.icons.materialsymbols.rounded.NewReleases +import mihon.icons.materialsymbols.rounded.Verified import org.intellij.markdown.flavours.gfm.GFMFlavourDescriptor import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.material.padding @@ -36,7 +36,7 @@ fun NewUpdateScreen( onRejectUpdate: () -> Unit, ) { InfoScreen( - icon = MaterialSymbols.Rounded.NewReleases, + icon = MaterialSymbols.Rounded.Verified, headingText = stringResource(MR.strings.update_check_notification_update_available), subtitleText = versionName, acceptText = when (stage) { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt index 3eea673ba..8f9011fc7 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt @@ -56,8 +56,8 @@ import mihon.app.di.appGraph import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.automirroredrounded.Help import mihon.icons.materialsymbols.rounded.Close -import mihon.icons.materialsymbols.rounded.Visibility -import mihon.icons.materialsymbols.rounded.VisibilityOff +import mihon.icons.materialsymbols.roundedfilled.Visibility +import mihon.icons.materialsymbols.roundedfilled.VisibilityOff import tachiyomi.core.common.util.lang.launchIO import tachiyomi.core.common.util.lang.withUIContext import tachiyomi.i18n.MR @@ -250,9 +250,9 @@ object SettingsTrackingScreen : SearchableSettings { IconButton(onClick = { hidePassword = !hidePassword }) { Icon( imageVector = if (hidePassword) { - MaterialSymbols.Rounded.Visibility + MaterialSymbols.RoundedFilled.Visibility } else { - MaterialSymbols.Rounded.VisibilityOff + MaterialSymbols.RoundedFilled.VisibilityOff }, contentDescription = null, ) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/widget/EditTextPreferenceWidget.kt b/app/src/main/java/eu/kanade/presentation/more/settings/widget/EditTextPreferenceWidget.kt index c35768d60..fcd0d7eb7 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/widget/EditTextPreferenceWidget.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/widget/EditTextPreferenceWidget.kt @@ -20,8 +20,8 @@ import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.window.DialogProperties import kotlinx.coroutines.launch import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.rounded.Cancel -import mihon.icons.materialsymbols.rounded.Error +import mihon.icons.materialsymbols.roundedfilled.Cancel +import mihon.icons.materialsymbols.roundedfilled.Error import tachiyomi.i18n.MR import tachiyomi.presentation.core.i18n.stringResource @@ -57,10 +57,10 @@ fun EditTextPreferenceWidget( onValueChange = { textFieldValue = it }, trailingIcon = { if (textFieldValue.text.isBlank()) { - Icon(imageVector = MaterialSymbols.Rounded.Error, contentDescription = null) + Icon(imageVector = MaterialSymbols.RoundedFilled.Error, contentDescription = null) } else { IconButton(onClick = { textFieldValue = TextFieldValue("") }) { - Icon(imageVector = MaterialSymbols.Rounded.Cancel, contentDescription = null) + Icon(imageVector = MaterialSymbols.RoundedFilled.Cancel, contentDescription = null) } } }, diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/widget/TrackingPreferenceWidget.kt b/app/src/main/java/eu/kanade/presentation/more/settings/widget/TrackingPreferenceWidget.kt index 45e44fdc3..16af44533 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/widget/TrackingPreferenceWidget.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/widget/TrackingPreferenceWidget.kt @@ -27,7 +27,7 @@ import eu.kanade.tachiyomi.data.track.Tracker import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.rounded.Done +import mihon.icons.materialsymbols.rounded.Check import mihon.icons.materialsymbols.rounded.Refresh import tachiyomi.i18n.MR import tachiyomi.presentation.core.i18n.stringResource @@ -107,7 +107,7 @@ fun TrackingPreferenceWidget( } } Icon( - imageVector = MaterialSymbols.Rounded.Done, + imageVector = MaterialSymbols.Rounded.Check, modifier = Modifier .padding(4.dp) .size(32.dp), diff --git a/app/src/main/java/eu/kanade/presentation/reader/ChapterTransition.kt b/app/src/main/java/eu/kanade/presentation/reader/ChapterTransition.kt index c6d853fec..02911ae35 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/ChapterTransition.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/ChapterTransition.kt @@ -35,8 +35,8 @@ import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.rounded.Info -import mihon.icons.materialsymbols.rounded.Warning import mihon.icons.materialsymbols.roundedfilled.CheckCircle +import mihon.icons.materialsymbols.roundedfilled.Warning import tachiyomi.domain.chapter.model.Chapter import tachiyomi.domain.chapter.service.calculateChapterGap import tachiyomi.i18n.MR @@ -184,7 +184,7 @@ private fun ChapterGapWarning( verticalAlignment = Alignment.CenterVertically, ) { Icon( - imageVector = MaterialSymbols.Rounded.Warning, + imageVector = MaterialSymbols.RoundedFilled.Warning, tint = MaterialTheme.colorScheme.error, contentDescription = null, ) diff --git a/app/src/main/java/eu/kanade/presentation/reader/ReadingModeSelectDialog.kt b/app/src/main/java/eu/kanade/presentation/reader/ReadingModeSelectDialog.kt index 35ceb2c3c..47ae668bf 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/ReadingModeSelectDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/ReadingModeSelectDialog.kt @@ -11,8 +11,6 @@ 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.vectorResource import androidx.compose.ui.tooling.preview.PreviewLightDark import dev.icerock.moko.resources.StringResource import eu.kanade.domain.manga.model.readingMode @@ -68,7 +66,7 @@ private fun DialogContent( selected = mode }, modifier = Modifier.fillMaxWidth(), - imageVector = ImageVector.vectorResource(mode.iconRes), + imageVector = mode.icon, title = stringResource(mode.stringRes), ) } diff --git a/app/src/main/java/eu/kanade/presentation/reader/appbars/ReaderBottomBar.kt b/app/src/main/java/eu/kanade/presentation/reader/appbars/ReaderBottomBar.kt index 6faedd7c1..b4e87ac08 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/appbars/ReaderBottomBar.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/appbars/ReaderBottomBar.kt @@ -8,11 +8,12 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.input.pointer.pointerInput -import androidx.compose.ui.res.painterResource -import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation import eu.kanade.tachiyomi.ui.reader.setting.ReadingMode +import mihon.icons.custommaterialsymbols.CustomMaterialSymbols +import mihon.icons.custommaterialsymbols.rounded.CropOff import mihon.icons.materialsymbols.MaterialSymbols +import mihon.icons.materialsymbols.rounded.Crop import mihon.icons.materialsymbols.rounded.Settings import tachiyomi.i18n.MR import tachiyomi.presentation.core.i18n.stringResource @@ -36,7 +37,7 @@ fun ReaderBottomBar( ) { IconButton(onClick = onClickReadingMode) { Icon( - painter = painterResource(readingMode.iconRes), + imageVector = readingMode.icon, contentDescription = stringResource(MR.strings.viewer), ) } @@ -50,7 +51,7 @@ fun ReaderBottomBar( IconButton(onClick = onClickCropBorder) { Icon( - painter = painterResource(if (cropEnabled) R.drawable.ic_crop_24dp else R.drawable.ic_crop_off_24dp), + imageVector = if (cropEnabled) MaterialSymbols.Rounded.Crop else CustomMaterialSymbols.Rounded.CropOff, contentDescription = stringResource(MR.strings.pref_crop_borders), ) } diff --git a/app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHome.kt b/app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHome.kt index b6fde043a..b05bed947 100644 --- a/app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHome.kt +++ b/app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHome.kt @@ -59,7 +59,7 @@ import eu.kanade.tachiyomi.util.system.copyToClipboard import kotlinx.datetime.toJavaLocalDate import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.rounded.MoreVert -import mihon.icons.materialsymbols.rounded.VisibilityOff +import mihon.icons.materialsymbols.roundedfilled.VisibilityOff import tachiyomi.i18n.MR import tachiyomi.presentation.core.i18n.stringResource import java.time.format.DateTimeFormatter @@ -175,7 +175,7 @@ private fun TrackInfoItem( modifier = Modifier.absoluteOffset(x = (-5).dp), ) { Icon( - imageVector = MaterialSymbols.Rounded.VisibilityOff, + imageVector = MaterialSymbols.RoundedFilled.VisibilityOff, contentDescription = stringResource(MR.strings.tracked_privately), modifier = Modifier.size(14.dp), ) diff --git a/app/src/main/java/eu/kanade/presentation/track/TrackerSearch.kt b/app/src/main/java/eu/kanade/presentation/track/TrackerSearch.kt index 8d8388902..46da98b8b 100644 --- a/app/src/main/java/eu/kanade/presentation/track/TrackerSearch.kt +++ b/app/src/main/java/eu/kanade/presentation/track/TrackerSearch.kt @@ -74,8 +74,8 @@ import kotlinx.coroutines.launch import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.automirroredrounded.ArrowBack import mihon.icons.materialsymbols.rounded.Close -import mihon.icons.materialsymbols.rounded.VisibilityOff import mihon.icons.materialsymbols.roundedfilled.CheckCircle +import mihon.icons.materialsymbols.roundedfilled.VisibilityOff import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.ScrollbarLazyColumn import tachiyomi.presentation.core.components.material.Scaffold @@ -189,7 +189,7 @@ fun TrackerSearch( elevation = ButtonDefaults.elevatedButtonElevation(), ) { Icon( - imageVector = MaterialSymbols.Rounded.VisibilityOff, + imageVector = MaterialSymbols.RoundedFilled.VisibilityOff, contentDescription = stringResource(MR.strings.action_toggle_private_on), ) } diff --git a/app/src/main/java/eu/kanade/presentation/util/AnimatedVectorPainter.kt b/app/src/main/java/eu/kanade/presentation/util/AnimatedVectorPainter.kt new file mode 100644 index 000000000..afb3d3961 --- /dev/null +++ b/app/src/main/java/eu/kanade/presentation/util/AnimatedVectorPainter.kt @@ -0,0 +1,33 @@ +package eu.kanade.presentation.util + +import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter +import androidx.compose.animation.graphics.vector.AnimatedImageVector +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.SideEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.key +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.graphics.painter.Painter + +/** + * Plays [enter] forwards when [atEnd] becomes true and [exit] forwards when it becomes false, + * instead of reversing a single animation. Nothing animates on the first composition. + */ +@Composable +fun rememberAnimatedVectorPainter( + enter: AnimatedImageVector, + exit: AnimatedImageVector, + atEnd: Boolean, +): Painter { + val composed = remember { mutableStateOf(false) } + SideEffect { composed.value = true } + return key(atEnd) { + // A fresh group per change, so the new animation starts from its first frame + var playing by remember { mutableStateOf(!composed.value) } + LaunchedEffect(Unit) { playing = true } + rememberAnimatedVectorPainter(if (atEnd) enter else exit, playing) + } +} diff --git a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt index 418d6d3e8..fbc26ff3f 100644 --- a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt +++ b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt @@ -28,9 +28,7 @@ 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.vector.ImageVector import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.dp import cafe.adriel.voyager.core.stack.mutableStateStackOf import com.kevinnzou.web.AccompanistWebChromeClient @@ -44,7 +42,6 @@ import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AppBarActions import eu.kanade.presentation.components.WarningBanner import eu.kanade.tachiyomi.BuildConfig -import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.util.system.getHtml import eu.kanade.tachiyomi.util.system.setDefaultSettings import eu.kanade.tachiyomi.util.system.setUserAgent @@ -53,6 +50,7 @@ import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.automirroredrounded.ArrowBack import mihon.icons.materialsymbols.automirroredrounded.ArrowForward import mihon.icons.materialsymbols.rounded.Close +import mihon.icons.materialsymbols.rounded.TabClose import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.material.Scaffold import tachiyomi.presentation.core.i18n.stringResource @@ -278,7 +276,7 @@ fun WebViewScreenContent( 0, AppBar.Action( title = stringResource(MR.strings.action_webview_close_tab), - icon = ImageVector.vectorResource(R.drawable.ic_tab_close_24px), + icon = MaterialSymbols.Rounded.TabClose, onClick = popState, ), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index cf2dfa742..b74c6e70a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -69,6 +69,7 @@ import tachiyomi.presentation.widget.WidgetManager import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.InjektScope import java.security.Security +import mihon.icons.materialsymbols.R as MaterialSymbolsR class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factory, GraphProvider { @@ -138,7 +139,7 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor ) { setContentTitle(stringResource(MR.strings.pref_incognito_mode)) setContentText(stringResource(MR.strings.notification_incognito_text)) - setSmallIcon(R.drawable.ic_glasses_24dp) + setSmallIcon(MaterialSymbolsR.drawable.rounded_eyeglasses_2) setOngoing(true) val pendingIntent = PendingIntent.getBroadcast( diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt index 40db11465..48050d76b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt @@ -19,6 +19,7 @@ import tachiyomi.core.common.storage.displayablePath import tachiyomi.i18n.MR import java.io.File import kotlin.time.Duration.Companion.milliseconds +import mihon.icons.materialsymbols.R as MaterialSymbolsR @Inject class BackupNotifier( @@ -79,7 +80,7 @@ class BackupNotifier( clearActions() addAction( - R.drawable.ic_share_24dp, + MaterialSymbolsR.drawable.rounded_share, context.stringResource(MR.strings.action_share), NotificationReceiver.shareBackupPendingActivity(context, file.uri), ) @@ -111,7 +112,7 @@ class BackupNotifier( clearActions() addAction( - R.drawable.ic_close_24dp, + MaterialSymbolsR.drawable.rounded_close, context.stringResource(MR.strings.action_cancel), NotificationReceiver.cancelRestorePendingBroadcast(context, Notifications.ID_RESTORE_PROGRESS), ) @@ -173,7 +174,7 @@ class BackupNotifier( val errorLogIntent = NotificationReceiver.openErrorLogPendingActivity(context, uri) setContentIntent(errorLogIntent) addAction( - R.drawable.ic_folder_24dp, + MaterialSymbolsR.drawable.rounded_filled_folder, context.stringResource(MR.strings.action_show_errors), errorLogIntent, ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt index 57629e464..ae354355d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt @@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.util.system.notify import tachiyomi.core.common.i18n.stringResource import tachiyomi.i18n.MR import java.util.regex.Pattern +import mihon.icons.materialsymbols.R as MaterialSymbolsR /** * DownloadNotifier is used to show notifications when downloading one or multiple chapters. @@ -79,12 +80,12 @@ class DownloadNotifier( isDownloading = true // Pause action addAction( - R.drawable.ic_pause_24dp, + MaterialSymbolsR.drawable.rounded_filled_pause, context.stringResource(MR.strings.action_pause), NotificationReceiver.pauseDownloadsPendingBroadcast(context), ) addAction( - R.drawable.ic_book_24dp, + MaterialSymbolsR.drawable.rounded_book, context.stringResource(MR.strings.action_show_manga), NotificationReceiver.openEntryPendingActivity(context, download.manga.id), ) @@ -129,20 +130,20 @@ class DownloadNotifier( ) { setContentTitle(context.stringResource(MR.strings.chapter_paused)) setContentText(context.stringResource(MR.strings.download_notifier_download_paused)) - setSmallIcon(R.drawable.ic_pause_24dp) + setSmallIcon(MaterialSymbolsR.drawable.rounded_filled_pause) setLargeIcon(BitmapFactory.decodeResource(context.resources, R.mipmap.ic_launcher)) setOnlyAlertOnce(true) // Open download manager when clicked setContentIntent(NotificationHandler.openDownloadManagerPendingActivity(context)) // Resume action addAction( - R.drawable.ic_play_arrow_24dp, + MaterialSymbolsR.drawable.rounded_filled_play_arrow, context.stringResource(MR.strings.action_resume), NotificationReceiver.resumeDownloadsPendingBroadcast(context), ) // Clear action addAction( - R.drawable.ic_close_24dp, + MaterialSymbolsR.drawable.rounded_close, context.stringResource(MR.strings.action_cancel_all), NotificationReceiver.clearDownloadsPendingBroadcast(context), ) @@ -177,12 +178,12 @@ class DownloadNotifier( ) { setContentTitle(context.stringResource(MR.strings.download_notifier_downloader_title)) setStyle(NotificationCompat.BigTextStyle().bigText(reason)) - setSmallIcon(R.drawable.ic_warning_white_24dp) + setSmallIcon(MaterialSymbolsR.drawable.rounded_filled_warning) setAutoCancel(true) setContentIntent(NotificationHandler.openDownloadManagerPendingActivity(context)) if (mangaId != null) { addAction( - R.drawable.ic_book_24dp, + MaterialSymbolsR.drawable.rounded_book, context.stringResource(MR.strings.action_show_manga), NotificationReceiver.openEntryPendingActivity(context, mangaId), ) @@ -213,11 +214,11 @@ class DownloadNotifier( mangaTitle?.plus(": $chapter") ?: context.stringResource(MR.strings.download_notifier_downloader_title), ) setContentText(error ?: context.stringResource(MR.strings.download_notifier_unknown_error)) - setSmallIcon(R.drawable.ic_warning_white_24dp) + setSmallIcon(MaterialSymbolsR.drawable.rounded_filled_warning) setContentIntent(NotificationHandler.openDownloadManagerPendingActivity(context)) if (mangaId != null) { addAction( - R.drawable.ic_book_24dp, + MaterialSymbolsR.drawable.rounded_book, context.stringResource(MR.strings.action_show_manga), NotificationReceiver.openEntryPendingActivity(context, mangaId), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt index 29442a7d2..287250e09 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt @@ -40,6 +40,7 @@ import tachiyomi.domain.source.service.SourceManager import tachiyomi.i18n.MR import java.math.RoundingMode import java.text.NumberFormat +import mihon.icons.materialsymbols.R as MaterialSymbolsR @Inject class LibraryUpdateNotifier( @@ -73,11 +74,15 @@ class LibraryUpdateNotifier( val progressNotificationBuilder by lazy { context.notificationBuilder(Notifications.CHANNEL_LIBRARY_PROGRESS) { setContentTitle(context.stringResource(MR.strings.app_name)) - setSmallIcon(R.drawable.ic_refresh_24dp) + setSmallIcon(MaterialSymbolsR.drawable.rounded_refresh) setLargeIcon(notificationBitmap) setOngoing(true) setOnlyAlertOnce(true) - addAction(R.drawable.ic_close_24dp, context.stringResource(MR.strings.action_cancel), cancelIntent) + addAction( + MaterialSymbolsR.drawable.rounded_close, + context.stringResource(MR.strings.action_cancel), + cancelIntent, + ) } } @@ -131,7 +136,7 @@ class LibraryUpdateNotifier( setStyle( NotificationCompat.BigTextStyle().bigText(context.stringResource(MR.strings.notification_size_warning)), ) - setSmallIcon(R.drawable.ic_warning_white_24dp) + setSmallIcon(MaterialSymbolsR.drawable.rounded_filled_warning) setTimeoutAfter(Downloader.WARNING_NOTIF_TIMEOUT_MS) setContentIntent(NotificationHandler.openUrl(context, HELP_WARNING_URL)) } @@ -246,7 +251,7 @@ class LibraryUpdateNotifier( // Mark chapters as read action addAction( - R.drawable.ic_done_24dp, + MaterialSymbolsR.drawable.rounded_check, context.stringResource(MR.strings.action_mark_as_read), NotificationReceiver.markAsReadPendingBroadcast( context, @@ -257,7 +262,7 @@ class LibraryUpdateNotifier( ) // View chapters action addAction( - R.drawable.ic_book_24dp, + MaterialSymbolsR.drawable.rounded_book, context.stringResource(MR.strings.action_view_chapters), NotificationReceiver.openChapterPendingActivity( context, diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionUpdateNotifier.kt index 51f2eb5c7..5ade169c3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionUpdateNotifier.kt @@ -5,7 +5,6 @@ import androidx.core.app.NotificationCompat import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.Inject import dev.zacsweers.metro.SingleIn -import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.core.security.SecurityPreferences import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.notification.Notifications @@ -13,6 +12,7 @@ import eu.kanade.tachiyomi.util.system.cancelNotification import eu.kanade.tachiyomi.util.system.notify import tachiyomi.core.common.i18n.pluralStringResource import tachiyomi.i18n.MR +import mihon.icons.materialsymbols.R as MaterialSymbolsR @Inject @SingleIn(AppScope::class) @@ -37,7 +37,7 @@ class ExtensionUpdateNotifier( setContentText(extNames) setStyle(NotificationCompat.BigTextStyle().bigText(extNames)) } - setSmallIcon(R.drawable.ic_extension_24dp) + setSmallIcon(MaterialSymbolsR.drawable.rounded_filled_extension) setContentIntent(NotificationReceiver.openExtensionsPendingActivity(context)) setAutoCancel(true) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt index 22f04f9ea..8f74c79e7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt @@ -1,7 +1,6 @@ package eu.kanade.tachiyomi.ui.browse 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.pager.rememberPagerState import androidx.compose.runtime.Composable @@ -15,6 +14,7 @@ import cafe.adriel.voyager.navigator.tab.TabOptions import dev.zacsweers.metrox.viewmodel.metroViewModel import eu.kanade.presentation.components.TabbedScreen import eu.kanade.presentation.util.Tab +import eu.kanade.presentation.util.rememberAnimatedVectorPainter import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.browse.extension.ExtensionsViewModel import eu.kanade.tachiyomi.ui.browse.extension.extensionsTab @@ -35,11 +35,12 @@ data object BrowseTab : Tab { @Composable get() { val isSelected = LocalTabNavigator.current.current.key == key - val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_browse_enter) + val enter = AnimatedImageVector.animatedVectorResource(R.drawable.animated_browse_enter) + val exit = AnimatedImageVector.animatedVectorResource(R.drawable.animated_browse_exit) return TabOptions( index = 3u, title = stringResource(MR.strings.browse), - icon = rememberAnimatedVectorPainter(image, isSelected), + icon = rememberAnimatedVectorPainter(enter, exit, isSelected), ) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt index ae247b556..968aea271 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt @@ -51,7 +51,7 @@ import kotlinx.coroutines.flow.receiveAsFlow import mihon.feature.migration.dialog.MigrateMangaDialog import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.rounded.FilterList -import mihon.icons.materialsymbols.rounded.NewReleases +import mihon.icons.materialsymbols.rounded.Verified import mihon.icons.materialsymbols.roundedfilled.Favorite import mihon.presentation.core.util.collectAsLazyPagingItems import tachiyomi.core.common.Constants @@ -177,7 +177,7 @@ data class BrowseSourceScreen( }, leadingIcon = { Icon( - imageVector = MaterialSymbols.Rounded.NewReleases, + imageVector = MaterialSymbols.Rounded.Verified, contentDescription = null, modifier = Modifier .size(FilterChipDefaults.IconSize), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt index dbfc5bc7e..63fb972ac 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt @@ -46,7 +46,7 @@ data object HistoryTab : Tab { @Composable get() { val isSelected = LocalTabNavigator.current.current.key == key - val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_history_enter) + val image = AnimatedImageVector.animatedVectorResource(R.drawable.animated_history) return TabOptions( index = 2u, title = stringResource(MR.strings.label_recent_manga), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt index f0a070485..eaec50b0f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt @@ -68,7 +68,7 @@ data object LibraryTab : Tab { @Composable get() { val isSelected = LocalTabNavigator.current.current.key == key - val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_library_enter) + val image = AnimatedImageVector.animatedVectorResource(R.drawable.animated_library) return TabOptions( index = 0u, title = stringResource(MR.strings.label_library), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index f74d9d043..4222b0b69 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -113,7 +113,7 @@ import mihon.domain.database.repository.DatabaseRepository import mihon.feature.support.SupportUsScreen import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.automirroredrounded.OpenInNew -import mihon.icons.materialsymbols.rounded.VolunteerActivism +import mihon.icons.materialsymbols.roundedfilled.VolunteerActivism import tachiyomi.core.common.Constants import tachiyomi.core.common.util.lang.launchIO import tachiyomi.core.common.util.system.logcat @@ -437,7 +437,7 @@ class MainActivity : BaseActivity() { horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small), ) { Icon( - imageVector = MaterialSymbols.Rounded.VolunteerActivism, + imageVector = MaterialSymbols.RoundedFilled.VolunteerActivism, contentDescription = null, ) Text( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt index 95439480b..e10ecbe20 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt @@ -72,7 +72,7 @@ import kotlinx.datetime.toLocalDateTime import logcat.LogPriority import mihon.app.di.appGraph import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.rounded.Delete +import mihon.icons.materialsymbols.roundedfilled.Delete import tachiyomi.core.common.i18n.stringResource import tachiyomi.core.common.util.lang.launchNonCancellable import tachiyomi.core.common.util.lang.withIOContext @@ -630,7 +630,7 @@ data class TrackDateRemoverScreen( modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars), icon = { Icon( - imageVector = MaterialSymbols.Rounded.Delete, + imageVector = MaterialSymbols.RoundedFilled.Delete, contentDescription = null, ) }, @@ -836,7 +836,7 @@ data class TrackerRemoveScreen( modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars), icon = { Icon( - imageVector = MaterialSymbols.Rounded.Delete, + imageVector = MaterialSymbols.RoundedFilled.Delete, contentDescription = null, ) }, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt index f474296e6..f19728405 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt @@ -45,7 +45,7 @@ data object MoreTab : Tab { @Composable get() { val isSelected = LocalTabNavigator.current.current.key == key - val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_more_enter) + val image = AnimatedImageVector.animatedVectorResource(R.drawable.animated_more) return TabOptions( index = 4u, title = stringResource(MR.strings.label_more), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/SaveImageNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/SaveImageNotifier.kt index 6b08dfeb3..5bd994a69 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/SaveImageNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/SaveImageNotifier.kt @@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.util.system.notificationBuilder import eu.kanade.tachiyomi.util.system.notify import tachiyomi.core.common.i18n.stringResource import tachiyomi.i18n.MR +import mihon.icons.materialsymbols.R as MaterialSymbolsR /** * Class used to show BigPictureStyle notifications @@ -69,7 +70,7 @@ class SaveImageNotifier(private val context: Context) { private fun showCompleteNotification(uri: Uri, image: Bitmap?) { with(notificationBuilder) { setContentTitle(context.stringResource(MR.strings.picture_saved)) - setSmallIcon(R.drawable.ic_photo_24dp) + setSmallIcon(MaterialSymbolsR.drawable.rounded_filled_photo) image?.let { setStyle(NotificationCompat.BigPictureStyle().bigPicture(it)) } setLargeIcon(image) setAutoCancel(true) @@ -80,7 +81,7 @@ class SaveImageNotifier(private val context: Context) { setContentIntent(NotificationHandler.openImagePendingActivity(context, uri)) // Share action addAction( - R.drawable.ic_share_24dp, + MaterialSymbolsR.drawable.rounded_share, context.stringResource(MR.strings.action_share), NotificationReceiver.shareImagePendingBroadcast(context, uri), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderOrientation.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderOrientation.kt index f1acab71c..301b2b43e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderOrientation.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderOrientation.kt @@ -4,11 +4,11 @@ import android.content.pm.ActivityInfo import androidx.compose.ui.graphics.vector.ImageVector import dev.icerock.moko.resources.StringResource import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.rounded.ScreenLockLandscape -import mihon.icons.materialsymbols.rounded.ScreenLockPortrait -import mihon.icons.materialsymbols.rounded.ScreenRotation -import mihon.icons.materialsymbols.rounded.StayCurrentLandscape -import mihon.icons.materialsymbols.rounded.StayCurrentPortrait +import mihon.icons.materialsymbols.rounded.Mobile +import mihon.icons.materialsymbols.rounded.MobileLandscape +import mihon.icons.materialsymbols.rounded.MobileLockLandscape +import mihon.icons.materialsymbols.rounded.MobileLockPortrait +import mihon.icons.materialsymbols.rounded.MobileRotate import tachiyomi.i18n.MR enum class ReaderOrientation( @@ -20,43 +20,43 @@ enum class ReaderOrientation( DEFAULT( ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED, MR.strings.label_default, - MaterialSymbols.Rounded.ScreenRotation, + MaterialSymbols.Rounded.MobileRotate, 0x00000000, ), FREE( ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED, MR.strings.rotation_free, - MaterialSymbols.Rounded.ScreenRotation, + MaterialSymbols.Rounded.MobileRotate, 0x00000008, ), PORTRAIT( ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT, MR.strings.rotation_portrait, - MaterialSymbols.Rounded.StayCurrentPortrait, + MaterialSymbols.Rounded.Mobile, 0x00000010, ), LANDSCAPE( ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE, MR.strings.rotation_landscape, - MaterialSymbols.Rounded.StayCurrentLandscape, + MaterialSymbols.Rounded.MobileLandscape, 0x00000018, ), LOCKED_PORTRAIT( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT, MR.strings.rotation_force_portrait, - MaterialSymbols.Rounded.ScreenLockPortrait, + MaterialSymbols.Rounded.MobileLockPortrait, 0x00000020, ), LOCKED_LANDSCAPE( ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, MR.strings.rotation_force_landscape, - MaterialSymbols.Rounded.ScreenLockLandscape, + MaterialSymbols.Rounded.MobileLockLandscape, 0x00000028, ), REVERSE_PORTRAIT( ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT, MR.strings.rotation_reverse_portrait, - MaterialSymbols.Rounded.StayCurrentPortrait, + MaterialSymbols.Rounded.Mobile, 0x00000030, ), ; diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReadingMode.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReadingMode.kt index 02481868a..28148550c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReadingMode.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReadingMode.kt @@ -1,8 +1,7 @@ package eu.kanade.tachiyomi.ui.reader.setting -import androidx.annotation.DrawableRes +import androidx.compose.ui.graphics.vector.ImageVector import dev.icerock.moko.resources.StringResource -import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.reader.viewer.Viewer import eu.kanade.tachiyomi.ui.reader.viewer.pager.L2RPagerViewer @@ -12,47 +11,55 @@ import eu.kanade.tachiyomi.ui.reader.viewer.webgpu.WebGpuViewer import eu.kanade.tachiyomi.ui.reader.viewer.webgpu.WebGpuViewerContinuous import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer import mihon.app.di.appGraph +import mihon.icons.custommaterialsymbols.CustomMaterialSymbols +import mihon.icons.custommaterialsymbols.rounded.ReaderLeftToRight +import mihon.icons.custommaterialsymbols.rounded.ReaderLongStrip +import mihon.icons.custommaterialsymbols.rounded.ReaderLongStripGaps +import mihon.icons.custommaterialsymbols.rounded.ReaderRightToLeft +import mihon.icons.custommaterialsymbols.rounded.ReaderVertical +import mihon.icons.materialsymbols.MaterialSymbols +import mihon.icons.materialsymbols.rounded.MobileGear import tachiyomi.i18n.MR enum class ReadingMode( val stringRes: StringResource, - @DrawableRes val iconRes: Int, + val icon: ImageVector, val flagValue: Int, val direction: Direction? = null, val type: ViewerType? = null, ) { - DEFAULT(MR.strings.label_default, R.drawable.ic_reader_default_24dp, 0x00000000), + DEFAULT(MR.strings.label_default, MaterialSymbols.Rounded.MobileGear, 0x00000000), LEFT_TO_RIGHT( MR.strings.left_to_right_viewer, - R.drawable.ic_reader_ltr_24dp, + CustomMaterialSymbols.Rounded.ReaderLeftToRight, 0x00000001, Direction.Horizontal, ViewerType.Pager, ), RIGHT_TO_LEFT( MR.strings.right_to_left_viewer, - R.drawable.ic_reader_rtl_24dp, + CustomMaterialSymbols.Rounded.ReaderRightToLeft, 0x00000002, Direction.Horizontal, ViewerType.Pager, ), VERTICAL( MR.strings.vertical_viewer, - R.drawable.ic_reader_vertical_24dp, + CustomMaterialSymbols.Rounded.ReaderVertical, 0x00000003, Direction.Vertical, ViewerType.Pager, ), WEBTOON( MR.strings.webtoon_viewer, - R.drawable.ic_reader_webtoon_24dp, + CustomMaterialSymbols.Rounded.ReaderLongStrip, 0x00000004, Direction.Vertical, ViewerType.Webtoon, ), CONTINUOUS_VERTICAL( MR.strings.vertical_plus_viewer, - R.drawable.ic_reader_continuous_vertical_24dp, + CustomMaterialSymbols.Rounded.ReaderLongStripGaps, 0x00000005, Direction.Vertical, ViewerType.Webtoon, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt index 63a36e827..25cbacc6e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt @@ -38,7 +38,7 @@ data object UpdatesTab : Tab { @Composable get() { val isSelected = LocalTabNavigator.current.current.key == key - val image = AnimatedImageVector.animatedVectorResource(R.drawable.anim_updates_enter) + val image = AnimatedImageVector.animatedVectorResource(R.drawable.animated_updates) return TabOptions( index = 1u, title = stringResource(MR.strings.label_recent_updates), diff --git a/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreenSheet.kt b/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreenSheet.kt index 6421094d8..c7aaaa7a9 100644 --- a/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreenSheet.kt +++ b/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreenSheet.kt @@ -34,7 +34,7 @@ import mihon.domain.migration.models.MigrationFlag import mihon.feature.common.utils.getLabel import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.rounded.Check -import mihon.icons.materialsymbols.rounded.Warning +import mihon.icons.materialsymbols.roundedfilled.Warning import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.preference.getAndSet import tachiyomi.core.common.preference.toggle @@ -226,7 +226,7 @@ private fun MigrationSheetWarningItem( ListItem( leadingContent = { Icon( - imageVector = MaterialSymbols.Rounded.Warning, + imageVector = MaterialSymbols.RoundedFilled.Warning, contentDescription = null, tint = MaterialTheme.colorScheme.active, ) diff --git a/app/src/main/java/mihon/feature/migration/list/MigrationListScreenContent.kt b/app/src/main/java/mihon/feature/migration/list/MigrationListScreenContent.kt index 34ba545fe..27f6a6028 100644 --- a/app/src/main/java/mihon/feature/migration/list/MigrationListScreenContent.kt +++ b/app/src/main/java/mihon/feature/migration/list/MigrationListScreenContent.kt @@ -49,10 +49,10 @@ import eu.kanade.tachiyomi.R import mihon.feature.migration.list.models.MigratingManga import mihon.icons.materialsymbols.MaterialSymbols import mihon.icons.materialsymbols.automirroredrounded.ArrowForward +import mihon.icons.materialsymbols.rounded.Check import mihon.icons.materialsymbols.rounded.Close import mihon.icons.materialsymbols.rounded.ContentCopy import mihon.icons.materialsymbols.rounded.CopyAll -import mihon.icons.materialsymbols.rounded.Done import mihon.icons.materialsymbols.rounded.DoneAll import mihon.icons.materialsymbols.rounded.MoreVert import tachiyomi.domain.manga.model.Manga @@ -106,7 +106,7 @@ fun MigrationListScreenContent( icon = if (items.size == 1 ) { - MaterialSymbols.Rounded.Done + MaterialSymbols.Rounded.Check } else { MaterialSymbols.Rounded.DoneAll }, diff --git a/app/src/main/res/drawable/anim_browse_enter.xml b/app/src/main/res/drawable/anim_browse_enter.xml deleted file mode 100644 index 89be54897..000000000 --- a/app/src/main/res/drawable/anim_browse_enter.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/anim_history_enter.xml b/app/src/main/res/drawable/anim_history_enter.xml deleted file mode 100644 index 76069e65d..000000000 --- a/app/src/main/res/drawable/anim_history_enter.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/anim_library_enter.xml b/app/src/main/res/drawable/anim_library_enter.xml deleted file mode 100644 index 2407acbb4..000000000 --- a/app/src/main/res/drawable/anim_library_enter.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/anim_updates_enter.xml b/app/src/main/res/drawable/anim_updates_enter.xml deleted file mode 100644 index e093e5ca4..000000000 --- a/app/src/main/res/drawable/anim_updates_enter.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/animated_browse_enter.xml b/app/src/main/res/drawable/animated_browse_enter.xml new file mode 100644 index 000000000..ece394002 --- /dev/null +++ b/app/src/main/res/drawable/animated_browse_enter.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/animated_browse_exit.xml b/app/src/main/res/drawable/animated_browse_exit.xml new file mode 100644 index 000000000..6f0eb1b27 --- /dev/null +++ b/app/src/main/res/drawable/animated_browse_exit.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/anim_caret_down.xml b/app/src/main/res/drawable/animated_caret_flip.xml similarity index 88% rename from app/src/main/res/drawable/anim_caret_down.xml rename to app/src/main/res/drawable/animated_caret_flip.xml index eae8ba748..432be7767 100644 --- a/app/src/main/res/drawable/anim_caret_down.xml +++ b/app/src/main/res/drawable/animated_caret_flip.xml @@ -25,7 +25,7 @@ + android:pathData="M -1,-3 A 1,1 0 0 1 1,-3 L 1,3 A 1,1 0 0 1 -1,3 Z" /> @@ -41,7 +41,7 @@ + android:pathData="M -1,-3 A 1,1 0 0 1 1,-3 L 1,3 A 1,1 0 0 1 -1,3 Z" /> diff --git a/app/src/main/res/drawable/animated_history.xml b/app/src/main/res/drawable/animated_history.xml new file mode 100644 index 000000000..6c16a738c --- /dev/null +++ b/app/src/main/res/drawable/animated_history.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/animated_library.xml b/app/src/main/res/drawable/animated_library.xml new file mode 100644 index 000000000..65ed83a5c --- /dev/null +++ b/app/src/main/res/drawable/animated_library.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/anim_more_enter.xml b/app/src/main/res/drawable/animated_more.xml similarity index 100% rename from app/src/main/res/drawable/anim_more_enter.xml rename to app/src/main/res/drawable/animated_more.xml diff --git a/app/src/main/res/drawable/animated_updates.xml b/app/src/main/res/drawable/animated_updates.xml new file mode 100644 index 000000000..0629f24bb --- /dev/null +++ b/app/src/main/res/drawable/animated_updates.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_book_24dp.xml b/app/src/main/res/drawable/ic_book_24dp.xml deleted file mode 100644 index 356002040..000000000 --- a/app/src/main/res/drawable/ic_book_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_close_24dp.xml b/app/src/main/res/drawable/ic_close_24dp.xml deleted file mode 100644 index 425ac8c0d..000000000 --- a/app/src/main/res/drawable/ic_close_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_crop_24dp.xml b/app/src/main/res/drawable/ic_crop_24dp.xml deleted file mode 100644 index cc9409940..000000000 --- a/app/src/main/res/drawable/ic_crop_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_crop_off_24dp.xml b/app/src/main/res/drawable/ic_crop_off_24dp.xml deleted file mode 100644 index 50be29bff..000000000 --- a/app/src/main/res/drawable/ic_crop_off_24dp.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - diff --git a/app/src/main/res/drawable/ic_done_24dp.xml b/app/src/main/res/drawable/ic_done_24dp.xml deleted file mode 100644 index f6887725c..000000000 --- a/app/src/main/res/drawable/ic_done_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_done_prev_24dp.xml b/app/src/main/res/drawable/ic_done_prev_24dp.xml deleted file mode 100644 index a2c231ca9..000000000 --- a/app/src/main/res/drawable/ic_done_prev_24dp.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_download_chapter_24dp.xml b/app/src/main/res/drawable/ic_download_chapter_24dp.xml deleted file mode 100644 index 07d8f941c..000000000 --- a/app/src/main/res/drawable/ic_download_chapter_24dp.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_drag_handle_24dp.xml b/app/src/main/res/drawable/ic_drag_handle_24dp.xml deleted file mode 100644 index 69a19c724..000000000 --- a/app/src/main/res/drawable/ic_drag_handle_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_extension_24dp.xml b/app/src/main/res/drawable/ic_extension_24dp.xml deleted file mode 100644 index 7682b2580..000000000 --- a/app/src/main/res/drawable/ic_extension_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_folder_24dp.xml b/app/src/main/res/drawable/ic_folder_24dp.xml deleted file mode 100644 index cf0f12e39..000000000 --- a/app/src/main/res/drawable/ic_folder_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_glasses_24dp.xml b/app/src/main/res/drawable/ic_glasses_24dp.xml deleted file mode 100644 index 572c2f06d..000000000 --- a/app/src/main/res/drawable/ic_glasses_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_info_24dp.xml b/app/src/main/res/drawable/ic_info_24dp.xml deleted file mode 100644 index 17de54687..000000000 --- a/app/src/main/res/drawable/ic_info_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_overflow_24dp.xml b/app/src/main/res/drawable/ic_overflow_24dp.xml deleted file mode 100644 index 2ae642fa4..000000000 --- a/app/src/main/res/drawable/ic_overflow_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_pause_24dp.xml b/app/src/main/res/drawable/ic_pause_24dp.xml deleted file mode 100644 index e987185ea..000000000 --- a/app/src/main/res/drawable/ic_pause_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_photo_24dp.xml b/app/src/main/res/drawable/ic_photo_24dp.xml deleted file mode 100644 index 84dd78d74..000000000 --- a/app/src/main/res/drawable/ic_photo_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_play_arrow_24dp.xml b/app/src/main/res/drawable/ic_play_arrow_24dp.xml deleted file mode 100644 index a568215cd..000000000 --- a/app/src/main/res/drawable/ic_play_arrow_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_reader_continuous_vertical_24dp.xml b/app/src/main/res/drawable/ic_reader_continuous_vertical_24dp.xml deleted file mode 100644 index 33e4cf30c..000000000 --- a/app/src/main/res/drawable/ic_reader_continuous_vertical_24dp.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/ic_reader_default_24dp.xml b/app/src/main/res/drawable/ic_reader_default_24dp.xml deleted file mode 100644 index bf8a5dbd6..000000000 --- a/app/src/main/res/drawable/ic_reader_default_24dp.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_reader_ltr_24dp.xml b/app/src/main/res/drawable/ic_reader_ltr_24dp.xml deleted file mode 100644 index 9ba417af9..000000000 --- a/app/src/main/res/drawable/ic_reader_ltr_24dp.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/drawable/ic_reader_rtl_24dp.xml b/app/src/main/res/drawable/ic_reader_rtl_24dp.xml deleted file mode 100644 index 290a31ffa..000000000 --- a/app/src/main/res/drawable/ic_reader_rtl_24dp.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/drawable/ic_reader_vertical_24dp.xml b/app/src/main/res/drawable/ic_reader_vertical_24dp.xml deleted file mode 100644 index db122b722..000000000 --- a/app/src/main/res/drawable/ic_reader_vertical_24dp.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_reader_webtoon_24dp.xml b/app/src/main/res/drawable/ic_reader_webtoon_24dp.xml deleted file mode 100644 index a9876f147..000000000 --- a/app/src/main/res/drawable/ic_reader_webtoon_24dp.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_refresh_24dp.xml b/app/src/main/res/drawable/ic_refresh_24dp.xml deleted file mode 100644 index 3d951426f..000000000 --- a/app/src/main/res/drawable/ic_refresh_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_share_24dp.xml b/app/src/main/res/drawable/ic_share_24dp.xml deleted file mode 100644 index 9507de0d3..000000000 --- a/app/src/main/res/drawable/ic_share_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_system_update_alt_white_24dp.xml b/app/src/main/res/drawable/ic_system_update_alt_white_24dp.xml deleted file mode 100644 index 982263ca6..000000000 --- a/app/src/main/res/drawable/ic_system_update_alt_white_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_tab_close_24px.xml b/app/src/main/res/drawable/ic_tab_close_24px.xml deleted file mode 100644 index e14d35158..000000000 --- a/app/src/main/res/drawable/ic_tab_close_24px.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_warning_white_24dp.xml b/app/src/main/res/drawable/ic_warning_white_24dp.xml deleted file mode 100644 index d3a075a8c..000000000 --- a/app/src/main/res/drawable/ic_warning_white_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml b/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml index 0d5d29b36..a20cbef2c 100644 --- a/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml +++ b/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml @@ -12,12 +12,14 @@ - - + + + diff --git a/app/src/main/res/drawable/sc_explore_48dp.xml b/app/src/main/res/drawable/sc_explore_48dp.xml index e0b630e4a..68125d738 100644 --- a/app/src/main/res/drawable/sc_explore_48dp.xml +++ b/app/src/main/res/drawable/sc_explore_48dp.xml @@ -12,9 +12,14 @@ - + + + diff --git a/app/src/main/res/drawable/sc_history_48dp.xml b/app/src/main/res/drawable/sc_history_48dp.xml index 394b9b890..1be95100b 100644 --- a/app/src/main/res/drawable/sc_history_48dp.xml +++ b/app/src/main/res/drawable/sc_history_48dp.xml @@ -12,9 +12,14 @@ - + + + diff --git a/app/src/main/res/drawable/sc_new_releases_48dp.xml b/app/src/main/res/drawable/sc_new_releases_48dp.xml index eb2d09ba4..a085c59ab 100644 --- a/app/src/main/res/drawable/sc_new_releases_48dp.xml +++ b/app/src/main/res/drawable/sc_new_releases_48dp.xml @@ -12,9 +12,14 @@ - + + + diff --git a/app/src/main/res/layout/download_header.xml b/app/src/main/res/layout/download_header.xml index 306f46174..87cf8f03d 100644 --- a/app/src/main/res/layout/download_header.xml +++ b/app/src/main/res/layout/download_header.xml @@ -34,7 +34,7 @@ android:paddingHorizontal="10dp" android:paddingVertical="8dp" android:scaleType="center" - app:srcCompat="@drawable/ic_drag_handle_24dp" + app:srcCompat="@drawable/rounded_drag_handle" app:tint="?android:attr/textColorHint" tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/layout/download_item.xml b/app/src/main/res/layout/download_item.xml index 92df1c370..ca9851e53 100644 --- a/app/src/main/res/layout/download_item.xml +++ b/app/src/main/res/layout/download_item.xml @@ -25,7 +25,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/ic_drag_handle_24dp" + app:srcCompat="@drawable/rounded_drag_handle" app:tint="?android:attr/textColorHint" tools:ignore="ContentDescription" /> @@ -96,7 +96,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/ic_overflow_24dp" + app:srcCompat="@drawable/rounded_more_vert" app:tint="?attr/colorOnBackground" /> diff --git a/gradle/build-logic/build.gradle.kts b/gradle/build-logic/build.gradle.kts index 147a70e7f..4f28111b7 100644 --- a/gradle/build-logic/build.gradle.kts +++ b/gradle/build-logic/build.gradle.kts @@ -27,6 +27,7 @@ spotless { dependencies { compileOnly(gradleKotlinDsl()) compileOnly(libs.android.gradle) + compileOnly(libs.android.gradle.runtimeDependency("sdk-common")) compileOnly(libs.kotlin.compose.compiler.gradle) compileOnly(libs.kotlin.gradle) implementation(libs.spotless.gradle) @@ -73,3 +74,13 @@ gradlePlugin { } } } + +fun Provider.runtimeDependency(name: String): Provider = map { dependency -> + configurations.detachedConfiguration(dependencies.create(dependency)) + .attributes { attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME)) } + .incoming.resolutionResult.allComponents + .firstOrNull { it.moduleVersion?.name == name } + ?.moduleVersion + ?.toString() + ?: error("${dependency.module} has no runtime dependency named $name") +} diff --git a/gradle/build-logic/src/main/kotlin/PluginSpotless.kt b/gradle/build-logic/src/main/kotlin/PluginSpotless.kt index 6584c9f86..044a5455c 100644 --- a/gradle/build-logic/src/main/kotlin/PluginSpotless.kt +++ b/gradle/build-logic/src/main/kotlin/PluginSpotless.kt @@ -21,6 +21,26 @@ class PluginSpotless : Plugin { ktlint(ktlintVersion) trimTrailingWhitespace() endWithNewline() + forbidRegex( + "materialSymbolsRImport", + "(?m)^import mihon\\.icons\\.materialsymbols\\.R(?! as MaterialSymbolsR$)\\b.*$", + "Import mihon.icons.materialsymbols.R as MaterialSymbolsR", + ) + forbidRegex( + "materialSymbolsRQualified", + "(?m)^(?!import ).*\\bmihon\\.icons\\.materialsymbols\\.R\\.", + "Use the MaterialSymbolsR import alias instead of the qualified name", + ) + forbidRegex( + "customMaterialSymbolsRImport", + "(?m)^import mihon\\.icons\\.custommaterialsymbols\\.R(?! as CustomMaterialSymbolsR$)\\b.*$", + "Import mihon.icons.custommaterialsymbols.R as CustomMaterialSymbolsR", + ) + forbidRegex( + "customMaterialSymbolsRQualified", + "(?m)^(?!import ).*\\bmihon\\.icons\\.custommaterialsymbols\\.R\\.", + "Use the CustomMaterialSymbolsR import alias instead of the qualified name", + ) } kotlinGradle { diff --git a/gradle/build-logic/src/main/kotlin/mihon/gradle/tasks/GenerateVectorDrawablesTask.kt b/gradle/build-logic/src/main/kotlin/mihon/gradle/tasks/GenerateVectorDrawablesTask.kt new file mode 100644 index 000000000..948d32274 --- /dev/null +++ b/gradle/build-logic/src/main/kotlin/mihon/gradle/tasks/GenerateVectorDrawablesTask.kt @@ -0,0 +1,49 @@ +package mihon.gradle.tasks + +import com.android.ide.common.vectordrawable.Svg2Vector +import org.gradle.api.DefaultTask +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.PathSensitive +import org.gradle.api.tasks.PathSensitivity +import org.gradle.api.tasks.TaskAction +import java.io.ByteArrayOutputStream + +abstract class GenerateVectorDrawablesTask : DefaultTask() { + + @get:InputFiles + @get:PathSensitive(PathSensitivity.RELATIVE) + abstract val svgFiles: ConfigurableFileCollection + + @get:OutputDirectory + abstract val outputDir: DirectoryProperty + + @TaskAction + fun action() { + val drawableDir = outputDir.get().dir("drawable").asFile.apply { + deleteRecursively() + mkdirs() + } + svgFiles.forEach { svg -> + val output = ByteArrayOutputStream() + val error = Svg2Vector.parseSvgToXml(svg.toPath(), output) + check(error.isEmpty()) { "${svg.name}: $error" } + + val folder = svg.parentFile.name + var content = output.toString(Charsets.UTF_8).replace(blackFill, "@android:color/white") + if (folder.startsWith("autoMirrored")) { + content = content.replaceFirst(" + diff --git a/icons/custom-material-symbols/src/main/valkyrieResources/rounded/done_previous.svg b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/done_previous.svg new file mode 100644 index 000000000..c35504ebc --- /dev/null +++ b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/done_previous.svg @@ -0,0 +1,7 @@ + + diff --git a/icons/custom-material-symbols/src/main/valkyrieResources/rounded/download_arrow.svg b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/download_arrow.svg new file mode 100644 index 000000000..970cd47cd --- /dev/null +++ b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/download_arrow.svg @@ -0,0 +1,7 @@ + + diff --git a/icons/custom-material-symbols/src/main/valkyrieResources/rounded/download_circle.svg b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/download_circle.svg new file mode 100644 index 000000000..de0c0aa92 --- /dev/null +++ b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/download_circle.svg @@ -0,0 +1,8 @@ + + diff --git a/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_left_to_right.svg b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_left_to_right.svg new file mode 100644 index 000000000..704742c5f --- /dev/null +++ b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_left_to_right.svg @@ -0,0 +1,9 @@ + + diff --git a/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_long_strip.svg b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_long_strip.svg new file mode 100644 index 000000000..8a26d666b --- /dev/null +++ b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_long_strip.svg @@ -0,0 +1,8 @@ + + diff --git a/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_long_strip_gaps.svg b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_long_strip_gaps.svg new file mode 100644 index 000000000..58c074a0e --- /dev/null +++ b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_long_strip_gaps.svg @@ -0,0 +1,8 @@ + + diff --git a/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_right_to_left.svg b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_right_to_left.svg new file mode 100644 index 000000000..32e9814cc --- /dev/null +++ b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_right_to_left.svg @@ -0,0 +1,10 @@ + + diff --git a/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_vertical.svg b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_vertical.svg new file mode 100644 index 000000000..143aea11e --- /dev/null +++ b/icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_vertical.svg @@ -0,0 +1,9 @@ + + diff --git a/icons/material-symbols/build.gradle.kts b/icons/material-symbols/build.gradle.kts index ab76cbc9f..078b5d63d 100644 --- a/icons/material-symbols/build.gradle.kts +++ b/icons/material-symbols/build.gradle.kts @@ -1,3 +1,5 @@ +import mihon.gradle.tasks.GenerateVectorDrawablesTask + plugins { alias(mihonx.plugins.android.library) alias(mihonx.plugins.compose) @@ -49,6 +51,41 @@ valkyrie { sourceFolder = "autoMirroredRounded" autoMirror = true } + + nested { + name = "AutoMirroredRoundedFilled" + sourceFolder = "autoMirroredRoundedFilled" + autoMirror = true + } + } +} + +androidComponents { + onVariants { variant -> + val resSource = variant.sources.res ?: return@onVariants + + val variantName = variant.name.replaceFirstChar { it.uppercase() } + val task = tasks.register("generate${variantName}VectorDrawables") { + svgFiles.from( + listOf( + "rounded/book", + "rounded/check", + "rounded/close", + "rounded/drag_handle", + "rounded/eyeglasses_2", + "rounded/more_vert", + "rounded/refresh", + "rounded/share", + "roundedFilled/extension", + "roundedFilled/folder", + "roundedFilled/pause", + "roundedFilled/photo", + "roundedFilled/play_arrow", + "roundedFilled/warning", + ).map { layout.projectDirectory.file("src/main/valkyrieResources/$it.svg") }, + ) + } + resSource.addGeneratedSourceDirectory(task) { it.outputDir } } } diff --git a/icons/material-symbols/src/main/valkyrieResources/autoMirroredRounded/view_list.svg b/icons/material-symbols/src/main/valkyrieResources/autoMirroredRounded/view_list.svg deleted file mode 100644 index 1175bbec7..000000000 --- a/icons/material-symbols/src/main/valkyrieResources/autoMirroredRounded/view_list.svg +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/icons/material-symbols/src/main/valkyrieResources/autoMirroredRoundedFilled/view_list.svg b/icons/material-symbols/src/main/valkyrieResources/autoMirroredRoundedFilled/view_list.svg new file mode 100644 index 000000000..e54cd5059 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/autoMirroredRoundedFilled/view_list.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/book.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/book.svg new file mode 100644 index 000000000..0c06b43a3 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/book.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/crop.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/crop.svg new file mode 100644 index 000000000..671f2f7a8 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/crop.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/done.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/done.svg deleted file mode 100644 index 8a2bf742d..000000000 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/done.svg +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/expand_less.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/expand_less.svg deleted file mode 100644 index f0f0f8bd7..000000000 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/expand_less.svg +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/expand_more.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/expand_more.svg deleted file mode 100644 index 1aef6b4b7..000000000 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/expand_more.svg +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/eyeglasses_2.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/eyeglasses_2.svg new file mode 100644 index 000000000..d18723460 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/eyeglasses_2.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/people_alt.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/group.svg similarity index 95% rename from icons/material-symbols/src/main/valkyrieResources/rounded/people_alt.svg rename to icons/material-symbols/src/main/valkyrieResources/rounded/group.svg index afebc69d2..45e479c94 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/people_alt.svg +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/group.svg @@ -1,5 +1,5 @@ diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/push_pin.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/keep.svg similarity index 92% rename from icons/material-symbols/src/main/valkyrieResources/rounded/push_pin.svg rename to icons/material-symbols/src/main/valkyrieResources/rounded/keep.svg index 2573a536e..124abe739 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/push_pin.svg +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/keep.svg @@ -1,5 +1,5 @@ diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/keyboard_arrow_down.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/keyboard_arrow_down.svg new file mode 100644 index 000000000..7aecdee7f --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/keyboard_arrow_down.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/keyboard_arrow_up.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/keyboard_arrow_up.svg new file mode 100644 index 000000000..da1b622de --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/keyboard_arrow_up.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/stay_current_portrait.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile.svg similarity index 89% rename from icons/material-symbols/src/main/valkyrieResources/rounded/stay_current_portrait.svg rename to icons/material-symbols/src/main/valkyrieResources/rounded/mobile.svg index 66e3dbe06..228ac3349 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/stay_current_portrait.svg +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile.svg @@ -1,5 +1,5 @@ diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_gear.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_gear.svg new file mode 100644 index 000000000..c79cd83d4 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_gear.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/stay_current_landscape.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_landscape.svg similarity index 89% rename from icons/material-symbols/src/main/valkyrieResources/rounded/stay_current_landscape.svg rename to icons/material-symbols/src/main/valkyrieResources/rounded/mobile_landscape.svg index c459d68c6..0a6aa6696 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/stay_current_landscape.svg +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_landscape.svg @@ -1,5 +1,5 @@ diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/screen_lock_landscape.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_lock_landscape.svg similarity index 91% rename from icons/material-symbols/src/main/valkyrieResources/rounded/screen_lock_landscape.svg rename to icons/material-symbols/src/main/valkyrieResources/rounded/mobile_lock_landscape.svg index 4abbb6a82..5e1a1de56 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/screen_lock_landscape.svg +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_lock_landscape.svg @@ -1,5 +1,5 @@ diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/screen_lock_portrait.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_lock_portrait.svg similarity index 91% rename from icons/material-symbols/src/main/valkyrieResources/rounded/screen_lock_portrait.svg rename to icons/material-symbols/src/main/valkyrieResources/rounded/mobile_lock_portrait.svg index 595ef29b3..534875039 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/screen_lock_portrait.svg +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_lock_portrait.svg @@ -1,5 +1,5 @@ diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/screen_rotation.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_rotate.svg similarity index 95% rename from icons/material-symbols/src/main/valkyrieResources/rounded/screen_rotation.svg rename to icons/material-symbols/src/main/valkyrieResources/rounded/mobile_rotate.svg index 4dc3faa16..596a72803 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/screen_rotation.svg +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/mobile_rotate.svg @@ -1,5 +1,5 @@ diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/pause.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/pause.svg deleted file mode 100644 index 4141a0b6e..000000000 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/pause.svg +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/tab_close.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/tab_close.svg new file mode 100644 index 000000000..a43145230 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/tab_close.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/new_releases.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/verified.svg similarity index 94% rename from icons/material-symbols/src/main/valkyrieResources/rounded/new_releases.svg rename to icons/material-symbols/src/main/valkyrieResources/rounded/verified.svg index 6faab341a..fbbf3840a 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/new_releases.svg +++ b/icons/material-symbols/src/main/valkyrieResources/rounded/verified.svg @@ -1,5 +1,5 @@ diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/view_module.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/view_module.svg deleted file mode 100644 index aa6ec6b53..000000000 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/view_module.svg +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/visibility_off.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/visibility_off.svg deleted file mode 100644 index b654f02a9..000000000 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/visibility_off.svg +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/volunteer_activism.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/volunteer_activism.svg deleted file mode 100644 index beafe437c..000000000 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/volunteer_activism.svg +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/warning.svg b/icons/material-symbols/src/main/valkyrieResources/rounded/warning.svg deleted file mode 100644 index 99b05f0da..000000000 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/warning.svg +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/brush.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/brush.svg similarity index 50% rename from icons/material-symbols/src/main/valkyrieResources/rounded/brush.svg rename to icons/material-symbols/src/main/valkyrieResources/roundedFilled/brush.svg index dc78f59c5..11b3ca9e5 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/brush.svg +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/brush.svg @@ -1,6 +1,6 @@ - + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/cancel.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/cancel.svg similarity index 71% rename from icons/material-symbols/src/main/valkyrieResources/rounded/cancel.svg rename to icons/material-symbols/src/main/valkyrieResources/roundedFilled/cancel.svg index 487b09679..7cb8d7e27 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/cancel.svg +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/cancel.svg @@ -1,6 +1,6 @@ - + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/dangerous.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/dangerous.svg similarity index 54% rename from icons/material-symbols/src/main/valkyrieResources/rounded/dangerous.svg rename to icons/material-symbols/src/main/valkyrieResources/roundedFilled/dangerous.svg index 51d543907..f9e9dea36 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/dangerous.svg +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/dangerous.svg @@ -1,6 +1,6 @@ - + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/delete.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/delete.svg new file mode 100644 index 000000000..4dc10f512 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/delete.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/error.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/error.svg new file mode 100644 index 000000000..977de7f03 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/error.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/extension.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/extension.svg new file mode 100644 index 000000000..183ca3e50 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/extension.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/folder.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/folder.svg new file mode 100644 index 000000000..9866ec206 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/folder.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/push_pin.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/keep.svg similarity index 89% rename from icons/material-symbols/src/main/valkyrieResources/roundedFilled/push_pin.svg rename to icons/material-symbols/src/main/valkyrieResources/roundedFilled/keep.svg index 3cd4b8fa7..52f63a1f8 100644 --- a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/push_pin.svg +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/keep.svg @@ -1,5 +1,5 @@ diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/photo.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/photo.svg new file mode 100644 index 000000000..572900b48 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/photo.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/view_compact.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/view_compact.svg new file mode 100644 index 000000000..3f1161c3f --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/view_compact.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/view_module.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/view_module.svg new file mode 100644 index 000000000..b0770b228 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/view_module.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/rounded/visibility.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/visibility.svg similarity index 72% rename from icons/material-symbols/src/main/valkyrieResources/rounded/visibility.svg rename to icons/material-symbols/src/main/valkyrieResources/roundedFilled/visibility.svg index e24cf4a60..36c5c3171 100644 --- a/icons/material-symbols/src/main/valkyrieResources/rounded/visibility.svg +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/visibility.svg @@ -1,6 +1,6 @@ - + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/visibility_off.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/visibility_off.svg new file mode 100644 index 000000000..14591da0c --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/visibility_off.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/volunteer_activism.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/volunteer_activism.svg new file mode 100644 index 000000000..2e10bdd02 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/volunteer_activism.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/material-symbols/src/main/valkyrieResources/roundedFilled/warning.svg b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/warning.svg new file mode 100644 index 000000000..f1122b2e5 --- /dev/null +++ b/icons/material-symbols/src/main/valkyrieResources/roundedFilled/warning.svg @@ -0,0 +1,6 @@ + + diff --git a/icons/simple-icons/src/main/valkyrieResources/discord.svg b/icons/simple-icons/src/main/valkyrieResources/discord.svg index a50d71b07..6af30a1cd 100644 --- a/icons/simple-icons/src/main/valkyrieResources/discord.svg +++ b/icons/simple-icons/src/main/valkyrieResources/discord.svg @@ -1,5 +1,5 @@ diff --git a/icons/simple-icons/src/main/valkyrieResources/facebook.svg b/icons/simple-icons/src/main/valkyrieResources/facebook.svg index 9b275a373..3bda46b55 100644 --- a/icons/simple-icons/src/main/valkyrieResources/facebook.svg +++ b/icons/simple-icons/src/main/valkyrieResources/facebook.svg @@ -1,5 +1,5 @@ diff --git a/icons/simple-icons/src/main/valkyrieResources/github.svg b/icons/simple-icons/src/main/valkyrieResources/github.svg index 8c7e67401..5d2b56e4c 100644 --- a/icons/simple-icons/src/main/valkyrieResources/github.svg +++ b/icons/simple-icons/src/main/valkyrieResources/github.svg @@ -1,5 +1,5 @@ diff --git a/icons/simple-icons/src/main/valkyrieResources/open_collective.svg b/icons/simple-icons/src/main/valkyrieResources/open_collective.svg index 85e4bbccb..59718d02e 100644 --- a/icons/simple-icons/src/main/valkyrieResources/open_collective.svg +++ b/icons/simple-icons/src/main/valkyrieResources/open_collective.svg @@ -1,5 +1,5 @@ diff --git a/icons/simple-icons/src/main/valkyrieResources/patreon.svg b/icons/simple-icons/src/main/valkyrieResources/patreon.svg index aa56d9161..10acb4e60 100644 --- a/icons/simple-icons/src/main/valkyrieResources/patreon.svg +++ b/icons/simple-icons/src/main/valkyrieResources/patreon.svg @@ -1,5 +1,5 @@ diff --git a/icons/simple-icons/src/main/valkyrieResources/reddit.svg b/icons/simple-icons/src/main/valkyrieResources/reddit.svg index 2d7f1fce7..dfbab7781 100644 --- a/icons/simple-icons/src/main/valkyrieResources/reddit.svg +++ b/icons/simple-icons/src/main/valkyrieResources/reddit.svg @@ -1,5 +1,5 @@ diff --git a/icons/simple-icons/src/main/valkyrieResources/x.svg b/icons/simple-icons/src/main/valkyrieResources/x.svg index 490c87d67..3ef4cf306 100644 --- a/icons/simple-icons/src/main/valkyrieResources/x.svg +++ b/icons/simple-icons/src/main/valkyrieResources/x.svg @@ -1,5 +1,5 @@ diff --git a/presentation-core/src/main/java/tachiyomi/presentation/core/components/CollapsibleBox.kt b/presentation-core/src/main/java/tachiyomi/presentation/core/components/CollapsibleBox.kt index 2213ff62e..2ee5a7d51 100644 --- a/presentation-core/src/main/java/tachiyomi/presentation/core/components/CollapsibleBox.kt +++ b/presentation-core/src/main/java/tachiyomi/presentation/core/components/CollapsibleBox.kt @@ -18,8 +18,8 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import mihon.icons.materialsymbols.MaterialSymbols -import mihon.icons.materialsymbols.rounded.ExpandLess -import mihon.icons.materialsymbols.rounded.ExpandMore +import mihon.icons.materialsymbols.rounded.KeyboardArrowDown +import mihon.icons.materialsymbols.rounded.KeyboardArrowUp import tachiyomi.presentation.core.theme.header @Composable @@ -44,7 +44,11 @@ fun CollapsibleBox( Spacer(modifier = Modifier.weight(1f)) Icon( - imageVector = if (expanded) MaterialSymbols.Rounded.ExpandLess else MaterialSymbols.Rounded.ExpandMore, + imageVector = if (expanded) { + MaterialSymbols.Rounded.KeyboardArrowUp + } else { + MaterialSymbols.Rounded.KeyboardArrowDown + }, contentDescription = null, ) } diff --git a/settings.gradle.kts b/settings.gradle.kts index 27cec5f17..510f286fa 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -38,6 +38,7 @@ include(":core:metro") include(":data") include(":domain") include(":i18n") +include(":icons:custom-material-symbols") include(":icons:material-symbols") include(":icons:simple-icons") include(":presentation-core")