Switch to Material Symbols and use Valkyrie for ImageVector generation (#3873)
* Add material symbols icon module Assisted-by: Claude:claude-opus-5 * Replace material icons with material symbols Assisted-by: Claude:claude-opus-5 * Add simple icons module and migrate CustomIcons Assisted-by: Claude:claude-opus-5
@@ -208,6 +208,8 @@ dependencies {
|
|||||||
baselineProfile(projects.baselineProfile)
|
baselineProfile(projects.baselineProfile)
|
||||||
|
|
||||||
implementation(projects.i18n)
|
implementation(projects.i18n)
|
||||||
|
implementation(projects.icons.materialSymbols)
|
||||||
|
implementation(projects.icons.simpleIcons)
|
||||||
implementation(projects.core.archive)
|
implementation(projects.core.archive)
|
||||||
implementation(projects.core.common)
|
implementation(projects.core.common)
|
||||||
implementation(projects.core.metro)
|
implementation(projects.core.metro)
|
||||||
@@ -224,7 +226,6 @@ dependencies {
|
|||||||
implementation(libs.androidx.activity.compose)
|
implementation(libs.androidx.activity.compose)
|
||||||
implementation(libs.androidx.compose.foundation)
|
implementation(libs.androidx.compose.foundation)
|
||||||
implementation(libs.androidx.compose.material3)
|
implementation(libs.androidx.compose.material3)
|
||||||
implementation(libs.androidx.compose.materialIcons)
|
|
||||||
implementation(libs.androidx.compose.animation)
|
implementation(libs.androidx.compose.animation)
|
||||||
implementation(libs.androidx.compose.animationGraphics)
|
implementation(libs.androidx.compose.animationGraphics)
|
||||||
debugImplementation(libs.androidx.compose.uiTooling)
|
debugImplementation(libs.androidx.compose.uiTooling)
|
||||||
|
|||||||
@@ -3,10 +3,6 @@ package eu.kanade.presentation.browse
|
|||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.grid.GridCells
|
import androidx.compose.foundation.lazy.grid.GridCells
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
|
||||||
import androidx.compose.material.icons.outlined.Public
|
|
||||||
import androidx.compose.material.icons.outlined.Refresh
|
|
||||||
import androidx.compose.material3.SnackbarDuration
|
import androidx.compose.material3.SnackbarDuration
|
||||||
import androidx.compose.material3.SnackbarHostState
|
import androidx.compose.material3.SnackbarHostState
|
||||||
import androidx.compose.material3.SnackbarResult
|
import androidx.compose.material3.SnackbarResult
|
||||||
@@ -23,6 +19,10 @@ import eu.kanade.presentation.components.AppBar
|
|||||||
import eu.kanade.presentation.util.formattedMessage
|
import eu.kanade.presentation.util.formattedMessage
|
||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.Help
|
||||||
|
import mihon.icons.materialsymbols.rounded.Public
|
||||||
|
import mihon.icons.materialsymbols.rounded.Refresh
|
||||||
import tachiyomi.core.common.i18n.stringResource
|
import tachiyomi.core.common.i18n.stringResource
|
||||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||||
import tachiyomi.domain.manga.model.Manga
|
import tachiyomi.domain.manga.model.Manga
|
||||||
@@ -88,7 +88,7 @@ fun BrowseSourceContent(
|
|||||||
listOf(
|
listOf(
|
||||||
EmptyScreenAction(
|
EmptyScreenAction(
|
||||||
stringRes = MR.strings.local_source_help_guide,
|
stringRes = MR.strings.local_source_help_guide,
|
||||||
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
icon = MaterialSymbols.AutoMirroredRounded.Help,
|
||||||
onClick = onLocalSourceHelpClick,
|
onClick = onLocalSourceHelpClick,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@@ -96,17 +96,17 @@ fun BrowseSourceContent(
|
|||||||
listOf(
|
listOf(
|
||||||
EmptyScreenAction(
|
EmptyScreenAction(
|
||||||
stringRes = MR.strings.action_retry,
|
stringRes = MR.strings.action_retry,
|
||||||
icon = Icons.Outlined.Refresh,
|
icon = MaterialSymbols.Rounded.Refresh,
|
||||||
onClick = mangaList::refresh,
|
onClick = mangaList::refresh,
|
||||||
),
|
),
|
||||||
EmptyScreenAction(
|
EmptyScreenAction(
|
||||||
stringRes = MR.strings.action_open_in_web_view,
|
stringRes = MR.strings.action_open_in_web_view,
|
||||||
icon = Icons.Outlined.Public,
|
icon = MaterialSymbols.Rounded.Public,
|
||||||
onClick = onWebViewClick,
|
onClick = onWebViewClick,
|
||||||
),
|
),
|
||||||
EmptyScreenAction(
|
EmptyScreenAction(
|
||||||
stringRes = MR.strings.label_help,
|
stringRes = MR.strings.label_help,
|
||||||
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
icon = MaterialSymbols.AutoMirroredRounded.Help,
|
||||||
onClick = onHelpClick,
|
onClick = onHelpClick,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -14,9 +14,6 @@ import androidx.compose.foundation.layout.height
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.Launch
|
|
||||||
import androidx.compose.material.icons.outlined.Settings
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
@@ -56,6 +53,9 @@ import eu.kanade.tachiyomi.source.ConfigurableSource
|
|||||||
import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsViewModel
|
import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsViewModel
|
||||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||||
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.OpenInNew
|
||||||
|
import mihon.icons.materialsymbols.rounded.Settings
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
@@ -97,7 +97,7 @@ fun ExtensionDetailsScreen(
|
|||||||
add(
|
add(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_open_repo),
|
title = stringResource(MR.strings.action_open_repo),
|
||||||
icon = Icons.AutoMirrored.Outlined.Launch,
|
icon = MaterialSymbols.AutoMirroredRounded.OpenInNew,
|
||||||
onClick = {
|
onClick = {
|
||||||
uriHandler.openUri(url)
|
uriHandler.openUri(url)
|
||||||
},
|
},
|
||||||
@@ -425,7 +425,7 @@ private fun SourceSwitchPreference(
|
|||||||
if (source.source is ConfigurableSource) {
|
if (source.source is ConfigurableSource) {
|
||||||
IconButton(onClick = { onClickSourcePreferences(source.source.id) }) {
|
IconButton(onClick = { onClickSourcePreferences(source.source.id) }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Settings,
|
imageVector = MaterialSymbols.Rounded.Settings,
|
||||||
contentDescription = stringResource(MR.strings.label_settings),
|
contentDescription = stringResource(MR.strings.label_settings),
|
||||||
tint = MaterialTheme.colorScheme.onSurface,
|
tint = MaterialTheme.colorScheme.onSurface,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -13,13 +13,6 @@ import androidx.compose.foundation.layout.RowScope
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Close
|
|
||||||
import androidx.compose.material.icons.outlined.GetApp
|
|
||||||
import androidx.compose.material.icons.outlined.Public
|
|
||||||
import androidx.compose.material.icons.outlined.Refresh
|
|
||||||
import androidx.compose.material.icons.outlined.Settings
|
|
||||||
import androidx.compose.material.icons.outlined.VerifiedUser
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.CircularProgressIndicator
|
import androidx.compose.material3.CircularProgressIndicator
|
||||||
@@ -55,6 +48,13 @@ import eu.kanade.tachiyomi.ui.browse.extension.ExtensionUiModel
|
|||||||
import eu.kanade.tachiyomi.ui.browse.extension.ExtensionsViewModel
|
import eu.kanade.tachiyomi.ui.browse.extension.ExtensionsViewModel
|
||||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||||
import eu.kanade.tachiyomi.util.system.launchRequestPackageInstallsPermission
|
import eu.kanade.tachiyomi.util.system.launchRequestPackageInstallsPermission
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Close
|
||||||
|
import mihon.icons.materialsymbols.rounded.Download
|
||||||
|
import mihon.icons.materialsymbols.rounded.Public
|
||||||
|
import mihon.icons.materialsymbols.rounded.Refresh
|
||||||
|
import mihon.icons.materialsymbols.rounded.Settings
|
||||||
|
import mihon.icons.materialsymbols.rounded.VerifiedUser
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
||||||
import tachiyomi.presentation.core.components.material.PullRefresh
|
import tachiyomi.presentation.core.components.material.PullRefresh
|
||||||
@@ -105,7 +105,7 @@ fun ExtensionScreen(
|
|||||||
actions = listOf(
|
actions = listOf(
|
||||||
EmptyScreenAction(
|
EmptyScreenAction(
|
||||||
stringRes = MR.strings.extensionStores,
|
stringRes = MR.strings.extensionStores,
|
||||||
icon = Icons.Outlined.Settings,
|
icon = MaterialSymbols.Rounded.Settings,
|
||||||
onClick = { navigator.push(ExtensionStoresScreen()) },
|
onClick = { navigator.push(ExtensionStoresScreen()) },
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -425,7 +425,7 @@ private fun ExtensionItemActions(
|
|||||||
!isIdle -> {
|
!isIdle -> {
|
||||||
IconButton(onClick = { onClickItemCancel(extension) }) {
|
IconButton(onClick = { onClickItemCancel(extension) }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Close,
|
imageVector = MaterialSymbols.Rounded.Close,
|
||||||
contentDescription = stringResource(MR.strings.action_cancel),
|
contentDescription = stringResource(MR.strings.action_cancel),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -433,7 +433,7 @@ private fun ExtensionItemActions(
|
|||||||
installStep == InstallStep.Error -> {
|
installStep == InstallStep.Error -> {
|
||||||
IconButton(onClick = { onClickItemAction(extension) }) {
|
IconButton(onClick = { onClickItemAction(extension) }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Refresh,
|
imageVector = MaterialSymbols.Rounded.Refresh,
|
||||||
contentDescription = stringResource(MR.strings.action_retry),
|
contentDescription = stringResource(MR.strings.action_retry),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -443,7 +443,7 @@ private fun ExtensionItemActions(
|
|||||||
is Extension.Installed -> {
|
is Extension.Installed -> {
|
||||||
IconButton(onClick = { onClickItemSecondaryAction(extension) }) {
|
IconButton(onClick = { onClickItemSecondaryAction(extension) }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Settings,
|
imageVector = MaterialSymbols.Rounded.Settings,
|
||||||
contentDescription = stringResource(MR.strings.action_settings),
|
contentDescription = stringResource(MR.strings.action_settings),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -451,7 +451,7 @@ private fun ExtensionItemActions(
|
|||||||
if (extension.hasUpdate) {
|
if (extension.hasUpdate) {
|
||||||
IconButton(onClick = { onClickItemAction(extension) }) {
|
IconButton(onClick = { onClickItemAction(extension) }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.GetApp,
|
imageVector = MaterialSymbols.Rounded.Download,
|
||||||
contentDescription = stringResource(MR.strings.ext_update),
|
contentDescription = stringResource(MR.strings.ext_update),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -460,7 +460,7 @@ private fun ExtensionItemActions(
|
|||||||
is Extension.Untrusted -> {
|
is Extension.Untrusted -> {
|
||||||
IconButton(onClick = { onClickItemAction(extension) }) {
|
IconButton(onClick = { onClickItemAction(extension) }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.VerifiedUser,
|
imageVector = MaterialSymbols.Rounded.VerifiedUser,
|
||||||
contentDescription = stringResource(MR.strings.ext_trust),
|
contentDescription = stringResource(MR.strings.ext_trust),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -471,7 +471,7 @@ private fun ExtensionItemActions(
|
|||||||
onClick = { onClickItemSecondaryAction(extension) },
|
onClick = { onClickItemSecondaryAction(extension) },
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Public,
|
imageVector = MaterialSymbols.Rounded.Public,
|
||||||
contentDescription = stringResource(MR.strings.action_open_in_web_view),
|
contentDescription = stringResource(MR.strings.action_open_in_web_view),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -479,7 +479,7 @@ private fun ExtensionItemActions(
|
|||||||
|
|
||||||
IconButton(onClick = { onClickItemAction(extension) }) {
|
IconButton(onClick = { onClickItemAction(extension) }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.GetApp,
|
imageVector = MaterialSymbols.Rounded.Download,
|
||||||
contentDescription = stringResource(MR.strings.ext_install),
|
contentDescription = stringResource(MR.strings.ext_install),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,11 +7,6 @@ import androidx.compose.foundation.layout.PaddingValues
|
|||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.ArrowDownward
|
|
||||||
import androidx.compose.material.icons.outlined.ArrowUpward
|
|
||||||
import androidx.compose.material.icons.outlined.Numbers
|
|
||||||
import androidx.compose.material.icons.outlined.SortByAlpha
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -26,6 +21,11 @@ import eu.kanade.presentation.browse.components.BaseSourceItem
|
|||||||
import eu.kanade.presentation.browse.components.SourceIcon
|
import eu.kanade.presentation.browse.components.SourceIcon
|
||||||
import eu.kanade.tachiyomi.ui.browse.migration.sources.MigrateSourceViewModel
|
import eu.kanade.tachiyomi.ui.browse.migration.sources.MigrateSourceViewModel
|
||||||
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.ArrowDownward
|
||||||
|
import mihon.icons.materialsymbols.rounded.ArrowUpward
|
||||||
|
import mihon.icons.materialsymbols.rounded.Numbers
|
||||||
|
import mihon.icons.materialsymbols.rounded.SortByAlpha
|
||||||
import tachiyomi.domain.source.model.Source
|
import tachiyomi.domain.source.model.Source
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.Badge
|
import tachiyomi.presentation.core.components.Badge
|
||||||
@@ -103,11 +103,11 @@ private fun MigrateSourceList(
|
|||||||
IconButton(onClick = onToggleSortingMode) {
|
IconButton(onClick = onToggleSortingMode) {
|
||||||
when (sortingMode) {
|
when (sortingMode) {
|
||||||
SetMigrateSorting.Mode.ALPHABETICAL -> Icon(
|
SetMigrateSorting.Mode.ALPHABETICAL -> Icon(
|
||||||
Icons.Outlined.SortByAlpha,
|
MaterialSymbols.Rounded.SortByAlpha,
|
||||||
contentDescription = stringResource(MR.strings.action_sort_alpha),
|
contentDescription = stringResource(MR.strings.action_sort_alpha),
|
||||||
)
|
)
|
||||||
SetMigrateSorting.Mode.TOTAL -> Icon(
|
SetMigrateSorting.Mode.TOTAL -> Icon(
|
||||||
Icons.Outlined.Numbers,
|
MaterialSymbols.Rounded.Numbers,
|
||||||
contentDescription = stringResource(MR.strings.action_sort_count),
|
contentDescription = stringResource(MR.strings.action_sort_count),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -115,11 +115,11 @@ private fun MigrateSourceList(
|
|||||||
IconButton(onClick = onToggleSortingDirection) {
|
IconButton(onClick = onToggleSortingDirection) {
|
||||||
when (sortingDirection) {
|
when (sortingDirection) {
|
||||||
SetMigrateSorting.Direction.ASCENDING -> Icon(
|
SetMigrateSorting.Direction.ASCENDING -> Icon(
|
||||||
Icons.Outlined.ArrowUpward,
|
MaterialSymbols.Rounded.ArrowUpward,
|
||||||
contentDescription = stringResource(MR.strings.action_asc),
|
contentDescription = stringResource(MR.strings.action_asc),
|
||||||
)
|
)
|
||||||
SetMigrateSorting.Direction.DESCENDING -> Icon(
|
SetMigrateSorting.Direction.DESCENDING -> Icon(
|
||||||
Icons.Outlined.ArrowDownward,
|
MaterialSymbols.Rounded.ArrowDownward,
|
||||||
contentDescription = stringResource(MR.strings.action_desc),
|
contentDescription = stringResource(MR.strings.action_desc),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ import androidx.compose.foundation.layout.PaddingValues
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.PushPin
|
|
||||||
import androidx.compose.material.icons.outlined.PushPin
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -24,6 +21,9 @@ import eu.kanade.presentation.browse.components.BaseSourceItem
|
|||||||
import eu.kanade.tachiyomi.ui.browse.source.SourcesViewModel
|
import eu.kanade.tachiyomi.ui.browse.source.SourcesViewModel
|
||||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceViewModel.Listing
|
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceViewModel.Listing
|
||||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
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 tachiyomi.domain.source.model.Pin
|
import tachiyomi.domain.source.model.Pin
|
||||||
import tachiyomi.domain.source.model.Source
|
import tachiyomi.domain.source.model.Source
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
@@ -143,7 +143,7 @@ private fun SourcePinButton(
|
|||||||
isPinned: Boolean,
|
isPinned: Boolean,
|
||||||
onClick: () -> Unit,
|
onClick: () -> Unit,
|
||||||
) {
|
) {
|
||||||
val icon = if (isPinned) Icons.Filled.PushPin else Icons.Outlined.PushPin
|
val icon = if (isPinned) MaterialSymbols.RoundedFilled.PushPin else MaterialSymbols.Rounded.PushPin
|
||||||
val tint = if (isPinned) {
|
val tint = if (isPinned) {
|
||||||
MaterialTheme.colorScheme.primary
|
MaterialTheme.colorScheme.primary
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
package eu.kanade.presentation.browse.components
|
package eu.kanade.presentation.browse.components
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.CollectionsBookmark
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.CollectionsBookmark
|
||||||
import tachiyomi.presentation.core.components.Badge
|
import tachiyomi.presentation.core.components.Badge
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun InLibraryBadge(enabled: Boolean) {
|
internal fun InLibraryBadge(enabled: Boolean) {
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
Badge(
|
Badge(
|
||||||
imageVector = Icons.Outlined.CollectionsBookmark,
|
imageVector = MaterialSymbols.Rounded.CollectionsBookmark,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ import androidx.compose.foundation.Image
|
|||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.aspectRatio
|
import androidx.compose.foundation.layout.aspectRatio
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Dangerous
|
|
||||||
import androidx.compose.material.icons.filled.Warning
|
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.State
|
import androidx.compose.runtime.State
|
||||||
@@ -31,6 +28,9 @@ import eu.kanade.presentation.util.rememberResourceBitmapPainter
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.extension.model.Extension
|
import eu.kanade.tachiyomi.extension.model.Extension
|
||||||
import eu.kanade.tachiyomi.extension.util.ExtensionLoader
|
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 tachiyomi.core.common.util.lang.withIOContext
|
import tachiyomi.core.common.util.lang.withIOContext
|
||||||
import tachiyomi.domain.source.model.Source
|
import tachiyomi.domain.source.model.Source
|
||||||
import tachiyomi.source.local.isLocal
|
import tachiyomi.source.local.isLocal
|
||||||
@@ -49,7 +49,7 @@ fun SourceIcon(
|
|||||||
when {
|
when {
|
||||||
source.isStub && icon == null -> {
|
source.isStub && icon == null -> {
|
||||||
Image(
|
Image(
|
||||||
imageVector = Icons.Filled.Warning,
|
imageVector = MaterialSymbols.Rounded.Warning,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.error),
|
colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.error),
|
||||||
modifier = modifier.then(defaultModifier),
|
modifier = modifier.then(defaultModifier),
|
||||||
@@ -113,7 +113,7 @@ fun ExtensionIcon(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
is Extension.Untrusted -> Image(
|
is Extension.Untrusted -> Image(
|
||||||
imageVector = Icons.Filled.Dangerous,
|
imageVector = MaterialSymbols.Rounded.Dangerous,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.error),
|
colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.error),
|
||||||
modifier = modifier.then(defaultModifier),
|
modifier = modifier.then(defaultModifier),
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package eu.kanade.presentation.browse.components
|
package eu.kanade.presentation.browse.components
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.filled.ViewList
|
|
||||||
import androidx.compose.material.icons.filled.ViewModule
|
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.material3.TopAppBarScrollBehavior
|
import androidx.compose.material3.TopAppBarScrollBehavior
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -18,6 +15,9 @@ import eu.kanade.presentation.components.RadioMenuItem
|
|||||||
import eu.kanade.presentation.components.SearchToolbar
|
import eu.kanade.presentation.components.SearchToolbar
|
||||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ViewList
|
||||||
|
import mihon.icons.materialsymbols.rounded.ViewModule
|
||||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -58,9 +58,9 @@ fun BrowseSourceToolbar(
|
|||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_display_mode),
|
title = stringResource(MR.strings.action_display_mode),
|
||||||
icon = if (displayMode == LibraryDisplayMode.List) {
|
icon = if (displayMode == LibraryDisplayMode.List) {
|
||||||
Icons.AutoMirrored.Filled.ViewList
|
MaterialSymbols.AutoMirroredRounded.ViewList
|
||||||
} else {
|
} else {
|
||||||
Icons.Filled.ViewModule
|
MaterialSymbols.Rounded.ViewModule
|
||||||
},
|
},
|
||||||
onClick = { selectingDisplayMode = true },
|
onClick = { selectingDisplayMode = true },
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ArrowForward
|
|
||||||
import androidx.compose.material.icons.outlined.Error
|
|
||||||
import androidx.compose.material3.CircularProgressIndicator
|
import androidx.compose.material3.CircularProgressIndicator
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -23,6 +20,9 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ArrowForward
|
||||||
|
import mihon.icons.materialsymbols.rounded.Error
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -55,7 +55,7 @@ fun GlobalSearchResultItem(
|
|||||||
Text(text = subtitle)
|
Text(text = subtitle)
|
||||||
}
|
}
|
||||||
IconButton(onClick = onClick) {
|
IconButton(onClick = onClick) {
|
||||||
Icon(imageVector = Icons.AutoMirrored.Outlined.ArrowForward, contentDescription = null)
|
Icon(imageVector = MaterialSymbols.AutoMirroredRounded.ArrowForward, contentDescription = null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
content()
|
content()
|
||||||
@@ -90,7 +90,7 @@ fun GlobalSearchErrorResultItem(message: String?) {
|
|||||||
horizontalAlignment = Alignment.CenterHorizontally,
|
horizontalAlignment = Alignment.CenterHorizontally,
|
||||||
verticalArrangement = Arrangement.Center,
|
verticalArrangement = Arrangement.Center,
|
||||||
) {
|
) {
|
||||||
Icon(imageVector = Icons.Outlined.Error, contentDescription = null)
|
Icon(imageVector = MaterialSymbols.Rounded.Error, contentDescription = null)
|
||||||
Spacer(Modifier.height(4.dp))
|
Spacer(Modifier.height(4.dp))
|
||||||
Text(
|
Text(
|
||||||
text = message ?: stringResource(MR.strings.unknown_error),
|
text = message ?: stringResource(MR.strings.unknown_error),
|
||||||
|
|||||||
@@ -11,10 +11,6 @@ import androidx.compose.foundation.layout.height
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.DoneAll
|
|
||||||
import androidx.compose.material.icons.outlined.FilterList
|
|
||||||
import androidx.compose.material.icons.outlined.PushPin
|
|
||||||
import androidx.compose.material3.FilterChip
|
import androidx.compose.material3.FilterChip
|
||||||
import androidx.compose.material3.FilterChipDefaults
|
import androidx.compose.material3.FilterChipDefaults
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
@@ -29,6 +25,10 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import eu.kanade.presentation.components.SearchToolbar
|
import eu.kanade.presentation.components.SearchToolbar
|
||||||
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.SourceFilter
|
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 tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -82,7 +82,7 @@ fun GlobalSearchToolbar(
|
|||||||
onClick = { onChangeSearchFilter(SourceFilter.PinnedOnly) },
|
onClick = { onChangeSearchFilter(SourceFilter.PinnedOnly) },
|
||||||
leadingIcon = {
|
leadingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.PushPin,
|
imageVector = MaterialSymbols.Rounded.PushPin,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(FilterChipDefaults.IconSize),
|
.size(FilterChipDefaults.IconSize),
|
||||||
@@ -97,7 +97,7 @@ fun GlobalSearchToolbar(
|
|||||||
onClick = { onChangeSearchFilter(SourceFilter.All) },
|
onClick = { onChangeSearchFilter(SourceFilter.All) },
|
||||||
leadingIcon = {
|
leadingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.DoneAll,
|
imageVector = MaterialSymbols.Rounded.DoneAll,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(FilterChipDefaults.IconSize),
|
.size(FilterChipDefaults.IconSize),
|
||||||
@@ -116,7 +116,7 @@ fun GlobalSearchToolbar(
|
|||||||
onClick = { onToggleResults() },
|
onClick = { onToggleResults() },
|
||||||
leadingIcon = {
|
leadingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.FilterList,
|
imageVector = MaterialSymbols.Rounded.FilterList,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(FilterChipDefaults.IconSize),
|
.size(FilterChipDefaults.IconSize),
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package eu.kanade.presentation.category.components
|
package eu.kanade.presentation.category.components
|
||||||
|
|
||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Add
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.SmallExtendedFloatingActionButton
|
import androidx.compose.material3.SmallExtendedFloatingActionButton
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Add
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import tachiyomi.presentation.core.util.shouldExpandFAB
|
import tachiyomi.presentation.core.util.shouldExpandFAB
|
||||||
@@ -20,7 +20,7 @@ fun CategoryFloatingActionButton(
|
|||||||
) {
|
) {
|
||||||
SmallExtendedFloatingActionButton(
|
SmallExtendedFloatingActionButton(
|
||||||
text = { Text(text = stringResource(MR.strings.action_add)) },
|
text = { Text(text = stringResource(MR.strings.action_add)) },
|
||||||
icon = { Icon(imageVector = Icons.Outlined.Add, contentDescription = null) },
|
icon = { Icon(imageVector = MaterialSymbols.Rounded.Add, contentDescription = null) },
|
||||||
onClick = onCreate,
|
onClick = onCreate,
|
||||||
expanded = lazyListState.shouldExpandFAB(),
|
expanded = lazyListState.shouldExpandFAB(),
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
|
|||||||
@@ -4,10 +4,6 @@ import androidx.compose.foundation.clickable
|
|||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Delete
|
|
||||||
import androidx.compose.material.icons.outlined.DragHandle
|
|
||||||
import androidx.compose.material.icons.outlined.Edit
|
|
||||||
import androidx.compose.material3.ElevatedCard
|
import androidx.compose.material3.ElevatedCard
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -16,6 +12,10 @@ import androidx.compose.material3.Text
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Delete
|
||||||
|
import mihon.icons.materialsymbols.rounded.DragHandle
|
||||||
|
import mihon.icons.materialsymbols.rounded.Edit
|
||||||
import sh.calvin.reorderable.ReorderableCollectionItemScope
|
import sh.calvin.reorderable.ReorderableCollectionItemScope
|
||||||
import tachiyomi.domain.category.model.Category
|
import tachiyomi.domain.category.model.Category
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
@@ -42,7 +42,7 @@ fun ReorderableCollectionItemScope.CategoryListItem(
|
|||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.DragHandle,
|
imageVector = MaterialSymbols.Rounded.DragHandle,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(MaterialTheme.padding.medium)
|
.padding(MaterialTheme.padding.medium)
|
||||||
@@ -54,13 +54,13 @@ fun ReorderableCollectionItemScope.CategoryListItem(
|
|||||||
)
|
)
|
||||||
IconButton(onClick = onRename) {
|
IconButton(onClick = onRename) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Edit,
|
imageVector = MaterialSymbols.Rounded.Edit,
|
||||||
contentDescription = stringResource(MR.strings.action_rename_category),
|
contentDescription = stringResource(MR.strings.action_rename_category),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
IconButton(onClick = onDelete) {
|
IconButton(onClick = onDelete) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Delete,
|
imageVector = MaterialSymbols.Rounded.Delete,
|
||||||
contentDescription = stringResource(MR.strings.action_delete),
|
contentDescription = stringResource(MR.strings.action_delete),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,11 +8,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.text.BasicTextField
|
import androidx.compose.foundation.text.BasicTextField
|
||||||
import androidx.compose.foundation.text.KeyboardActions
|
import androidx.compose.foundation.text.KeyboardActions
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ArrowBack
|
|
||||||
import androidx.compose.material.icons.outlined.Close
|
|
||||||
import androidx.compose.material.icons.outlined.MoreVert
|
|
||||||
import androidx.compose.material.icons.outlined.Search
|
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -51,6 +46,11 @@ import androidx.compose.ui.text.input.VisualTransformation
|
|||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ArrowBack
|
||||||
|
import mihon.icons.materialsymbols.rounded.Close
|
||||||
|
import mihon.icons.materialsymbols.rounded.MoreVert
|
||||||
|
import mihon.icons.materialsymbols.rounded.Search
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import tachiyomi.presentation.core.util.clearFocusOnSoftKeyboardHide
|
import tachiyomi.presentation.core.util.clearFocusOnSoftKeyboardHide
|
||||||
@@ -133,7 +133,7 @@ fun AppBar(
|
|||||||
if (isActionMode) {
|
if (isActionMode) {
|
||||||
IconButton(onClick = onCancelActionMode) {
|
IconButton(onClick = onCancelActionMode) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Close,
|
imageVector = MaterialSymbols.Rounded.Close,
|
||||||
contentDescription = stringResource(MR.strings.action_cancel),
|
contentDescription = stringResource(MR.strings.action_cancel),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -231,7 +231,7 @@ fun AppBarActions(
|
|||||||
onClick = { showMenu = !showMenu },
|
onClick = { showMenu = !showMenu },
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.Outlined.MoreVert,
|
MaterialSymbols.Rounded.MoreVert,
|
||||||
contentDescription = stringResource(MR.strings.action_menu_overflow_description),
|
contentDescription = stringResource(MR.strings.action_menu_overflow_description),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -360,7 +360,7 @@ fun SearchToolbar(
|
|||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.Outlined.Search,
|
MaterialSymbols.Rounded.Search,
|
||||||
contentDescription = stringResource(MR.strings.action_search),
|
contentDescription = stringResource(MR.strings.action_search),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -383,7 +383,7 @@ fun SearchToolbar(
|
|||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.Outlined.Close,
|
MaterialSymbols.Rounded.Close,
|
||||||
contentDescription = stringResource(MR.strings.action_reset),
|
contentDescription = stringResource(MR.strings.action_reset),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -404,7 +404,7 @@ fun UpIcon(
|
|||||||
navigationIcon: ImageVector? = null,
|
navigationIcon: ImageVector? = null,
|
||||||
) {
|
) {
|
||||||
val icon = navigationIcon
|
val icon = navigationIcon
|
||||||
?: Icons.AutoMirrored.Outlined.ArrowBack
|
?: MaterialSymbols.AutoMirroredRounded.ArrowBack
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = icon,
|
imageVector = icon,
|
||||||
contentDescription = stringResource(MR.strings.action_bar_up_description),
|
contentDescription = stringResource(MR.strings.action_bar_up_description),
|
||||||
|
|||||||
@@ -5,10 +5,6 @@ import androidx.compose.foundation.layout.Box
|
|||||||
import androidx.compose.foundation.layout.ColumnScope
|
import androidx.compose.foundation.layout.ColumnScope
|
||||||
import androidx.compose.foundation.layout.sizeIn
|
import androidx.compose.foundation.layout.sizeIn
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ArrowRight
|
|
||||||
import androidx.compose.material.icons.outlined.RadioButtonChecked
|
|
||||||
import androidx.compose.material.icons.outlined.RadioButtonUnchecked
|
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -21,6 +17,10 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.unit.DpOffset
|
import androidx.compose.ui.unit.DpOffset
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.window.PopupProperties
|
import androidx.compose.ui.window.PopupProperties
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ArrowRight
|
||||||
|
import mihon.icons.materialsymbols.rounded.RadioButtonChecked
|
||||||
|
import mihon.icons.materialsymbols.rounded.RadioButtonUnchecked
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import androidx.compose.material3.DropdownMenu as ComposeDropdownMenu
|
import androidx.compose.material3.DropdownMenu as ComposeDropdownMenu
|
||||||
@@ -63,13 +63,13 @@ fun RadioMenuItem(
|
|||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
if (isChecked) {
|
if (isChecked) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.RadioButtonChecked,
|
imageVector = MaterialSymbols.Rounded.RadioButtonChecked,
|
||||||
contentDescription = stringResource(MR.strings.selected),
|
contentDescription = stringResource(MR.strings.selected),
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.RadioButtonUnchecked,
|
imageVector = MaterialSymbols.Rounded.RadioButtonUnchecked,
|
||||||
contentDescription = stringResource(MR.strings.not_selected),
|
contentDescription = stringResource(MR.strings.not_selected),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -93,7 +93,7 @@ fun NestedMenuItem(
|
|||||||
onClick = { nestedExpanded = true },
|
onClick = { nestedExpanded = true },
|
||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Outlined.ArrowRight,
|
imageVector = MaterialSymbols.AutoMirroredRounded.ArrowRight,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package eu.kanade.presentation.components
|
package eu.kanade.presentation.components
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
|
||||||
import androidx.compose.material.icons.outlined.Refresh
|
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.Help
|
||||||
|
import mihon.icons.materialsymbols.rounded.Refresh
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.screens.EmptyScreen
|
import tachiyomi.presentation.core.screens.EmptyScreen
|
||||||
import tachiyomi.presentation.core.screens.EmptyScreenAction
|
import tachiyomi.presentation.core.screens.EmptyScreenAction
|
||||||
@@ -33,12 +33,12 @@ private fun WithActionPreview() {
|
|||||||
actions = listOf(
|
actions = listOf(
|
||||||
EmptyScreenAction(
|
EmptyScreenAction(
|
||||||
stringRes = MR.strings.action_retry,
|
stringRes = MR.strings.action_retry,
|
||||||
icon = Icons.Outlined.Refresh,
|
icon = MaterialSymbols.Rounded.Refresh,
|
||||||
onClick = {},
|
onClick = {},
|
||||||
),
|
),
|
||||||
EmptyScreenAction(
|
EmptyScreenAction(
|
||||||
stringRes = MR.strings.getting_started_guide,
|
stringRes = MR.strings.getting_started_guide,
|
||||||
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
icon = MaterialSymbols.AutoMirroredRounded.Help,
|
||||||
onClick = {},
|
onClick = {},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -9,8 +9,6 @@ import androidx.compose.foundation.layout.wrapContentSize
|
|||||||
import androidx.compose.foundation.pager.HorizontalPager
|
import androidx.compose.foundation.pager.HorizontalPager
|
||||||
import androidx.compose.foundation.pager.PagerState
|
import androidx.compose.foundation.pager.PagerState
|
||||||
import androidx.compose.foundation.pager.rememberPagerState
|
import androidx.compose.foundation.pager.rememberPagerState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.MoreVert
|
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -28,6 +26,8 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.util.fastForEachIndexed
|
import androidx.compose.ui.util.fastForEachIndexed
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.MoreVert
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.TabText
|
import tachiyomi.presentation.core.components.material.TabText
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -90,7 +90,7 @@ private fun MoreMenu(
|
|||||||
Box(modifier = Modifier.wrapContentSize(Alignment.TopStart)) {
|
Box(modifier = Modifier.wrapContentSize(Alignment.TopStart)) {
|
||||||
IconButton(onClick = { expanded = true }) {
|
IconButton(onClick = { expanded = true }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.MoreVert,
|
imageVector = MaterialSymbols.Rounded.MoreVert,
|
||||||
contentDescription = stringResource(MR.strings.label_more),
|
contentDescription = stringResource(MR.strings.label_more),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ import androidx.compose.foundation.background
|
|||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.BugReport
|
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -18,6 +16,8 @@ import androidx.compose.ui.tooling.preview.PreviewLightDark
|
|||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.BugReport
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -33,7 +33,7 @@ fun CrashScreen(
|
|||||||
val crashLogUtil = remember { context.appGraph.crashLogUtil }
|
val crashLogUtil = remember { context.appGraph.crashLogUtil }
|
||||||
|
|
||||||
InfoScreen(
|
InfoScreen(
|
||||||
icon = Icons.Outlined.BugReport,
|
icon = MaterialSymbols.Rounded.BugReport,
|
||||||
headingText = stringResource(MR.strings.crash_screen_title),
|
headingText = stringResource(MR.strings.crash_screen_title),
|
||||||
subtitleText = stringResource(MR.strings.crash_screen_description, stringResource(MR.strings.app_name)),
|
subtitleText = stringResource(MR.strings.crash_screen_description, stringResource(MR.strings.app_name)),
|
||||||
acceptText = stringResource(MR.strings.pref_dump_crash_logs),
|
acceptText = stringResource(MR.strings.pref_dump_crash_logs),
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ package eu.kanade.presentation.history
|
|||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.DeleteSweep
|
|
||||||
import androidx.compose.material3.SnackbarHost
|
import androidx.compose.material3.SnackbarHost
|
||||||
import androidx.compose.material3.SnackbarHostState
|
import androidx.compose.material3.SnackbarHostState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -20,6 +18,8 @@ import eu.kanade.presentation.history.components.HistoryItem
|
|||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
import eu.kanade.tachiyomi.ui.history.HistoryViewModel
|
import eu.kanade.tachiyomi.ui.history.HistoryViewModel
|
||||||
import kotlinx.datetime.LocalDate
|
import kotlinx.datetime.LocalDate
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.DeleteSweep
|
||||||
import tachiyomi.domain.history.model.HistoryWithRelations
|
import tachiyomi.domain.history.model.HistoryWithRelations
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
||||||
@@ -50,7 +50,7 @@ fun HistoryScreen(
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.pref_clear_history),
|
title = stringResource(MR.strings.pref_clear_history),
|
||||||
icon = Icons.Outlined.DeleteSweep,
|
icon = MaterialSymbols.Rounded.DeleteSweep,
|
||||||
onClick = {
|
onClick = {
|
||||||
onDialogChange(HistoryViewModel.Dialog.DeleteAll)
|
onDialogChange(HistoryViewModel.Dialog.DeleteAll)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ import androidx.compose.foundation.layout.Row
|
|||||||
import androidx.compose.foundation.layout.fillMaxHeight
|
import androidx.compose.foundation.layout.fillMaxHeight
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Delete
|
|
||||||
import androidx.compose.material.icons.outlined.FavoriteBorder
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -27,6 +24,9 @@ import eu.kanade.presentation.manga.components.MangaCover
|
|||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
import eu.kanade.presentation.util.formatChapterNumber
|
import eu.kanade.presentation.util.formatChapterNumber
|
||||||
import eu.kanade.tachiyomi.util.lang.toTimestampString
|
import eu.kanade.tachiyomi.util.lang.toTimestampString
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Delete
|
||||||
|
import mihon.icons.materialsymbols.rounded.Favorite
|
||||||
import tachiyomi.domain.history.model.HistoryWithRelations
|
import tachiyomi.domain.history.model.HistoryWithRelations
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
@@ -87,7 +87,7 @@ fun HistoryItem(
|
|||||||
if (!history.coverData.isMangaFavorite) {
|
if (!history.coverData.isMangaFavorite) {
|
||||||
IconButton(onClick = onClickFavorite) {
|
IconButton(onClick = onClickFavorite) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.FavoriteBorder,
|
imageVector = MaterialSymbols.Rounded.Favorite,
|
||||||
contentDescription = stringResource(MR.strings.add_to_library),
|
contentDescription = stringResource(MR.strings.add_to_library),
|
||||||
tint = MaterialTheme.colorScheme.onSurface,
|
tint = MaterialTheme.colorScheme.onSurface,
|
||||||
)
|
)
|
||||||
@@ -96,7 +96,7 @@ fun HistoryItem(
|
|||||||
|
|
||||||
IconButton(onClick = onClickDelete) {
|
IconButton(onClick = onClickDelete) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Delete,
|
imageVector = MaterialSymbols.Rounded.Delete,
|
||||||
contentDescription = stringResource(MR.strings.action_delete),
|
contentDescription = stringResource(MR.strings.action_delete),
|
||||||
tint = MaterialTheme.colorScheme.onSurface,
|
tint = MaterialTheme.colorScheme.onSurface,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.ColumnScope
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Refresh
|
|
||||||
import androidx.compose.material3.FilterChip
|
import androidx.compose.material3.FilterChip
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
@@ -21,6 +19,8 @@ import eu.kanade.presentation.components.TabbedDialog
|
|||||||
import eu.kanade.presentation.components.TabbedDialogPaddings
|
import eu.kanade.presentation.components.TabbedDialogPaddings
|
||||||
import eu.kanade.tachiyomi.ui.library.LibrarySettingsViewModel
|
import eu.kanade.tachiyomi.ui.library.LibrarySettingsViewModel
|
||||||
import eu.kanade.tachiyomi.util.system.isReleaseBuildType
|
import eu.kanade.tachiyomi.util.system.isReleaseBuildType
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Refresh
|
||||||
import tachiyomi.core.common.preference.TriState
|
import tachiyomi.core.common.preference.TriState
|
||||||
import tachiyomi.domain.category.model.Category
|
import tachiyomi.domain.category.model.Category
|
||||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||||
@@ -186,7 +186,7 @@ private fun ColumnScope.SortPage(
|
|||||||
if (mode == LibrarySort.Type.Random) {
|
if (mode == LibrarySort.Type.Random) {
|
||||||
BaseSortItem(
|
BaseSortItem(
|
||||||
label = stringResource(titleRes),
|
label = stringResource(titleRes),
|
||||||
icon = Icons.Default.Refresh
|
icon = MaterialSymbols.Rounded.Refresh
|
||||||
.takeIf { sortingMode == LibrarySort.Type.Random },
|
.takeIf { sortingMode == LibrarySort.Type.Random },
|
||||||
onClick = {
|
onClick = {
|
||||||
viewModel.setSort(category, mode, LibrarySort.Direction.Ascending)
|
viewModel.setSort(category, mode, LibrarySort.Direction.Ascending)
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ import androidx.compose.foundation.layout.height
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.PlayArrow
|
|
||||||
import androidx.compose.material3.FilledIconButton
|
import androidx.compose.material3.FilledIconButton
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButtonDefaults
|
import androidx.compose.material3.IconButtonDefaults
|
||||||
@@ -39,6 +37,8 @@ import androidx.compose.ui.unit.Dp
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import eu.kanade.presentation.manga.components.MangaCover
|
import eu.kanade.presentation.manga.components.MangaCover
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.PlayArrow
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.BadgeGroup
|
import tachiyomi.presentation.core.components.BadgeGroup
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -395,7 +395,7 @@ private fun ContinueReadingButton(
|
|||||||
modifier = Modifier.size(size),
|
modifier = Modifier.size(size),
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.PlayArrow,
|
imageVector = MaterialSymbols.Rounded.PlayArrow,
|
||||||
contentDescription = stringResource(MR.strings.action_resume),
|
contentDescription = stringResource(MR.strings.action_resume),
|
||||||
modifier = Modifier.size(iconSize),
|
modifier = Modifier.size(iconSize),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package eu.kanade.presentation.library.components
|
package eu.kanade.presentation.library.components
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Folder
|
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Folder
|
||||||
import tachiyomi.presentation.core.components.Badge
|
import tachiyomi.presentation.core.components.Badge
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -34,7 +34,7 @@ internal fun LanguageBadge(
|
|||||||
) {
|
) {
|
||||||
if (isLocal) {
|
if (isLocal) {
|
||||||
Badge(
|
Badge(
|
||||||
imageVector = Icons.Outlined.Folder,
|
imageVector = MaterialSymbols.Rounded.Folder,
|
||||||
color = MaterialTheme.colorScheme.tertiary,
|
color = MaterialTheme.colorScheme.tertiary,
|
||||||
iconColor = MaterialTheme.colorScheme.onTertiary,
|
iconColor = MaterialTheme.colorScheme.onTertiary,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ package eu.kanade.presentation.library.components
|
|||||||
|
|
||||||
import androidx.compose.foundation.isSystemInDarkTheme
|
import androidx.compose.foundation.isSystemInDarkTheme
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.FilterList
|
|
||||||
import androidx.compose.material.icons.outlined.FlipToBack
|
|
||||||
import androidx.compose.material.icons.outlined.SelectAll
|
|
||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
@@ -19,6 +15,10 @@ import androidx.compose.ui.unit.sp
|
|||||||
import eu.kanade.presentation.components.AppBar
|
import eu.kanade.presentation.components.AppBar
|
||||||
import eu.kanade.presentation.components.AppBarActions
|
import eu.kanade.presentation.components.AppBarActions
|
||||||
import eu.kanade.presentation.components.SearchToolbar
|
import eu.kanade.presentation.components.SearchToolbar
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.FilterList
|
||||||
|
import mihon.icons.materialsymbols.rounded.FlipToBack
|
||||||
|
import mihon.icons.materialsymbols.rounded.SelectAll
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.Pill
|
import tachiyomi.presentation.core.components.Pill
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -98,7 +98,7 @@ private fun LibraryRegularToolbar(
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_filter),
|
title = stringResource(MR.strings.action_filter),
|
||||||
icon = Icons.Outlined.FilterList,
|
icon = MaterialSymbols.Rounded.FilterList,
|
||||||
iconTint = filterTint,
|
iconTint = filterTint,
|
||||||
onClick = onClickFilter,
|
onClick = onClickFilter,
|
||||||
),
|
),
|
||||||
@@ -135,12 +135,12 @@ private fun LibrarySelectionToolbar(
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_select_all),
|
title = stringResource(MR.strings.action_select_all),
|
||||||
icon = Icons.Outlined.SelectAll,
|
icon = MaterialSymbols.Rounded.SelectAll,
|
||||||
onClick = onClickSelectAll,
|
onClick = onClickSelectAll,
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_select_inverse),
|
title = stringResource(MR.strings.action_select_inverse),
|
||||||
icon = Icons.Outlined.FlipToBack,
|
icon = MaterialSymbols.Rounded.FlipToBack,
|
||||||
onClick = onClickInvertSelection,
|
onClick = onClickInvertSelection,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -9,8 +9,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.PeopleAlt
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -32,6 +30,8 @@ import eu.kanade.domain.manga.model.downloadedFilter
|
|||||||
import eu.kanade.presentation.components.TabbedDialog
|
import eu.kanade.presentation.components.TabbedDialog
|
||||||
import eu.kanade.presentation.components.TabbedDialogPaddings
|
import eu.kanade.presentation.components.TabbedDialogPaddings
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.PeopleAlt
|
||||||
import tachiyomi.core.common.preference.TriState
|
import tachiyomi.core.common.preference.TriState
|
||||||
import tachiyomi.domain.manga.model.Manga
|
import tachiyomi.domain.manga.model.Manga
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
@@ -174,7 +174,7 @@ fun ScanlatorFilterItem(
|
|||||||
horizontalArrangement = Arrangement.spacedBy(24.dp),
|
horizontalArrangement = Arrangement.spacedBy(24.dp),
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.PeopleAlt,
|
imageVector = MaterialSymbols.Rounded.PeopleAlt,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = if (active) {
|
tint = if (active) {
|
||||||
MaterialTheme.colorScheme.active
|
MaterialTheme.colorScheme.active
|
||||||
|
|||||||
@@ -19,18 +19,6 @@ import androidx.compose.foundation.lazy.items
|
|||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Brush
|
|
||||||
import androidx.compose.material.icons.filled.PersonOutline
|
|
||||||
import androidx.compose.material.icons.filled.Warning
|
|
||||||
import androidx.compose.material.icons.outlined.Add
|
|
||||||
import androidx.compose.material.icons.outlined.AttachMoney
|
|
||||||
import androidx.compose.material.icons.outlined.Block
|
|
||||||
import androidx.compose.material.icons.outlined.Close
|
|
||||||
import androidx.compose.material.icons.outlined.Done
|
|
||||||
import androidx.compose.material.icons.outlined.DoneAll
|
|
||||||
import androidx.compose.material.icons.outlined.Pause
|
|
||||||
import androidx.compose.material.icons.outlined.Schedule
|
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -66,6 +54,18 @@ import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
|||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
import eu.kanade.tachiyomi.source.model.SManga
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
|
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.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 tachiyomi.domain.manga.model.Manga
|
import tachiyomi.domain.manga.model.Manga
|
||||||
import tachiyomi.domain.manga.model.MangaWithChapterCount
|
import tachiyomi.domain.manga.model.MangaWithChapterCount
|
||||||
import tachiyomi.domain.source.model.StubSource
|
import tachiyomi.domain.source.model.StubSource
|
||||||
@@ -141,7 +141,7 @@ fun DuplicateMangaDialog(
|
|||||||
|
|
||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
title = stringResource(MR.strings.action_add_anyway),
|
title = stringResource(MR.strings.action_add_anyway),
|
||||||
icon = Icons.Outlined.Add,
|
icon = MaterialSymbols.Rounded.Add,
|
||||||
onPreferenceClick = {
|
onPreferenceClick = {
|
||||||
onDismissRequest()
|
onDismissRequest()
|
||||||
onConfirm()
|
onConfirm()
|
||||||
@@ -230,7 +230,7 @@ private fun DuplicateMangaListItem(
|
|||||||
if (!manga.author.isNullOrBlank()) {
|
if (!manga.author.isNullOrBlank()) {
|
||||||
MangaDetailRow(
|
MangaDetailRow(
|
||||||
text = manga.author!!,
|
text = manga.author!!,
|
||||||
iconImageVector = Icons.Filled.PersonOutline,
|
iconImageVector = MaterialSymbols.Rounded.Person,
|
||||||
maxLines = 2,
|
maxLines = 2,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -238,7 +238,7 @@ private fun DuplicateMangaListItem(
|
|||||||
if (!manga.artist.isNullOrBlank() && manga.author != manga.artist) {
|
if (!manga.artist.isNullOrBlank() && manga.author != manga.artist) {
|
||||||
MangaDetailRow(
|
MangaDetailRow(
|
||||||
text = manga.artist!!,
|
text = manga.artist!!,
|
||||||
iconImageVector = Icons.Filled.Brush,
|
iconImageVector = MaterialSymbols.Rounded.Brush,
|
||||||
maxLines = 2,
|
maxLines = 2,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -254,13 +254,13 @@ private fun DuplicateMangaListItem(
|
|||||||
else -> stringResource(MR.strings.unknown)
|
else -> stringResource(MR.strings.unknown)
|
||||||
},
|
},
|
||||||
iconImageVector = when (manga.status) {
|
iconImageVector = when (manga.status) {
|
||||||
SManga.ONGOING.toLong() -> Icons.Outlined.Schedule
|
SManga.ONGOING.toLong() -> MaterialSymbols.Rounded.Schedule
|
||||||
SManga.COMPLETED.toLong() -> Icons.Outlined.DoneAll
|
SManga.COMPLETED.toLong() -> MaterialSymbols.Rounded.DoneAll
|
||||||
SManga.LICENSED.toLong() -> Icons.Outlined.AttachMoney
|
SManga.LICENSED.toLong() -> MaterialSymbols.Rounded.AttachMoney
|
||||||
SManga.PUBLISHING_FINISHED.toLong() -> Icons.Outlined.Done
|
SManga.PUBLISHING_FINISHED.toLong() -> MaterialSymbols.Rounded.Done
|
||||||
SManga.CANCELLED.toLong() -> Icons.Outlined.Close
|
SManga.CANCELLED.toLong() -> MaterialSymbols.Rounded.Close
|
||||||
SManga.ON_HIATUS.toLong() -> Icons.Outlined.Pause
|
SManga.ON_HIATUS.toLong() -> MaterialSymbols.Rounded.Pause
|
||||||
else -> Icons.Outlined.Block
|
else -> MaterialSymbols.Rounded.Block
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -272,7 +272,7 @@ private fun DuplicateMangaListItem(
|
|||||||
) {
|
) {
|
||||||
if (source is StubSource) {
|
if (source is StubSource) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.Warning,
|
imageVector = MaterialSymbols.Rounded.Warning,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier.size(16.dp),
|
modifier = Modifier.size(16.dp),
|
||||||
tint = MaterialTheme.colorScheme.error,
|
tint = MaterialTheme.colorScheme.error,
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ import androidx.compose.foundation.lazy.items
|
|||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.PlayArrow
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.SmallExtendedFloatingActionButton
|
import androidx.compose.material3.SmallExtendedFloatingActionButton
|
||||||
import androidx.compose.material3.SnackbarHost
|
import androidx.compose.material3.SnackbarHost
|
||||||
@@ -62,6 +60,8 @@ import eu.kanade.tachiyomi.source.getNameForMangaInfo
|
|||||||
import eu.kanade.tachiyomi.ui.manga.ChapterList
|
import eu.kanade.tachiyomi.ui.manga.ChapterList
|
||||||
import eu.kanade.tachiyomi.ui.manga.MangaViewModel
|
import eu.kanade.tachiyomi.ui.manga.MangaViewModel
|
||||||
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.PlayArrow
|
||||||
import tachiyomi.domain.chapter.model.Chapter
|
import tachiyomi.domain.chapter.model.Chapter
|
||||||
import tachiyomi.domain.chapter.service.missingChaptersCount
|
import tachiyomi.domain.chapter.service.missingChaptersCount
|
||||||
import tachiyomi.domain.library.service.LibraryPreferences
|
import tachiyomi.domain.library.service.LibraryPreferences
|
||||||
@@ -337,7 +337,7 @@ private fun MangaScreenSmallImpl(
|
|||||||
text = stringResource(if (isReading) MR.strings.action_resume else MR.strings.action_start),
|
text = stringResource(if (isReading) MR.strings.action_resume else MR.strings.action_start),
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
icon = { Icon(imageVector = Icons.Filled.PlayArrow, contentDescription = null) },
|
icon = { Icon(imageVector = MaterialSymbols.RoundedFilled.PlayArrow, contentDescription = null) },
|
||||||
onClick = onContinueReading,
|
onClick = onContinueReading,
|
||||||
expanded = chapterListState.shouldExpandFAB(),
|
expanded = chapterListState.shouldExpandFAB(),
|
||||||
modifier = Modifier.animateFloatingActionButton(
|
modifier = Modifier.animateFloatingActionButton(
|
||||||
@@ -579,7 +579,7 @@ fun MangaScreenLargeImpl(
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
icon = { Icon(imageVector = Icons.Filled.PlayArrow, contentDescription = null) },
|
icon = { Icon(imageVector = MaterialSymbols.RoundedFilled.PlayArrow, contentDescription = null) },
|
||||||
onClick = onContinueReading,
|
onClick = onContinueReading,
|
||||||
expanded = chapterListState.shouldExpandFAB(),
|
expanded = chapterListState.shouldExpandFAB(),
|
||||||
modifier = Modifier.animateFloatingActionButton(
|
modifier = Modifier.animateFloatingActionButton(
|
||||||
|
|||||||
@@ -5,10 +5,6 @@ import androidx.compose.foundation.combinedClickable
|
|||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.CheckCircle
|
|
||||||
import androidx.compose.material.icons.outlined.ArrowDownward
|
|
||||||
import androidx.compose.material.icons.outlined.ErrorOutline
|
|
||||||
import androidx.compose.material3.CircularProgressIndicator
|
import androidx.compose.material3.CircularProgressIndicator
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -34,6 +30,10 @@ import androidx.compose.ui.unit.dp
|
|||||||
import eu.kanade.presentation.components.DropdownMenu
|
import eu.kanade.presentation.components.DropdownMenu
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
|
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
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.IconButtonTokens
|
import tachiyomi.presentation.core.components.material.IconButtonTokens
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -179,7 +179,7 @@ private fun DownloadingIndicator(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.ArrowDownward,
|
imageVector = MaterialSymbols.Rounded.ArrowDownward,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = ArrowModifier,
|
modifier = ArrowModifier,
|
||||||
tint = arrowColor,
|
tint = arrowColor,
|
||||||
@@ -206,7 +206,7 @@ private fun DownloadedIndicator(
|
|||||||
contentAlignment = Alignment.Center,
|
contentAlignment = Alignment.Center,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.CheckCircle,
|
imageVector = MaterialSymbols.RoundedFilled.CheckCircle,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier.size(IndicatorSize),
|
modifier = Modifier.size(IndicatorSize),
|
||||||
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
@@ -241,7 +241,7 @@ private fun ErrorIndicator(
|
|||||||
contentAlignment = Alignment.Center,
|
contentAlignment = Alignment.Center,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.ErrorOutline,
|
imageVector = MaterialSymbols.Rounded.Error,
|
||||||
contentDescription = stringResource(MR.strings.chapter_error),
|
contentDescription = stringResource(MR.strings.chapter_error),
|
||||||
modifier = Modifier.size(IndicatorSize),
|
modifier = Modifier.size(IndicatorSize),
|
||||||
tint = MaterialTheme.colorScheme.error,
|
tint = MaterialTheme.colorScheme.error,
|
||||||
|
|||||||
@@ -22,16 +22,6 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||||
import androidx.compose.foundation.shape.ZeroCornerSize
|
import androidx.compose.foundation.shape.ZeroCornerSize
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.Label
|
|
||||||
import androidx.compose.material.icons.outlined.BookmarkAdd
|
|
||||||
import androidx.compose.material.icons.outlined.BookmarkRemove
|
|
||||||
import androidx.compose.material.icons.outlined.Delete
|
|
||||||
import androidx.compose.material.icons.outlined.DoneAll
|
|
||||||
import androidx.compose.material.icons.outlined.Download
|
|
||||||
import androidx.compose.material.icons.outlined.MoreVert
|
|
||||||
import androidx.compose.material.icons.outlined.RemoveDone
|
|
||||||
import androidx.compose.material.icons.outlined.SwapCalls
|
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -62,6 +52,16 @@ import kotlinx.coroutines.Job
|
|||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.isActive
|
import kotlinx.coroutines.isActive
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.Label
|
||||||
|
import mihon.icons.materialsymbols.rounded.BookmarkAdd
|
||||||
|
import mihon.icons.materialsymbols.rounded.BookmarkRemove
|
||||||
|
import mihon.icons.materialsymbols.rounded.Delete
|
||||||
|
import mihon.icons.materialsymbols.rounded.DoneAll
|
||||||
|
import mihon.icons.materialsymbols.rounded.Download
|
||||||
|
import mihon.icons.materialsymbols.rounded.MoreVert
|
||||||
|
import mihon.icons.materialsymbols.rounded.RemoveDone
|
||||||
|
import mihon.icons.materialsymbols.rounded.SwapCalls
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import kotlin.time.Duration.Companion.seconds
|
import kotlin.time.Duration.Companion.seconds
|
||||||
@@ -113,7 +113,7 @@ fun MangaBottomActionMenu(
|
|||||||
if (onBookmarkClicked != null) {
|
if (onBookmarkClicked != null) {
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_bookmark),
|
title = stringResource(MR.strings.action_bookmark),
|
||||||
icon = Icons.Outlined.BookmarkAdd,
|
icon = MaterialSymbols.Rounded.BookmarkAdd,
|
||||||
toConfirm = confirm[0],
|
toConfirm = confirm[0],
|
||||||
onLongClick = { onLongClickItem(0) },
|
onLongClick = { onLongClickItem(0) },
|
||||||
onClick = onBookmarkClicked,
|
onClick = onBookmarkClicked,
|
||||||
@@ -122,7 +122,7 @@ fun MangaBottomActionMenu(
|
|||||||
if (onRemoveBookmarkClicked != null) {
|
if (onRemoveBookmarkClicked != null) {
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_remove_bookmark),
|
title = stringResource(MR.strings.action_remove_bookmark),
|
||||||
icon = Icons.Outlined.BookmarkRemove,
|
icon = MaterialSymbols.Rounded.BookmarkRemove,
|
||||||
toConfirm = confirm[1],
|
toConfirm = confirm[1],
|
||||||
onLongClick = { onLongClickItem(1) },
|
onLongClick = { onLongClickItem(1) },
|
||||||
onClick = onRemoveBookmarkClicked,
|
onClick = onRemoveBookmarkClicked,
|
||||||
@@ -131,7 +131,7 @@ fun MangaBottomActionMenu(
|
|||||||
if (onMarkAsReadClicked != null) {
|
if (onMarkAsReadClicked != null) {
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_mark_as_read),
|
title = stringResource(MR.strings.action_mark_as_read),
|
||||||
icon = Icons.Outlined.DoneAll,
|
icon = MaterialSymbols.Rounded.DoneAll,
|
||||||
toConfirm = confirm[2],
|
toConfirm = confirm[2],
|
||||||
onLongClick = { onLongClickItem(2) },
|
onLongClick = { onLongClickItem(2) },
|
||||||
onClick = onMarkAsReadClicked,
|
onClick = onMarkAsReadClicked,
|
||||||
@@ -140,7 +140,7 @@ fun MangaBottomActionMenu(
|
|||||||
if (onMarkAsUnreadClicked != null) {
|
if (onMarkAsUnreadClicked != null) {
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_mark_as_unread),
|
title = stringResource(MR.strings.action_mark_as_unread),
|
||||||
icon = Icons.Outlined.RemoveDone,
|
icon = MaterialSymbols.Rounded.RemoveDone,
|
||||||
toConfirm = confirm[3],
|
toConfirm = confirm[3],
|
||||||
onLongClick = { onLongClickItem(3) },
|
onLongClick = { onLongClickItem(3) },
|
||||||
onClick = onMarkAsUnreadClicked,
|
onClick = onMarkAsUnreadClicked,
|
||||||
@@ -158,7 +158,7 @@ fun MangaBottomActionMenu(
|
|||||||
if (onDownloadClicked != null) {
|
if (onDownloadClicked != null) {
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_download),
|
title = stringResource(MR.strings.action_download),
|
||||||
icon = Icons.Outlined.Download,
|
icon = MaterialSymbols.Rounded.Download,
|
||||||
toConfirm = confirm[5],
|
toConfirm = confirm[5],
|
||||||
onLongClick = { onLongClickItem(5) },
|
onLongClick = { onLongClickItem(5) },
|
||||||
onClick = onDownloadClicked,
|
onClick = onDownloadClicked,
|
||||||
@@ -167,7 +167,7 @@ fun MangaBottomActionMenu(
|
|||||||
if (onDeleteClicked != null) {
|
if (onDeleteClicked != null) {
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_delete),
|
title = stringResource(MR.strings.action_delete),
|
||||||
icon = Icons.Outlined.Delete,
|
icon = MaterialSymbols.Rounded.Delete,
|
||||||
toConfirm = confirm[6],
|
toConfirm = confirm[6],
|
||||||
onLongClick = { onLongClickItem(6) },
|
onLongClick = { onLongClickItem(6) },
|
||||||
onClick = onDeleteClicked,
|
onClick = onDeleteClicked,
|
||||||
@@ -273,21 +273,21 @@ fun LibraryBottomActionMenu(
|
|||||||
) {
|
) {
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_move_category),
|
title = stringResource(MR.strings.action_move_category),
|
||||||
icon = Icons.AutoMirrored.Outlined.Label,
|
icon = MaterialSymbols.AutoMirroredRounded.Label,
|
||||||
toConfirm = confirm[0],
|
toConfirm = confirm[0],
|
||||||
onLongClick = { onLongClickItem(0) },
|
onLongClick = { onLongClickItem(0) },
|
||||||
onClick = onChangeCategoryClicked,
|
onClick = onChangeCategoryClicked,
|
||||||
)
|
)
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_mark_as_read),
|
title = stringResource(MR.strings.action_mark_as_read),
|
||||||
icon = Icons.Outlined.DoneAll,
|
icon = MaterialSymbols.Rounded.DoneAll,
|
||||||
toConfirm = confirm[1],
|
toConfirm = confirm[1],
|
||||||
onLongClick = { onLongClickItem(1) },
|
onLongClick = { onLongClickItem(1) },
|
||||||
onClick = onMarkAsReadClicked,
|
onClick = onMarkAsReadClicked,
|
||||||
)
|
)
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_mark_as_unread),
|
title = stringResource(MR.strings.action_mark_as_unread),
|
||||||
icon = Icons.Outlined.RemoveDone,
|
icon = MaterialSymbols.Rounded.RemoveDone,
|
||||||
toConfirm = confirm[2],
|
toConfirm = confirm[2],
|
||||||
onLongClick = { onLongClickItem(2) },
|
onLongClick = { onLongClickItem(2) },
|
||||||
onClick = onMarkAsUnreadClicked,
|
onClick = onMarkAsUnreadClicked,
|
||||||
@@ -296,7 +296,7 @@ fun LibraryBottomActionMenu(
|
|||||||
var downloadExpanded by remember { mutableStateOf(false) }
|
var downloadExpanded by remember { mutableStateOf(false) }
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_download),
|
title = stringResource(MR.strings.action_download),
|
||||||
icon = Icons.Outlined.Download,
|
icon = MaterialSymbols.Rounded.Download,
|
||||||
toConfirm = confirm[3],
|
toConfirm = confirm[3],
|
||||||
onLongClick = { onLongClickItem(3) },
|
onLongClick = { onLongClickItem(3) },
|
||||||
onClick = { downloadExpanded = !downloadExpanded },
|
onClick = { downloadExpanded = !downloadExpanded },
|
||||||
@@ -312,14 +312,14 @@ fun LibraryBottomActionMenu(
|
|||||||
if (!itemOverflow) {
|
if (!itemOverflow) {
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.migrate),
|
title = stringResource(MR.strings.migrate),
|
||||||
icon = Icons.Outlined.SwapCalls,
|
icon = MaterialSymbols.Rounded.SwapCalls,
|
||||||
toConfirm = confirm[4],
|
toConfirm = confirm[4],
|
||||||
onLongClick = { onLongClickItem(4) },
|
onLongClick = { onLongClickItem(4) },
|
||||||
onClick = onMigrateClicked,
|
onClick = onMigrateClicked,
|
||||||
)
|
)
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.action_delete),
|
title = stringResource(MR.strings.action_delete),
|
||||||
icon = Icons.Outlined.Delete,
|
icon = MaterialSymbols.Rounded.Delete,
|
||||||
toConfirm = confirm[5],
|
toConfirm = confirm[5],
|
||||||
onLongClick = { onLongClickItem(5) },
|
onLongClick = { onLongClickItem(5) },
|
||||||
onClick = onDeleteClicked,
|
onClick = onDeleteClicked,
|
||||||
@@ -328,7 +328,7 @@ fun LibraryBottomActionMenu(
|
|||||||
var overflowMenuOpen by remember { mutableStateOf(false) }
|
var overflowMenuOpen by remember { mutableStateOf(false) }
|
||||||
Button(
|
Button(
|
||||||
title = stringResource(MR.strings.label_more),
|
title = stringResource(MR.strings.label_more),
|
||||||
icon = Icons.Outlined.MoreVert,
|
icon = MaterialSymbols.Rounded.MoreVert,
|
||||||
toConfirm = false,
|
toConfirm = false,
|
||||||
onLongClick = {},
|
onLongClick = {},
|
||||||
onClick = { overflowMenuOpen = true },
|
onClick = { overflowMenuOpen = true },
|
||||||
|
|||||||
@@ -7,16 +7,6 @@ import androidx.compose.foundation.layout.Row
|
|||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.sizeIn
|
import androidx.compose.foundation.layout.sizeIn
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Bookmark
|
|
||||||
import androidx.compose.material.icons.filled.Circle
|
|
||||||
import androidx.compose.material.icons.outlined.BookmarkAdd
|
|
||||||
import androidx.compose.material.icons.outlined.BookmarkRemove
|
|
||||||
import androidx.compose.material.icons.outlined.Delete
|
|
||||||
import androidx.compose.material.icons.outlined.Done
|
|
||||||
import androidx.compose.material.icons.outlined.Download
|
|
||||||
import androidx.compose.material.icons.outlined.FileDownloadOff
|
|
||||||
import androidx.compose.material.icons.outlined.RemoveDone
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -38,6 +28,16 @@ import androidx.compose.ui.text.style.TextOverflow
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
import me.saket.swipe.SwipeableActionsBox
|
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.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
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.Bookmark
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.Circle
|
||||||
import tachiyomi.domain.library.service.LibraryPreferences
|
import tachiyomi.domain.library.service.LibraryPreferences
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.DISABLED_ALPHA
|
import tachiyomi.presentation.core.components.material.DISABLED_ALPHA
|
||||||
@@ -109,7 +109,7 @@ fun MangaChapterListItem(
|
|||||||
var textHeight by remember { mutableIntStateOf(0) }
|
var textHeight by remember { mutableIntStateOf(0) }
|
||||||
if (!read) {
|
if (!read) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.Circle,
|
imageVector = MaterialSymbols.RoundedFilled.Circle,
|
||||||
contentDescription = stringResource(MR.strings.unread),
|
contentDescription = stringResource(MR.strings.unread),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.height(8.dp)
|
.height(8.dp)
|
||||||
@@ -119,7 +119,7 @@ fun MangaChapterListItem(
|
|||||||
}
|
}
|
||||||
if (bookmark) {
|
if (bookmark) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.Bookmark,
|
imageVector = MaterialSymbols.RoundedFilled.Bookmark,
|
||||||
contentDescription = stringResource(MR.strings.action_filter_bookmarked),
|
contentDescription = stringResource(MR.strings.action_filter_bookmarked),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.sizeIn(maxHeight = with(LocalDensity.current) { textHeight.toDp() - 2.dp }),
|
.sizeIn(maxHeight = with(LocalDensity.current) { textHeight.toDp() - 2.dp }),
|
||||||
@@ -192,22 +192,22 @@ private fun getSwipeAction(
|
|||||||
): me.saket.swipe.SwipeAction? {
|
): me.saket.swipe.SwipeAction? {
|
||||||
return when (action) {
|
return when (action) {
|
||||||
LibraryPreferences.ChapterSwipeAction.ToggleRead -> swipeAction(
|
LibraryPreferences.ChapterSwipeAction.ToggleRead -> swipeAction(
|
||||||
icon = if (!read) Icons.Outlined.Done else Icons.Outlined.RemoveDone,
|
icon = if (!read) MaterialSymbols.Rounded.Done else MaterialSymbols.Rounded.RemoveDone,
|
||||||
background = background,
|
background = background,
|
||||||
isUndo = read,
|
isUndo = read,
|
||||||
onSwipe = onSwipe,
|
onSwipe = onSwipe,
|
||||||
)
|
)
|
||||||
LibraryPreferences.ChapterSwipeAction.ToggleBookmark -> swipeAction(
|
LibraryPreferences.ChapterSwipeAction.ToggleBookmark -> swipeAction(
|
||||||
icon = if (!bookmark) Icons.Outlined.BookmarkAdd else Icons.Outlined.BookmarkRemove,
|
icon = if (!bookmark) MaterialSymbols.Rounded.BookmarkAdd else MaterialSymbols.Rounded.BookmarkRemove,
|
||||||
background = background,
|
background = background,
|
||||||
isUndo = bookmark,
|
isUndo = bookmark,
|
||||||
onSwipe = onSwipe,
|
onSwipe = onSwipe,
|
||||||
)
|
)
|
||||||
LibraryPreferences.ChapterSwipeAction.Download -> swipeAction(
|
LibraryPreferences.ChapterSwipeAction.Download -> swipeAction(
|
||||||
icon = when (downloadState) {
|
icon = when (downloadState) {
|
||||||
Download.State.NOT_DOWNLOADED, Download.State.ERROR -> Icons.Outlined.Download
|
Download.State.NOT_DOWNLOADED, Download.State.ERROR -> MaterialSymbols.Rounded.Download
|
||||||
Download.State.QUEUE, Download.State.DOWNLOADING -> Icons.Outlined.FileDownloadOff
|
Download.State.QUEUE, Download.State.DOWNLOADING -> MaterialSymbols.Rounded.FileDownloadOff
|
||||||
Download.State.DOWNLOADED -> Icons.Outlined.Delete
|
Download.State.DOWNLOADED -> MaterialSymbols.Rounded.Delete
|
||||||
},
|
},
|
||||||
background = background,
|
background = background,
|
||||||
onSwipe = onSwipe,
|
onSwipe = onSwipe,
|
||||||
|
|||||||
@@ -10,11 +10,6 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.navigationBarsPadding
|
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Close
|
|
||||||
import androidx.compose.material.icons.outlined.Edit
|
|
||||||
import androidx.compose.material.icons.outlined.Save
|
|
||||||
import androidx.compose.material.icons.outlined.Share
|
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -61,6 +56,11 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView
|
|||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Close
|
||||||
|
import mihon.icons.materialsymbols.rounded.Edit
|
||||||
|
import mihon.icons.materialsymbols.rounded.Save
|
||||||
|
import mihon.icons.materialsymbols.rounded.Share
|
||||||
import tachiyomi.domain.manga.model.Manga
|
import tachiyomi.domain.manga.model.Manga
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
@@ -100,7 +100,7 @@ fun MangaCoverDialog(
|
|||||||
ActionsPill {
|
ActionsPill {
|
||||||
IconButton(onClick = onDismissRequest) {
|
IconButton(onClick = onDismissRequest) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Close,
|
imageVector = MaterialSymbols.Rounded.Close,
|
||||||
contentDescription = stringResource(MR.strings.action_close),
|
contentDescription = stringResource(MR.strings.action_close),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -111,12 +111,12 @@ fun MangaCoverDialog(
|
|||||||
actions = listOf(
|
actions = listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_share),
|
title = stringResource(MR.strings.action_share),
|
||||||
icon = Icons.Outlined.Share,
|
icon = MaterialSymbols.Rounded.Share,
|
||||||
onClick = onShareClick,
|
onClick = onShareClick,
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_save),
|
title = stringResource(MR.strings.action_save),
|
||||||
icon = Icons.Outlined.Save,
|
icon = MaterialSymbols.Rounded.Save,
|
||||||
onClick = onSaveClick,
|
onClick = onSaveClick,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -134,7 +134,7 @@ fun MangaCoverDialog(
|
|||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Edit,
|
imageVector = MaterialSymbols.Rounded.Edit,
|
||||||
contentDescription = stringResource(MR.strings.action_edit_cover),
|
contentDescription = stringResource(MR.strings.action_edit_cover),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,22 +25,6 @@ import androidx.compose.foundation.lazy.LazyRow
|
|||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.foundation.text.appendInlineContent
|
import androidx.compose.foundation.text.appendInlineContent
|
||||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Brush
|
|
||||||
import androidx.compose.material.icons.filled.Favorite
|
|
||||||
import androidx.compose.material.icons.filled.HourglassEmpty
|
|
||||||
import androidx.compose.material.icons.filled.PersonOutline
|
|
||||||
import androidx.compose.material.icons.filled.Warning
|
|
||||||
import androidx.compose.material.icons.outlined.AttachMoney
|
|
||||||
import androidx.compose.material.icons.outlined.Block
|
|
||||||
import androidx.compose.material.icons.outlined.Close
|
|
||||||
import androidx.compose.material.icons.outlined.Done
|
|
||||||
import androidx.compose.material.icons.outlined.DoneAll
|
|
||||||
import androidx.compose.material.icons.outlined.FavoriteBorder
|
|
||||||
import androidx.compose.material.icons.outlined.Pause
|
|
||||||
import androidx.compose.material.icons.outlined.Public
|
|
||||||
import androidx.compose.material.icons.outlined.Schedule
|
|
||||||
import androidx.compose.material.icons.outlined.Sync
|
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
@@ -93,6 +77,22 @@ import eu.kanade.tachiyomi.util.system.copyToClipboard
|
|||||||
import kotlinx.datetime.TimeZone
|
import kotlinx.datetime.TimeZone
|
||||||
import kotlinx.datetime.daysUntil
|
import kotlinx.datetime.daysUntil
|
||||||
import mihon.app.di.appGraph
|
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.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.Favorite
|
||||||
import org.intellij.markdown.MarkdownElementTypes
|
import org.intellij.markdown.MarkdownElementTypes
|
||||||
import org.intellij.markdown.MarkdownTokenTypes
|
import org.intellij.markdown.MarkdownTokenTypes
|
||||||
import org.intellij.markdown.ast.findChildOfType
|
import org.intellij.markdown.ast.findChildOfType
|
||||||
@@ -203,7 +203,7 @@ fun MangaActionRow(
|
|||||||
} else {
|
} else {
|
||||||
stringResource(MR.strings.add_to_library)
|
stringResource(MR.strings.add_to_library)
|
||||||
},
|
},
|
||||||
icon = if (favorite) Icons.Filled.Favorite else Icons.Outlined.FavoriteBorder,
|
icon = if (favorite) MaterialSymbols.RoundedFilled.Favorite else MaterialSymbols.Rounded.Favorite,
|
||||||
color = if (favorite) MaterialTheme.colorScheme.primary else defaultActionButtonColor,
|
color = if (favorite) MaterialTheme.colorScheme.primary else defaultActionButtonColor,
|
||||||
onClick = onAddToLibraryClicked,
|
onClick = onAddToLibraryClicked,
|
||||||
onLongClick = onEditCategory,
|
onLongClick = onEditCategory,
|
||||||
@@ -218,7 +218,7 @@ fun MangaActionRow(
|
|||||||
nextUpdateDays,
|
nextUpdateDays,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
icon = Icons.Default.HourglassEmpty,
|
icon = MaterialSymbols.Rounded.HourglassEmpty,
|
||||||
color = if (isUserIntervalMode) MaterialTheme.colorScheme.primary else defaultActionButtonColor,
|
color = if (isUserIntervalMode) MaterialTheme.colorScheme.primary else defaultActionButtonColor,
|
||||||
onClick = { onEditIntervalClicked?.invoke() },
|
onClick = { onEditIntervalClicked?.invoke() },
|
||||||
)
|
)
|
||||||
@@ -228,14 +228,14 @@ fun MangaActionRow(
|
|||||||
} else {
|
} else {
|
||||||
pluralStringResource(MR.plurals.num_trackers, count = trackingCount, trackingCount)
|
pluralStringResource(MR.plurals.num_trackers, count = trackingCount, trackingCount)
|
||||||
},
|
},
|
||||||
icon = if (trackingCount == 0) Icons.Outlined.Sync else Icons.Outlined.Done,
|
icon = if (trackingCount == 0) MaterialSymbols.Rounded.Sync else MaterialSymbols.Rounded.Done,
|
||||||
color = if (trackingCount == 0) defaultActionButtonColor else MaterialTheme.colorScheme.primary,
|
color = if (trackingCount == 0) defaultActionButtonColor else MaterialTheme.colorScheme.primary,
|
||||||
onClick = onTrackingClicked,
|
onClick = onTrackingClicked,
|
||||||
)
|
)
|
||||||
if (onWebViewClicked != null) {
|
if (onWebViewClicked != null) {
|
||||||
MangaActionButton(
|
MangaActionButton(
|
||||||
title = stringResource(MR.strings.action_web_view),
|
title = stringResource(MR.strings.action_web_view),
|
||||||
icon = Icons.Outlined.Public,
|
icon = MaterialSymbols.Rounded.Public,
|
||||||
color = defaultActionButtonColor,
|
color = defaultActionButtonColor,
|
||||||
onClick = onWebViewClicked,
|
onClick = onWebViewClicked,
|
||||||
onLongClick = onWebViewLongClicked,
|
onLongClick = onWebViewLongClicked,
|
||||||
@@ -458,7 +458,7 @@ private fun ColumnScope.MangaContentInfo(
|
|||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.PersonOutline,
|
imageVector = MaterialSymbols.Rounded.Person,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier.size(16.dp),
|
modifier = Modifier.size(16.dp),
|
||||||
)
|
)
|
||||||
@@ -489,7 +489,7 @@ private fun ColumnScope.MangaContentInfo(
|
|||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.Brush,
|
imageVector = MaterialSymbols.Rounded.Brush,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier.size(16.dp),
|
modifier = Modifier.size(16.dp),
|
||||||
)
|
)
|
||||||
@@ -514,13 +514,13 @@ private fun ColumnScope.MangaContentInfo(
|
|||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = when (status) {
|
imageVector = when (status) {
|
||||||
SManga.ONGOING.toLong() -> Icons.Outlined.Schedule
|
SManga.ONGOING.toLong() -> MaterialSymbols.Rounded.Schedule
|
||||||
SManga.COMPLETED.toLong() -> Icons.Outlined.DoneAll
|
SManga.COMPLETED.toLong() -> MaterialSymbols.Rounded.DoneAll
|
||||||
SManga.LICENSED.toLong() -> Icons.Outlined.AttachMoney
|
SManga.LICENSED.toLong() -> MaterialSymbols.Rounded.AttachMoney
|
||||||
SManga.PUBLISHING_FINISHED.toLong() -> Icons.Outlined.Done
|
SManga.PUBLISHING_FINISHED.toLong() -> MaterialSymbols.Rounded.Done
|
||||||
SManga.CANCELLED.toLong() -> Icons.Outlined.Close
|
SManga.CANCELLED.toLong() -> MaterialSymbols.Rounded.Close
|
||||||
SManga.ON_HIATUS.toLong() -> Icons.Outlined.Pause
|
SManga.ON_HIATUS.toLong() -> MaterialSymbols.Rounded.Pause
|
||||||
else -> Icons.Outlined.Block
|
else -> MaterialSymbols.Rounded.Block
|
||||||
},
|
},
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
@@ -544,7 +544,7 @@ private fun ColumnScope.MangaContentInfo(
|
|||||||
DotSeparatorText()
|
DotSeparatorText()
|
||||||
if (isStubSource) {
|
if (isStubSource) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.Warning,
|
imageVector = MaterialSymbols.Rounded.Warning,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(end = 4.dp)
|
.padding(end = 4.dp)
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.EditNote
|
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -19,6 +17,8 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.EditNote
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Button
|
import tachiyomi.presentation.core.components.material.Button
|
||||||
import tachiyomi.presentation.core.components.material.ButtonDefaults
|
import tachiyomi.presentation.core.components.material.ButtonDefaults
|
||||||
@@ -57,7 +57,7 @@ fun MangaNotesSection(
|
|||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.EditNote,
|
imageVector = MaterialSymbols.Rounded.EditNote,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(16.dp),
|
.size(16.dp),
|
||||||
|
|||||||
@@ -12,12 +12,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyRow
|
import androidx.compose.foundation.lazy.LazyRow
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.FormatListBulleted
|
|
||||||
import androidx.compose.material.icons.outlined.FormatBold
|
|
||||||
import androidx.compose.material.icons.outlined.FormatItalic
|
|
||||||
import androidx.compose.material.icons.outlined.FormatListNumbered
|
|
||||||
import androidx.compose.material.icons.outlined.FormatUnderlined
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
@@ -50,6 +44,12 @@ import kotlinx.coroutines.flow.distinctUntilChanged
|
|||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.FormatListBulleted
|
||||||
|
import mihon.icons.materialsymbols.rounded.FormatBold
|
||||||
|
import mihon.icons.materialsymbols.rounded.FormatItalic
|
||||||
|
import mihon.icons.materialsymbols.rounded.FormatListNumbered
|
||||||
|
import mihon.icons.materialsymbols.rounded.FormatUnderlined
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -130,14 +130,14 @@ fun MangaNotesTextArea(
|
|||||||
MangaNotesTextAreaButton(
|
MangaNotesTextAreaButton(
|
||||||
onClick = { richTextState.toggleSpanStyle(SpanStyle(fontWeight = FontWeight.Bold)) },
|
onClick = { richTextState.toggleSpanStyle(SpanStyle(fontWeight = FontWeight.Bold)) },
|
||||||
isSelected = richTextState.currentSpanStyle.fontWeight == FontWeight.Bold,
|
isSelected = richTextState.currentSpanStyle.fontWeight == FontWeight.Bold,
|
||||||
icon = Icons.Outlined.FormatBold,
|
icon = MaterialSymbols.Rounded.FormatBold,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
MangaNotesTextAreaButton(
|
MangaNotesTextAreaButton(
|
||||||
onClick = { richTextState.toggleSpanStyle(SpanStyle(fontStyle = FontStyle.Italic)) },
|
onClick = { richTextState.toggleSpanStyle(SpanStyle(fontStyle = FontStyle.Italic)) },
|
||||||
isSelected = richTextState.currentSpanStyle.fontStyle == FontStyle.Italic,
|
isSelected = richTextState.currentSpanStyle.fontStyle == FontStyle.Italic,
|
||||||
icon = Icons.Outlined.FormatItalic,
|
icon = MaterialSymbols.Rounded.FormatItalic,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
@@ -148,7 +148,7 @@ fun MangaNotesTextArea(
|
|||||||
isSelected = richTextState.currentSpanStyle.textDecoration
|
isSelected = richTextState.currentSpanStyle.textDecoration
|
||||||
?.contains(TextDecoration.Underline)
|
?.contains(TextDecoration.Underline)
|
||||||
?: false,
|
?: false,
|
||||||
icon = Icons.Outlined.FormatUnderlined,
|
icon = MaterialSymbols.Rounded.FormatUnderlined,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
@@ -162,14 +162,14 @@ fun MangaNotesTextArea(
|
|||||||
MangaNotesTextAreaButton(
|
MangaNotesTextAreaButton(
|
||||||
onClick = { richTextState.toggleUnorderedList() },
|
onClick = { richTextState.toggleUnorderedList() },
|
||||||
isSelected = richTextState.isUnorderedList,
|
isSelected = richTextState.isUnorderedList,
|
||||||
icon = Icons.AutoMirrored.Outlined.FormatListBulleted,
|
icon = MaterialSymbols.AutoMirroredRounded.FormatListBulleted,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
MangaNotesTextAreaButton(
|
MangaNotesTextAreaButton(
|
||||||
onClick = { richTextState.toggleOrderedList() },
|
onClick = { richTextState.toggleOrderedList() },
|
||||||
isSelected = richTextState.isOrderedList,
|
isSelected = richTextState.isOrderedList,
|
||||||
icon = Icons.Outlined.FormatListNumbered,
|
icon = MaterialSymbols.Rounded.FormatListNumbered,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
package eu.kanade.presentation.manga.components
|
package eu.kanade.presentation.manga.components
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Download
|
|
||||||
import androidx.compose.material.icons.outlined.FilterList
|
|
||||||
import androidx.compose.material.icons.outlined.FlipToBack
|
|
||||||
import androidx.compose.material.icons.outlined.SelectAll
|
|
||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.surfaceColorAtElevation
|
import androidx.compose.material3.surfaceColorAtElevation
|
||||||
@@ -21,6 +16,11 @@ import eu.kanade.presentation.components.AppBarActions
|
|||||||
import eu.kanade.presentation.components.AppBarTitle
|
import eu.kanade.presentation.components.AppBarTitle
|
||||||
import eu.kanade.presentation.components.DownloadDropdownMenu
|
import eu.kanade.presentation.components.DownloadDropdownMenu
|
||||||
import eu.kanade.presentation.manga.DownloadAction
|
import eu.kanade.presentation.manga.DownloadAction
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Download
|
||||||
|
import mihon.icons.materialsymbols.rounded.FilterList
|
||||||
|
import mihon.icons.materialsymbols.rounded.FlipToBack
|
||||||
|
import mihon.icons.materialsymbols.rounded.SelectAll
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import tachiyomi.presentation.core.theme.active
|
import tachiyomi.presentation.core.theme.active
|
||||||
@@ -80,14 +80,14 @@ fun MangaToolbar(
|
|||||||
add(
|
add(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_select_all),
|
title = stringResource(MR.strings.action_select_all),
|
||||||
icon = Icons.Outlined.SelectAll,
|
icon = MaterialSymbols.Rounded.SelectAll,
|
||||||
onClick = onSelectAll,
|
onClick = onSelectAll,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
add(
|
add(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_select_inverse),
|
title = stringResource(MR.strings.action_select_inverse),
|
||||||
icon = Icons.Outlined.FlipToBack,
|
icon = MaterialSymbols.Rounded.FlipToBack,
|
||||||
onClick = onInvertSelection,
|
onClick = onInvertSelection,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@@ -97,7 +97,7 @@ fun MangaToolbar(
|
|||||||
add(
|
add(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.manga_download),
|
title = stringResource(MR.strings.manga_download),
|
||||||
icon = Icons.Outlined.Download,
|
icon = MaterialSymbols.Rounded.Download,
|
||||||
onClick = { downloadExpanded = !downloadExpanded },
|
onClick = { downloadExpanded = !downloadExpanded },
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@@ -105,7 +105,7 @@ fun MangaToolbar(
|
|||||||
add(
|
add(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_filter),
|
title = stringResource(MR.strings.action_filter),
|
||||||
icon = Icons.Outlined.FilterList,
|
icon = MaterialSymbols.Rounded.FilterList,
|
||||||
iconTint = filterTint,
|
iconTint = filterTint,
|
||||||
onClick = onClickFilter,
|
onClick = onClickFilter,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ import androidx.compose.foundation.layout.PaddingValues
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.text.InlineTextContent
|
import androidx.compose.foundation.text.InlineTextContent
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Image
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -46,6 +44,8 @@ import com.mikepenz.markdown.model.MarkdownTypography
|
|||||||
import com.mikepenz.markdown.model.NoOpImageTransformerImpl
|
import com.mikepenz.markdown.model.NoOpImageTransformerImpl
|
||||||
import com.mikepenz.markdown.model.markdownAnnotator
|
import com.mikepenz.markdown.model.markdownAnnotator
|
||||||
import com.mikepenz.markdown.model.rememberMarkdownState
|
import com.mikepenz.markdown.model.rememberMarkdownState
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Image
|
||||||
import org.intellij.markdown.MarkdownTokenTypes.Companion.HTML_TAG
|
import org.intellij.markdown.MarkdownTokenTypes.Companion.HTML_TAG
|
||||||
import org.intellij.markdown.flavours.MarkdownFlavourDescriptor
|
import org.intellij.markdown.flavours.MarkdownFlavourDescriptor
|
||||||
import org.intellij.markdown.flavours.commonmark.CommonMarkFlavourDescriptor
|
import org.intellij.markdown.flavours.commonmark.CommonMarkFlavourDescriptor
|
||||||
@@ -241,7 +241,7 @@ private fun getMarkdownInlineContent() = DefaultMarkdownInlineContent(
|
|||||||
),
|
),
|
||||||
children = {
|
children = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Image,
|
imageVector = MaterialSymbols.Rounded.Image,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -9,9 +9,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.rounded.CheckBoxOutlineBlank
|
|
||||||
import androidx.compose.material.icons.rounded.DisabledByDefault
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -27,6 +24,9 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.window.DialogProperties
|
import androidx.compose.ui.window.DialogProperties
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.CheckBoxOutlineBlank
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.DisabledByDefault
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.TextButton
|
import tachiyomi.presentation.core.components.material.TextButton
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
@@ -74,9 +74,9 @@ fun ScanlatorFilterDialog(
|
|||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = if (isExcluded) {
|
imageVector = if (isExcluded) {
|
||||||
Icons.Rounded.DisabledByDefault
|
MaterialSymbols.RoundedFilled.DisabledByDefault
|
||||||
} else {
|
} else {
|
||||||
Icons.Rounded.CheckBoxOutlineBlank
|
MaterialSymbols.Rounded.CheckBoxOutlineBlank
|
||||||
},
|
},
|
||||||
tint = if (isExcluded) {
|
tint = if (isExcluded) {
|
||||||
MaterialTheme.colorScheme.primary
|
MaterialTheme.colorScheme.primary
|
||||||
|
|||||||
@@ -1,16 +1,6 @@
|
|||||||
package eu.kanade.presentation.more
|
package eu.kanade.presentation.more
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.Label
|
|
||||||
import androidx.compose.material.icons.filled.VolunteerActivism
|
|
||||||
import androidx.compose.material.icons.outlined.CloudOff
|
|
||||||
import androidx.compose.material.icons.outlined.GetApp
|
|
||||||
import androidx.compose.material.icons.outlined.Info
|
|
||||||
import androidx.compose.material.icons.outlined.QueryStats
|
|
||||||
import androidx.compose.material.icons.outlined.Settings
|
|
||||||
import androidx.compose.material.icons.outlined.Storage
|
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
@@ -21,6 +11,16 @@ import eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget
|
|||||||
import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.ui.more.DownloadQueueState
|
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.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 tachiyomi.core.common.Constants
|
import tachiyomi.core.common.Constants
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
||||||
@@ -56,7 +56,7 @@ fun MoreScreen(
|
|||||||
SwitchPreferenceWidget(
|
SwitchPreferenceWidget(
|
||||||
title = stringResource(MR.strings.label_downloaded_only),
|
title = stringResource(MR.strings.label_downloaded_only),
|
||||||
subtitle = stringResource(MR.strings.downloaded_only_summary),
|
subtitle = stringResource(MR.strings.downloaded_only_summary),
|
||||||
icon = Icons.Outlined.CloudOff,
|
icon = MaterialSymbols.Rounded.CloudOff,
|
||||||
checked = downloadedOnly,
|
checked = downloadedOnly,
|
||||||
onCheckedChanged = onDownloadedOnlyChange,
|
onCheckedChanged = onDownloadedOnlyChange,
|
||||||
)
|
)
|
||||||
@@ -98,28 +98,28 @@ fun MoreScreen(
|
|||||||
pluralStringResource(MR.plurals.download_queue_summary, count = pending, pending)
|
pluralStringResource(MR.plurals.download_queue_summary, count = pending, pending)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
icon = Icons.Outlined.GetApp,
|
icon = MaterialSymbols.Rounded.Download,
|
||||||
onPreferenceClick = onClickDownloadQueue,
|
onPreferenceClick = onClickDownloadQueue,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
title = stringResource(MR.strings.categories),
|
title = stringResource(MR.strings.categories),
|
||||||
icon = Icons.AutoMirrored.Outlined.Label,
|
icon = MaterialSymbols.AutoMirroredRounded.Label,
|
||||||
onPreferenceClick = onClickCategories,
|
onPreferenceClick = onClickCategories,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
title = stringResource(MR.strings.label_stats),
|
title = stringResource(MR.strings.label_stats),
|
||||||
icon = Icons.Outlined.QueryStats,
|
icon = MaterialSymbols.Rounded.QueryStats,
|
||||||
onPreferenceClick = onClickStats,
|
onPreferenceClick = onClickStats,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
title = stringResource(MR.strings.label_data_storage),
|
title = stringResource(MR.strings.label_data_storage),
|
||||||
icon = Icons.Outlined.Storage,
|
icon = MaterialSymbols.Rounded.Storage,
|
||||||
onPreferenceClick = onClickDataAndStorage,
|
onPreferenceClick = onClickDataAndStorage,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -129,28 +129,28 @@ fun MoreScreen(
|
|||||||
item {
|
item {
|
||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
title = stringResource(MR.strings.label_settings),
|
title = stringResource(MR.strings.label_settings),
|
||||||
icon = Icons.Outlined.Settings,
|
icon = MaterialSymbols.Rounded.Settings,
|
||||||
onPreferenceClick = onClickSettings,
|
onPreferenceClick = onClickSettings,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
title = stringResource(MR.strings.label_support_us),
|
title = stringResource(MR.strings.label_support_us),
|
||||||
icon = Icons.Default.VolunteerActivism,
|
icon = MaterialSymbols.Rounded.VolunteerActivism,
|
||||||
onPreferenceClick = onClickSupport,
|
onPreferenceClick = onClickSupport,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
title = stringResource(MR.strings.pref_category_about),
|
title = stringResource(MR.strings.pref_category_about),
|
||||||
icon = Icons.Outlined.Info,
|
icon = MaterialSymbols.Rounded.Info,
|
||||||
onPreferenceClick = onClickAbout,
|
onPreferenceClick = onClickAbout,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
item {
|
item {
|
||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
title = stringResource(MR.strings.label_help),
|
title = stringResource(MR.strings.label_help),
|
||||||
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
icon = MaterialSymbols.AutoMirroredRounded.Help,
|
||||||
onPreferenceClick = { uriHandler.openUri(Constants.URL_HELP) },
|
onPreferenceClick = { uriHandler.openUri(Constants.URL_HELP) },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ import androidx.compose.foundation.layout.Spacer
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.OpenInNew
|
|
||||||
import androidx.compose.material.icons.outlined.NewReleases
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
@@ -19,6 +16,9 @@ import androidx.compose.ui.tooling.preview.PreviewLightDark
|
|||||||
import eu.kanade.presentation.manga.components.MarkdownRender
|
import eu.kanade.presentation.manga.components.MarkdownRender
|
||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
import eu.kanade.tachiyomi.ui.more.NewUpdateScreenModel
|
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 org.intellij.markdown.flavours.gfm.GFMFlavourDescriptor
|
import org.intellij.markdown.flavours.gfm.GFMFlavourDescriptor
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
@@ -36,7 +36,7 @@ fun NewUpdateScreen(
|
|||||||
onRejectUpdate: () -> Unit,
|
onRejectUpdate: () -> Unit,
|
||||||
) {
|
) {
|
||||||
InfoScreen(
|
InfoScreen(
|
||||||
icon = Icons.Outlined.NewReleases,
|
icon = MaterialSymbols.Rounded.NewReleases,
|
||||||
headingText = stringResource(MR.strings.update_check_notification_update_available),
|
headingText = stringResource(MR.strings.update_check_notification_update_available),
|
||||||
subtitleText = versionName,
|
subtitleText = versionName,
|
||||||
acceptText = when (stage) {
|
acceptText = when (stage) {
|
||||||
@@ -69,7 +69,7 @@ fun NewUpdateScreen(
|
|||||||
) {
|
) {
|
||||||
Text(text = stringResource(MR.strings.update_check_open))
|
Text(text = stringResource(MR.strings.update_check_open))
|
||||||
Spacer(modifier = Modifier.width(MaterialTheme.padding.extraSmall))
|
Spacer(modifier = Modifier.width(MaterialTheme.padding.extraSmall))
|
||||||
Icon(imageVector = Icons.AutoMirrored.Outlined.OpenInNew, contentDescription = null)
|
Icon(imageVector = MaterialSymbols.AutoMirroredRounded.OpenInNew, contentDescription = null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import androidx.compose.foundation.background
|
|||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.RocketLaunch
|
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
@@ -17,6 +15,8 @@ import androidx.compose.runtime.saveable.rememberSaveable
|
|||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.RocketLaunch
|
||||||
import soup.compose.material.motion.animation.materialSharedAxisX
|
import soup.compose.material.motion.animation.materialSharedAxisX
|
||||||
import soup.compose.material.motion.animation.rememberSlideDistance
|
import soup.compose.material.motion.animation.rememberSlideDistance
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
@@ -47,7 +47,7 @@ fun OnboardingScreen(
|
|||||||
}
|
}
|
||||||
|
|
||||||
InfoScreen(
|
InfoScreen(
|
||||||
icon = Icons.Outlined.RocketLaunch,
|
icon = MaterialSymbols.Rounded.RocketLaunch,
|
||||||
headingText = stringResource(MR.strings.onboarding_heading),
|
headingText = stringResource(MR.strings.onboarding_heading),
|
||||||
subtitleText = stringResource(MR.strings.onboarding_description),
|
subtitleText = stringResource(MR.strings.onboarding_description),
|
||||||
acceptText = stringResource(
|
acceptText = stringResource(
|
||||||
|
|||||||
@@ -11,8 +11,6 @@ import androidx.activity.compose.rememberLauncherForActivityResult
|
|||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Check
|
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.ListItem
|
import androidx.compose.material3.ListItem
|
||||||
@@ -40,6 +38,8 @@ import eu.kanade.presentation.util.rememberRequestPackageInstallsPermissionState
|
|||||||
import eu.kanade.tachiyomi.util.system.launchRequestPackageInstallsPermission
|
import eu.kanade.tachiyomi.util.system.launchRequestPackageInstallsPermission
|
||||||
import eu.kanade.tachiyomi.util.system.telemetryIncluded
|
import eu.kanade.tachiyomi.util.system.telemetryIncluded
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Check
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import tachiyomi.presentation.core.util.collectAsState
|
import tachiyomi.presentation.core.util.collectAsState
|
||||||
@@ -175,7 +175,7 @@ internal class PermissionStep : OnboardingStep {
|
|||||||
) {
|
) {
|
||||||
if (granted) {
|
if (granted) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Check,
|
imageVector = MaterialSymbols.Rounded.Check,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ import androidx.compose.foundation.layout.fillMaxHeight
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.Checkbox
|
import androidx.compose.material3.Checkbox
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -60,6 +58,8 @@ import kotlinx.coroutines.Dispatchers
|
|||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import logcat.LogPriority
|
import logcat.LogPriority
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.Help
|
||||||
import tachiyomi.core.common.i18n.stringResource
|
import tachiyomi.core.common.i18n.stringResource
|
||||||
import tachiyomi.core.common.storage.displayablePath
|
import tachiyomi.core.common.storage.displayablePath
|
||||||
import tachiyomi.core.common.util.lang.launchNonCancellable
|
import tachiyomi.core.common.util.lang.launchNonCancellable
|
||||||
@@ -87,7 +87,7 @@ object SettingsDataScreen : SearchableSettings {
|
|||||||
val uriHandler = LocalUriHandler.current
|
val uriHandler = LocalUriHandler.current
|
||||||
IconButton(onClick = { uriHandler.openUri(HELP_URL) }) {
|
IconButton(onClick = { uriHandler.openUri(HELP_URL) }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Outlined.HelpOutline,
|
imageVector = MaterialSymbols.AutoMirroredRounded.Help,
|
||||||
contentDescription = stringResource(MR.strings.tracking_guide),
|
contentDescription = stringResource(MR.strings.tracking_guide),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,18 +7,6 @@ import androidx.compose.foundation.lazy.LazyColumn
|
|||||||
import androidx.compose.foundation.lazy.itemsIndexed
|
import androidx.compose.foundation.lazy.itemsIndexed
|
||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ChromeReaderMode
|
|
||||||
import androidx.compose.material.icons.outlined.Code
|
|
||||||
import androidx.compose.material.icons.outlined.CollectionsBookmark
|
|
||||||
import androidx.compose.material.icons.outlined.Explore
|
|
||||||
import androidx.compose.material.icons.outlined.GetApp
|
|
||||||
import androidx.compose.material.icons.outlined.Info
|
|
||||||
import androidx.compose.material.icons.outlined.Palette
|
|
||||||
import androidx.compose.material.icons.outlined.Search
|
|
||||||
import androidx.compose.material.icons.outlined.Security
|
|
||||||
import androidx.compose.material.icons.outlined.Storage
|
|
||||||
import androidx.compose.material.icons.outlined.Sync
|
|
||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.TopAppBarDefaults
|
import androidx.compose.material3.TopAppBarDefaults
|
||||||
@@ -44,6 +32,18 @@ import eu.kanade.presentation.more.settings.screen.about.AboutScreen
|
|||||||
import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
||||||
import eu.kanade.presentation.util.LocalBackPress
|
import eu.kanade.presentation.util.LocalBackPress
|
||||||
import eu.kanade.presentation.util.Screen
|
import eu.kanade.presentation.util.Screen
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ChromeReaderMode
|
||||||
|
import mihon.icons.materialsymbols.rounded.Code
|
||||||
|
import mihon.icons.materialsymbols.rounded.CollectionsBookmark
|
||||||
|
import mihon.icons.materialsymbols.rounded.Download
|
||||||
|
import mihon.icons.materialsymbols.rounded.Explore
|
||||||
|
import mihon.icons.materialsymbols.rounded.Info
|
||||||
|
import mihon.icons.materialsymbols.rounded.Palette
|
||||||
|
import mihon.icons.materialsymbols.rounded.Search
|
||||||
|
import mihon.icons.materialsymbols.rounded.Security
|
||||||
|
import mihon.icons.materialsymbols.rounded.Storage
|
||||||
|
import mihon.icons.materialsymbols.rounded.Sync
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -90,7 +90,7 @@ object SettingsMainScreen : Screen() {
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_search),
|
title = stringResource(MR.strings.action_search),
|
||||||
icon = Icons.Outlined.Search,
|
icon = MaterialSymbols.Rounded.Search,
|
||||||
onClick = { navigator.navigate(SettingsSearchScreen(), twoPane) },
|
onClick = { navigator.navigate(SettingsSearchScreen(), twoPane) },
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -174,55 +174,55 @@ object SettingsMainScreen : Screen() {
|
|||||||
Item(
|
Item(
|
||||||
titleRes = MR.strings.pref_category_appearance,
|
titleRes = MR.strings.pref_category_appearance,
|
||||||
subtitleRes = MR.strings.pref_appearance_summary,
|
subtitleRes = MR.strings.pref_appearance_summary,
|
||||||
icon = Icons.Outlined.Palette,
|
icon = MaterialSymbols.Rounded.Palette,
|
||||||
screen = SettingsAppearanceScreen,
|
screen = SettingsAppearanceScreen,
|
||||||
),
|
),
|
||||||
Item(
|
Item(
|
||||||
titleRes = MR.strings.pref_category_library,
|
titleRes = MR.strings.pref_category_library,
|
||||||
subtitleRes = MR.strings.pref_library_summary,
|
subtitleRes = MR.strings.pref_library_summary,
|
||||||
icon = Icons.Outlined.CollectionsBookmark,
|
icon = MaterialSymbols.Rounded.CollectionsBookmark,
|
||||||
screen = SettingsLibraryScreen,
|
screen = SettingsLibraryScreen,
|
||||||
),
|
),
|
||||||
Item(
|
Item(
|
||||||
titleRes = MR.strings.pref_category_reader,
|
titleRes = MR.strings.pref_category_reader,
|
||||||
subtitleRes = MR.strings.pref_reader_summary,
|
subtitleRes = MR.strings.pref_reader_summary,
|
||||||
icon = Icons.AutoMirrored.Outlined.ChromeReaderMode,
|
icon = MaterialSymbols.AutoMirroredRounded.ChromeReaderMode,
|
||||||
screen = SettingsReaderScreen,
|
screen = SettingsReaderScreen,
|
||||||
),
|
),
|
||||||
Item(
|
Item(
|
||||||
titleRes = MR.strings.pref_category_downloads,
|
titleRes = MR.strings.pref_category_downloads,
|
||||||
subtitleRes = MR.strings.pref_downloads_summary,
|
subtitleRes = MR.strings.pref_downloads_summary,
|
||||||
icon = Icons.Outlined.GetApp,
|
icon = MaterialSymbols.Rounded.Download,
|
||||||
screen = SettingsDownloadScreen,
|
screen = SettingsDownloadScreen,
|
||||||
),
|
),
|
||||||
Item(
|
Item(
|
||||||
titleRes = MR.strings.pref_category_tracking,
|
titleRes = MR.strings.pref_category_tracking,
|
||||||
subtitleRes = MR.strings.pref_tracking_summary,
|
subtitleRes = MR.strings.pref_tracking_summary,
|
||||||
icon = Icons.Outlined.Sync,
|
icon = MaterialSymbols.Rounded.Sync,
|
||||||
screen = SettingsTrackingScreen,
|
screen = SettingsTrackingScreen,
|
||||||
),
|
),
|
||||||
Item(
|
Item(
|
||||||
titleRes = MR.strings.browse,
|
titleRes = MR.strings.browse,
|
||||||
subtitleRes = MR.strings.pref_browse_summary,
|
subtitleRes = MR.strings.pref_browse_summary,
|
||||||
icon = Icons.Outlined.Explore,
|
icon = MaterialSymbols.Rounded.Explore,
|
||||||
screen = SettingsBrowseScreen,
|
screen = SettingsBrowseScreen,
|
||||||
),
|
),
|
||||||
Item(
|
Item(
|
||||||
titleRes = MR.strings.label_data_storage,
|
titleRes = MR.strings.label_data_storage,
|
||||||
subtitleRes = MR.strings.pref_backup_summary,
|
subtitleRes = MR.strings.pref_backup_summary,
|
||||||
icon = Icons.Outlined.Storage,
|
icon = MaterialSymbols.Rounded.Storage,
|
||||||
screen = SettingsDataScreen,
|
screen = SettingsDataScreen,
|
||||||
),
|
),
|
||||||
Item(
|
Item(
|
||||||
titleRes = MR.strings.pref_category_security,
|
titleRes = MR.strings.pref_category_security,
|
||||||
subtitleRes = MR.strings.pref_security_summary,
|
subtitleRes = MR.strings.pref_security_summary,
|
||||||
icon = Icons.Outlined.Security,
|
icon = MaterialSymbols.Rounded.Security,
|
||||||
screen = SettingsSecurityScreen,
|
screen = SettingsSecurityScreen,
|
||||||
),
|
),
|
||||||
Item(
|
Item(
|
||||||
titleRes = MR.strings.pref_category_advanced,
|
titleRes = MR.strings.pref_category_advanced,
|
||||||
subtitleRes = MR.strings.pref_advanced_summary,
|
subtitleRes = MR.strings.pref_advanced_summary,
|
||||||
icon = Icons.Outlined.Code,
|
icon = MaterialSymbols.Rounded.Code,
|
||||||
screen = SettingsAdvancedScreen,
|
screen = SettingsAdvancedScreen,
|
||||||
),
|
),
|
||||||
Item(
|
Item(
|
||||||
@@ -230,7 +230,7 @@ object SettingsMainScreen : Screen() {
|
|||||||
formatSubtitle = {
|
formatSubtitle = {
|
||||||
"${stringResource(MR.strings.app_name)} ${AboutScreen.getVersionName(withBuildDate = false)}"
|
"${stringResource(MR.strings.app_name)} ${AboutScreen.getVersionName(withBuildDate = false)}"
|
||||||
},
|
},
|
||||||
icon = Icons.Outlined.Info,
|
icon = MaterialSymbols.Rounded.Info,
|
||||||
screen = AboutScreen,
|
screen = AboutScreen,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -17,8 +17,6 @@ import androidx.compose.foundation.text.KeyboardOptions
|
|||||||
import androidx.compose.foundation.text.input.TextFieldLineLimits
|
import androidx.compose.foundation.text.input.TextFieldLineLimits
|
||||||
import androidx.compose.foundation.text.input.clearText
|
import androidx.compose.foundation.text.input.clearText
|
||||||
import androidx.compose.foundation.text.input.rememberTextFieldState
|
import androidx.compose.foundation.text.input.rememberTextFieldState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Close
|
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -50,6 +48,8 @@ import cafe.adriel.voyager.navigator.currentOrThrow
|
|||||||
import eu.kanade.presentation.components.UpIcon
|
import eu.kanade.presentation.components.UpIcon
|
||||||
import eu.kanade.presentation.more.settings.Preference
|
import eu.kanade.presentation.more.settings.Preference
|
||||||
import eu.kanade.presentation.util.Screen
|
import eu.kanade.presentation.util.Screen
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Close
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -128,7 +128,7 @@ class SettingsSearchScreen : Screen() {
|
|||||||
if (textFieldState.text.isNotEmpty()) {
|
if (textFieldState.text.isNotEmpty()) {
|
||||||
IconButton(onClick = { textFieldState.clearText() }) {
|
IconButton(onClick = { textFieldState.clearText() }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Close,
|
imageVector = MaterialSymbols.Rounded.Close,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,11 +7,6 @@ import androidx.compose.foundation.layout.Row
|
|||||||
import androidx.compose.foundation.layout.RowScope
|
import androidx.compose.foundation.layout.RowScope
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
|
||||||
import androidx.compose.material.icons.filled.Visibility
|
|
||||||
import androidx.compose.material.icons.filled.VisibilityOff
|
|
||||||
import androidx.compose.material.icons.outlined.Close
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.ButtonDefaults
|
import androidx.compose.material3.ButtonDefaults
|
||||||
@@ -57,6 +52,11 @@ import eu.kanade.tachiyomi.data.track.shikimori.ShikimoriApi
|
|||||||
import eu.kanade.tachiyomi.util.system.openInBrowser
|
import eu.kanade.tachiyomi.util.system.openInBrowser
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import mihon.app.di.appGraph
|
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 tachiyomi.core.common.util.lang.launchIO
|
import tachiyomi.core.common.util.lang.launchIO
|
||||||
import tachiyomi.core.common.util.lang.withUIContext
|
import tachiyomi.core.common.util.lang.withUIContext
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
@@ -74,7 +74,7 @@ object SettingsTrackingScreen : SearchableSettings {
|
|||||||
val uriHandler = LocalUriHandler.current
|
val uriHandler = LocalUriHandler.current
|
||||||
IconButton(onClick = { uriHandler.openUri("https://mihon.app/docs/guides/tracking") }) {
|
IconButton(onClick = { uriHandler.openUri("https://mihon.app/docs/guides/tracking") }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Outlined.HelpOutline,
|
imageVector = MaterialSymbols.AutoMirroredRounded.Help,
|
||||||
contentDescription = stringResource(MR.strings.tracking_guide),
|
contentDescription = stringResource(MR.strings.tracking_guide),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -219,7 +219,7 @@ object SettingsTrackingScreen : SearchableSettings {
|
|||||||
)
|
)
|
||||||
IconButton(onClick = onDismissRequest) {
|
IconButton(onClick = onDismissRequest) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Close,
|
imageVector = MaterialSymbols.Rounded.Close,
|
||||||
contentDescription = stringResource(MR.strings.action_close),
|
contentDescription = stringResource(MR.strings.action_close),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -251,9 +251,9 @@ object SettingsTrackingScreen : SearchableSettings {
|
|||||||
IconButton(onClick = { hidePassword = !hidePassword }) {
|
IconButton(onClick = { hidePassword = !hidePassword }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = if (hidePassword) {
|
imageVector = if (hidePassword) {
|
||||||
Icons.Filled.Visibility
|
MaterialSymbols.Rounded.Visibility
|
||||||
} else {
|
} else {
|
||||||
Icons.Filled.VisibilityOff
|
MaterialSymbols.Rounded.VisibilityOff
|
||||||
},
|
},
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import androidx.compose.foundation.layout.Row
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Public
|
|
||||||
import androidx.compose.material3.CircularProgressIndicator
|
import androidx.compose.material3.CircularProgressIndicator
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
@@ -43,6 +41,14 @@ import kotlinx.datetime.TimeZone
|
|||||||
import kotlinx.datetime.toLocalDateTime
|
import kotlinx.datetime.toLocalDateTime
|
||||||
import logcat.LogPriority
|
import logcat.LogPriority
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Public
|
||||||
|
import mihon.icons.simpleicons.Discord
|
||||||
|
import mihon.icons.simpleicons.Facebook
|
||||||
|
import mihon.icons.simpleicons.Github
|
||||||
|
import mihon.icons.simpleicons.Reddit
|
||||||
|
import mihon.icons.simpleicons.SimpleIcons
|
||||||
|
import mihon.icons.simpleicons.X
|
||||||
import tachiyomi.core.common.Constants
|
import tachiyomi.core.common.Constants
|
||||||
import tachiyomi.core.common.util.lang.withIOContext
|
import tachiyomi.core.common.util.lang.withIOContext
|
||||||
import tachiyomi.core.common.util.lang.withUIContext
|
import tachiyomi.core.common.util.lang.withUIContext
|
||||||
@@ -53,12 +59,6 @@ import tachiyomi.presentation.core.components.LinkIcon
|
|||||||
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import tachiyomi.presentation.core.icons.CustomIcons
|
|
||||||
import tachiyomi.presentation.core.icons.Discord
|
|
||||||
import tachiyomi.presentation.core.icons.Facebook
|
|
||||||
import tachiyomi.presentation.core.icons.Github
|
|
||||||
import tachiyomi.presentation.core.icons.Reddit
|
|
||||||
import tachiyomi.presentation.core.icons.X
|
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
import kotlin.time.Instant
|
import kotlin.time.Instant
|
||||||
@@ -175,32 +175,32 @@ object AboutScreen : Screen() {
|
|||||||
) {
|
) {
|
||||||
LinkIcon(
|
LinkIcon(
|
||||||
label = stringResource(MR.strings.website),
|
label = stringResource(MR.strings.website),
|
||||||
icon = Icons.Outlined.Public,
|
icon = MaterialSymbols.Rounded.Public,
|
||||||
url = "https://mihon.app",
|
url = "https://mihon.app",
|
||||||
)
|
)
|
||||||
LinkIcon(
|
LinkIcon(
|
||||||
label = "Discord",
|
label = "Discord",
|
||||||
icon = CustomIcons.Discord,
|
icon = SimpleIcons.Discord,
|
||||||
url = Constants.URL_DISCORD,
|
url = Constants.URL_DISCORD,
|
||||||
)
|
)
|
||||||
LinkIcon(
|
LinkIcon(
|
||||||
label = "X",
|
label = "X",
|
||||||
icon = CustomIcons.X,
|
icon = SimpleIcons.X,
|
||||||
url = "https://x.com/mihonapp",
|
url = "https://x.com/mihonapp",
|
||||||
)
|
)
|
||||||
LinkIcon(
|
LinkIcon(
|
||||||
label = "Facebook",
|
label = "Facebook",
|
||||||
icon = CustomIcons.Facebook,
|
icon = SimpleIcons.Facebook,
|
||||||
url = "https://facebook.com/mihonapp",
|
url = "https://facebook.com/mihonapp",
|
||||||
)
|
)
|
||||||
LinkIcon(
|
LinkIcon(
|
||||||
label = "Reddit",
|
label = "Reddit",
|
||||||
icon = CustomIcons.Reddit,
|
icon = SimpleIcons.Reddit,
|
||||||
url = "https://www.reddit.com/r/mihonapp",
|
url = "https://www.reddit.com/r/mihonapp",
|
||||||
)
|
)
|
||||||
LinkIcon(
|
LinkIcon(
|
||||||
label = "GitHub",
|
label = "GitHub",
|
||||||
icon = CustomIcons.Github,
|
icon = SimpleIcons.Github,
|
||||||
url = "https://github.com/mihonapp",
|
url = "https://github.com/mihonapp",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,9 +8,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.FlipToBack
|
|
||||||
import androidx.compose.material.icons.outlined.SelectAll
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.Checkbox
|
import androidx.compose.material3.Checkbox
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -49,6 +46,9 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
|||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import kotlinx.coroutines.flow.update
|
import kotlinx.coroutines.flow.update
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.FlipToBack
|
||||||
|
import mihon.icons.materialsymbols.rounded.SelectAll
|
||||||
import tachiyomi.core.common.util.lang.launchIO
|
import tachiyomi.core.common.util.lang.launchIO
|
||||||
import tachiyomi.core.common.util.lang.launchUI
|
import tachiyomi.core.common.util.lang.launchUI
|
||||||
import tachiyomi.core.common.util.lang.toLong
|
import tachiyomi.core.common.util.lang.toLong
|
||||||
@@ -147,12 +147,12 @@ class ClearDatabaseScreen : Screen() {
|
|||||||
actions = listOf(
|
actions = listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_select_all),
|
title = stringResource(MR.strings.action_select_all),
|
||||||
icon = Icons.Outlined.SelectAll,
|
icon = MaterialSymbols.Rounded.SelectAll,
|
||||||
onClick = viewModel::selectAll,
|
onClick = viewModel::selectAll,
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_select_inverse),
|
title = stringResource(MR.strings.action_select_inverse),
|
||||||
icon = Icons.Outlined.FlipToBack,
|
icon = MaterialSymbols.Rounded.FlipToBack,
|
||||||
onClick = viewModel::invertSelection,
|
onClick = viewModel::invertSelection,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import androidx.compose.foundation.clickable
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Check
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.ListItem
|
import androidx.compose.material3.ListItem
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -27,6 +25,8 @@ import eu.kanade.presentation.components.AppBar
|
|||||||
import eu.kanade.presentation.util.Screen
|
import eu.kanade.presentation.util.Screen
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Check
|
||||||
import org.xmlpull.v1.XmlPullParser
|
import org.xmlpull.v1.XmlPullParser
|
||||||
import tachiyomi.core.common.i18n.stringResource
|
import tachiyomi.core.common.i18n.stringResource
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
@@ -74,7 +74,7 @@ class AppLanguageScreen : Screen() {
|
|||||||
trailingContent = {
|
trailingContent = {
|
||||||
if (currentLanguage == it.langTag) {
|
if (currentLanguage == it.langTag) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Check,
|
imageVector = MaterialSymbols.Rounded.Check,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,11 +7,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.Label
|
|
||||||
import androidx.compose.material.icons.outlined.ContentCopy
|
|
||||||
import androidx.compose.material.icons.outlined.Delete
|
|
||||||
import androidx.compose.material.icons.outlined.Public
|
|
||||||
import androidx.compose.material3.ElevatedCard
|
import androidx.compose.material3.ElevatedCard
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -21,11 +16,16 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import mihon.domain.extension.model.ExtensionStore
|
import mihon.domain.extension.model.ExtensionStore
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.Label
|
||||||
|
import mihon.icons.materialsymbols.rounded.ContentCopy
|
||||||
|
import mihon.icons.materialsymbols.rounded.Delete
|
||||||
|
import mihon.icons.materialsymbols.rounded.Public
|
||||||
|
import mihon.icons.simpleicons.Discord
|
||||||
|
import mihon.icons.simpleicons.SimpleIcons
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import tachiyomi.presentation.core.icons.CustomIcons
|
|
||||||
import tachiyomi.presentation.core.icons.Discord
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ExtensionStoresContent(
|
fun ExtensionStoresContent(
|
||||||
@@ -81,7 +81,7 @@ private fun ExtensionStoresListItem(
|
|||||||
),
|
),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Icon(imageVector = Icons.AutoMirrored.Outlined.Label, contentDescription = null)
|
Icon(imageVector = MaterialSymbols.AutoMirroredRounded.Label, contentDescription = null)
|
||||||
Text(
|
Text(
|
||||||
text = store.name,
|
text = store.name,
|
||||||
modifier = Modifier.padding(start = MaterialTheme.padding.medium),
|
modifier = Modifier.padding(start = MaterialTheme.padding.medium),
|
||||||
@@ -95,7 +95,7 @@ private fun ExtensionStoresListItem(
|
|||||||
) {
|
) {
|
||||||
IconButton(onClick = onOpenWebsite) {
|
IconButton(onClick = onOpenWebsite) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Public,
|
imageVector = MaterialSymbols.Rounded.Public,
|
||||||
contentDescription = stringResource(MR.strings.action_open_in_browser),
|
contentDescription = stringResource(MR.strings.action_open_in_browser),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -103,7 +103,7 @@ private fun ExtensionStoresListItem(
|
|||||||
if (store.contact.discord != null) {
|
if (store.contact.discord != null) {
|
||||||
IconButton(onClick = onOpenDiscord) {
|
IconButton(onClick = onOpenDiscord) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = CustomIcons.Discord,
|
imageVector = SimpleIcons.Discord,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -111,14 +111,14 @@ private fun ExtensionStoresListItem(
|
|||||||
|
|
||||||
IconButton(onClick = onCopy) {
|
IconButton(onClick = onCopy) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.ContentCopy,
|
imageVector = MaterialSymbols.Rounded.ContentCopy,
|
||||||
contentDescription = stringResource(MR.strings.action_copy_to_clipboard),
|
contentDescription = stringResource(MR.strings.action_copy_to_clipboard),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
IconButton(onClick = onDelete) {
|
IconButton(onClick = onDelete) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Delete,
|
imageVector = MaterialSymbols.Rounded.Delete,
|
||||||
contentDescription = stringResource(MR.strings.action_delete),
|
contentDescription = stringResource(MR.strings.action_delete),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ package eu.kanade.presentation.more.settings.screen.browse.components
|
|||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Refresh
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -14,6 +12,8 @@ import eu.kanade.presentation.category.components.CategoryFloatingActionButton
|
|||||||
import eu.kanade.presentation.components.AppBar
|
import eu.kanade.presentation.components.AppBar
|
||||||
import eu.kanade.presentation.more.settings.screen.browse.ExtensionStoreScreenState
|
import eu.kanade.presentation.more.settings.screen.browse.ExtensionStoreScreenState
|
||||||
import mihon.domain.extension.model.ExtensionStore
|
import mihon.domain.extension.model.ExtensionStore
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Refresh
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
@@ -43,7 +43,7 @@ fun ExtensionStoresScreen(
|
|||||||
actions = {
|
actions = {
|
||||||
IconButton(onClick = onClickRefresh) {
|
IconButton(onClick = onClickRefresh) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Refresh,
|
imageVector = MaterialSymbols.Rounded.Refresh,
|
||||||
contentDescription = stringResource(resource = MR.strings.action_webview_refresh),
|
contentDescription = stringResource(resource = MR.strings.action_webview_refresh),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ package eu.kanade.presentation.more.settings.screen.debug
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.ContentCopy
|
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
@@ -20,6 +18,8 @@ import eu.kanade.presentation.util.Screen
|
|||||||
import eu.kanade.tachiyomi.data.backup.models.Backup
|
import eu.kanade.tachiyomi.data.backup.models.Backup
|
||||||
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
||||||
import kotlinx.serialization.protobuf.schema.ProtoBufSchemaGenerator
|
import kotlinx.serialization.protobuf.schema.ProtoBufSchemaGenerator
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.ContentCopy
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -47,7 +47,7 @@ class BackupSchemaScreen : Screen() {
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_copy_to_clipboard),
|
title = stringResource(MR.strings.action_copy_to_clipboard),
|
||||||
icon = Icons.Default.ContentCopy,
|
icon = MaterialSymbols.Rounded.ContentCopy,
|
||||||
onClick = {
|
onClick = {
|
||||||
context.copyToClipboard(TITLE, schema)
|
context.copyToClipboard(TITLE, schema)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package eu.kanade.presentation.more.settings.screen.debug
|
package eu.kanade.presentation.more.settings.screen.debug
|
||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Autorenew
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -27,6 +25,8 @@ import kotlinx.coroutines.guava.await
|
|||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
import mihon.core.common.FeatureFlags
|
import mihon.core.common.FeatureFlags
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Autorenew
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.util.collectAsState
|
import tachiyomi.presentation.core.util.collectAsState
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ class DebugInfoScreen : Screen() {
|
|||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Autorenew,
|
imageVector = MaterialSymbols.Rounded.Autorenew,
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.PaddingValues
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.ContentCopy
|
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -42,6 +40,8 @@ import kotlinx.coroutines.flow.stateIn
|
|||||||
import kotlinx.datetime.TimeZone
|
import kotlinx.datetime.TimeZone
|
||||||
import kotlinx.datetime.toLocalDateTime
|
import kotlinx.datetime.toLocalDateTime
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.ContentCopy
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -75,7 +75,7 @@ class WorkerInfoScreen : Screen() {
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_copy_to_clipboard),
|
title = stringResource(MR.strings.action_copy_to_clipboard),
|
||||||
icon = Icons.Default.ContentCopy,
|
icon = MaterialSymbols.Rounded.ContentCopy,
|
||||||
onClick = {
|
onClick = {
|
||||||
context.copyToClipboard(TITLE, enqueued + finished + running)
|
context.copyToClipboard(TITLE, enqueued + finished + running)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ import androidx.compose.foundation.lazy.LazyRow
|
|||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.CheckCircle
|
|
||||||
import androidx.compose.material3.DividerDefaults
|
import androidx.compose.material3.DividerDefaults
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -48,6 +46,8 @@ import eu.kanade.presentation.manga.components.MangaCover
|
|||||||
import eu.kanade.presentation.theme.TachiyomiTheme
|
import eu.kanade.presentation.theme.TachiyomiTheme
|
||||||
import eu.kanade.tachiyomi.util.system.DeviceUtil
|
import eu.kanade.tachiyomi.util.system.DeviceUtil
|
||||||
import eu.kanade.tachiyomi.util.system.isDynamicColorAvailable
|
import eu.kanade.tachiyomi.util.system.isDynamicColorAvailable
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.CheckCircle
|
||||||
import tachiyomi.core.common.preference.InMemoryPreferenceStore
|
import tachiyomi.core.common.preference.InMemoryPreferenceStore
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
@@ -175,7 +175,7 @@ fun AppThemePreviewItem(
|
|||||||
) {
|
) {
|
||||||
if (selected) {
|
if (selected) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.CheckCircle,
|
imageVector = MaterialSymbols.RoundedFilled.CheckCircle,
|
||||||
contentDescription = stringResource(MR.strings.selected),
|
contentDescription = stringResource(MR.strings.selected),
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package eu.kanade.presentation.more.settings.widget
|
package eu.kanade.presentation.more.settings.widget
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Cancel
|
|
||||||
import androidx.compose.material.icons.filled.Error
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -22,6 +19,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
|
|||||||
import androidx.compose.ui.text.input.TextFieldValue
|
import androidx.compose.ui.text.input.TextFieldValue
|
||||||
import androidx.compose.ui.window.DialogProperties
|
import androidx.compose.ui.window.DialogProperties
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Cancel
|
||||||
|
import mihon.icons.materialsymbols.rounded.Error
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
|
|
||||||
@@ -57,10 +57,10 @@ fun EditTextPreferenceWidget(
|
|||||||
onValueChange = { textFieldValue = it },
|
onValueChange = { textFieldValue = it },
|
||||||
trailingIcon = {
|
trailingIcon = {
|
||||||
if (textFieldValue.text.isBlank()) {
|
if (textFieldValue.text.isBlank()) {
|
||||||
Icon(imageVector = Icons.Filled.Error, contentDescription = null)
|
Icon(imageVector = MaterialSymbols.Rounded.Error, contentDescription = null)
|
||||||
} else {
|
} else {
|
||||||
IconButton(onClick = { textFieldValue = TextFieldValue("") }) {
|
IconButton(onClick = { textFieldValue = TextFieldValue("") }) {
|
||||||
Icon(imageVector = Icons.Filled.Cancel, contentDescription = null)
|
Icon(imageVector = MaterialSymbols.Rounded.Cancel, contentDescription = null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ package eu.kanade.presentation.more.settings.widget
|
|||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Info
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
@@ -13,6 +11,8 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Info
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -30,7 +30,7 @@ internal fun InfoWidget(text: String) {
|
|||||||
verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.medium),
|
verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.medium),
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Info,
|
imageVector = MaterialSymbols.Rounded.Info,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ package eu.kanade.presentation.more.settings.widget
|
|||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Preview
|
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Switch
|
import androidx.compose.material3.Switch
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -11,6 +9,8 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Preview
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun SwitchPreferenceWidget(
|
fun SwitchPreferenceWidget(
|
||||||
@@ -46,7 +46,7 @@ private fun SwitchPreferenceWidgetPreview() {
|
|||||||
SwitchPreferenceWidget(
|
SwitchPreferenceWidget(
|
||||||
title = "Text preference with icon",
|
title = "Text preference with icon",
|
||||||
subtitle = "Text preference summary",
|
subtitle = "Text preference summary",
|
||||||
icon = Icons.Filled.Preview,
|
icon = MaterialSymbols.Rounded.Preview,
|
||||||
checked = true,
|
checked = true,
|
||||||
onCheckedChanged = {},
|
onCheckedChanged = {},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ package eu.kanade.presentation.more.settings.widget
|
|||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Preview
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
@@ -14,6 +12,8 @@ import androidx.compose.ui.graphics.Color
|
|||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Preview
|
||||||
import tachiyomi.presentation.core.util.secondaryItemAlpha
|
import tachiyomi.presentation.core.util.secondaryItemAlpha
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -68,7 +68,7 @@ private fun TextPreferenceWidgetPreview() {
|
|||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
title = "Text preference with icon",
|
title = "Text preference with icon",
|
||||||
subtitle = "Text preference summary",
|
subtitle = "Text preference summary",
|
||||||
icon = Icons.Filled.Preview,
|
icon = MaterialSymbols.Rounded.Preview,
|
||||||
onPreferenceClick = {},
|
onPreferenceClick = {},
|
||||||
)
|
)
|
||||||
TextPreferenceWidget(
|
TextPreferenceWidget(
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ import androidx.compose.foundation.layout.Row
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Done
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
@@ -22,6 +20,8 @@ import androidx.compose.ui.unit.dp
|
|||||||
import eu.kanade.presentation.more.settings.LocalPreferenceHighlighted
|
import eu.kanade.presentation.more.settings.LocalPreferenceHighlighted
|
||||||
import eu.kanade.presentation.track.components.TrackLogoIcon
|
import eu.kanade.presentation.track.components.TrackLogoIcon
|
||||||
import eu.kanade.tachiyomi.data.track.Tracker
|
import eu.kanade.tachiyomi.data.track.Tracker
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Done
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ fun TrackingPreferenceWidget(
|
|||||||
}
|
}
|
||||||
if (isLoggedIn) {
|
if (isLoggedIn) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Done,
|
imageVector = MaterialSymbols.Rounded.Done,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(4.dp)
|
.padding(4.dp)
|
||||||
.size(32.dp),
|
.size(32.dp),
|
||||||
|
|||||||
@@ -10,10 +10,6 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.itemsIndexed
|
import androidx.compose.foundation.lazy.itemsIndexed
|
||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.rounded.CheckBox
|
|
||||||
import androidx.compose.material.icons.rounded.CheckBoxOutlineBlank
|
|
||||||
import androidx.compose.material.icons.rounded.DisabledByDefault
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -28,6 +24,10 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.CheckBoxOutlineBlank
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.CheckBox
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.DisabledByDefault
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
|
|
||||||
@@ -93,9 +93,9 @@ fun <T> TriStateListDialog(
|
|||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.padding(end = 20.dp),
|
modifier = Modifier.padding(end = 20.dp),
|
||||||
imageVector = when (state) {
|
imageVector = when (state) {
|
||||||
State.UNCHECKED -> Icons.Rounded.CheckBoxOutlineBlank
|
State.UNCHECKED -> MaterialSymbols.Rounded.CheckBoxOutlineBlank
|
||||||
State.CHECKED -> Icons.Rounded.CheckBox
|
State.CHECKED -> MaterialSymbols.RoundedFilled.CheckBox
|
||||||
State.INVERSED -> Icons.Rounded.DisabledByDefault
|
State.INVERSED -> MaterialSymbols.RoundedFilled.DisabledByDefault
|
||||||
},
|
},
|
||||||
tint = if (state == State.UNCHECKED) {
|
tint = if (state == State.UNCHECKED) {
|
||||||
LocalContentColor.current
|
LocalContentColor.current
|
||||||
|
|||||||
@@ -7,10 +7,6 @@ import androidx.compose.foundation.layout.Row
|
|||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.LazyItemScope
|
import androidx.compose.foundation.lazy.LazyItemScope
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.CollectionsBookmark
|
|
||||||
import androidx.compose.material.icons.outlined.LocalLibrary
|
|
||||||
import androidx.compose.material.icons.outlined.Schedule
|
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
@@ -20,6 +16,10 @@ import eu.kanade.presentation.more.stats.components.StatsItem
|
|||||||
import eu.kanade.presentation.more.stats.components.StatsOverviewItem
|
import eu.kanade.presentation.more.stats.components.StatsOverviewItem
|
||||||
import eu.kanade.presentation.more.stats.data.StatsData
|
import eu.kanade.presentation.more.stats.data.StatsData
|
||||||
import eu.kanade.presentation.util.toDurationString
|
import eu.kanade.presentation.util.toDurationString
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.CollectionsBookmark
|
||||||
|
import mihon.icons.materialsymbols.rounded.LocalLibrary
|
||||||
|
import mihon.icons.materialsymbols.rounded.Schedule
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.SectionCard
|
import tachiyomi.presentation.core.components.SectionCard
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
@@ -70,17 +70,17 @@ private fun LazyItemScope.OverviewSection(
|
|||||||
StatsOverviewItem(
|
StatsOverviewItem(
|
||||||
title = data.libraryMangaCount.toString(),
|
title = data.libraryMangaCount.toString(),
|
||||||
subtitle = stringResource(MR.strings.in_library),
|
subtitle = stringResource(MR.strings.in_library),
|
||||||
icon = Icons.Outlined.CollectionsBookmark,
|
icon = MaterialSymbols.Rounded.CollectionsBookmark,
|
||||||
)
|
)
|
||||||
StatsOverviewItem(
|
StatsOverviewItem(
|
||||||
title = readDurationString,
|
title = readDurationString,
|
||||||
subtitle = stringResource(MR.strings.label_read_duration),
|
subtitle = stringResource(MR.strings.label_read_duration),
|
||||||
icon = Icons.Outlined.Schedule,
|
icon = MaterialSymbols.Rounded.Schedule,
|
||||||
)
|
)
|
||||||
StatsOverviewItem(
|
StatsOverviewItem(
|
||||||
title = data.completedMangaCount.toString(),
|
title = data.completedMangaCount.toString(),
|
||||||
subtitle = stringResource(MR.strings.label_completed_titles),
|
subtitle = stringResource(MR.strings.label_completed_titles),
|
||||||
icon = Icons.Outlined.LocalLibrary,
|
icon = MaterialSymbols.Rounded.LocalLibrary,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,6 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.foundation.layout.widthIn
|
import androidx.compose.foundation.layout.widthIn
|
||||||
import androidx.compose.foundation.text.InlineTextContent
|
import androidx.compose.foundation.text.InlineTextContent
|
||||||
import androidx.compose.foundation.text.appendInlineContent
|
import androidx.compose.foundation.text.appendInlineContent
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.CheckCircle
|
|
||||||
import androidx.compose.material.icons.outlined.Info
|
|
||||||
import androidx.compose.material.icons.outlined.Warning
|
|
||||||
import androidx.compose.material3.CardColors
|
import androidx.compose.material3.CardColors
|
||||||
import androidx.compose.material3.CardDefaults
|
import androidx.compose.material3.CardDefaults
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -37,6 +33,10 @@ import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
|||||||
import eu.kanade.tachiyomi.data.database.models.toDomainChapter
|
import eu.kanade.tachiyomi.data.database.models.toDomainChapter
|
||||||
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
|
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
|
||||||
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
|
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 tachiyomi.domain.chapter.model.Chapter
|
import tachiyomi.domain.chapter.model.Chapter
|
||||||
import tachiyomi.domain.chapter.service.calculateChapterGap
|
import tachiyomi.domain.chapter.service.calculateChapterGap
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
@@ -156,7 +156,7 @@ private fun NoChapterNotification(
|
|||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Info,
|
imageVector = MaterialSymbols.Rounded.Info,
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
@@ -184,7 +184,7 @@ private fun ChapterGapWarning(
|
|||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Warning,
|
imageVector = MaterialSymbols.Rounded.Warning,
|
||||||
tint = MaterialTheme.colorScheme.error,
|
tint = MaterialTheme.colorScheme.error,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
@@ -243,7 +243,7 @@ private fun ChapterText(
|
|||||||
),
|
),
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.CheckCircle,
|
imageVector = MaterialSymbols.RoundedFilled.CheckCircle,
|
||||||
contentDescription = stringResource(MR.strings.label_downloaded),
|
contentDescription = stringResource(MR.strings.label_downloaded),
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,11 +3,6 @@ package eu.kanade.presentation.reader
|
|||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.ContentCopy
|
|
||||||
import androidx.compose.material.icons.outlined.Photo
|
|
||||||
import androidx.compose.material.icons.outlined.Save
|
|
||||||
import androidx.compose.material.icons.outlined.Share
|
|
||||||
import androidx.compose.material3.AlertDialog
|
import androidx.compose.material3.AlertDialog
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
@@ -20,6 +15,11 @@ import androidx.compose.runtime.setValue
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import eu.kanade.presentation.components.AdaptiveSheet
|
import eu.kanade.presentation.components.AdaptiveSheet
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.ContentCopy
|
||||||
|
import mihon.icons.materialsymbols.rounded.Photo
|
||||||
|
import mihon.icons.materialsymbols.rounded.Save
|
||||||
|
import mihon.icons.materialsymbols.rounded.Share
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.ActionButton
|
import tachiyomi.presentation.core.components.ActionButton
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
@@ -42,13 +42,13 @@ fun ReaderPageActionsDialog(
|
|||||||
ActionButton(
|
ActionButton(
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
title = stringResource(MR.strings.set_as_cover),
|
title = stringResource(MR.strings.set_as_cover),
|
||||||
icon = Icons.Outlined.Photo,
|
icon = MaterialSymbols.Rounded.Photo,
|
||||||
onClick = { showSetCoverDialog = true },
|
onClick = { showSetCoverDialog = true },
|
||||||
)
|
)
|
||||||
ActionButton(
|
ActionButton(
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
title = stringResource(MR.strings.action_copy_to_clipboard),
|
title = stringResource(MR.strings.action_copy_to_clipboard),
|
||||||
icon = Icons.Outlined.ContentCopy,
|
icon = MaterialSymbols.Rounded.ContentCopy,
|
||||||
onClick = {
|
onClick = {
|
||||||
onShare(true)
|
onShare(true)
|
||||||
onDismissRequest()
|
onDismissRequest()
|
||||||
@@ -57,7 +57,7 @@ fun ReaderPageActionsDialog(
|
|||||||
ActionButton(
|
ActionButton(
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
title = stringResource(MR.strings.action_share),
|
title = stringResource(MR.strings.action_share),
|
||||||
icon = Icons.Outlined.Share,
|
icon = MaterialSymbols.Rounded.Share,
|
||||||
onClick = {
|
onClick = {
|
||||||
onShare(false)
|
onShare(false)
|
||||||
onDismissRequest()
|
onDismissRequest()
|
||||||
@@ -66,7 +66,7 @@ fun ReaderPageActionsDialog(
|
|||||||
ActionButton(
|
ActionButton(
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
title = stringResource(MR.strings.action_save),
|
title = stringResource(MR.strings.action_save),
|
||||||
icon = Icons.Outlined.Save,
|
icon = MaterialSymbols.Rounded.Save,
|
||||||
onClick = {
|
onClick = {
|
||||||
onSave()
|
onSave()
|
||||||
onDismissRequest()
|
onDismissRequest()
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ package eu.kanade.presentation.reader.appbars
|
|||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Settings
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -14,6 +12,8 @@ import androidx.compose.ui.res.painterResource
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation
|
import eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation
|
||||||
import eu.kanade.tachiyomi.ui.reader.setting.ReadingMode
|
import eu.kanade.tachiyomi.ui.reader.setting.ReadingMode
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Settings
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ fun ReaderBottomBar(
|
|||||||
|
|
||||||
IconButton(onClick = onClickSettings) {
|
IconButton(onClick = onClickSettings) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Settings,
|
imageVector = MaterialSymbols.Rounded.Settings,
|
||||||
contentDescription = stringResource(MR.strings.action_settings),
|
contentDescription = stringResource(MR.strings.action_settings),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package eu.kanade.presentation.reader.appbars
|
package eu.kanade.presentation.reader.appbars
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Bookmark
|
|
||||||
import androidx.compose.material.icons.outlined.BookmarkBorder
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import eu.kanade.presentation.components.AppBar
|
import eu.kanade.presentation.components.AppBar
|
||||||
import eu.kanade.presentation.components.AppBarActions
|
import eu.kanade.presentation.components.AppBarActions
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Bookmark
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.Bookmark
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
|
|
||||||
@@ -42,9 +42,9 @@ fun ReaderTopBar(
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
icon = if (bookmarked) {
|
icon = if (bookmarked) {
|
||||||
Icons.Outlined.Bookmark
|
MaterialSymbols.RoundedFilled.Bookmark
|
||||||
} else {
|
} else {
|
||||||
Icons.Outlined.BookmarkBorder
|
MaterialSymbols.Rounded.Bookmark
|
||||||
},
|
},
|
||||||
onClick = onToggleBookmarked,
|
onClick = onToggleBookmarked,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -12,9 +12,6 @@ import androidx.compose.foundation.layout.fillMaxHeight
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.SkipNext
|
|
||||||
import androidx.compose.material.icons.outlined.SkipPrevious
|
|
||||||
import androidx.compose.material3.FilledIconButton
|
import androidx.compose.material3.FilledIconButton
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButtonColors
|
import androidx.compose.material3.IconButtonColors
|
||||||
@@ -46,6 +43,9 @@ import androidx.compose.ui.unit.LayoutDirection
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
import eu.kanade.presentation.util.isTabletUi
|
import eu.kanade.presentation.util.isTabletUi
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.SkipNext
|
||||||
|
import mihon.icons.materialsymbols.rounded.SkipPrevious
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
@@ -172,7 +172,7 @@ fun HorizontalChapterNavigator(
|
|||||||
colors = buttonColor,
|
colors = buttonColor,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.SkipPrevious,
|
imageVector = MaterialSymbols.Rounded.SkipPrevious,
|
||||||
contentDescription = stringResource(
|
contentDescription = stringResource(
|
||||||
if (isRtl) MR.strings.action_next_chapter else MR.strings.action_previous_chapter,
|
if (isRtl) MR.strings.action_next_chapter else MR.strings.action_previous_chapter,
|
||||||
),
|
),
|
||||||
@@ -216,7 +216,7 @@ fun HorizontalChapterNavigator(
|
|||||||
colors = buttonColor,
|
colors = buttonColor,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.SkipNext,
|
imageVector = MaterialSymbols.Rounded.SkipNext,
|
||||||
contentDescription = stringResource(
|
contentDescription = stringResource(
|
||||||
if (isRtl) MR.strings.action_previous_chapter else MR.strings.action_next_chapter,
|
if (isRtl) MR.strings.action_previous_chapter else MR.strings.action_next_chapter,
|
||||||
),
|
),
|
||||||
@@ -253,7 +253,7 @@ fun VerticalChapterNavigator(
|
|||||||
colors = buttonColor,
|
colors = buttonColor,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.SkipPrevious,
|
imageVector = MaterialSymbols.Rounded.SkipPrevious,
|
||||||
contentDescription = stringResource(MR.strings.action_previous_chapter),
|
contentDescription = stringResource(MR.strings.action_previous_chapter),
|
||||||
modifier = Modifier.rotate(90f),
|
modifier = Modifier.rotate(90f),
|
||||||
)
|
)
|
||||||
@@ -290,7 +290,7 @@ fun VerticalChapterNavigator(
|
|||||||
colors = buttonColor,
|
colors = buttonColor,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.SkipNext,
|
imageVector = MaterialSymbols.Rounded.SkipNext,
|
||||||
contentDescription = stringResource(MR.strings.action_next_chapter),
|
contentDescription = stringResource(MR.strings.action_next_chapter),
|
||||||
modifier = Modifier.rotate(90f),
|
modifier = Modifier.rotate(90f),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.Column
|
|||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Check
|
|
||||||
import androidx.compose.material3.FilledTonalButton
|
import androidx.compose.material3.FilledTonalButton
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -20,6 +18,8 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Check
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.SettingsItemsPaddings
|
import tachiyomi.presentation.core.components.SettingsItemsPaddings
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
@@ -56,7 +56,7 @@ fun ModeSelectionDialog(
|
|||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Check,
|
imageVector = MaterialSymbols.Rounded.Check,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
Text(text = stringResource(MR.strings.action_apply))
|
Text(text = stringResource(MR.strings.action_apply))
|
||||||
|
|||||||
@@ -22,9 +22,6 @@ import androidx.compose.foundation.layout.wrapContentSize
|
|||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.MoreVert
|
|
||||||
import androidx.compose.material.icons.filled.VisibilityOff
|
|
||||||
import androidx.compose.material3.Badge
|
import androidx.compose.material3.Badge
|
||||||
import androidx.compose.material3.BadgedBox
|
import androidx.compose.material3.BadgedBox
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
@@ -60,6 +57,9 @@ import eu.kanade.tachiyomi.util.lang.toJavaLocalDate
|
|||||||
import eu.kanade.tachiyomi.util.lang.toLocalDate
|
import eu.kanade.tachiyomi.util.lang.toLocalDate
|
||||||
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
||||||
import kotlinx.datetime.toJavaLocalDate
|
import kotlinx.datetime.toJavaLocalDate
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.MoreVert
|
||||||
|
import mihon.icons.materialsymbols.rounded.VisibilityOff
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import java.time.format.DateTimeFormatter
|
import java.time.format.DateTimeFormatter
|
||||||
@@ -175,7 +175,7 @@ private fun TrackInfoItem(
|
|||||||
modifier = Modifier.absoluteOffset(x = (-5).dp),
|
modifier = Modifier.absoluteOffset(x = (-5).dp),
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.VisibilityOff,
|
imageVector = MaterialSymbols.Rounded.VisibilityOff,
|
||||||
contentDescription = stringResource(MR.strings.tracked_privately),
|
contentDescription = stringResource(MR.strings.tracked_privately),
|
||||||
modifier = Modifier.size(14.dp),
|
modifier = Modifier.size(14.dp),
|
||||||
)
|
)
|
||||||
@@ -334,7 +334,7 @@ private fun TrackInfoItemMenu(
|
|||||||
Box(modifier = Modifier.wrapContentSize(Alignment.TopStart)) {
|
Box(modifier = Modifier.wrapContentSize(Alignment.TopStart)) {
|
||||||
IconButton(onClick = { expanded = true }) {
|
IconButton(onClick = { expanded = true }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.MoreVert,
|
imageVector = MaterialSymbols.Rounded.MoreVert,
|
||||||
contentDescription = stringResource(MR.strings.label_more),
|
contentDescription = stringResource(MR.strings.label_more),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,11 +30,6 @@ import androidx.compose.foundation.text.KeyboardOptions
|
|||||||
import androidx.compose.foundation.text.input.TextFieldLineLimits
|
import androidx.compose.foundation.text.input.TextFieldLineLimits
|
||||||
import androidx.compose.foundation.text.input.TextFieldState
|
import androidx.compose.foundation.text.input.TextFieldState
|
||||||
import androidx.compose.foundation.text.input.clearText
|
import androidx.compose.foundation.text.input.clearText
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ArrowBack
|
|
||||||
import androidx.compose.material.icons.filled.CheckCircle
|
|
||||||
import androidx.compose.material.icons.filled.Close
|
|
||||||
import androidx.compose.material.icons.filled.VisibilityOff
|
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.ButtonDefaults
|
import androidx.compose.material3.ButtonDefaults
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
@@ -76,6 +71,11 @@ import eu.kanade.presentation.theme.TachiyomiPreviewTheme
|
|||||||
import eu.kanade.tachiyomi.data.track.model.TrackSearch
|
import eu.kanade.tachiyomi.data.track.model.TrackSearch
|
||||||
import eu.kanade.tachiyomi.util.system.openInBrowser
|
import eu.kanade.tachiyomi.util.system.openInBrowser
|
||||||
import kotlinx.coroutines.launch
|
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 tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
@@ -112,7 +112,7 @@ fun TrackerSearch(
|
|||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
IconButton(onClick = onDismissRequest) {
|
IconButton(onClick = onDismissRequest) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Outlined.ArrowBack,
|
imageVector = MaterialSymbols.AutoMirroredRounded.ArrowBack,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
)
|
)
|
||||||
@@ -152,7 +152,7 @@ fun TrackerSearch(
|
|||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Close,
|
imageVector = MaterialSymbols.Rounded.Close,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
)
|
)
|
||||||
@@ -189,7 +189,7 @@ fun TrackerSearch(
|
|||||||
elevation = ButtonDefaults.elevatedButtonElevation(),
|
elevation = ButtonDefaults.elevatedButtonElevation(),
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.VisibilityOff,
|
imageVector = MaterialSymbols.Rounded.VisibilityOff,
|
||||||
contentDescription = stringResource(MR.strings.action_toggle_private_on),
|
contentDescription = stringResource(MR.strings.action_toggle_private_on),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -274,7 +274,7 @@ private fun SearchResultItem(
|
|||||||
) {
|
) {
|
||||||
if (selected) {
|
if (selected) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.CheckCircle,
|
imageVector = MaterialSymbols.RoundedFilled.CheckCircle,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier.align(Alignment.TopEnd),
|
modifier = Modifier.align(Alignment.TopEnd),
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
|
|||||||
@@ -3,12 +3,6 @@ package eu.kanade.presentation.updates
|
|||||||
import androidx.activity.compose.BackHandler
|
import androidx.activity.compose.BackHandler
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.CalendarMonth
|
|
||||||
import androidx.compose.material.icons.outlined.FilterList
|
|
||||||
import androidx.compose.material.icons.outlined.FlipToBack
|
|
||||||
import androidx.compose.material.icons.outlined.Refresh
|
|
||||||
import androidx.compose.material.icons.outlined.SelectAll
|
|
||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.SnackbarHost
|
import androidx.compose.material3.SnackbarHost
|
||||||
@@ -33,6 +27,12 @@ import eu.kanade.tachiyomi.ui.updates.UpdatesViewModel
|
|||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.datetime.LocalDate
|
import kotlinx.datetime.LocalDate
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.CalendarMonth
|
||||||
|
import mihon.icons.materialsymbols.rounded.FilterList
|
||||||
|
import mihon.icons.materialsymbols.rounded.FlipToBack
|
||||||
|
import mihon.icons.materialsymbols.rounded.Refresh
|
||||||
|
import mihon.icons.materialsymbols.rounded.SelectAll
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
||||||
import tachiyomi.presentation.core.components.material.PullRefresh
|
import tachiyomi.presentation.core.components.material.PullRefresh
|
||||||
@@ -158,18 +158,18 @@ private fun UpdatesAppBar(
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_filter),
|
title = stringResource(MR.strings.action_filter),
|
||||||
icon = Icons.Outlined.FilterList,
|
icon = MaterialSymbols.Rounded.FilterList,
|
||||||
iconTint = if (hasFilters) MaterialTheme.colorScheme.active else LocalContentColor.current,
|
iconTint = if (hasFilters) MaterialTheme.colorScheme.active else LocalContentColor.current,
|
||||||
onClick = onFilterClicked,
|
onClick = onFilterClicked,
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_view_upcoming),
|
title = stringResource(MR.strings.action_view_upcoming),
|
||||||
icon = Icons.Outlined.CalendarMonth,
|
icon = MaterialSymbols.Rounded.CalendarMonth,
|
||||||
onClick = onCalendarClicked,
|
onClick = onCalendarClicked,
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_update_library),
|
title = stringResource(MR.strings.action_update_library),
|
||||||
icon = Icons.Outlined.Refresh,
|
icon = MaterialSymbols.Rounded.Refresh,
|
||||||
onClick = onUpdateLibrary,
|
onClick = onUpdateLibrary,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -182,12 +182,12 @@ private fun UpdatesAppBar(
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_select_all),
|
title = stringResource(MR.strings.action_select_all),
|
||||||
icon = Icons.Outlined.SelectAll,
|
icon = MaterialSymbols.Rounded.SelectAll,
|
||||||
onClick = onSelectAll,
|
onClick = onSelectAll,
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_select_inverse),
|
title = stringResource(MR.strings.action_select_inverse),
|
||||||
icon = Icons.Outlined.FlipToBack,
|
icon = MaterialSymbols.Rounded.FlipToBack,
|
||||||
onClick = onInvertSelection,
|
onClick = onInvertSelection,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -12,9 +12,6 @@ import androidx.compose.foundation.layout.sizeIn
|
|||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.foundation.lazy.LazyListScope
|
import androidx.compose.foundation.lazy.LazyListScope
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Bookmark
|
|
||||||
import androidx.compose.material.icons.filled.Circle
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -40,6 +37,9 @@ import eu.kanade.presentation.manga.components.MangaCover
|
|||||||
import eu.kanade.presentation.util.relativeTimeSpanString
|
import eu.kanade.presentation.util.relativeTimeSpanString
|
||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
import eu.kanade.tachiyomi.ui.updates.UpdatesItem
|
import eu.kanade.tachiyomi.ui.updates.UpdatesItem
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.Bookmark
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.Circle
|
||||||
import tachiyomi.domain.updates.model.UpdatesWithRelations
|
import tachiyomi.domain.updates.model.UpdatesWithRelations
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.ListGroupHeader
|
import tachiyomi.presentation.core.components.ListGroupHeader
|
||||||
@@ -186,7 +186,7 @@ private fun UpdatesUiItem(
|
|||||||
var textHeight by remember { mutableIntStateOf(0) }
|
var textHeight by remember { mutableIntStateOf(0) }
|
||||||
if (!update.read) {
|
if (!update.read) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.Circle,
|
imageVector = MaterialSymbols.RoundedFilled.Circle,
|
||||||
contentDescription = stringResource(MR.strings.unread),
|
contentDescription = stringResource(MR.strings.unread),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.height(8.dp)
|
.height(8.dp)
|
||||||
@@ -196,7 +196,7 @@ private fun UpdatesUiItem(
|
|||||||
}
|
}
|
||||||
if (update.bookmark) {
|
if (update.bookmark) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Filled.Bookmark,
|
imageVector = MaterialSymbols.RoundedFilled.Bookmark,
|
||||||
contentDescription = stringResource(MR.strings.action_filter_bookmarked),
|
contentDescription = stringResource(MR.strings.action_filter_bookmarked),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.sizeIn(maxHeight = with(LocalDensity.current) { textHeight.toDp() - 2.dp }),
|
.sizeIn(maxHeight = with(LocalDensity.current) { textHeight.toDp() - 2.dp }),
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ import androidx.compose.foundation.layout.Column
|
|||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ArrowBack
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ArrowForward
|
|
||||||
import androidx.compose.material.icons.outlined.Close
|
|
||||||
import androidx.compose.material3.LinearProgressIndicator
|
import androidx.compose.material3.LinearProgressIndicator
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
@@ -53,6 +49,10 @@ import eu.kanade.tachiyomi.util.system.getHtml
|
|||||||
import eu.kanade.tachiyomi.util.system.setDefaultSettings
|
import eu.kanade.tachiyomi.util.system.setDefaultSettings
|
||||||
import eu.kanade.tachiyomi.util.system.setUserAgent
|
import eu.kanade.tachiyomi.util.system.setUserAgent
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ArrowBack
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ArrowForward
|
||||||
|
import mihon.icons.materialsymbols.rounded.Close
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.Scaffold
|
import tachiyomi.presentation.core.components.material.Scaffold
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
@@ -232,13 +232,13 @@ fun WebViewScreenContent(
|
|||||||
title = currentWindow.state.pageTitle ?: initialTitle,
|
title = currentWindow.state.pageTitle ?: initialTitle,
|
||||||
subtitle = currentUrl,
|
subtitle = currentUrl,
|
||||||
navigateUp = onNavigateUp,
|
navigateUp = onNavigateUp,
|
||||||
navigationIcon = Icons.Outlined.Close,
|
navigationIcon = MaterialSymbols.Rounded.Close,
|
||||||
actions = {
|
actions = {
|
||||||
AppBarActions(
|
AppBarActions(
|
||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_webview_back),
|
title = stringResource(MR.strings.action_webview_back),
|
||||||
icon = Icons.AutoMirrored.Outlined.ArrowBack,
|
icon = MaterialSymbols.AutoMirroredRounded.ArrowBack,
|
||||||
onClick = {
|
onClick = {
|
||||||
if (navigator.canGoBack) {
|
if (navigator.canGoBack) {
|
||||||
navigator.navigateBack()
|
navigator.navigateBack()
|
||||||
@@ -248,7 +248,7 @@ fun WebViewScreenContent(
|
|||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_webview_forward),
|
title = stringResource(MR.strings.action_webview_forward),
|
||||||
icon = Icons.AutoMirrored.Outlined.ArrowForward,
|
icon = MaterialSymbols.AutoMirroredRounded.ArrowForward,
|
||||||
onClick = {
|
onClick = {
|
||||||
if (navigator.canGoForward) {
|
if (navigator.canGoForward) {
|
||||||
navigator.navigateForward()
|
navigator.navigateForward()
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ArrowForward
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.SmallExtendedFloatingActionButton
|
import androidx.compose.material3.SmallExtendedFloatingActionButton
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
@@ -30,6 +28,8 @@ import eu.kanade.tachiyomi.ui.manga.MangaScreen
|
|||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import mihon.feature.migration.config.MigrationConfigScreen
|
import mihon.feature.migration.config.MigrationConfigScreen
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ArrowForward
|
||||||
import tachiyomi.domain.manga.model.Manga
|
import tachiyomi.domain.manga.model.Manga
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
||||||
@@ -82,7 +82,7 @@ data class MigrateMangaScreen(
|
|||||||
SmallExtendedFloatingActionButton(
|
SmallExtendedFloatingActionButton(
|
||||||
text = { Text(text = stringResource(MR.strings.migrationConfigScreen_continueButtonText)) },
|
text = { Text(text = stringResource(MR.strings.migrationConfigScreen_continueButtonText)) },
|
||||||
icon = {
|
icon = {
|
||||||
Icon(imageVector = Icons.AutoMirrored.Outlined.ArrowForward, contentDescription = null)
|
Icon(imageVector = MaterialSymbols.AutoMirroredRounded.ArrowForward, contentDescription = null)
|
||||||
},
|
},
|
||||||
onClick = {
|
onClick = {
|
||||||
val selection = state.selection
|
val selection = state.selection
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package eu.kanade.tachiyomi.ui.browse.migration.search
|
package eu.kanade.tachiyomi.ui.browse.migration.search
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.FilterList
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.SmallExtendedFloatingActionButton
|
import androidx.compose.material3.SmallExtendedFloatingActionButton
|
||||||
import androidx.compose.material3.SnackbarHost
|
import androidx.compose.material3.SnackbarHost
|
||||||
@@ -32,6 +30,8 @@ import eu.kanade.tachiyomi.ui.webview.WebViewScreen
|
|||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import mihon.feature.migration.dialog.MigrateMangaDialog
|
import mihon.feature.migration.dialog.MigrateMangaDialog
|
||||||
import mihon.feature.migration.list.MigrationListScreen
|
import mihon.feature.migration.list.MigrationListScreen
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.FilterList
|
||||||
import mihon.presentation.core.util.collectAsLazyPagingItems
|
import mihon.presentation.core.util.collectAsLazyPagingItems
|
||||||
import tachiyomi.core.common.Constants
|
import tachiyomi.core.common.Constants
|
||||||
import tachiyomi.domain.manga.model.Manga
|
import tachiyomi.domain.manga.model.Manga
|
||||||
@@ -80,7 +80,7 @@ data class MigrateSourceSearchScreen(
|
|||||||
floatingActionButton = {
|
floatingActionButton = {
|
||||||
SmallExtendedFloatingActionButton(
|
SmallExtendedFloatingActionButton(
|
||||||
text = { Text(text = stringResource(MR.strings.action_filter)) },
|
text = { Text(text = stringResource(MR.strings.action_filter)) },
|
||||||
icon = { Icon(Icons.Outlined.FilterList, contentDescription = null) },
|
icon = { Icon(MaterialSymbols.Rounded.FilterList, contentDescription = null) },
|
||||||
onClick = viewModel::openFilterSheet,
|
onClick = viewModel::openFilterSheet,
|
||||||
modifier = Modifier.animateFloatingActionButton(
|
modifier = Modifier.animateFloatingActionButton(
|
||||||
visible = state.filters.isNotEmpty(),
|
visible = state.filters.isNotEmpty(),
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package eu.kanade.tachiyomi.ui.browse.migration.sources
|
package eu.kanade.tachiyomi.ui.browse.migration.sources
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.ui.platform.LocalUriHandler
|
import androidx.compose.ui.platform.LocalUriHandler
|
||||||
@@ -15,6 +13,8 @@ import eu.kanade.presentation.browse.MigrateSourceScreen
|
|||||||
import eu.kanade.presentation.components.AppBar
|
import eu.kanade.presentation.components.AppBar
|
||||||
import eu.kanade.presentation.components.TabContent
|
import eu.kanade.presentation.components.TabContent
|
||||||
import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrateMangaScreen
|
import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrateMangaScreen
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.Help
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ fun Screen.migrateSourceTab(): TabContent {
|
|||||||
actions = listOf(
|
actions = listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.migration_help_guide),
|
title = stringResource(MR.strings.migration_help_guide),
|
||||||
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
icon = MaterialSymbols.AutoMirroredRounded.Help,
|
||||||
onClick = {
|
onClick = {
|
||||||
uriHandler.openUri("https://mihon.app/docs/guides/source-migration")
|
uriHandler.openUri("https://mihon.app/docs/guides/source-migration")
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package eu.kanade.tachiyomi.ui.browse.source
|
package eu.kanade.tachiyomi.ui.browse.source
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.FilterList
|
|
||||||
import androidx.compose.material.icons.outlined.TravelExplore
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
@@ -20,6 +17,9 @@ import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen
|
|||||||
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen
|
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.FilterList
|
||||||
|
import mihon.icons.materialsymbols.rounded.TravelExplore
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
|
|
||||||
@@ -34,12 +34,12 @@ fun Screen.sourcesTab(): TabContent {
|
|||||||
actions = listOf(
|
actions = listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_global_search),
|
title = stringResource(MR.strings.action_global_search),
|
||||||
icon = Icons.Outlined.TravelExplore,
|
icon = MaterialSymbols.Rounded.TravelExplore,
|
||||||
onClick = { navigator.push(GlobalSearchScreen()) },
|
onClick = { navigator.push(GlobalSearchScreen()) },
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_filter),
|
title = stringResource(MR.strings.action_filter),
|
||||||
icon = Icons.Outlined.FilterList,
|
icon = MaterialSymbols.Rounded.FilterList,
|
||||||
onClick = { navigator.push(SourcesFilterScreen()) },
|
onClick = { navigator.push(SourcesFilterScreen()) },
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -8,10 +8,6 @@ import androidx.compose.foundation.layout.Row
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Favorite
|
|
||||||
import androidx.compose.material.icons.outlined.FilterList
|
|
||||||
import androidx.compose.material.icons.outlined.NewReleases
|
|
||||||
import androidx.compose.material3.FilterChip
|
import androidx.compose.material3.FilterChip
|
||||||
import androidx.compose.material3.FilterChipDefaults
|
import androidx.compose.material3.FilterChipDefaults
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
@@ -53,6 +49,10 @@ import kotlinx.coroutines.channels.Channel
|
|||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import kotlinx.coroutines.flow.receiveAsFlow
|
import kotlinx.coroutines.flow.receiveAsFlow
|
||||||
import mihon.feature.migration.dialog.MigrateMangaDialog
|
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.roundedfilled.Favorite
|
||||||
import mihon.presentation.core.util.collectAsLazyPagingItems
|
import mihon.presentation.core.util.collectAsLazyPagingItems
|
||||||
import tachiyomi.core.common.Constants
|
import tachiyomi.core.common.Constants
|
||||||
import tachiyomi.core.common.util.lang.launchIO
|
import tachiyomi.core.common.util.lang.launchIO
|
||||||
@@ -158,7 +158,7 @@ data class BrowseSourceScreen(
|
|||||||
},
|
},
|
||||||
leadingIcon = {
|
leadingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Favorite,
|
imageVector = MaterialSymbols.RoundedFilled.Favorite,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(FilterChipDefaults.IconSize),
|
.size(FilterChipDefaults.IconSize),
|
||||||
@@ -177,7 +177,7 @@ data class BrowseSourceScreen(
|
|||||||
},
|
},
|
||||||
leadingIcon = {
|
leadingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.NewReleases,
|
imageVector = MaterialSymbols.Rounded.NewReleases,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(FilterChipDefaults.IconSize),
|
.size(FilterChipDefaults.IconSize),
|
||||||
@@ -194,7 +194,7 @@ data class BrowseSourceScreen(
|
|||||||
onClick = viewModel::openFilterSheet,
|
onClick = viewModel::openFilterSheet,
|
||||||
leadingIcon = {
|
leadingIcon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.FilterList,
|
imageVector = MaterialSymbols.Rounded.FilterList,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(FilterChipDefaults.IconSize),
|
.size(FilterChipDefaults.IconSize),
|
||||||
|
|||||||
@@ -6,10 +6,6 @@ import androidx.compose.foundation.layout.Box
|
|||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.Sort
|
|
||||||
import androidx.compose.material.icons.filled.PlayArrow
|
|
||||||
import androidx.compose.material.icons.outlined.Pause
|
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -52,6 +48,10 @@ import eu.kanade.presentation.components.DropdownMenu
|
|||||||
import eu.kanade.presentation.components.NestedMenuItem
|
import eu.kanade.presentation.components.NestedMenuItem
|
||||||
import eu.kanade.presentation.util.Screen
|
import eu.kanade.presentation.util.Screen
|
||||||
import eu.kanade.tachiyomi.databinding.DownloadListBinding
|
import eu.kanade.tachiyomi.databinding.DownloadListBinding
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.Sort
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.Pause
|
||||||
|
import mihon.icons.materialsymbols.roundedfilled.PlayArrow
|
||||||
import tachiyomi.core.common.util.lang.launchUI
|
import tachiyomi.core.common.util.lang.launchUI
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.Pill
|
import tachiyomi.presentation.core.components.Pill
|
||||||
@@ -184,7 +184,7 @@ object DownloadQueueScreen : Screen() {
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_sort),
|
title = stringResource(MR.strings.action_sort),
|
||||||
icon = Icons.AutoMirrored.Outlined.Sort,
|
icon = MaterialSymbols.AutoMirroredRounded.Sort,
|
||||||
onClick = { sortExpanded = true },
|
onClick = { sortExpanded = true },
|
||||||
),
|
),
|
||||||
AppBar.OverflowAction(
|
AppBar.OverflowAction(
|
||||||
@@ -211,9 +211,9 @@ object DownloadQueueScreen : Screen() {
|
|||||||
},
|
},
|
||||||
icon = {
|
icon = {
|
||||||
val icon = if (isRunning) {
|
val icon = if (isRunning) {
|
||||||
Icons.Outlined.Pause
|
MaterialSymbols.RoundedFilled.Pause
|
||||||
} else {
|
} else {
|
||||||
Icons.Filled.PlayArrow
|
MaterialSymbols.RoundedFilled.PlayArrow
|
||||||
}
|
}
|
||||||
Icon(imageVector = icon, contentDescription = null)
|
Icon(imageVector = icon, contentDescription = null)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ import androidx.compose.animation.graphics.res.animatedVectorResource
|
|||||||
import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter
|
import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter
|
||||||
import androidx.compose.animation.graphics.vector.AnimatedImageVector
|
import androidx.compose.animation.graphics.vector.AnimatedImageVector
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
|
||||||
import androidx.compose.material3.SnackbarHost
|
import androidx.compose.material3.SnackbarHost
|
||||||
import androidx.compose.material3.SnackbarHostState
|
import androidx.compose.material3.SnackbarHostState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -50,6 +48,8 @@ import kotlinx.coroutines.flow.collectLatest
|
|||||||
import kotlinx.coroutines.flow.receiveAsFlow
|
import kotlinx.coroutines.flow.receiveAsFlow
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import mihon.feature.migration.config.MigrationConfigScreen
|
import mihon.feature.migration.config.MigrationConfigScreen
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.Help
|
||||||
import tachiyomi.core.common.i18n.stringResource
|
import tachiyomi.core.common.i18n.stringResource
|
||||||
import tachiyomi.core.common.util.lang.launchIO
|
import tachiyomi.core.common.util.lang.launchIO
|
||||||
import tachiyomi.domain.category.model.Category
|
import tachiyomi.domain.category.model.Category
|
||||||
@@ -172,7 +172,7 @@ data object LibraryTab : Tab {
|
|||||||
actions = listOf(
|
actions = listOf(
|
||||||
EmptyScreenAction(
|
EmptyScreenAction(
|
||||||
stringRes = MR.strings.getting_started_guide,
|
stringRes = MR.strings.getting_started_guide,
|
||||||
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
icon = MaterialSymbols.AutoMirroredRounded.Help,
|
||||||
onClick = { handler.openUri(GETTING_STARTED_URL) },
|
onClick = { handler.openUri(GETTING_STARTED_URL) },
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -32,9 +32,6 @@ import androidx.compose.foundation.layout.windowInsetsBottomHeight
|
|||||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.filled.OpenInNew
|
|
||||||
import androidx.compose.material.icons.filled.VolunteerActivism
|
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -111,6 +108,9 @@ import mihon.app.di.appGraph
|
|||||||
import mihon.core.metro.metroGraph
|
import mihon.core.metro.metroGraph
|
||||||
import mihon.core.migration.Migrator
|
import mihon.core.migration.Migrator
|
||||||
import mihon.feature.support.SupportUsScreen
|
import mihon.feature.support.SupportUsScreen
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.OpenInNew
|
||||||
|
import mihon.icons.materialsymbols.rounded.VolunteerActivism
|
||||||
import tachiyomi.core.common.Constants
|
import tachiyomi.core.common.Constants
|
||||||
import tachiyomi.core.common.util.lang.launchIO
|
import tachiyomi.core.common.util.lang.launchIO
|
||||||
import tachiyomi.core.common.util.system.logcat
|
import tachiyomi.core.common.util.system.logcat
|
||||||
@@ -418,7 +418,7 @@ class MainActivity : BaseActivity() {
|
|||||||
horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),
|
horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.VolunteerActivism,
|
imageVector = MaterialSymbols.Rounded.VolunteerActivism,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
@@ -447,7 +447,7 @@ class MainActivity : BaseActivity() {
|
|||||||
text = stringResource(MR.strings.donationCampaign_contactPlatform),
|
text = stringResource(MR.strings.donationCampaign_contactPlatform),
|
||||||
)
|
)
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Default.OpenInNew,
|
imageVector = MaterialSymbols.AutoMirroredRounded.OpenInNew,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.systemBars
|
import androidx.compose.foundation.layout.systemBars
|
||||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||||
import androidx.compose.foundation.text.input.rememberTextFieldState
|
import androidx.compose.foundation.text.input.rememberTextFieldState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Delete
|
|
||||||
import androidx.compose.material3.ButtonDefaults
|
import androidx.compose.material3.ButtonDefaults
|
||||||
import androidx.compose.material3.FilledTonalButton
|
import androidx.compose.material3.FilledTonalButton
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -73,6 +71,8 @@ import kotlinx.datetime.TimeZone
|
|||||||
import kotlinx.datetime.toLocalDateTime
|
import kotlinx.datetime.toLocalDateTime
|
||||||
import logcat.LogPriority
|
import logcat.LogPriority
|
||||||
import mihon.app.di.appGraph
|
import mihon.app.di.appGraph
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Delete
|
||||||
import tachiyomi.core.common.i18n.stringResource
|
import tachiyomi.core.common.i18n.stringResource
|
||||||
import tachiyomi.core.common.util.lang.launchNonCancellable
|
import tachiyomi.core.common.util.lang.launchNonCancellable
|
||||||
import tachiyomi.core.common.util.lang.withIOContext
|
import tachiyomi.core.common.util.lang.withIOContext
|
||||||
@@ -630,7 +630,7 @@ data class TrackDateRemoverScreen(
|
|||||||
modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars),
|
modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars),
|
||||||
icon = {
|
icon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Delete,
|
imageVector = MaterialSymbols.Rounded.Delete,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
@@ -836,7 +836,7 @@ data class TrackerRemoveScreen(
|
|||||||
modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars),
|
modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars),
|
||||||
icon = {
|
icon = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Delete,
|
imageVector = MaterialSymbols.Rounded.Delete,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
package eu.kanade.tachiyomi.ui.reader.setting
|
package eu.kanade.tachiyomi.ui.reader.setting
|
||||||
|
|
||||||
import android.content.pm.ActivityInfo
|
import android.content.pm.ActivityInfo
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.ScreenLockLandscape
|
|
||||||
import androidx.compose.material.icons.filled.ScreenLockPortrait
|
|
||||||
import androidx.compose.material.icons.filled.ScreenRotation
|
|
||||||
import androidx.compose.material.icons.filled.StayCurrentLandscape
|
|
||||||
import androidx.compose.material.icons.filled.StayCurrentPortrait
|
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import dev.icerock.moko.resources.StringResource
|
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 tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
|
|
||||||
enum class ReaderOrientation(
|
enum class ReaderOrientation(
|
||||||
@@ -20,43 +20,43 @@ enum class ReaderOrientation(
|
|||||||
DEFAULT(
|
DEFAULT(
|
||||||
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED,
|
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED,
|
||||||
MR.strings.label_default,
|
MR.strings.label_default,
|
||||||
Icons.Default.ScreenRotation,
|
MaterialSymbols.Rounded.ScreenRotation,
|
||||||
0x00000000,
|
0x00000000,
|
||||||
),
|
),
|
||||||
FREE(
|
FREE(
|
||||||
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED,
|
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED,
|
||||||
MR.strings.rotation_free,
|
MR.strings.rotation_free,
|
||||||
Icons.Default.ScreenRotation,
|
MaterialSymbols.Rounded.ScreenRotation,
|
||||||
0x00000008,
|
0x00000008,
|
||||||
),
|
),
|
||||||
PORTRAIT(
|
PORTRAIT(
|
||||||
ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT,
|
ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT,
|
||||||
MR.strings.rotation_portrait,
|
MR.strings.rotation_portrait,
|
||||||
Icons.Default.StayCurrentPortrait,
|
MaterialSymbols.Rounded.StayCurrentPortrait,
|
||||||
0x00000010,
|
0x00000010,
|
||||||
),
|
),
|
||||||
LANDSCAPE(
|
LANDSCAPE(
|
||||||
ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE,
|
ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE,
|
||||||
MR.strings.rotation_landscape,
|
MR.strings.rotation_landscape,
|
||||||
Icons.Default.StayCurrentLandscape,
|
MaterialSymbols.Rounded.StayCurrentLandscape,
|
||||||
0x00000018,
|
0x00000018,
|
||||||
),
|
),
|
||||||
LOCKED_PORTRAIT(
|
LOCKED_PORTRAIT(
|
||||||
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT,
|
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT,
|
||||||
MR.strings.rotation_force_portrait,
|
MR.strings.rotation_force_portrait,
|
||||||
Icons.Default.ScreenLockPortrait,
|
MaterialSymbols.Rounded.ScreenLockPortrait,
|
||||||
0x00000020,
|
0x00000020,
|
||||||
),
|
),
|
||||||
LOCKED_LANDSCAPE(
|
LOCKED_LANDSCAPE(
|
||||||
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE,
|
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE,
|
||||||
MR.strings.rotation_force_landscape,
|
MR.strings.rotation_force_landscape,
|
||||||
Icons.Default.ScreenLockLandscape,
|
MaterialSymbols.Rounded.ScreenLockLandscape,
|
||||||
0x00000028,
|
0x00000028,
|
||||||
),
|
),
|
||||||
REVERSE_PORTRAIT(
|
REVERSE_PORTRAIT(
|
||||||
ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT,
|
ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT,
|
||||||
MR.strings.rotation_reverse_portrait,
|
MR.strings.rotation_reverse_portrait,
|
||||||
Icons.Default.StayCurrentPortrait,
|
MaterialSymbols.Rounded.StayCurrentPortrait,
|
||||||
0x00000030,
|
0x00000030,
|
||||||
),
|
),
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -9,11 +9,6 @@ import androidx.compose.foundation.lazy.LazyItemScope
|
|||||||
import androidx.compose.foundation.lazy.itemsIndexed
|
import androidx.compose.foundation.lazy.itemsIndexed
|
||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ArrowForward
|
|
||||||
import androidx.compose.material.icons.outlined.Deselect
|
|
||||||
import androidx.compose.material.icons.outlined.DragHandle
|
|
||||||
import androidx.compose.material.icons.outlined.SelectAll
|
|
||||||
import androidx.compose.material3.ElevatedCard
|
import androidx.compose.material3.ElevatedCard
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -58,6 +53,11 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
|||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.update
|
import kotlinx.coroutines.flow.update
|
||||||
import mihon.feature.migration.list.MigrationListScreen
|
import mihon.feature.migration.list.MigrationListScreen
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ArrowForward
|
||||||
|
import mihon.icons.materialsymbols.rounded.Deselect
|
||||||
|
import mihon.icons.materialsymbols.rounded.DragHandle
|
||||||
|
import mihon.icons.materialsymbols.rounded.SelectAll
|
||||||
import sh.calvin.reorderable.ReorderableCollectionItemScope
|
import sh.calvin.reorderable.ReorderableCollectionItemScope
|
||||||
import sh.calvin.reorderable.ReorderableItem
|
import sh.calvin.reorderable.ReorderableItem
|
||||||
import sh.calvin.reorderable.ReorderableLazyListState
|
import sh.calvin.reorderable.ReorderableLazyListState
|
||||||
@@ -125,12 +125,12 @@ class MigrationConfigScreen(private val mangaIds: Collection<Long>) : Screen() {
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.migrationConfigScreen_selectAllLabel),
|
title = stringResource(MR.strings.migrationConfigScreen_selectAllLabel),
|
||||||
icon = Icons.Outlined.SelectAll,
|
icon = MaterialSymbols.Rounded.SelectAll,
|
||||||
onClick = { viewModel.toggleSelection(Model.SelectionConfig.All) },
|
onClick = { viewModel.toggleSelection(Model.SelectionConfig.All) },
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.migrationConfigScreen_selectNoneLabel),
|
title = stringResource(MR.strings.migrationConfigScreen_selectNoneLabel),
|
||||||
icon = Icons.Outlined.Deselect,
|
icon = MaterialSymbols.Rounded.Deselect,
|
||||||
onClick = { viewModel.toggleSelection(Model.SelectionConfig.None) },
|
onClick = { viewModel.toggleSelection(Model.SelectionConfig.None) },
|
||||||
),
|
),
|
||||||
AppBar.OverflowAction(
|
AppBar.OverflowAction(
|
||||||
@@ -149,7 +149,9 @@ class MigrationConfigScreen(private val mangaIds: Collection<Long>) : Screen() {
|
|||||||
floatingActionButton = {
|
floatingActionButton = {
|
||||||
SmallExtendedFloatingActionButton(
|
SmallExtendedFloatingActionButton(
|
||||||
text = { Text(text = stringResource(MR.strings.migrationConfigScreen_continueButtonText)) },
|
text = { Text(text = stringResource(MR.strings.migrationConfigScreen_continueButtonText)) },
|
||||||
icon = { Icon(imageVector = Icons.AutoMirrored.Outlined.ArrowForward, contentDescription = null) },
|
icon = {
|
||||||
|
Icon(imageVector = MaterialSymbols.AutoMirroredRounded.ArrowForward, contentDescription = null)
|
||||||
|
},
|
||||||
onClick = {
|
onClick = {
|
||||||
viewModel.saveSources()
|
viewModel.saveSources()
|
||||||
continueMigration(openSheet = true, extraSearchQuery = null)
|
continueMigration(openSheet = true, extraSearchQuery = null)
|
||||||
@@ -277,7 +279,7 @@ class MigrationConfigScreen(private val mangaIds: Collection<Long>) : Screen() {
|
|||||||
trailingContent = if (dragEnabled) {
|
trailingContent = if (dragEnabled) {
|
||||||
{
|
{
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.DragHandle,
|
imageVector = MaterialSymbols.Rounded.DragHandle,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = with(scope) {
|
modifier = with(scope) {
|
||||||
Modifier.draggableHandle()
|
Modifier.draggableHandle()
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ import androidx.compose.foundation.layout.height
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.outlined.Check
|
|
||||||
import androidx.compose.material.icons.outlined.Warning
|
|
||||||
import androidx.compose.material3.FilterChip
|
import androidx.compose.material3.FilterChip
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
@@ -35,6 +32,9 @@ import eu.kanade.domain.source.service.SourcePreferences
|
|||||||
import eu.kanade.presentation.components.AdaptiveSheet
|
import eu.kanade.presentation.components.AdaptiveSheet
|
||||||
import mihon.domain.migration.models.MigrationFlag
|
import mihon.domain.migration.models.MigrationFlag
|
||||||
import mihon.feature.common.utils.getLabel
|
import mihon.feature.common.utils.getLabel
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.Check
|
||||||
|
import mihon.icons.materialsymbols.rounded.Warning
|
||||||
import tachiyomi.core.common.preference.Preference
|
import tachiyomi.core.common.preference.Preference
|
||||||
import tachiyomi.core.common.preference.getAndSet
|
import tachiyomi.core.common.preference.getAndSet
|
||||||
import tachiyomi.core.common.preference.toggle
|
import tachiyomi.core.common.preference.toggle
|
||||||
@@ -98,7 +98,7 @@ fun MigrationConfigScreenSheet(
|
|||||||
leadingIcon = {
|
leadingIcon = {
|
||||||
if (selected) {
|
if (selected) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Check,
|
imageVector = MaterialSymbols.Rounded.Check,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -226,7 +226,7 @@ private fun MigrationSheetWarningItem(
|
|||||||
ListItem(
|
ListItem(
|
||||||
leadingContent = {
|
leadingContent = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Warning,
|
imageVector = MaterialSymbols.Rounded.Warning,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = MaterialTheme.colorScheme.active,
|
tint = MaterialTheme.colorScheme.active,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -17,14 +17,6 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.foundation.layout.widthIn
|
import androidx.compose.foundation.layout.widthIn
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.ArrowForward
|
|
||||||
import androidx.compose.material.icons.outlined.Close
|
|
||||||
import androidx.compose.material.icons.outlined.ContentCopy
|
|
||||||
import androidx.compose.material.icons.outlined.CopyAll
|
|
||||||
import androidx.compose.material.icons.outlined.Done
|
|
||||||
import androidx.compose.material.icons.outlined.DoneAll
|
|
||||||
import androidx.compose.material.icons.outlined.MoreVert
|
|
||||||
import androidx.compose.material3.CircularProgressIndicator
|
import androidx.compose.material3.CircularProgressIndicator
|
||||||
import androidx.compose.material3.DropdownMenu
|
import androidx.compose.material3.DropdownMenu
|
||||||
import androidx.compose.material3.DropdownMenuItem
|
import androidx.compose.material3.DropdownMenuItem
|
||||||
@@ -55,6 +47,14 @@ import eu.kanade.presentation.util.formatChapterNumber
|
|||||||
import eu.kanade.presentation.util.rememberResourceBitmapPainter
|
import eu.kanade.presentation.util.rememberResourceBitmapPainter
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import mihon.feature.migration.list.models.MigratingManga
|
import mihon.feature.migration.list.models.MigratingManga
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.ArrowForward
|
||||||
|
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
|
import tachiyomi.domain.manga.model.Manga
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.Badge
|
import tachiyomi.presentation.core.components.Badge
|
||||||
@@ -91,13 +91,25 @@ fun MigrationListScreenContent(
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.migrationListScreen_copyActionLabel),
|
title = stringResource(MR.strings.migrationListScreen_copyActionLabel),
|
||||||
icon = if (items.size == 1) Icons.Outlined.ContentCopy else Icons.Outlined.CopyAll,
|
icon = if (items.size ==
|
||||||
|
1
|
||||||
|
) {
|
||||||
|
MaterialSymbols.Rounded.ContentCopy
|
||||||
|
} else {
|
||||||
|
MaterialSymbols.Rounded.CopyAll
|
||||||
|
},
|
||||||
onClick = { openMigrationDialog(true) },
|
onClick = { openMigrationDialog(true) },
|
||||||
enabled = migrationComplete,
|
enabled = migrationComplete,
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.migrationListScreen_migrateActionLabel),
|
title = stringResource(MR.strings.migrationListScreen_migrateActionLabel),
|
||||||
icon = if (items.size == 1) Icons.Outlined.Done else Icons.Outlined.DoneAll,
|
icon = if (items.size ==
|
||||||
|
1
|
||||||
|
) {
|
||||||
|
MaterialSymbols.Rounded.Done
|
||||||
|
} else {
|
||||||
|
MaterialSymbols.Rounded.DoneAll
|
||||||
|
},
|
||||||
onClick = { openMigrationDialog(false) },
|
onClick = { openMigrationDialog(false) },
|
||||||
enabled = migrationComplete,
|
enabled = migrationComplete,
|
||||||
),
|
),
|
||||||
@@ -135,7 +147,7 @@ fun MigrationListScreenContent(
|
|||||||
)
|
)
|
||||||
|
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Outlined.ArrowForward,
|
imageVector = MaterialSymbols.AutoMirroredRounded.ArrowForward,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier.weight(0.2f),
|
modifier = Modifier.weight(0.2f),
|
||||||
)
|
)
|
||||||
@@ -316,7 +328,7 @@ private fun MigrationListItemAction(
|
|||||||
MigratingManga.SearchResult.Searching -> {
|
MigratingManga.SearchResult.Searching -> {
|
||||||
IconButton(onClick = onSkip) {
|
IconButton(onClick = onSkip) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.Close,
|
imageVector = MaterialSymbols.Rounded.Close,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -324,7 +336,7 @@ private fun MigrationListItemAction(
|
|||||||
MigratingManga.SearchResult.NotFound, is MigratingManga.SearchResult.Success -> {
|
MigratingManga.SearchResult.NotFound, is MigratingManga.SearchResult.Success -> {
|
||||||
IconButton(onClick = { menuExpanded = true }) {
|
IconButton(onClick = { menuExpanded = true }) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Outlined.MoreVert,
|
imageVector = MaterialSymbols.Rounded.MoreVert,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import androidx.compose.foundation.layout.height
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.filled.OpenInNew
|
|
||||||
import androidx.compose.material3.Card
|
import androidx.compose.material3.Card
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -28,14 +26,16 @@ import cafe.adriel.voyager.navigator.currentOrThrow
|
|||||||
import eu.kanade.presentation.components.AppBar
|
import eu.kanade.presentation.components.AppBar
|
||||||
import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
||||||
import eu.kanade.presentation.util.Screen
|
import eu.kanade.presentation.util.Screen
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.OpenInNew
|
||||||
|
import mihon.icons.simpleicons.Discord
|
||||||
|
import mihon.icons.simpleicons.OpenCollective
|
||||||
|
import mihon.icons.simpleicons.Patreon
|
||||||
|
import mihon.icons.simpleicons.SimpleIcons
|
||||||
import tachiyomi.core.common.Constants
|
import tachiyomi.core.common.Constants
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import tachiyomi.presentation.core.icons.CustomIcons
|
|
||||||
import tachiyomi.presentation.core.icons.Discord
|
|
||||||
import tachiyomi.presentation.core.icons.OpenCollective
|
|
||||||
import tachiyomi.presentation.core.icons.Patreon
|
|
||||||
|
|
||||||
class SupportUsScreen : Screen() {
|
class SupportUsScreen : Screen() {
|
||||||
|
|
||||||
@@ -87,12 +87,12 @@ class SupportUsScreen : Screen() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
SupportItem(
|
SupportItem(
|
||||||
icon = CustomIcons.Patreon,
|
icon = SimpleIcons.Patreon,
|
||||||
title = stringResource(MR.strings.supportUsScreen_donationPlatform_patreon),
|
title = stringResource(MR.strings.supportUsScreen_donationPlatform_patreon),
|
||||||
onClick = { uriHandler.openUri(Constants.URL_DONATE_PATREON) },
|
onClick = { uriHandler.openUri(Constants.URL_DONATE_PATREON) },
|
||||||
)
|
)
|
||||||
SupportItem(
|
SupportItem(
|
||||||
icon = CustomIcons.OpenCollective,
|
icon = SimpleIcons.OpenCollective,
|
||||||
title = stringResource(MR.strings.supportUsScreen_donationPlatform_opencollective),
|
title = stringResource(MR.strings.supportUsScreen_donationPlatform_opencollective),
|
||||||
onClick = { uriHandler.openUri(Constants.URL_DONATE_OPENCOLLECTIVE) },
|
onClick = { uriHandler.openUri(Constants.URL_DONATE_OPENCOLLECTIVE) },
|
||||||
)
|
)
|
||||||
@@ -110,7 +110,7 @@ class SupportUsScreen : Screen() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
SupportItem(
|
SupportItem(
|
||||||
icon = CustomIcons.Discord,
|
icon = SimpleIcons.Discord,
|
||||||
title = stringResource(MR.strings.supportUsScreen_contactPlatform),
|
title = stringResource(MR.strings.supportUsScreen_contactPlatform),
|
||||||
onClick = { uriHandler.openUri(Constants.URL_DISCORD) },
|
onClick = { uriHandler.openUri(Constants.URL_DISCORD) },
|
||||||
)
|
)
|
||||||
@@ -132,7 +132,7 @@ class SupportUsScreen : Screen() {
|
|||||||
icon = icon,
|
icon = icon,
|
||||||
widget = {
|
widget = {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Filled.OpenInNew,
|
imageVector = MaterialSymbols.AutoMirroredRounded.OpenInNew,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,9 +7,6 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
|
||||||
import androidx.compose.material.icons.outlined.FilterList
|
|
||||||
import androidx.compose.material3.Badge
|
import androidx.compose.material3.Badge
|
||||||
import androidx.compose.material3.LocalContentColor
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -31,6 +28,9 @@ import kotlinx.datetime.LocalDate
|
|||||||
import kotlinx.datetime.YearMonth
|
import kotlinx.datetime.YearMonth
|
||||||
import mihon.feature.upcoming.components.UpcomingItem
|
import mihon.feature.upcoming.components.UpcomingItem
|
||||||
import mihon.feature.upcoming.components.calendar.Calendar
|
import mihon.feature.upcoming.components.calendar.Calendar
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.automirroredrounded.Help
|
||||||
|
import mihon.icons.materialsymbols.rounded.FilterList
|
||||||
import tachiyomi.core.common.Constants
|
import tachiyomi.core.common.Constants
|
||||||
import tachiyomi.domain.manga.model.Manga
|
import tachiyomi.domain.manga.model.Manga
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
@@ -110,13 +110,13 @@ private fun UpcomingToolbar(
|
|||||||
listOf(
|
listOf(
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.action_filter),
|
title = stringResource(MR.strings.action_filter),
|
||||||
icon = Icons.Outlined.FilterList,
|
icon = MaterialSymbols.Rounded.FilterList,
|
||||||
iconTint = if (hasFilters) MaterialTheme.colorScheme.active else LocalContentColor.current,
|
iconTint = if (hasFilters) MaterialTheme.colorScheme.active else LocalContentColor.current,
|
||||||
onClick = onClickFilter,
|
onClick = onClickFilter,
|
||||||
),
|
),
|
||||||
AppBar.Action(
|
AppBar.Action(
|
||||||
title = stringResource(MR.strings.upcoming_guide),
|
title = stringResource(MR.strings.upcoming_guide),
|
||||||
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
icon = MaterialSymbols.AutoMirroredRounded.Help,
|
||||||
onClick = { uriHandler.openUri(Constants.URL_HELP_UPCOMING) },
|
onClick = { uriHandler.openUri(Constants.URL_HELP_UPCOMING) },
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -12,9 +12,6 @@ import androidx.compose.animation.slideOutVertically
|
|||||||
import androidx.compose.animation.togetherWith
|
import androidx.compose.animation.togetherWith
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.KeyboardArrowLeft
|
|
||||||
import androidx.compose.material.icons.filled.KeyboardArrowRight
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -29,6 +26,9 @@ import kotlinx.datetime.YearMonth
|
|||||||
import kotlinx.datetime.toJavaYearMonth
|
import kotlinx.datetime.toJavaYearMonth
|
||||||
import kotlinx.datetime.toLocalDateTime
|
import kotlinx.datetime.toLocalDateTime
|
||||||
import kotlinx.datetime.yearMonth
|
import kotlinx.datetime.yearMonth
|
||||||
|
import mihon.icons.materialsymbols.MaterialSymbols
|
||||||
|
import mihon.icons.materialsymbols.rounded.KeyboardArrowLeft
|
||||||
|
import mihon.icons.materialsymbols.rounded.KeyboardArrowRight
|
||||||
import tachiyomi.i18n.MR
|
import tachiyomi.i18n.MR
|
||||||
import tachiyomi.presentation.core.i18n.stringResource
|
import tachiyomi.presentation.core.i18n.stringResource
|
||||||
import java.time.format.DateTimeFormatter
|
import java.time.format.DateTimeFormatter
|
||||||
@@ -60,11 +60,11 @@ fun CalenderHeader(
|
|||||||
Row {
|
Row {
|
||||||
IconButton(onClick = onPreviousClick) {
|
IconButton(onClick = onPreviousClick) {
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
Icon(Icons.Default.KeyboardArrowLeft, stringResource(MR.strings.upcoming_calendar_prev))
|
Icon(MaterialSymbols.Rounded.KeyboardArrowLeft, stringResource(MR.strings.upcoming_calendar_prev))
|
||||||
}
|
}
|
||||||
IconButton(onClick = onNextClick) {
|
IconButton(onClick = onNextClick) {
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
Icon(Icons.Default.KeyboardArrowRight, stringResource(MR.strings.upcoming_calendar_next))
|
Icon(MaterialSymbols.Rounded.KeyboardArrowRight, stringResource(MR.strings.upcoming_calendar_next))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ subsamplingScaleImageView = "94915e6f73"
|
|||||||
swipe = "1.3.0"
|
swipe = "1.3.0"
|
||||||
tapmoc = "0.4.2"
|
tapmoc = "0.4.2"
|
||||||
unifile = "08f224c8f9"
|
unifile = "08f224c8f9"
|
||||||
|
valkyrie = "0.5.2"
|
||||||
voyager = "2.2.21-1.10.3"
|
voyager = "2.2.21-1.10.3"
|
||||||
webgpuviewer = "39"
|
webgpuviewer = "39"
|
||||||
xmlutil = "1.0.2"
|
xmlutil = "1.0.2"
|
||||||
@@ -94,9 +95,9 @@ androidx-compose-bom = { module = "androidx.compose:compose-bom-alpha", version.
|
|||||||
androidx-compose-foundation = { module = "androidx.compose.foundation:foundation" }
|
androidx-compose-foundation = { module = "androidx.compose.foundation:foundation" }
|
||||||
androidx-compose-material3 = { module = "androidx.compose.material3:material3" }
|
androidx-compose-material3 = { module = "androidx.compose.material3:material3" }
|
||||||
androidx-compose-material3NavSuite = { module = "androidx.compose.material3:material3-adaptive-navigation-suite" }
|
androidx-compose-material3NavSuite = { module = "androidx.compose.material3:material3-adaptive-navigation-suite" }
|
||||||
androidx-compose-materialIcons = { module = "androidx.compose.material:material-icons-extended" }
|
|
||||||
androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" }
|
androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" }
|
||||||
androidx-compose-runtimeAnnotation = { module = "androidx.compose.runtime:runtime-annotation" }
|
androidx-compose-runtimeAnnotation = { module = "androidx.compose.runtime:runtime-annotation" }
|
||||||
|
androidx-compose-ui = { module = "androidx.compose.ui:ui" }
|
||||||
androidx-compose-uiTooling = { module = "androidx.compose.ui:ui-tooling" }
|
androidx-compose-uiTooling = { module = "androidx.compose.ui:ui-tooling" }
|
||||||
androidx-compose-uiToolingPreview = { module = "androidx.compose.ui:ui-tooling-preview" }
|
androidx-compose-uiToolingPreview = { module = "androidx.compose.ui:ui-tooling-preview" }
|
||||||
androidx-compose-uiUtil = { module = "androidx.compose.ui:ui-util" }
|
androidx-compose-uiUtil = { module = "androidx.compose.ui:ui-util" }
|
||||||
@@ -218,6 +219,7 @@ moko-resources = { id = "dev.icerock.mobile.multiplatform-resources", version.re
|
|||||||
metro = { id = "dev.zacsweers.metro", version.ref = "metro" }
|
metro = { id = "dev.zacsweers.metro", version.ref = "metro" }
|
||||||
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
|
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
|
||||||
sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" }
|
sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" }
|
||||||
|
valkyrie = { id = "io.github.composegears.valkyrie", version.ref = "valkyrie" }
|
||||||
|
|
||||||
[bundles]
|
[bundles]
|
||||||
androidx-lifecycle = ["androidx-lifecycle-common", "androidx-lifecycle-process", "androidx-lifecycle-runtime", "androidx-lifecycle-viewmodel", "androidx-lifecycle-viewmodelCompose"]
|
androidx-lifecycle = ["androidx-lifecycle-common", "androidx-lifecycle-process", "androidx-lifecycle-runtime", "androidx-lifecycle-viewmodel", "androidx-lifecycle-viewmodelCompose"]
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
plugins {
|
||||||
|
alias(mihonx.plugins.android.library)
|
||||||
|
alias(mihonx.plugins.compose)
|
||||||
|
|
||||||
|
alias(mihonx.plugins.spotless)
|
||||||
|
|
||||||
|
alias(libs.plugins.valkyrie)
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "mihon.icons.materialsymbols"
|
||||||
|
}
|
||||||
|
|
||||||
|
spotless {
|
||||||
|
format("svg") {
|
||||||
|
target("src/**/*.svg")
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
valkyrie {
|
||||||
|
packageName = "mihon.icons.materialsymbols"
|
||||||
|
generateAtSync = true
|
||||||
|
|
||||||
|
imageVector {
|
||||||
|
suppressUnusedReceiverWarning = true
|
||||||
|
}
|
||||||
|
|
||||||
|
iconPack {
|
||||||
|
name = "MaterialSymbols"
|
||||||
|
targetSourceSet = "main"
|
||||||
|
|
||||||
|
nested {
|
||||||
|
name = "Rounded"
|
||||||
|
sourceFolder = "rounded"
|
||||||
|
autoMirror = false
|
||||||
|
}
|
||||||
|
|
||||||
|
nested {
|
||||||
|
name = "RoundedFilled"
|
||||||
|
sourceFolder = "roundedFilled"
|
||||||
|
autoMirror = false
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://github.com/ComposeGears/Valkyrie/pull/1019
|
||||||
|
nested {
|
||||||
|
name = "AutoMirroredRounded"
|
||||||
|
sourceFolder = "autoMirroredRounded"
|
||||||
|
autoMirror = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
api(libs.androidx.compose.ui)
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'arrow_back', v399.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="m313-440 196 196q12 12 11.5 28T508-188q-12 11-28 11.5T452-188L188-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l264-264q11-11 27.5-11t28.5 11q12 12 12 28.5T508-715L313-520h447q17 0 28.5 11.5T800-480q0 17-11.5 28.5T760-440H313Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 450 B |
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'arrow_forward', v399.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M647-440H200q-17 0-28.5-11.5T160-480q0-17 11.5-28.5T200-520h447L451-716q-12-12-11.5-28t12.5-28q12-11 28-11.5t28 11.5l264 264q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L508-188q-11 11-27.5 11T452-188q-12-12-12-28.5t12-28.5l195-195Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 455 B |
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'arrow_right', v399.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M420-308q-8 0-14-5.5t-6-14.5v-304q0-9 6-14.5t14-5.5q2 0 14 6l145 145q5 5 7 10t2 11q0 6-2 11t-7 10L434-314q-3 3-6.5 4.5T420-308Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 356 B |
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'chrome_reader_mode', v399.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h280v-480H160v480Zm360 0h280v-480H520v480Zm210-120q13 0 21.5-8.5T760-390q0-13-8.5-21.5T730-420H590q-13 0-21.5 8.5T560-390q0 13 8.5 21.5T590-360h140Zm0-100q13 0 21.5-8.5T760-490q0-13-8.5-21.5T730-520H590q-13 0-21.5 8.5T560-490q0 13 8.5 21.5T590-460h140Zm0-100q13 0 21.5-8.5T760-590q0-13-8.5-21.5T730-620H590q-13 0-21.5 8.5T560-590q0 13 8.5 21.5T590-560h140ZM160-240v-480 480Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 733 B |
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'format_list_bulleted', v399.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M400-200q-17 0-28.5-11.5T360-240q0-17 11.5-28.5T400-280h400q17 0 28.5 11.5T840-240q0 17-11.5 28.5T800-200H400Zm0-240q-17 0-28.5-11.5T360-480q0-17 11.5-28.5T400-520h400q17 0 28.5 11.5T840-480q0 17-11.5 28.5T800-440H400Zm0-240q-17 0-28.5-11.5T360-720q0-17 11.5-28.5T400-760h400q17 0 28.5 11.5T840-720q0 17-11.5 28.5T800-680H400ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm-56.5-263.5Q120-687 120-720t23.5-56.5Q167-800 200-800t56.5 23.5Q280-753 280-720t-23.5 56.5Q233-640 200-640t-56.5-23.5Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 885 B |
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'help', v399.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M513.5-254.5Q528-269 528-290t-14.5-35.5Q499-340 478-340t-35.5 14.5Q428-311 428-290t14.5 35.5Q457-240 478-240t35.5-14.5ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Zm4-172q25 0 43.5 16t18.5 40q0 22-13.5 39T502-525q-23 20-40.5 44T444-427q0 14 10.5 23.5T479-394q15 0 25.5-10t13.5-25q4-21 18-37.5t30-31.5q23-22 39.5-48t16.5-58q0-51-41.5-83.5T484-720q-38 0-72.5 16T359-655q-7 12-4.5 25.5T368-609q14 8 29 5t25-17q11-15 27.5-23t34.5-8Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 890 B |
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'label', v329.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h440q19 0 36 8.5t28 23.5l180 240q16 21 16 48t-16 48L664-192q-11 15-28 23.5t-36 8.5H160Zm0-80h440l180-240-180-240H160v480Zm310-240Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 412 B |
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'open_in_new', v399.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h240q17 0 28.5 11.5T480-800q0 17-11.5 28.5T440-760H200v560h560v-240q0-17 11.5-28.5T800-480q17 0 28.5 11.5T840-440v240q0 33-23.5 56.5T760-120H200Zm560-584L416-360q-11 11-28 11t-28-11q-11-11-11-28t11-28l344-344H600q-17 0-28.5-11.5T560-800q0-17 11.5-28.5T600-840h200q17 0 28.5 11.5T840-800v200q0 17-11.5 28.5T800-560q-17 0-28.5-11.5T760-600v-104Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 632 B |
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'sort', v399.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M160-240q-17 0-28.5-11.5T120-280q0-17 11.5-28.5T160-320h160q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240H160Zm0-200q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520h400q17 0 28.5 11.5T600-480q0 17-11.5 28.5T560-440H160Zm0-200q-17 0-28.5-11.5T120-680q0-17 11.5-28.5T160-720h640q17 0 28.5 11.5T840-680q0 17-11.5 28.5T800-640H160Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 548 B |
@@ -0,0 +1,6 @@
|
|||||||
|
<!--
|
||||||
|
Material Symbols Rounded 'view_list', v329.
|
||||||
|
Copyright (C) Google LLC
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M360-240h440v-107H360v107ZM160-613h120v-107H160v107Zm0 187h120v-107H160v107Zm0 186h120v-107H160v107Zm200-186h440v-107H360v107Zm0-187h440v-107H360v107ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 495 B |