mirror of
https://github.com/T8RIN/ImageToolbox.git
synced 2025-08-06 15:49:35 +08:00
code refactor
This commit is contained in:
@ -87,7 +87,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class SingleEdit(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 0,
|
||||
title = R.string.single_edit,
|
||||
@ -96,7 +96,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ResizeAndConvert(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 1,
|
||||
title = R.string.resize_and_convert,
|
||||
@ -105,7 +105,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class WeightResize(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 2,
|
||||
title = R.string.by_bytes_resize,
|
||||
@ -114,7 +114,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Crop(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 3,
|
||||
title = R.string.crop,
|
||||
@ -143,7 +143,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Masking(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Type(
|
||||
title = R.string.mask_filter,
|
||||
subtitle = R.string.mask_filter_sub
|
||||
@ -151,7 +151,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Basic(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.full_filter,
|
||||
subtitle = R.string.full_filter_sub
|
||||
@ -170,7 +170,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Draw(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 5,
|
||||
title = R.string.draw,
|
||||
@ -179,7 +179,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Cipher(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 6,
|
||||
title = R.string.cipher,
|
||||
@ -188,7 +188,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class EraseBackground(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 7,
|
||||
title = R.string.background_remover,
|
||||
@ -197,7 +197,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImagePreview(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 8,
|
||||
title = R.string.image_preview,
|
||||
@ -206,7 +206,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImageStitching(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 9,
|
||||
title = R.string.image_stitching,
|
||||
@ -224,7 +224,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class PickColorFromImage(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 11,
|
||||
title = R.string.pick_color,
|
||||
@ -233,7 +233,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class GeneratePalette(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 12,
|
||||
title = R.string.generate_palette,
|
||||
@ -242,7 +242,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class DeleteExif(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 13,
|
||||
title = R.string.delete_exif,
|
||||
@ -251,7 +251,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Compare(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 14,
|
||||
title = R.string.compare,
|
||||
@ -260,7 +260,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class LimitResize(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 15,
|
||||
title = R.string.limits_resize,
|
||||
@ -290,7 +290,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Preview(
|
||||
val pdfUri: KUri? = null
|
||||
val pdfUri: Uri? = null
|
||||
) : Type(
|
||||
title = R.string.preview_pdf,
|
||||
subtitle = R.string.preview_pdf_sub
|
||||
@ -298,7 +298,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class PdfToImages(
|
||||
val pdfUri: KUri? = null
|
||||
val pdfUri: Uri? = null
|
||||
) : Type(
|
||||
title = R.string.pdf_to_images,
|
||||
subtitle = R.string.pdf_to_images_sub
|
||||
@ -306,7 +306,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImagesToPdf(
|
||||
val imageUris: List<KUri>? = null
|
||||
val imageUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.images_to_pdf,
|
||||
subtitle = R.string.images_to_pdf_sub
|
||||
@ -326,7 +326,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class RecognizeText(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 17,
|
||||
title = R.string.recognize_text,
|
||||
@ -335,7 +335,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class GradientMaker(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 18,
|
||||
title = R.string.gradient_maker,
|
||||
@ -344,7 +344,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Watermarking(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 19,
|
||||
title = R.string.watermarking,
|
||||
@ -375,7 +375,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class GifToImage(
|
||||
val gifUri: KUri? = null
|
||||
val gifUri: Uri? = null
|
||||
) : Type(
|
||||
title = R.string.gif_type_to_image,
|
||||
subtitle = R.string.gif_type_to_image_sub
|
||||
@ -383,7 +383,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImageToGif(
|
||||
val imageUris: List<KUri>? = null
|
||||
val imageUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.gif_type_to_gif,
|
||||
subtitle = R.string.gif_type_to_gif_sub
|
||||
@ -391,7 +391,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class GifToJxl(
|
||||
val gifUris: List<KUri>? = null
|
||||
val gifUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.gif_type_to_jxl,
|
||||
subtitle = R.string.gif_type_to_jxl_sub
|
||||
@ -399,7 +399,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class GifToWebp(
|
||||
val gifUris: List<KUri>? = null
|
||||
val gifUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.gif_type_to_webp,
|
||||
subtitle = R.string.gif_type_to_webp_sub
|
||||
@ -441,7 +441,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ApngToImage(
|
||||
val apngUri: KUri? = null
|
||||
val apngUri: Uri? = null
|
||||
) : Type(
|
||||
title = R.string.apng_type_to_image,
|
||||
subtitle = R.string.apng_type_to_image_sub
|
||||
@ -449,7 +449,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImageToApng(
|
||||
val imageUris: List<KUri>? = null
|
||||
val imageUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.apng_type_to_apng,
|
||||
subtitle = R.string.apng_type_to_apng_sub
|
||||
@ -457,7 +457,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ApngToJxl(
|
||||
val apngUris: List<KUri>? = null
|
||||
val apngUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.apng_type_to_jxl,
|
||||
subtitle = R.string.apng_type_to_jxl_sub
|
||||
@ -477,7 +477,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Zip(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 22,
|
||||
title = R.string.zip,
|
||||
@ -508,7 +508,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class JxlToJpeg(
|
||||
val jxlImageUris: List<KUri>? = null
|
||||
val jxlImageUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.jxl_type_to_jpeg,
|
||||
subtitle = R.string.jxl_type_to_jpeg_sub
|
||||
@ -516,7 +516,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class JpegToJxl(
|
||||
val jpegImageUris: List<KUri>? = null
|
||||
val jpegImageUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.jpeg_type_to_jxl,
|
||||
subtitle = R.string.jpeg_type_to_jxl_sub
|
||||
@ -524,7 +524,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class JxlToImage(
|
||||
val jxlUri: KUri? = null
|
||||
val jxlUri: Uri? = null
|
||||
) : Type(
|
||||
title = R.string.jxl_type_to_images,
|
||||
subtitle = R.string.jxl_type_to_images_sub
|
||||
@ -532,7 +532,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImageToJxl(
|
||||
val imageUris: List<KUri>? = null
|
||||
val imageUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.jxl_type_to_jxl,
|
||||
subtitle = R.string.jxl_type_to_jxl_sub
|
||||
@ -553,7 +553,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class SvgMaker(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 24,
|
||||
title = R.string.images_to_svg,
|
||||
@ -562,7 +562,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class FormatConversion(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 25,
|
||||
title = R.string.format_conversion,
|
||||
@ -587,7 +587,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImageStacking(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 28,
|
||||
title = R.string.image_stacking,
|
||||
@ -596,7 +596,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImageSplitting(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 29,
|
||||
title = R.string.image_splitting,
|
||||
@ -632,7 +632,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class WebpToImage(
|
||||
val webpUri: KUri? = null
|
||||
val webpUri: Uri? = null
|
||||
) : Type(
|
||||
title = R.string.webp_type_to_image,
|
||||
subtitle = R.string.webp_type_to_image_sub
|
||||
@ -640,7 +640,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImageToWebp(
|
||||
val imageUris: List<KUri>? = null
|
||||
val imageUris: List<Uri>? = null
|
||||
) : Type(
|
||||
title = R.string.webp_type_to_webp,
|
||||
subtitle = R.string.webp_type_to_webp_sub
|
||||
@ -666,7 +666,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class CollageMaker(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 33,
|
||||
title = R.string.collage_maker,
|
||||
@ -675,7 +675,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class MarkupLayers(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 34,
|
||||
title = R.string.markup_layers,
|
||||
@ -684,7 +684,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class Base64Tools(
|
||||
val uri: KUri? = null
|
||||
val uri: Uri? = null
|
||||
) : Screen(
|
||||
id = 35,
|
||||
title = R.string.base_64_tools,
|
||||
@ -693,7 +693,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ChecksumTools(
|
||||
val uri: KUri? = null,
|
||||
val uri: Uri? = null,
|
||||
) : Screen(
|
||||
id = 36,
|
||||
title = R.string.checksum_tools,
|
||||
@ -709,7 +709,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class EditExif(
|
||||
val uri: KUri? = null,
|
||||
val uri: Uri? = null,
|
||||
) : Screen(
|
||||
id = 37,
|
||||
title = R.string.edit_exif_screen,
|
||||
@ -718,7 +718,7 @@ sealed class Screen(
|
||||
|
||||
@Serializable
|
||||
data class ImageCutter(
|
||||
val uris: List<KUri>? = null
|
||||
val uris: List<Uri>? = null
|
||||
) : Screen(
|
||||
id = 38,
|
||||
title = R.string.image_cutting,
|
||||
|
@ -17,7 +17,6 @@
|
||||
|
||||
package ru.tech.imageresizershrinker.core.ui.utils.navigation
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.outlined.BrandingWatermark
|
||||
import androidx.compose.material.icons.filled.AutoAwesome
|
||||
@ -72,43 +71,8 @@ import ru.tech.imageresizershrinker.core.resources.icons.Stack
|
||||
import ru.tech.imageresizershrinker.core.resources.icons.Toolbox
|
||||
import ru.tech.imageresizershrinker.core.resources.icons.VectorPolyline
|
||||
import ru.tech.imageresizershrinker.core.resources.icons.WebpBox
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ApngTools
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.Base64Tools
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ChecksumTools
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.Cipher
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.CollageMaker
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ColorTools
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.Crop
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.DeleteExif
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.Draw
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.EditExif
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.EraseBackground
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.Filter
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.FormatConversion
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.GeneratePalette
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.GifTools
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.GradientMaker
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ImageCutter
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ImagePreview
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ImageSplitting
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ImageStacking
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ImageStitching
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.JxlTools
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.LimitResize
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.LoadNetImage
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.MarkupLayers
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.NoiseGeneration
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.PdfTools
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.PickColorFromImage
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.RecognizeText
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ResizeAndConvert
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.ScanQrCode
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.SingleEdit
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.SvgMaker
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.Watermarking
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.WebpTools
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.WeightResize
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.Zip
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen.*
|
||||
import android.net.Uri as AndroidUri
|
||||
|
||||
internal fun Screen.isBetaFeature(): Boolean = when (this) {
|
||||
is MarkupLayers -> true
|
||||
@ -210,20 +174,20 @@ internal fun Screen.icon(): ImageVector? = when (this) {
|
||||
is ImageCutter -> Icons.Rounded.ContentCut
|
||||
}
|
||||
|
||||
internal object UriSerializer : KSerializer<Uri> {
|
||||
internal object UriSerializer : KSerializer<AndroidUri> {
|
||||
override val descriptor = PrimitiveSerialDescriptor("Uri", PrimitiveKind.STRING)
|
||||
|
||||
override fun deserialize(
|
||||
decoder: Decoder
|
||||
): Uri = Uri.parse(decoder.decodeString())
|
||||
): AndroidUri = AndroidUri.parse(decoder.decodeString())
|
||||
|
||||
override fun serialize(
|
||||
encoder: Encoder,
|
||||
value: Uri
|
||||
value: AndroidUri
|
||||
) = encoder.encodeString(value.toString())
|
||||
}
|
||||
|
||||
internal typealias KUri = @Serializable(UriSerializer::class) Uri
|
||||
internal typealias Uri = @Serializable(UriSerializer::class) AndroidUri
|
||||
|
||||
internal interface ScreenConstants {
|
||||
val typedEntries: List<ScreenGroup>
|
||||
|
Reference in New Issue
Block a user