From a80027ff36d61661b24e16beb1c964f5bffbf12a Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Fri, 9 Oct 2026 23:50:12 +0600 Subject: [PATCH] Update icons and move remaining to Material Symbols (#4057) * Update Simple Icons to 16.34.0 The brand paths are unchanged; only the version in the headers moves. * Use the current Material Symbols names Several symbols were renamed after the Valkyrie migration. people_alt, new_releases, screen_lock_*, screen_rotation and stay_current_* are only aliases in the font now, for group, verified and the mobile_* symbols. done, push_pin and expand_less/expand_more become check, keep and keyboard_arrow_up/down, which draw the same or an almost identical glyph. * Use filled icons where the Material Symbols migration dropped the fill The migration mapped Filled and Default references to the outline symbols, but the classic glyph was often solid, and Outlined Warning, Error and Pause were solid as well. Each call site was compared against the rendered classic glyph, and the solid ones now use RoundedFilled. view_list needs an auto-mirrored filled pack. The outline SVGs this leaves unused are removed. * Show a compact grid icon for the compact display modes Compact and cover-only grids showed the same view_module icon as the comfortable grid. * Generate notification and layout drawables from Material Symbols Notifications and XML layouts can't use ImageVectors, so they relied on hand-kept copies of classic Material drawables. A build-logic task now converts an opt-in list of the module's SVGs with AGP's Svg2Vector into generated resources. sdk-common is taken from AGP's own dependency metadata, so its version always matches AGP. Compose call sites that only needed a drawable (tab close, crop) use the ImageVectors instead. The icons module's R class must be imported as MaterialSymbolsR, enforced by spotless, so it isn't mistaken for the app's R. * Redraw custom icons in the Material Symbols style The reading mode, crop off, mark previous as read and chapter download icons were drawn in the classic style. They are rebuilt from Material Symbols shapes (mobile_gear, mobile_arrow_right/down, crop, arrow_circle_down, downloading) in a new custom-material-symbols module; each SVG header lists where its parts come from. The default reading mode and incognito use mobile_gear and eyeglasses_2 as they are. ReadingMode holds an ImageVector now, and the module's R class follows the same alias rule as MaterialSymbolsR. * Use Material Symbols for the launcher shortcuts Updates uses release_alert because the symbol named new_releases is now a check badge. * Rename the animated icon drawables anim_*_enter no longer fits now that the icons play in both directions. This is a pure rename so the following commits show only content changes. * Use Material Symbols for the bottom navigation icons The library, updates, history and browse animations are rebuilt from the outline and filled symbols but keep their original motion: the white inside is pushed into the ribbon, the "!" and the needle, and the history ring still spins. Updates uses release_alert, like the shortcut. More already matches more_horiz and is unchanged. * Use rounded bars for the manga description caret The animation is unchanged; the bars get rounded ends to match the Material Symbols stroke. * Settle the browse tab icon when selecting and deselecting The compass turns a full turn and settles with overshoot both ways, instead of deselecting by playing the select animation backwards. A rememberAnimatedVectorPainter overload takes separate enter and exit animations and doesn't animate on the first composition. --- app/build.gradle.kts | 1 + .../browse/ExtensionDetailsScreen.kt | 6 +- .../presentation/browse/ExtensionsScreen.kt | 4 +- .../presentation/browse/SourcesScreen.kt | 6 +- .../browse/components/BrowseIcons.kt | 8 +- .../browse/components/BrowseSourceToolbar.kt | 15 ++- .../components/GlobalSearchResultItems.kt | 4 +- .../browse/components/GlobalSearchToolbar.kt | 4 +- .../manga/ChapterSettingsDialog.kt | 4 +- .../manga/DuplicateMangaDialog.kt | 16 +-- .../components/ChapterDownloadIndicator.kt | 12 +- .../manga/components/MangaBottomActionMenu.kt | 6 +- .../manga/components/MangaChapterListItem.kt | 4 +- .../manga/components/MangaInfoHeader.kt | 20 ++-- .../eu/kanade/presentation/more/MoreScreen.kt | 10 +- .../presentation/more/NewUpdateScreen.kt | 4 +- .../settings/screen/SettingsTrackingScreen.kt | 8 +- .../widget/EditTextPreferenceWidget.kt | 8 +- .../widget/TrackingPreferenceWidget.kt | 4 +- .../presentation/reader/ChapterTransition.kt | 4 +- .../reader/ReadingModeSelectDialog.kt | 4 +- .../reader/appbars/ReaderBottomBar.kt | 9 +- .../presentation/track/TrackInfoDialogHome.kt | 4 +- .../presentation/track/TrackerSearch.kt | 4 +- .../util/AnimatedVectorPainter.kt | 33 ++++++ .../webview/WebViewScreenContent.kt | 6 +- app/src/main/java/eu/kanade/tachiyomi/App.kt | 3 +- .../tachiyomi/data/backup/BackupNotifier.kt | 7 +- .../data/download/DownloadNotifier.kt | 19 ++-- .../data/library/LibraryUpdateNotifier.kt | 15 ++- .../extension/api/ExtensionUpdateNotifier.kt | 4 +- .../kanade/tachiyomi/ui/browse/BrowseTab.kt | 7 +- .../source/browse/BrowseSourceScreen.kt | 4 +- .../kanade/tachiyomi/ui/history/HistoryTab.kt | 2 +- .../kanade/tachiyomi/ui/library/LibraryTab.kt | 2 +- .../kanade/tachiyomi/ui/main/MainActivity.kt | 4 +- .../ui/manga/track/TrackInfoDialog.kt | 6 +- .../eu/kanade/tachiyomi/ui/more/MoreTab.kt | 2 +- .../tachiyomi/ui/reader/SaveImageNotifier.kt | 5 +- .../ui/reader/setting/ReaderOrientation.kt | 24 ++-- .../ui/reader/setting/ReadingMode.kt | 25 +++-- .../kanade/tachiyomi/ui/updates/UpdatesTab.kt | 2 +- .../config/MigrationConfigScreenSheet.kt | 4 +- .../list/MigrationListScreenContent.kt | 4 +- .../main/res/drawable/anim_browse_enter.xml | 104 ------------------ .../main/res/drawable/anim_history_enter.xml | 36 ------ .../main/res/drawable/anim_library_enter.xml | 31 ------ .../main/res/drawable/anim_updates_enter.xml | 27 ----- .../res/drawable/animated_browse_enter.xml | 47 ++++++++ .../res/drawable/animated_browse_exit.xml | 47 ++++++++ ...caret_down.xml => animated_caret_flip.xml} | 4 +- .../main/res/drawable/animated_history.xml | 39 +++++++ .../main/res/drawable/animated_library.xml | 31 ++++++ ...{anim_more_enter.xml => animated_more.xml} | 0 .../main/res/drawable/animated_updates.xml | 31 ++++++ app/src/main/res/drawable/ic_book_24dp.xml | 9 -- app/src/main/res/drawable/ic_close_24dp.xml | 9 -- app/src/main/res/drawable/ic_crop_24dp.xml | 9 -- .../main/res/drawable/ic_crop_off_24dp.xml | 18 --- app/src/main/res/drawable/ic_done_24dp.xml | 9 -- .../main/res/drawable/ic_done_prev_24dp.xml | 12 -- .../res/drawable/ic_download_chapter_24dp.xml | 12 -- .../main/res/drawable/ic_drag_handle_24dp.xml | 9 -- .../main/res/drawable/ic_extension_24dp.xml | 9 -- app/src/main/res/drawable/ic_folder_24dp.xml | 9 -- app/src/main/res/drawable/ic_glasses_24dp.xml | 9 -- app/src/main/res/drawable/ic_info_24dp.xml | 9 -- .../main/res/drawable/ic_overflow_24dp.xml | 9 -- app/src/main/res/drawable/ic_pause_24dp.xml | 9 -- app/src/main/res/drawable/ic_photo_24dp.xml | 9 -- .../main/res/drawable/ic_play_arrow_24dp.xml | 9 -- .../ic_reader_continuous_vertical_24dp.xml | 15 --- .../res/drawable/ic_reader_default_24dp.xml | 12 -- .../main/res/drawable/ic_reader_ltr_24dp.xml | 21 ---- .../main/res/drawable/ic_reader_rtl_24dp.xml | 21 ---- .../res/drawable/ic_reader_vertical_24dp.xml | 12 -- .../res/drawable/ic_reader_webtoon_24dp.xml | 12 -- app/src/main/res/drawable/ic_refresh_24dp.xml | 9 -- app/src/main/res/drawable/ic_share_24dp.xml | 9 -- .../ic_system_update_alt_white_24dp.xml | 9 -- .../main/res/drawable/ic_tab_close_24px.xml | 10 -- .../res/drawable/ic_warning_white_24dp.xml | 9 -- .../drawable/sc_collections_bookmark_48dp.xml | 14 ++- app/src/main/res/drawable/sc_explore_48dp.xml | 11 +- app/src/main/res/drawable/sc_history_48dp.xml | 11 +- .../res/drawable/sc_new_releases_48dp.xml | 11 +- app/src/main/res/layout/download_header.xml | 2 +- app/src/main/res/layout/download_item.xml | 4 +- gradle/build-logic/build.gradle.kts | 11 ++ .../src/main/kotlin/PluginSpotless.kt | 20 ++++ .../tasks/GenerateVectorDrawablesTask.kt | 49 +++++++++ .../custom-material-symbols/build.gradle.kts | 44 ++++++++ .../valkyrieResources/rounded/crop_off.svg | 8 ++ .../rounded/done_previous.svg | 7 ++ .../rounded/download_arrow.svg | 7 ++ .../rounded/download_circle.svg | 8 ++ .../rounded/reader_left_to_right.svg | 9 ++ .../rounded/reader_long_strip.svg | 8 ++ .../rounded/reader_long_strip_gaps.svg | 8 ++ .../rounded/reader_right_to_left.svg | 10 ++ .../rounded/reader_vertical.svg | 9 ++ icons/material-symbols/build.gradle.kts | 37 +++++++ .../autoMirroredRounded/view_list.svg | 6 - .../autoMirroredRoundedFilled/view_list.svg | 6 + .../main/valkyrieResources/rounded/book.svg | 6 + .../main/valkyrieResources/rounded/crop.svg | 6 + .../main/valkyrieResources/rounded/done.svg | 6 - .../valkyrieResources/rounded/expand_less.svg | 6 - .../valkyrieResources/rounded/expand_more.svg | 6 - .../rounded/eyeglasses_2.svg | 6 + .../rounded/{people_alt.svg => group.svg} | 2 +- .../rounded/{push_pin.svg => keep.svg} | 2 +- .../rounded/keyboard_arrow_down.svg | 6 + .../rounded/keyboard_arrow_up.svg | 6 + .../{stay_current_portrait.svg => mobile.svg} | 2 +- .../valkyrieResources/rounded/mobile_gear.svg | 6 + ...ent_landscape.svg => mobile_landscape.svg} | 2 +- ...andscape.svg => mobile_lock_landscape.svg} | 2 +- ..._portrait.svg => mobile_lock_portrait.svg} | 2 +- ...{screen_rotation.svg => mobile_rotate.svg} | 2 +- .../main/valkyrieResources/rounded/pause.svg | 6 - .../valkyrieResources/rounded/tab_close.svg | 6 + .../{new_releases.svg => verified.svg} | 2 +- .../valkyrieResources/rounded/view_module.svg | 6 - .../rounded/visibility_off.svg | 6 - .../rounded/volunteer_activism.svg | 6 - .../valkyrieResources/rounded/warning.svg | 6 - .../{rounded => roundedFilled}/brush.svg | 4 +- .../{rounded => roundedFilled}/cancel.svg | 4 +- .../{rounded => roundedFilled}/dangerous.svg | 4 +- .../roundedFilled/delete.svg | 6 + .../valkyrieResources/roundedFilled/error.svg | 6 + .../roundedFilled/extension.svg | 6 + .../roundedFilled/folder.svg | 6 + .../roundedFilled/{push_pin.svg => keep.svg} | 2 +- .../valkyrieResources/roundedFilled/photo.svg | 6 + .../roundedFilled/view_compact.svg | 6 + .../roundedFilled/view_module.svg | 6 + .../{rounded => roundedFilled}/visibility.svg | 4 +- .../roundedFilled/visibility_off.svg | 6 + .../roundedFilled/volunteer_activism.svg | 6 + .../roundedFilled/warning.svg | 6 + .../src/main/valkyrieResources/discord.svg | 2 +- .../src/main/valkyrieResources/facebook.svg | 2 +- .../src/main/valkyrieResources/github.svg | 2 +- .../valkyrieResources/open_collective.svg | 2 +- .../src/main/valkyrieResources/patreon.svg | 2 +- .../src/main/valkyrieResources/reddit.svg | 2 +- .../src/main/valkyrieResources/x.svg | 2 +- .../core/components/CollapsibleBox.kt | 10 +- settings.gradle.kts | 1 + 151 files changed, 804 insertions(+), 747 deletions(-) create mode 100644 app/src/main/java/eu/kanade/presentation/util/AnimatedVectorPainter.kt delete mode 100644 app/src/main/res/drawable/anim_browse_enter.xml delete mode 100644 app/src/main/res/drawable/anim_history_enter.xml delete mode 100644 app/src/main/res/drawable/anim_library_enter.xml delete mode 100644 app/src/main/res/drawable/anim_updates_enter.xml create mode 100644 app/src/main/res/drawable/animated_browse_enter.xml create mode 100644 app/src/main/res/drawable/animated_browse_exit.xml rename app/src/main/res/drawable/{anim_caret_down.xml => animated_caret_flip.xml} (88%) create mode 100644 app/src/main/res/drawable/animated_history.xml create mode 100644 app/src/main/res/drawable/animated_library.xml rename app/src/main/res/drawable/{anim_more_enter.xml => animated_more.xml} (100%) create mode 100644 app/src/main/res/drawable/animated_updates.xml delete mode 100644 app/src/main/res/drawable/ic_book_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_close_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_crop_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_crop_off_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_done_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_done_prev_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_download_chapter_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_drag_handle_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_extension_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_folder_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_glasses_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_info_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_overflow_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_pause_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_photo_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_play_arrow_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_reader_continuous_vertical_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_reader_default_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_reader_ltr_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_reader_rtl_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_reader_vertical_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_reader_webtoon_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_refresh_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_share_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_system_update_alt_white_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_tab_close_24px.xml delete mode 100644 app/src/main/res/drawable/ic_warning_white_24dp.xml create mode 100644 gradle/build-logic/src/main/kotlin/mihon/gradle/tasks/GenerateVectorDrawablesTask.kt create mode 100644 icons/custom-material-symbols/build.gradle.kts create mode 100644 icons/custom-material-symbols/src/main/valkyrieResources/rounded/crop_off.svg create mode 100644 icons/custom-material-symbols/src/main/valkyrieResources/rounded/done_previous.svg create mode 100644 icons/custom-material-symbols/src/main/valkyrieResources/rounded/download_arrow.svg create mode 100644 icons/custom-material-symbols/src/main/valkyrieResources/rounded/download_circle.svg create mode 100644 icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_left_to_right.svg create mode 100644 icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_long_strip.svg create mode 100644 icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_long_strip_gaps.svg create mode 100644 icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_right_to_left.svg create mode 100644 icons/custom-material-symbols/src/main/valkyrieResources/rounded/reader_vertical.svg delete mode 100644 icons/material-symbols/src/main/valkyrieResources/autoMirroredRounded/view_list.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/autoMirroredRoundedFilled/view_list.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/book.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/crop.svg delete mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/done.svg delete mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/expand_less.svg delete mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/expand_more.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/eyeglasses_2.svg rename icons/material-symbols/src/main/valkyrieResources/rounded/{people_alt.svg => group.svg} (95%) rename icons/material-symbols/src/main/valkyrieResources/rounded/{push_pin.svg => keep.svg} (92%) create mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/keyboard_arrow_down.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/keyboard_arrow_up.svg rename icons/material-symbols/src/main/valkyrieResources/rounded/{stay_current_portrait.svg => mobile.svg} (89%) create mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/mobile_gear.svg rename icons/material-symbols/src/main/valkyrieResources/rounded/{stay_current_landscape.svg => mobile_landscape.svg} (89%) rename icons/material-symbols/src/main/valkyrieResources/rounded/{screen_lock_landscape.svg => mobile_lock_landscape.svg} (91%) rename icons/material-symbols/src/main/valkyrieResources/rounded/{screen_lock_portrait.svg => mobile_lock_portrait.svg} (91%) rename icons/material-symbols/src/main/valkyrieResources/rounded/{screen_rotation.svg => mobile_rotate.svg} (95%) delete mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/pause.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/tab_close.svg rename icons/material-symbols/src/main/valkyrieResources/rounded/{new_releases.svg => verified.svg} (94%) delete mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/view_module.svg delete mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/visibility_off.svg delete mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/volunteer_activism.svg delete mode 100644 icons/material-symbols/src/main/valkyrieResources/rounded/warning.svg rename icons/material-symbols/src/main/valkyrieResources/{rounded => roundedFilled}/brush.svg (50%) rename icons/material-symbols/src/main/valkyrieResources/{rounded => roundedFilled}/cancel.svg (71%) rename icons/material-symbols/src/main/valkyrieResources/{rounded => roundedFilled}/dangerous.svg (54%) create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/delete.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/error.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/extension.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/folder.svg rename icons/material-symbols/src/main/valkyrieResources/roundedFilled/{push_pin.svg => keep.svg} (89%) create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/photo.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/view_compact.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/view_module.svg rename icons/material-symbols/src/main/valkyrieResources/{rounded => roundedFilled}/visibility.svg (72%) create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/visibility_off.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/volunteer_activism.svg create mode 100644 icons/material-symbols/src/main/valkyrieResources/roundedFilled/warning.svg 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")