refactor(domain): refactor domain layer
This commit is contained in:
parent
291ceb8de8
commit
7bb9990606
405 changed files with 1040 additions and 1050 deletions
|
|
@ -4,7 +4,7 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.util
|
package ua.acclorite.book_story.core
|
||||||
|
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.ui
|
package ua.acclorite.book_story.core.ui
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
|
|
@ -8,7 +8,7 @@ package ua.acclorite.book_story.data.local.dto
|
||||||
|
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
import androidx.room.PrimaryKey
|
import androidx.room.PrimaryKey
|
||||||
import ua.acclorite.book_story.domain.library.display.LibrarySortOrder
|
import ua.acclorite.book_story.ui.library.model.LibrarySortOrder
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
data class CategorySortEntity(
|
data class CategorySortEntity(
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
package ua.acclorite.book_story.data.mapper.book
|
package ua.acclorite.book_story.data.mapper.book
|
||||||
|
|
||||||
import ua.acclorite.book_story.data.local.dto.BookEntity
|
import ua.acclorite.book_story.data.local.dto.BookEntity
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
|
|
||||||
interface BookMapper {
|
interface BookMapper {
|
||||||
suspend fun toBookEntity(book: Book): BookEntity
|
suspend fun toBookEntity(book: Book): BookEntity
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@ package ua.acclorite.book_story.data.mapper.book
|
||||||
|
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
import ua.acclorite.book_story.data.local.dto.BookEntity
|
import ua.acclorite.book_story.data.local.dto.BookEntity
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class BookMapperImpl @Inject constructor() : BookMapper {
|
class BookMapperImpl @Inject constructor() : BookMapper {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
package ua.acclorite.book_story.data.mapper.category
|
package ua.acclorite.book_story.data.mapper.category
|
||||||
|
|
||||||
import ua.acclorite.book_story.data.local.dto.CategoryEntity
|
import ua.acclorite.book_story.data.local.dto.CategoryEntity
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
|
|
||||||
interface CategoryMapper {
|
interface CategoryMapper {
|
||||||
suspend fun toCategoryEntity(category: Category): CategoryEntity
|
suspend fun toCategoryEntity(category: Category): CategoryEntity
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
package ua.acclorite.book_story.data.mapper.category
|
package ua.acclorite.book_story.data.mapper.category
|
||||||
|
|
||||||
import ua.acclorite.book_story.data.local.dto.CategoryEntity
|
import ua.acclorite.book_story.data.local.dto.CategoryEntity
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class CategoryMapperImpl @Inject constructor() : CategoryMapper {
|
class CategoryMapperImpl @Inject constructor() : CategoryMapper {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
package ua.acclorite.book_story.data.mapper.category_sort
|
package ua.acclorite.book_story.data.mapper.category_sort
|
||||||
|
|
||||||
import ua.acclorite.book_story.data.local.dto.CategorySortEntity
|
import ua.acclorite.book_story.data.local.dto.CategorySortEntity
|
||||||
import ua.acclorite.book_story.domain.library.category.CategorySort
|
import ua.acclorite.book_story.domain.library.CategorySort
|
||||||
|
|
||||||
interface CategorySortMapper {
|
interface CategorySortMapper {
|
||||||
suspend fun toCategorySortEntity(categorySort: CategorySort): CategorySortEntity
|
suspend fun toCategorySortEntity(categorySort: CategorySort): CategorySortEntity
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
package ua.acclorite.book_story.data.mapper.category_sort
|
package ua.acclorite.book_story.data.mapper.category_sort
|
||||||
|
|
||||||
import ua.acclorite.book_story.data.local.dto.CategorySortEntity
|
import ua.acclorite.book_story.data.local.dto.CategorySortEntity
|
||||||
import ua.acclorite.book_story.domain.library.category.CategorySort
|
import ua.acclorite.book_story.domain.library.CategorySort
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class CategorySortSortMapperImpl @Inject constructor() : CategorySortMapper {
|
class CategorySortSortMapperImpl @Inject constructor() : CategorySortMapper {
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,11 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.library.book
|
package ua.acclorite.book_story.data.model.common
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
sealed class NullableBook(
|
sealed class NullableBook(
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.file
|
package ua.acclorite.book_story.data.model.file
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
|
@ -168,7 +168,7 @@ class CachedFile(
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copies the file to [context].cacheDir and provides [java.io.File].
|
* Copies the file to [context].cacheDir and provides [File].
|
||||||
*
|
*
|
||||||
* @return null if the file is directory or failed
|
* @return null if the file is directory or failed
|
||||||
*/
|
*/
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.file
|
package ua.acclorite.book_story.data.model.file
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.file
|
package ua.acclorite.book_story.data.model.file
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
|
@ -4,10 +4,11 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.library.book
|
package ua.acclorite.book_story.data.model.library
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import ua.acclorite.book_story.domain.util.CoverImage
|
import ua.acclorite.book_story.core.CoverImage
|
||||||
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class BookWithCover(
|
data class BookWithCover(
|
||||||
|
|
@ -12,9 +12,9 @@ import androidx.compose.ui.graphics.asImageBitmap
|
||||||
import kotlinx.coroutines.yield
|
import kotlinx.coroutines.yield
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
import ua.acclorite.book_story.presentation.core.util.clearAllMarkdown
|
import ua.acclorite.book_story.presentation.common.util.clearAllMarkdown
|
||||||
import ua.acclorite.book_story.presentation.core.util.clearMarkdown
|
import ua.acclorite.book_story.presentation.common.util.clearMarkdown
|
||||||
import ua.acclorite.book_story.presentation.core.util.containsVisibleText
|
import ua.acclorite.book_story.presentation.common.util.containsVisibleText
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.zip.ZipEntry
|
import java.util.zip.ZipEntry
|
||||||
import java.util.zip.ZipFile
|
import java.util.zip.ZipFile
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.data.parser
|
package ua.acclorite.book_story.data.parser
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
|
|
||||||
|
|
||||||
interface FileParser {
|
interface FileParser {
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@
|
||||||
package ua.acclorite.book_story.data.parser
|
package ua.acclorite.book_story.data.parser
|
||||||
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
import ua.acclorite.book_story.data.parser.epub.EpubFileParser
|
import ua.acclorite.book_story.data.parser.epub.EpubFileParser
|
||||||
import ua.acclorite.book_story.data.parser.fb2.Fb2FileParser
|
import ua.acclorite.book_story.data.parser.fb2.Fb2FileParser
|
||||||
import ua.acclorite.book_story.data.parser.html.HtmlFileParser
|
import ua.acclorite.book_story.data.parser.html.HtmlFileParser
|
||||||
import ua.acclorite.book_story.data.parser.pdf.PdfFileParser
|
import ua.acclorite.book_story.data.parser.pdf.PdfFileParser
|
||||||
import ua.acclorite.book_story.data.parser.txt.TxtFileParser
|
import ua.acclorite.book_story.data.parser.txt.TxtFileParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
private const val FILE_PARSER = "File Parser"
|
private const val FILE_PARSER = "File Parser"
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import org.commonmark.node.Node
|
||||||
import org.commonmark.node.StrongEmphasis
|
import org.commonmark.node.StrongEmphasis
|
||||||
import org.commonmark.node.Text
|
import org.commonmark.node.Text
|
||||||
import org.commonmark.parser.Parser
|
import org.commonmark.parser.Parser
|
||||||
import ua.acclorite.book_story.presentation.core.util.clearMarkdown
|
import ua.acclorite.book_story.presentation.common.util.clearMarkdown
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class MarkdownParser @Inject constructor(
|
class MarkdownParser @Inject constructor(
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.data.parser
|
package ua.acclorite.book_story.data.parser
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
|
|
||||||
interface TextParser {
|
interface TextParser {
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,12 @@ package ua.acclorite.book_story.data.parser
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
import ua.acclorite.book_story.data.parser.epub.EpubTextParser
|
import ua.acclorite.book_story.data.parser.epub.EpubTextParser
|
||||||
import ua.acclorite.book_story.data.parser.html.HtmlTextParser
|
import ua.acclorite.book_story.data.parser.html.HtmlTextParser
|
||||||
import ua.acclorite.book_story.data.parser.pdf.PdfTextParser
|
import ua.acclorite.book_story.data.parser.pdf.PdfTextParser
|
||||||
import ua.acclorite.book_story.data.parser.txt.TxtTextParser
|
import ua.acclorite.book_story.data.parser.txt.TxtTextParser
|
||||||
import ua.acclorite.book_story.data.parser.xml.XmlTextParser
|
import ua.acclorite.book_story.data.parser.xml.XmlTextParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,11 @@ import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
import ua.acclorite.book_story.data.parser.FileParser
|
import ua.acclorite.book_story.data.parser.FileParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.zip.ZipFile
|
import java.util.zip.ZipFile
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
|
||||||
|
|
@ -17,13 +17,13 @@ import kotlinx.coroutines.awaitAll
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import kotlinx.coroutines.yield
|
import kotlinx.coroutines.yield
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
import ua.acclorite.book_story.data.parser.DocumentParser
|
import ua.acclorite.book_story.data.parser.DocumentParser
|
||||||
import ua.acclorite.book_story.data.parser.TextParser
|
import ua.acclorite.book_story.data.parser.TextParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
import ua.acclorite.book_story.presentation.core.constants.provideImageExtensions
|
import ua.acclorite.book_story.presentation.common.constants.provideImageExtensions
|
||||||
import ua.acclorite.book_story.presentation.core.util.addAll
|
import ua.acclorite.book_story.presentation.common.util.addAll
|
||||||
import ua.acclorite.book_story.presentation.core.util.containsVisibleText
|
import ua.acclorite.book_story.presentation.common.util.containsVisibleText
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue
|
import java.util.concurrent.ConcurrentLinkedQueue
|
||||||
import java.util.zip.ZipEntry
|
import java.util.zip.ZipEntry
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,11 @@ package ua.acclorite.book_story.data.parser.fb2
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import org.jsoup.parser.Parser
|
import org.jsoup.parser.Parser
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
import ua.acclorite.book_story.data.parser.FileParser
|
import ua.acclorite.book_story.data.parser.FileParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class Fb2FileParser @Inject constructor() : FileParser {
|
class Fb2FileParser @Inject constructor() : FileParser {
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,11 @@ package ua.acclorite.book_story.data.parser.html
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import org.jsoup.parser.Parser
|
import org.jsoup.parser.Parser
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
import ua.acclorite.book_story.data.parser.FileParser
|
import ua.acclorite.book_story.data.parser.FileParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class HtmlFileParser @Inject constructor() : FileParser {
|
class HtmlFileParser @Inject constructor() : FileParser {
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@ import android.util.Log
|
||||||
import kotlinx.coroutines.yield
|
import kotlinx.coroutines.yield
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import org.jsoup.parser.Parser
|
import org.jsoup.parser.Parser
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
import ua.acclorite.book_story.data.parser.DocumentParser
|
import ua.acclorite.book_story.data.parser.DocumentParser
|
||||||
import ua.acclorite.book_story.data.parser.TextParser
|
import ua.acclorite.book_story.data.parser.TextParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,11 @@ import android.app.Application
|
||||||
import com.tom_roush.pdfbox.android.PDFBoxResourceLoader
|
import com.tom_roush.pdfbox.android.PDFBoxResourceLoader
|
||||||
import com.tom_roush.pdfbox.pdmodel.PDDocument
|
import com.tom_roush.pdfbox.pdmodel.PDDocument
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
import ua.acclorite.book_story.data.parser.FileParser
|
import ua.acclorite.book_story.data.parser.FileParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class PdfFileParser @Inject constructor(
|
class PdfFileParser @Inject constructor(
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,11 @@ import com.tom_roush.pdfbox.android.PDFBoxResourceLoader
|
||||||
import com.tom_roush.pdfbox.pdmodel.PDDocument
|
import com.tom_roush.pdfbox.pdmodel.PDDocument
|
||||||
import com.tom_roush.pdfbox.text.PDFTextStripper
|
import com.tom_roush.pdfbox.text.PDFTextStripper
|
||||||
import kotlinx.coroutines.yield
|
import kotlinx.coroutines.yield
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
import ua.acclorite.book_story.data.parser.MarkdownParser
|
import ua.acclorite.book_story.data.parser.MarkdownParser
|
||||||
import ua.acclorite.book_story.data.parser.TextParser
|
import ua.acclorite.book_story.data.parser.TextParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
import ua.acclorite.book_story.presentation.core.util.clearAllMarkdown
|
import ua.acclorite.book_story.presentation.common.util.clearAllMarkdown
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
private const val PDF_TAG = "PDF Parser"
|
private const val PDF_TAG = "PDF Parser"
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@
|
||||||
package ua.acclorite.book_story.data.parser.txt
|
package ua.acclorite.book_story.data.parser.txt
|
||||||
|
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
import ua.acclorite.book_story.data.parser.FileParser
|
import ua.acclorite.book_story.data.parser.FileParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class TxtFileParser @Inject constructor() : FileParser {
|
class TxtFileParser @Inject constructor() : FileParser {
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,11 @@ import android.util.Log
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import kotlinx.coroutines.yield
|
import kotlinx.coroutines.yield
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
import ua.acclorite.book_story.data.parser.MarkdownParser
|
import ua.acclorite.book_story.data.parser.MarkdownParser
|
||||||
import ua.acclorite.book_story.data.parser.TextParser
|
import ua.acclorite.book_story.data.parser.TextParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
import ua.acclorite.book_story.presentation.core.util.clearAllMarkdown
|
import ua.acclorite.book_story.presentation.common.util.clearAllMarkdown
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
private const val TXT_TAG = "TXT Parser"
|
private const val TXT_TAG = "TXT Parser"
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@ import android.util.Log
|
||||||
import kotlinx.coroutines.yield
|
import kotlinx.coroutines.yield
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import org.jsoup.parser.Parser
|
import org.jsoup.parser.Parser
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
import ua.acclorite.book_story.data.parser.DocumentParser
|
import ua.acclorite.book_story.data.parser.DocumentParser
|
||||||
import ua.acclorite.book_story.data.parser.TextParser
|
import ua.acclorite.book_story.data.parser.TextParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,16 +15,16 @@ import android.util.Log
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
import ua.acclorite.book_story.core.CoverImage
|
||||||
import ua.acclorite.book_story.data.local.room.BookDao
|
import ua.acclorite.book_story.data.local.room.BookDao
|
||||||
import ua.acclorite.book_story.data.mapper.book.BookMapper
|
import ua.acclorite.book_story.data.mapper.book.BookMapper
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFileCompat
|
||||||
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
import ua.acclorite.book_story.data.parser.FileParser
|
import ua.acclorite.book_story.data.parser.FileParser
|
||||||
import ua.acclorite.book_story.data.parser.TextParser
|
import ua.acclorite.book_story.data.parser.TextParser
|
||||||
import ua.acclorite.book_story.domain.file.CachedFileCompat
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
import ua.acclorite.book_story.domain.repository.BookRepository
|
import ua.acclorite.book_story.domain.repository.BookRepository
|
||||||
import ua.acclorite.book_story.domain.util.CoverImage
|
|
||||||
import java.io.BufferedOutputStream
|
import java.io.BufferedOutputStream
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ package ua.acclorite.book_story.data.repository
|
||||||
import ua.acclorite.book_story.data.local.room.BookDao
|
import ua.acclorite.book_story.data.local.room.BookDao
|
||||||
import ua.acclorite.book_story.data.mapper.category.CategoryMapper
|
import ua.acclorite.book_story.data.mapper.category.CategoryMapper
|
||||||
import ua.acclorite.book_story.data.mapper.category_sort.CategorySortMapper
|
import ua.acclorite.book_story.data.mapper.category_sort.CategorySortMapper
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import ua.acclorite.book_story.domain.library.category.CategorySort
|
import ua.acclorite.book_story.domain.library.CategorySort
|
||||||
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
|
||||||
|
|
@ -9,17 +9,17 @@ package ua.acclorite.book_story.data.repository
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
import ua.acclorite.book_story.data.local.room.BookDao
|
import ua.acclorite.book_story.data.local.room.BookDao
|
||||||
|
import ua.acclorite.book_story.data.model.common.NullableBook
|
||||||
|
import ua.acclorite.book_story.data.model.common.NullableBook.NotNull
|
||||||
|
import ua.acclorite.book_story.data.model.common.NullableBook.Null
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFile
|
||||||
|
import ua.acclorite.book_story.data.model.file.CachedFileCompat
|
||||||
import ua.acclorite.book_story.data.parser.FileParser
|
import ua.acclorite.book_story.data.parser.FileParser
|
||||||
import ua.acclorite.book_story.domain.browse.file.SelectableFile
|
import ua.acclorite.book_story.domain.file.File
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
|
||||||
import ua.acclorite.book_story.domain.file.CachedFileCompat
|
|
||||||
import ua.acclorite.book_story.domain.library.book.NullableBook
|
|
||||||
import ua.acclorite.book_story.domain.library.book.NullableBook.NotNull
|
|
||||||
import ua.acclorite.book_story.domain.library.book.NullableBook.Null
|
|
||||||
import ua.acclorite.book_story.domain.repository.FileSystemRepository
|
import ua.acclorite.book_story.domain.repository.FileSystemRepository
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
import ua.acclorite.book_story.presentation.common.constants.provideExtensions
|
||||||
import ua.acclorite.book_story.presentation.core.constants.provideExtensions
|
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
@ -42,7 +42,7 @@ class FileSystemRepositoryImpl @Inject constructor(
|
||||||
* Gets all matching files from device.
|
* Gets all matching files from device.
|
||||||
* Filters by [query] and sorts out not supported file formats and already added files.
|
* Filters by [query] and sorts out not supported file formats and already added files.
|
||||||
*/
|
*/
|
||||||
override suspend fun getFiles(query: String): List<SelectableFile> {
|
override suspend fun getFiles(query: String): List<File> {
|
||||||
Log.i(GET_FILES, "Getting files from device, query: \"$query\".")
|
Log.i(GET_FILES, "Getting files from device, query: \"$query\".")
|
||||||
|
|
||||||
val existingPaths = database
|
val existingPaths = database
|
||||||
|
|
@ -74,21 +74,25 @@ class FileSystemRepositoryImpl @Inject constructor(
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
fun CachedFile.getSelectableFilesFromStorage(): List<SelectableFile> {
|
fun CachedFile.getSelectableFilesFromStorage(): List<File> {
|
||||||
val selectableFiles = mutableListOf<SelectableFile>()
|
val files = mutableListOf<File>()
|
||||||
|
|
||||||
walk { file ->
|
walk { file ->
|
||||||
if (!file.isValid()) return@walk
|
if (!file.isValid()) return@walk
|
||||||
|
|
||||||
selectableFiles.add(
|
files.add(
|
||||||
SelectableFile(
|
File(
|
||||||
data = file,
|
name = file.name,
|
||||||
selected = false
|
uri = file.uri,
|
||||||
|
path = file.path,
|
||||||
|
size = file.size,
|
||||||
|
lastModified = file.lastModified,
|
||||||
|
isDirectory = file.isDirectory
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return selectableFiles
|
return files
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getAllStorages(): List<CachedFile> {
|
fun getAllStorages(): List<CachedFile> {
|
||||||
|
|
@ -119,7 +123,7 @@ class FileSystemRepositoryImpl @Inject constructor(
|
||||||
|
|
||||||
return try {
|
return try {
|
||||||
val storages = getAllStorages()
|
val storages = getAllStorages()
|
||||||
val files = mutableListOf<SelectableFile>()
|
val files = mutableListOf<File>()
|
||||||
|
|
||||||
for (storage in storages) {
|
for (storage in storages) {
|
||||||
files.addAll(storage.getSelectableFilesFromStorage())
|
files.addAll(storage.getSelectableFilesFromStorage())
|
||||||
|
|
@ -138,7 +142,19 @@ class FileSystemRepositoryImpl @Inject constructor(
|
||||||
/**
|
/**
|
||||||
* Gets book from given file. If error happened, returns [NullableBook.Null].
|
* Gets book from given file. If error happened, returns [NullableBook.Null].
|
||||||
*/
|
*/
|
||||||
override suspend fun getBookFromFile(cachedFile: CachedFile): NullableBook {
|
override suspend fun getBookFromFile(file: File): NullableBook {
|
||||||
|
val cachedFile = CachedFileCompat.fromUri(
|
||||||
|
context = application,
|
||||||
|
uri = file.uri,
|
||||||
|
builder = CachedFileCompat.build(
|
||||||
|
name = file.name,
|
||||||
|
path = file.path,
|
||||||
|
size = file.size,
|
||||||
|
lastModified = file.lastModified,
|
||||||
|
isDirectory = file.isDirectory
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
val parsedBook = fileParser.parse(cachedFile)
|
val parsedBook = fileParser.parse(cachedFile)
|
||||||
if (parsedBook == null) {
|
if (parsedBook == null) {
|
||||||
Log.e(GET_BOOK_FROM_FILE, "Parsed file(${cachedFile.name}) is null.")
|
Log.e(GET_BOOK_FROM_FILE, "Parsed file(${cachedFile.name}) is null.")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
* Book's Story — free and open-source Material You eBook reader.
|
||||||
|
* Copyright (C) 2024-2025 Acclorite
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
|
package ua.acclorite.book_story.domain.file
|
||||||
|
|
||||||
|
import android.net.Uri
|
||||||
|
import androidx.compose.runtime.Immutable
|
||||||
|
|
||||||
|
@Immutable
|
||||||
|
data class File(
|
||||||
|
val name: String,
|
||||||
|
val uri: Uri,
|
||||||
|
val path: String,
|
||||||
|
val size: Long,
|
||||||
|
val lastModified: Long,
|
||||||
|
val isDirectory: Boolean
|
||||||
|
)
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
package ua.acclorite.book_story.domain.history
|
package ua.acclorite.book_story.domain.history
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class History(
|
data class History(
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,13 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.library.book
|
package ua.acclorite.book_story.domain.library
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
@Immutable
|
@Immutable
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.library.category
|
package ua.acclorite.book_story.domain.library
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
|
|
||||||
|
|
@ -4,10 +4,10 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.library.category
|
package ua.acclorite.book_story.domain.library
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import ua.acclorite.book_story.domain.library.display.LibrarySortOrder
|
import ua.acclorite.book_story.ui.library.model.LibrarySortOrder
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class CategorySort(
|
data class CategorySort(
|
||||||
|
|
@ -8,7 +8,7 @@ package ua.acclorite.book_story.domain.reader
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import ua.acclorite.book_story.domain.util.Selected
|
import ua.acclorite.book_story.core.Selected
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class ColorPreset(
|
data class ColorPreset(
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,10 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.repository
|
package ua.acclorite.book_story.domain.repository
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.core.CoverImage
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.reader.ReaderText
|
import ua.acclorite.book_story.domain.reader.ReaderText
|
||||||
import ua.acclorite.book_story.domain.util.CoverImage
|
|
||||||
|
|
||||||
interface BookRepository {
|
interface BookRepository {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.repository
|
package ua.acclorite.book_story.domain.repository
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import ua.acclorite.book_story.domain.library.category.CategorySort
|
import ua.acclorite.book_story.domain.library.CategorySort
|
||||||
|
|
||||||
interface CategoryRepository {
|
interface CategoryRepository {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,17 +6,16 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.repository
|
package ua.acclorite.book_story.domain.repository
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.browse.file.SelectableFile
|
import ua.acclorite.book_story.data.model.common.NullableBook
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
import ua.acclorite.book_story.domain.file.File
|
||||||
import ua.acclorite.book_story.domain.library.book.NullableBook
|
|
||||||
|
|
||||||
interface FileSystemRepository {
|
interface FileSystemRepository {
|
||||||
|
|
||||||
suspend fun getFiles(
|
suspend fun getFiles(
|
||||||
query: String = ""
|
query: String = ""
|
||||||
): List<SelectableFile>
|
): List<File>
|
||||||
|
|
||||||
suspend fun getBookFromFile(
|
suspend fun getBookFromFile(
|
||||||
cachedFile: CachedFile
|
file: File
|
||||||
): NullableBook
|
): NullableBook
|
||||||
}
|
}
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.book
|
package ua.acclorite.book_story.domain.use_case.book
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.repository.BookRepository
|
import ua.acclorite.book_story.domain.repository.BookRepository
|
||||||
import ua.acclorite.book_story.domain.repository.HistoryRepository
|
import ua.acclorite.book_story.domain.repository.HistoryRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.book
|
package ua.acclorite.book_story.domain.use_case.book
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.repository.BookRepository
|
import ua.acclorite.book_story.domain.repository.BookRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.book
|
package ua.acclorite.book_story.domain.use_case.book
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.repository.BookRepository
|
import ua.acclorite.book_story.domain.repository.BookRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.book
|
package ua.acclorite.book_story.domain.use_case.book
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.repository.BookRepository
|
import ua.acclorite.book_story.domain.repository.BookRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.book
|
package ua.acclorite.book_story.domain.use_case.book
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.book.BookWithCover
|
import ua.acclorite.book_story.data.model.library.BookWithCover
|
||||||
import ua.acclorite.book_story.domain.repository.BookRepository
|
import ua.acclorite.book_story.domain.repository.BookRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.book
|
package ua.acclorite.book_story.domain.use_case.book
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.repository.BookRepository
|
import ua.acclorite.book_story.domain.repository.BookRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.book
|
package ua.acclorite.book_story.domain.use_case.book
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.core.CoverImage
|
||||||
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.repository.BookRepository
|
import ua.acclorite.book_story.domain.repository.BookRepository
|
||||||
import ua.acclorite.book_story.domain.util.CoverImage
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class UpdateCoverImageOfBook @Inject constructor(
|
class UpdateCoverImageOfBook @Inject constructor(
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.category
|
package ua.acclorite.book_story.domain.use_case.category
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.category
|
package ua.acclorite.book_story.domain.use_case.category
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.category
|
package ua.acclorite.book_story.domain.use_case.category
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.category.CategorySort
|
import ua.acclorite.book_story.domain.library.CategorySort
|
||||||
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.category
|
package ua.acclorite.book_story.domain.use_case.category
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.category
|
package ua.acclorite.book_story.domain.use_case.category
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.category
|
package ua.acclorite.book_story.domain.use_case.category
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.library.category.CategorySort
|
import ua.acclorite.book_story.domain.library.CategorySort
|
||||||
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
import ua.acclorite.book_story.domain.repository.CategoryRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ package ua.acclorite.book_story.domain.use_case.data_store
|
||||||
import androidx.appcompat.app.AppCompatDelegate
|
import androidx.appcompat.app.AppCompatDelegate
|
||||||
import androidx.core.os.LocaleListCompat
|
import androidx.core.os.LocaleListCompat
|
||||||
import ua.acclorite.book_story.domain.repository.DataStoreRepository
|
import ua.acclorite.book_story.domain.repository.DataStoreRepository
|
||||||
import ua.acclorite.book_story.presentation.core.constants.DataStoreConstants
|
import ua.acclorite.book_story.presentation.common.constants.DataStoreConstants
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class ChangeLanguage @Inject constructor(
|
class ChangeLanguage @Inject constructor(
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.file_system
|
package ua.acclorite.book_story.domain.use_case.file_system
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.file.CachedFile
|
import ua.acclorite.book_story.data.model.common.NullableBook
|
||||||
import ua.acclorite.book_story.domain.library.book.NullableBook
|
import ua.acclorite.book_story.domain.file.File
|
||||||
import ua.acclorite.book_story.domain.repository.FileSystemRepository
|
import ua.acclorite.book_story.domain.repository.FileSystemRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@ class GetBookFromFile @Inject constructor(
|
||||||
private val repository: FileSystemRepository
|
private val repository: FileSystemRepository
|
||||||
) {
|
) {
|
||||||
|
|
||||||
suspend fun execute(cachedFile: CachedFile): NullableBook {
|
suspend fun execute(file: File): NullableBook {
|
||||||
return repository.getBookFromFile(cachedFile)
|
return repository.getBookFromFile(file)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.use_case.file_system
|
package ua.acclorite.book_story.domain.use_case.file_system
|
||||||
|
|
||||||
import ua.acclorite.book_story.domain.browse.file.SelectableFile
|
import ua.acclorite.book_story.domain.file.File
|
||||||
import ua.acclorite.book_story.domain.repository.FileSystemRepository
|
import ua.acclorite.book_story.domain.repository.FileSystemRepository
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
@ -14,7 +14,7 @@ class GetFiles @Inject constructor(
|
||||||
private val repository: FileSystemRepository
|
private val repository: FileSystemRepository
|
||||||
) {
|
) {
|
||||||
|
|
||||||
suspend fun execute(query: String): List<SelectableFile> {
|
suspend fun execute(query: String): List<File> {
|
||||||
return repository.getFiles(query)
|
return repository.getFiles(query)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11,8 +11,8 @@ import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.domain.about.Badge
|
import ua.acclorite.book_story.presentation.about.model.Badge
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.IconButton
|
import ua.acclorite.book_story.presentation.common.components.common.IconButton
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AboutBadgeItem(
|
fun AboutBadgeItem(
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.presentation.core.constants.provideAboutBadges
|
import ua.acclorite.book_story.presentation.common.constants.provideAboutBadges
|
||||||
import ua.acclorite.book_story.presentation.core.util.showToast
|
import ua.acclorite.book_story.presentation.common.util.showToast
|
||||||
import ua.acclorite.book_story.ui.about.AboutEvent
|
import ua.acclorite.book_story.ui.about.AboutEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
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 ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AboutItem(
|
fun AboutItem(
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,12 @@ import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.LazyColumnWithScrollbar
|
import ua.acclorite.book_story.presentation.common.components.common.LazyColumnWithScrollbar
|
||||||
import ua.acclorite.book_story.presentation.core.constants.provideContributorsPage
|
import ua.acclorite.book_story.presentation.common.constants.provideContributorsPage
|
||||||
import ua.acclorite.book_story.presentation.core.constants.provideIssuesPage
|
import ua.acclorite.book_story.presentation.common.constants.provideIssuesPage
|
||||||
import ua.acclorite.book_story.presentation.core.constants.provideReleasesPage
|
import ua.acclorite.book_story.presentation.common.constants.provideReleasesPage
|
||||||
import ua.acclorite.book_story.presentation.core.constants.provideSupportPage
|
import ua.acclorite.book_story.presentation.common.constants.provideSupportPage
|
||||||
import ua.acclorite.book_story.presentation.core.constants.provideTranslationPage
|
import ua.acclorite.book_story.presentation.common.constants.provideTranslationPage
|
||||||
import ua.acclorite.book_story.ui.about.AboutEvent
|
import ua.acclorite.book_story.ui.about.AboutEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import androidx.compose.material3.TopAppBarScrollBehavior
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.navigator.NavigatorBackIconButton
|
import ua.acclorite.book_story.presentation.navigator.NavigatorBackIconButton
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.about
|
package ua.acclorite.book_story.presentation.about.model
|
||||||
|
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
|
@ -4,10 +4,10 @@
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package ua.acclorite.book_story.domain.about
|
package ua.acclorite.book_story.presentation.about.model
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class Credit(
|
data class Credit(
|
||||||
|
|
@ -9,9 +9,9 @@ package ua.acclorite.book_story.presentation.book_info
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.core.ui.UIText
|
||||||
import ua.acclorite.book_story.domain.ui.UIText
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.dialog.DialogWithTextField
|
import ua.acclorite.book_story.presentation.common.components.dialog.DialogWithTextField
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@
|
||||||
package ua.acclorite.book_story.presentation.book_info
|
package ua.acclorite.book_story.presentation.book_info
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.core.BottomSheet
|
||||||
import ua.acclorite.book_story.domain.util.BottomSheet
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoScreen
|
import ua.acclorite.book_story.ui.book_info.BookInfoScreen
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.modal_bottom_sheet.ModalBottomSheet
|
import ua.acclorite.book_story.presentation.common.components.modal_bottom_sheet.ModalBottomSheet
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
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 ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun LazyItemScope.BookInfoChangeCoverBottomSheetItem(
|
fun LazyItemScope.BookInfoChangeCoverBottomSheetItem(
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@ package ua.acclorite.book_story.presentation.book_info
|
||||||
|
|
||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.core.BottomSheet
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.core.Dialog
|
||||||
import ua.acclorite.book_story.domain.util.BottomSheet
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.util.Dialog
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.presentation.core.components.dialog.Dialog
|
import ua.acclorite.book_story.presentation.common.components.dialog.Dialog
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ package ua.acclorite.book_story.presentation.book_info
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.dialog.DialogWithTextField
|
import ua.acclorite.book_story.presentation.common.components.dialog.DialogWithTextField
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -18,11 +18,11 @@ import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.file.CachedFileCompat
|
import ua.acclorite.book_story.data.model.file.CachedFileCompat
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.LazyColumnWithScrollbar
|
import ua.acclorite.book_story.presentation.common.components.common.LazyColumnWithScrollbar
|
||||||
import ua.acclorite.book_story.presentation.core.components.modal_bottom_sheet.ModalBottomSheet
|
import ua.acclorite.book_story.presentation.common.components.modal_bottom_sheet.ModalBottomSheet
|
||||||
import ua.acclorite.book_story.presentation.core.constants.provideExtensions
|
import ua.acclorite.book_story.presentation.common.constants.provideExtensions
|
||||||
import ua.acclorite.book_story.presentation.settings.components.SettingsSubcategoryTitle
|
import ua.acclorite.book_story.presentation.settings.components.SettingsSubcategoryTitle
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.IconButton
|
import ua.acclorite.book_story.presentation.common.components.common.IconButton
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BookInfoDetailsBottomSheetItem(
|
fun BookInfoDetailsBottomSheetItem(
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,9 @@
|
||||||
package ua.acclorite.book_story.presentation.book_info
|
package ua.acclorite.book_story.presentation.book_info
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.core.Dialog
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.util.Dialog
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoScreen
|
import ua.acclorite.book_story.ui.book_info.BookInfoScreen
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,9 @@ import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.LazyColumnWithScrollbar
|
import ua.acclorite.book_story.presentation.common.components.common.LazyColumnWithScrollbar
|
||||||
import ua.acclorite.book_story.presentation.core.constants.providePrimaryScrollbar
|
import ua.acclorite.book_story.presentation.common.constants.providePrimaryScrollbar
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BookInfoLayoutActionsItem(
|
fun BookInfoLayoutActionsItem(
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import androidx.compose.ui.graphics.Brush
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.AsyncCoverImage
|
import ua.acclorite.book_story.presentation.common.components.common.AsyncCoverImage
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BookInfoLayoutBackground(height: Dp, image: Uri) {
|
fun BookInfoLayoutBackground(height: Dp, image: Uri) {
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.core.util.calculateProgress
|
import ua.acclorite.book_story.presentation.common.util.calculateProgress
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BookInfoLayoutButton(
|
fun BookInfoLayoutButton(
|
||||||
|
|
|
||||||
|
|
@ -39,9 +39,9 @@ import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.core.util.noRippleClickable
|
import ua.acclorite.book_story.presentation.common.util.noRippleClickable
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ 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 androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,9 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.core.util.noRippleClickable
|
import ua.acclorite.book_story.presentation.common.util.noRippleClickable
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,9 @@ import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.AsyncCoverImage
|
import ua.acclorite.book_story.presentation.common.components.common.AsyncCoverImage
|
||||||
import ua.acclorite.book_story.presentation.core.util.noRippleClickable
|
import ua.acclorite.book_story.presentation.common.util.noRippleClickable
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,9 @@ import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.core.util.calculateProgress
|
import ua.acclorite.book_story.presentation.common.util.calculateProgress
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
|
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.core.util.noRippleClickable
|
import ua.acclorite.book_story.presentation.common.util.noRippleClickable
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -18,11 +18,11 @@ import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.domain.library.category.Category
|
import ua.acclorite.book_story.domain.library.Category
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.core.components.dialog.CheckboxDialogItem
|
import ua.acclorite.book_story.presentation.common.components.dialog.CheckboxDialogItem
|
||||||
import ua.acclorite.book_story.presentation.core.components.dialog.Dialog
|
import ua.acclorite.book_story.presentation.common.components.dialog.Dialog
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ package ua.acclorite.book_story.presentation.book_info
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.dialog.DialogWithTextField
|
import ua.acclorite.book_story.presentation.common.components.dialog.DialogWithTextField
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ package ua.acclorite.book_story.presentation.book_info
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.dialog.DialogWithTextField
|
import ua.acclorite.book_story.presentation.common.components.dialog.DialogWithTextField
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -15,11 +15,11 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.derivedStateOf
|
import androidx.compose.runtime.derivedStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.Book
|
import ua.acclorite.book_story.domain.library.Book
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.IconButton
|
import ua.acclorite.book_story.presentation.common.components.common.IconButton
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.core.components.top_bar.TopAppBar
|
import ua.acclorite.book_story.presentation.common.components.top_bar.TopAppBar
|
||||||
import ua.acclorite.book_story.presentation.core.components.top_bar.TopAppBarData
|
import ua.acclorite.book_story.presentation.common.components.top_bar.TopAppBarData
|
||||||
import ua.acclorite.book_story.presentation.navigator.NavigatorBackIconButton
|
import ua.acclorite.book_story.presentation.navigator.NavigatorBackIconButton
|
||||||
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
import ua.acclorite.book_story.ui.book_info.BookInfoEvent
|
||||||
import ua.acclorite.book_story.ui.theme.DefaultTransition
|
import ua.acclorite.book_story.ui.theme.DefaultTransition
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,12 @@ import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.NullableBook
|
import ua.acclorite.book_story.data.model.common.NullableBook
|
||||||
import ua.acclorite.book_story.domain.library.book.SelectableNullableBook
|
import ua.acclorite.book_story.presentation.common.components.dialog.Dialog
|
||||||
import ua.acclorite.book_story.presentation.core.components.dialog.Dialog
|
import ua.acclorite.book_story.presentation.common.components.progress_indicator.CircularProgressIndicator
|
||||||
import ua.acclorite.book_story.presentation.core.components.progress_indicator.CircularProgressIndicator
|
import ua.acclorite.book_story.presentation.common.util.showToast
|
||||||
import ua.acclorite.book_story.presentation.core.util.showToast
|
|
||||||
import ua.acclorite.book_story.ui.browse.BrowseEvent
|
import ua.acclorite.book_story.ui.browse.BrowseEvent
|
||||||
|
import ua.acclorite.book_story.ui.library.model.SelectableNullableBook
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -24,10 +24,10 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.library.book.NullableBook
|
import ua.acclorite.book_story.data.model.common.NullableBook
|
||||||
import ua.acclorite.book_story.domain.library.book.SelectableNullableBook
|
import ua.acclorite.book_story.presentation.common.components.common.CircularCheckbox
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.CircularCheckbox
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.ui.library.model.SelectableNullableBook
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BrowseAddDialogItem(result: SelectableNullableBook, onClick: (Boolean) -> Unit) {
|
fun BrowseAddDialogItem(result: SelectableNullableBook, onClick: (Boolean) -> Unit) {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
package ua.acclorite.book_story.presentation.browse
|
package ua.acclorite.book_story.presentation.browse
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import ua.acclorite.book_story.domain.util.BottomSheet
|
import ua.acclorite.book_story.core.BottomSheet
|
||||||
import ua.acclorite.book_story.ui.browse.BrowseEvent
|
import ua.acclorite.book_story.ui.browse.BrowseEvent
|
||||||
import ua.acclorite.book_story.ui.browse.BrowseScreen
|
import ua.acclorite.book_story.ui.browse.BrowseScreen
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,12 @@ import androidx.compose.material.ExperimentalMaterialApi
|
||||||
import androidx.compose.material.pullrefresh.PullRefreshState
|
import androidx.compose.material.pullrefresh.PullRefreshState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.focus.FocusRequester
|
import androidx.compose.ui.focus.FocusRequester
|
||||||
import ua.acclorite.book_story.domain.browse.display.BrowseLayout
|
import ua.acclorite.book_story.core.BottomSheet
|
||||||
import ua.acclorite.book_story.domain.browse.file.SelectableFile
|
import ua.acclorite.book_story.core.Dialog
|
||||||
import ua.acclorite.book_story.domain.library.book.SelectableNullableBook
|
|
||||||
import ua.acclorite.book_story.domain.util.BottomSheet
|
|
||||||
import ua.acclorite.book_story.domain.util.Dialog
|
|
||||||
import ua.acclorite.book_story.ui.browse.BrowseEvent
|
import ua.acclorite.book_story.ui.browse.BrowseEvent
|
||||||
|
import ua.acclorite.book_story.ui.browse.model.BrowseLayout
|
||||||
|
import ua.acclorite.book_story.ui.browse.model.SelectableFile
|
||||||
|
import ua.acclorite.book_story.ui.library.model.SelectableNullableBook
|
||||||
import ua.acclorite.book_story.ui.main.MainEvent
|
import ua.acclorite.book_story.ui.main.MainEvent
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterialApi::class)
|
@OptIn(ExperimentalMaterialApi::class)
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,10 @@
|
||||||
package ua.acclorite.book_story.presentation.browse
|
package ua.acclorite.book_story.presentation.browse
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import ua.acclorite.book_story.domain.library.book.SelectableNullableBook
|
import ua.acclorite.book_story.core.Dialog
|
||||||
import ua.acclorite.book_story.domain.util.Dialog
|
|
||||||
import ua.acclorite.book_story.ui.browse.BrowseEvent
|
import ua.acclorite.book_story.ui.browse.BrowseEvent
|
||||||
import ua.acclorite.book_story.ui.browse.BrowseScreen
|
import ua.acclorite.book_story.ui.browse.BrowseScreen
|
||||||
|
import ua.acclorite.book_story.ui.library.model.SelectableNullableBook
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BrowseDialog(
|
fun BrowseDialog(
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.AnimatedVisibility
|
import ua.acclorite.book_story.presentation.common.components.common.AnimatedVisibility
|
||||||
import ua.acclorite.book_story.presentation.core.components.placeholder.EmptyPlaceholder
|
import ua.acclorite.book_story.presentation.common.components.placeholder.EmptyPlaceholder
|
||||||
import ua.acclorite.book_story.ui.theme.Transitions
|
import ua.acclorite.book_story.ui.theme.Transitions
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ import androidx.compose.runtime.DisposableEffect
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.LazyColumnWithScrollbar
|
import ua.acclorite.book_story.presentation.common.components.common.LazyColumnWithScrollbar
|
||||||
import ua.acclorite.book_story.presentation.core.components.modal_bottom_sheet.ModalBottomSheet
|
import ua.acclorite.book_story.presentation.common.components.modal_bottom_sheet.ModalBottomSheet
|
||||||
import ua.acclorite.book_story.presentation.settings.browse.display.BrowseDisplaySubcategory
|
import ua.acclorite.book_story.presentation.settings.browse.display.BrowseDisplaySubcategory
|
||||||
import ua.acclorite.book_story.presentation.settings.browse.filter.BrowseFilterSubcategory
|
import ua.acclorite.book_story.presentation.settings.browse.filter.BrowseFilterSubcategory
|
||||||
import ua.acclorite.book_story.presentation.settings.browse.sort.BrowseSortSubcategory
|
import ua.acclorite.book_story.presentation.settings.browse.sort.BrowseSortSubcategory
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ package ua.acclorite.book_story.presentation.browse
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.presentation.core.components.modal_bottom_sheet.ModalBottomSheetTabRow
|
import ua.acclorite.book_story.presentation.common.components.modal_bottom_sheet.ModalBottomSheetTabRow
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BrowseFilterBottomSheetTabRow(
|
fun BrowseFilterBottomSheetTabRow(
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,9 @@ import androidx.compose.ui.text.style.TextAlign
|
||||||
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 ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.domain.browse.file.SelectableFile
|
import ua.acclorite.book_story.presentation.common.components.common.CircularCheckbox
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.CircularCheckbox
|
import ua.acclorite.book_story.presentation.common.components.common.StyledText
|
||||||
import ua.acclorite.book_story.presentation.core.components.common.StyledText
|
import ua.acclorite.book_story.ui.browse.model.SelectableFile
|
||||||
import ua.acclorite.book_story.ui.theme.DefaultTransition
|
import ua.acclorite.book_story.ui.theme.DefaultTransition
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
|
|
@ -40,10 +40,10 @@ import java.util.Locale
|
||||||
fun BrowseGridFileItem(file: SelectableFile, hasSelectedItems: Boolean) {
|
fun BrowseGridFileItem(file: SelectableFile, hasSelectedItems: Boolean) {
|
||||||
val lastModified = rememberSaveable {
|
val lastModified = rememberSaveable {
|
||||||
SimpleDateFormat("dd MMM yyyy", Locale.getDefault())
|
SimpleDateFormat("dd MMM yyyy", Locale.getDefault())
|
||||||
.format(Date(file.data.lastModified))
|
.format(Date(file.lastModified))
|
||||||
}
|
}
|
||||||
|
|
||||||
val sizeBytes = rememberSaveable { file.data.size }
|
val sizeBytes = rememberSaveable { file.size }
|
||||||
val fileSizeKB = rememberSaveable {
|
val fileSizeKB = rememberSaveable {
|
||||||
if (sizeBytes > 0) sizeBytes.toDouble() / 1024.0 else 0.0
|
if (sizeBytes > 0) sizeBytes.toDouble() / 1024.0 else 0.0
|
||||||
}
|
}
|
||||||
|
|
@ -94,7 +94,7 @@ fun BrowseGridFileItem(file: SelectableFile, hasSelectedItems: Boolean) {
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
|
||||||
StyledText(
|
StyledText(
|
||||||
text = file.data.name,
|
text = file.name,
|
||||||
style = MaterialTheme.typography.bodyLarge.copy(
|
style = MaterialTheme.typography.bodyLarge.copy(
|
||||||
color = MaterialTheme.colorScheme.onSurface,
|
color = MaterialTheme.colorScheme.onSurface,
|
||||||
textAlign = TextAlign.Center,
|
textAlign = TextAlign.Center,
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import ua.acclorite.book_story.domain.browse.file.SelectableFile
|
import ua.acclorite.book_story.ui.browse.model.SelectableFile
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BrowseGridItem(
|
fun BrowseGridItem(
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue