refactor: rename presentation/ ↔ ui/

This commit is contained in:
Acclorite 2025-05-04 08:50:32 +03:00
parent 7bb9990606
commit 378975bf3e
No known key found for this signature in database
GPG key ID: 6E54C611F6EE8593
444 changed files with 1723 additions and 1723 deletions

View file

@ -37,7 +37,7 @@
<!-- Main activity -->
<activity
android:name=".ui.main.MainActivity"
android:name=".presentation.main.MainActivity"
android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize|locale|density|uiMode"
android:exported="true"
android:theme="@style/Splash"
@ -50,7 +50,7 @@
<!-- Crash activity -->
<activity
android:name=".ui.crash.CrashActivity"
android:name=".presentation.crash.CrashActivity"
android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize|locale|density|uiMode"
android:exported="false"
android:theme="@style/BookStory"

View file

@ -10,7 +10,7 @@ import android.content.Context
import android.content.Intent
import android.os.Process
import android.util.Log
import ua.acclorite.book_story.ui.crash.CrashActivity
import ua.acclorite.book_story.presentation.crash.CrashActivity
import kotlin.system.exitProcess
private const val CRASH_TAG = "CRASH, APP"

View file

@ -8,7 +8,7 @@ package ua.acclorite.book_story.data.local.dto
import androidx.room.Entity
import androidx.room.PrimaryKey
import ua.acclorite.book_story.ui.library.model.LibrarySortOrder
import ua.acclorite.book_story.presentation.library.model.LibrarySortOrder
@Entity
data class CategorySortEntity(

View file

@ -12,9 +12,9 @@ import androidx.compose.ui.graphics.asImageBitmap
import kotlinx.coroutines.yield
import org.jsoup.nodes.Document
import ua.acclorite.book_story.domain.reader.ReaderText
import ua.acclorite.book_story.presentation.common.util.clearAllMarkdown
import ua.acclorite.book_story.presentation.common.util.clearMarkdown
import ua.acclorite.book_story.presentation.common.util.containsVisibleText
import ua.acclorite.book_story.ui.common.util.clearAllMarkdown
import ua.acclorite.book_story.ui.common.util.clearMarkdown
import ua.acclorite.book_story.ui.common.util.containsVisibleText
import java.io.File
import java.util.zip.ZipEntry
import java.util.zip.ZipFile

View file

@ -23,7 +23,7 @@ import org.commonmark.node.Node
import org.commonmark.node.StrongEmphasis
import org.commonmark.node.Text
import org.commonmark.parser.Parser
import ua.acclorite.book_story.presentation.common.util.clearMarkdown
import ua.acclorite.book_story.ui.common.util.clearMarkdown
import javax.inject.Inject
class MarkdownParser @Inject constructor(

View file

@ -21,9 +21,9 @@ import ua.acclorite.book_story.data.model.file.CachedFile
import ua.acclorite.book_story.data.parser.DocumentParser
import ua.acclorite.book_story.data.parser.TextParser
import ua.acclorite.book_story.domain.reader.ReaderText
import ua.acclorite.book_story.presentation.common.constants.provideImageExtensions
import ua.acclorite.book_story.presentation.common.util.addAll
import ua.acclorite.book_story.presentation.common.util.containsVisibleText
import ua.acclorite.book_story.ui.common.constants.provideImageExtensions
import ua.acclorite.book_story.ui.common.util.addAll
import ua.acclorite.book_story.ui.common.util.containsVisibleText
import java.io.File
import java.util.concurrent.ConcurrentLinkedQueue
import java.util.zip.ZipEntry

View file

@ -16,7 +16,7 @@ import ua.acclorite.book_story.data.model.file.CachedFile
import ua.acclorite.book_story.data.parser.MarkdownParser
import ua.acclorite.book_story.data.parser.TextParser
import ua.acclorite.book_story.domain.reader.ReaderText
import ua.acclorite.book_story.presentation.common.util.clearAllMarkdown
import ua.acclorite.book_story.ui.common.util.clearAllMarkdown
import javax.inject.Inject
private const val PDF_TAG = "PDF Parser"

View file

@ -14,7 +14,7 @@ import ua.acclorite.book_story.data.model.file.CachedFile
import ua.acclorite.book_story.data.parser.MarkdownParser
import ua.acclorite.book_story.data.parser.TextParser
import ua.acclorite.book_story.domain.reader.ReaderText
import ua.acclorite.book_story.presentation.common.util.clearAllMarkdown
import ua.acclorite.book_story.ui.common.util.clearAllMarkdown
import javax.inject.Inject
private const val TXT_TAG = "TXT Parser"

View file

@ -15,7 +15,7 @@ import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.withContext
import ua.acclorite.book_story.data.local.data_store.DataStore
import ua.acclorite.book_story.domain.repository.DataStoreRepository
import ua.acclorite.book_story.ui.main.MainState
import ua.acclorite.book_story.presentation.main.MainState
import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject
import javax.inject.Singleton

View file

@ -19,7 +19,7 @@ import ua.acclorite.book_story.data.model.file.CachedFileCompat
import ua.acclorite.book_story.data.parser.FileParser
import ua.acclorite.book_story.domain.file.File
import ua.acclorite.book_story.domain.repository.FileSystemRepository
import ua.acclorite.book_story.presentation.common.constants.provideExtensions
import ua.acclorite.book_story.ui.common.constants.provideExtensions
import java.util.UUID
import javax.inject.Inject
import javax.inject.Singleton

View file

@ -7,7 +7,7 @@
package ua.acclorite.book_story.domain.library
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.ui.library.model.LibrarySortOrder
import ua.acclorite.book_story.presentation.library.model.LibrarySortOrder
@Immutable
data class CategorySort(

View file

@ -7,7 +7,7 @@
package ua.acclorite.book_story.domain.repository
import androidx.datastore.preferences.core.Preferences
import ua.acclorite.book_story.ui.main.MainState
import ua.acclorite.book_story.presentation.main.MainState
interface DataStoreRepository {

View file

@ -9,7 +9,7 @@ package ua.acclorite.book_story.domain.use_case.data_store
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.os.LocaleListCompat
import ua.acclorite.book_story.domain.repository.DataStoreRepository
import ua.acclorite.book_story.presentation.common.constants.DataStoreConstants
import ua.acclorite.book_story.ui.common.constants.DataStoreConstants
import javax.inject.Inject
class ChangeLanguage @Inject constructor(

View file

@ -7,7 +7,7 @@
package ua.acclorite.book_story.domain.use_case.data_store
import ua.acclorite.book_story.domain.repository.DataStoreRepository
import ua.acclorite.book_story.ui.main.MainState
import ua.acclorite.book_story.presentation.main.MainState
import javax.inject.Inject
class GetAllSettings @Inject constructor(

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.about
package ua.acclorite.book_story.presentation.about
import android.content.Context
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.about
package ua.acclorite.book_story.presentation.about
import android.content.Intent
import androidx.activity.ComponentActivity
@ -16,8 +16,8 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import ua.acclorite.book_story.R
import ua.acclorite.book_story.presentation.common.util.launchActivity
import ua.acclorite.book_story.presentation.common.util.showToast
import ua.acclorite.book_story.ui.common.util.launchActivity
import ua.acclorite.book_story.ui.common.util.showToast
import javax.inject.Inject
@HiltViewModel

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.about
package ua.acclorite.book_story.presentation.about
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
@ -12,12 +12,12 @@ import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.hilt.navigation.compose.hiltViewModel
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.about.AboutContent
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.ui.credits.CreditsScreen
import ua.acclorite.book_story.ui.licenses.LicensesScreen
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.credits.CreditsScreen
import ua.acclorite.book_story.presentation.licenses.LicensesScreen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.about.AboutContent
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.navigator.LocalNavigator
@Parcelize
object AboutScreen : Screen, Parcelable {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.book_info
package ua.acclorite.book_story.presentation.book_info
import android.content.Context
import android.net.Uri

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.book_info
package ua.acclorite.book_story.presentation.book_info
import android.graphics.BitmapFactory
import androidx.lifecycle.ViewModel
@ -27,10 +27,10 @@ import ua.acclorite.book_story.domain.use_case.book.GetBookById
import ua.acclorite.book_story.domain.use_case.book.ResetCoverImage
import ua.acclorite.book_story.domain.use_case.book.UpdateBook
import ua.acclorite.book_story.domain.use_case.book.UpdateCoverImageOfBook
import ua.acclorite.book_story.presentation.common.util.showToast
import ua.acclorite.book_story.ui.browse.BrowseScreen
import ua.acclorite.book_story.ui.history.HistoryScreen
import ua.acclorite.book_story.ui.library.LibraryScreen
import ua.acclorite.book_story.presentation.browse.BrowseScreen
import ua.acclorite.book_story.presentation.history.HistoryScreen
import ua.acclorite.book_story.presentation.library.LibraryScreen
import ua.acclorite.book_story.ui.common.util.showToast
import javax.inject.Inject
@HiltViewModel

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.book_info
package ua.acclorite.book_story.presentation.book_info
import android.os.Parcelable
import androidx.compose.foundation.layout.Box
@ -19,13 +19,13 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.getOrElse
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.book_info.BookInfoContent
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.ui.history.HistoryScreen
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.ui.reader.ReaderScreen
import ua.acclorite.book_story.ui.settings.LibrarySettingsScreen
import ua.acclorite.book_story.ui.settings.SettingsModel
import ua.acclorite.book_story.presentation.history.HistoryScreen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.presentation.reader.ReaderScreen
import ua.acclorite.book_story.presentation.settings.LibrarySettingsScreen
import ua.acclorite.book_story.presentation.settings.SettingsModel
import ua.acclorite.book_story.ui.book_info.BookInfoContent
import ua.acclorite.book_story.ui.navigator.LocalNavigator
@Parcelize
data class BookInfoScreen(val bookId: Int) : Screen, Parcelable {

View file

@ -4,13 +4,13 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.book_info
package ua.acclorite.book_story.presentation.book_info
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.core.BottomSheet
import ua.acclorite.book_story.core.Dialog
import ua.acclorite.book_story.domain.library.Book
import ua.acclorite.book_story.presentation.common.constants.provideEmptyBook
import ua.acclorite.book_story.ui.common.constants.provideEmptyBook
@Immutable
data class BookInfoState(

View file

@ -4,13 +4,13 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.browse
package ua.acclorite.book_story.presentation.browse
import android.content.Context
import androidx.compose.runtime.Immutable
import androidx.compose.ui.focus.FocusRequester
import ua.acclorite.book_story.ui.browse.model.SelectableFile
import ua.acclorite.book_story.ui.library.model.SelectableNullableBook
import ua.acclorite.book_story.presentation.browse.model.SelectableFile
import ua.acclorite.book_story.presentation.library.model.SelectableNullableBook
@Immutable
sealed class BrowseEvent {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.browse
package ua.acclorite.book_story.presentation.browse
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
@ -27,12 +27,12 @@ import ua.acclorite.book_story.domain.file.File
import ua.acclorite.book_story.domain.use_case.book.InsertBook
import ua.acclorite.book_story.domain.use_case.file_system.GetBookFromFile
import ua.acclorite.book_story.domain.use_case.file_system.GetFiles
import ua.acclorite.book_story.presentation.common.util.compareByWithOrder
import ua.acclorite.book_story.presentation.common.util.showToast
import ua.acclorite.book_story.ui.browse.model.BrowseSortOrder
import ua.acclorite.book_story.ui.browse.model.SelectableFile
import ua.acclorite.book_story.ui.library.LibraryScreen
import ua.acclorite.book_story.ui.library.model.SelectableNullableBook
import ua.acclorite.book_story.presentation.browse.model.BrowseSortOrder
import ua.acclorite.book_story.presentation.browse.model.SelectableFile
import ua.acclorite.book_story.presentation.library.LibraryScreen
import ua.acclorite.book_story.presentation.library.model.SelectableNullableBook
import ua.acclorite.book_story.ui.common.util.compareByWithOrder
import ua.acclorite.book_story.ui.common.util.showToast
import javax.inject.Inject
@HiltViewModel

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.browse
package ua.acclorite.book_story.presentation.browse
import android.os.Parcelable
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
@ -24,13 +24,13 @@ import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.receiveAsFlow
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.browse.BrowseContent
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.ui.browse.model.BrowseLayout
import ua.acclorite.book_story.ui.library.LibraryScreen
import ua.acclorite.book_story.ui.main.MainModel
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.ui.settings.BrowseSettingsScreen
import ua.acclorite.book_story.presentation.browse.model.BrowseLayout
import ua.acclorite.book_story.presentation.library.LibraryScreen
import ua.acclorite.book_story.presentation.main.MainModel
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.presentation.settings.BrowseSettingsScreen
import ua.acclorite.book_story.ui.browse.BrowseContent
import ua.acclorite.book_story.ui.navigator.LocalNavigator
@Parcelize
object BrowseScreen : Screen, Parcelable {

View file

@ -4,13 +4,13 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.browse
package ua.acclorite.book_story.presentation.browse
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.core.BottomSheet
import ua.acclorite.book_story.core.Dialog
import ua.acclorite.book_story.ui.browse.model.SelectableFile
import ua.acclorite.book_story.ui.library.model.SelectableNullableBook
import ua.acclorite.book_story.presentation.browse.model.SelectableFile
import ua.acclorite.book_story.presentation.library.model.SelectableNullableBook
@Immutable
data class BrowseState(

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.browse.model
package ua.acclorite.book_story.presentation.browse.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.browse.model
package ua.acclorite.book_story.presentation.browse.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.browse.model
package ua.acclorite.book_story.presentation.browse.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.browse.model
package ua.acclorite.book_story.presentation.browse.model
import android.net.Uri
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.crash
package ua.acclorite.book_story.presentation.crash
import android.os.Bundle
import androidx.activity.compose.setContent
@ -12,9 +12,9 @@ import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.core.view.WindowCompat
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.ui.theme.BookStoryTheme
import ua.acclorite.book_story.ui.theme.Theme
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.theme.BookStoryTheme
import ua.acclorite.book_story.presentation.theme.Theme
class CrashActivity : AppCompatActivity() {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.crash
package ua.acclorite.book_story.presentation.crash
import android.content.ClipData
import android.content.Intent
@ -20,11 +20,11 @@ import kotlinx.coroutines.launch
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.R
import ua.acclorite.book_story.core.crash.CrashUtils
import ua.acclorite.book_story.presentation.common.util.LocalActivity
import ua.acclorite.book_story.presentation.common.util.launchActivity
import ua.acclorite.book_story.presentation.common.util.showToast
import ua.acclorite.book_story.presentation.crash.CrashContent
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.util.LocalActivity
import ua.acclorite.book_story.ui.common.util.launchActivity
import ua.acclorite.book_story.ui.common.util.showToast
import ua.acclorite.book_story.ui.crash.CrashContent
@Parcelize
object CrashScreen : Screen, Parcelable {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.credits
package ua.acclorite.book_story.presentation.credits
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
@ -12,11 +12,11 @@ import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.hilt.navigation.compose.hiltViewModel
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.credits.CreditsContent
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.ui.about.AboutModel
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.about.AboutModel
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.credits.CreditsContent
import ua.acclorite.book_story.ui.navigator.LocalNavigator
@Parcelize
object CreditsScreen : Screen, Parcelable {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.help
package ua.acclorite.book_story.presentation.help
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
@ -12,14 +12,14 @@ import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.hilt.navigation.compose.hiltViewModel
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.help.HelpContent
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.ui.browse.BrowseScreen
import ua.acclorite.book_story.ui.main.MainEvent
import ua.acclorite.book_story.ui.main.MainModel
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.ui.start.StartScreen
import ua.acclorite.book_story.presentation.browse.BrowseScreen
import ua.acclorite.book_story.presentation.main.MainEvent
import ua.acclorite.book_story.presentation.main.MainModel
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.presentation.start.StartScreen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.help.HelpContent
import ua.acclorite.book_story.ui.navigator.LocalNavigator
@Parcelize
data class HelpScreen(val fromStart: Boolean) : Screen, Parcelable {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.history
package ua.acclorite.book_story.presentation.history
import android.content.Context
import androidx.compose.material3.SnackbarHostState

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.history
package ua.acclorite.book_story.presentation.history
import androidx.compose.material3.SnackbarResult
import androidx.lifecycle.ViewModel
@ -29,9 +29,9 @@ import ua.acclorite.book_story.domain.use_case.history.DeleteHistory
import ua.acclorite.book_story.domain.use_case.history.DeleteWholeHistory
import ua.acclorite.book_story.domain.use_case.history.GetHistory
import ua.acclorite.book_story.domain.use_case.history.InsertHistory
import ua.acclorite.book_story.presentation.common.util.showToast
import ua.acclorite.book_story.ui.history.model.GroupedHistory
import ua.acclorite.book_story.ui.library.LibraryScreen
import ua.acclorite.book_story.presentation.history.model.GroupedHistory
import ua.acclorite.book_story.presentation.library.LibraryScreen
import ua.acclorite.book_story.ui.common.util.showToast
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date

View file

@ -6,7 +6,7 @@
@file:OptIn(ExperimentalMaterialApi::class)
package ua.acclorite.book_story.ui.history
package ua.acclorite.book_story.presentation.history
import android.os.Parcelable
import androidx.compose.foundation.lazy.rememberLazyListState
@ -22,12 +22,12 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import kotlinx.coroutines.channels.Channel
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.history.HistoryContent
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.ui.book_info.BookInfoScreen
import ua.acclorite.book_story.ui.library.LibraryScreen
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.ui.reader.ReaderScreen
import ua.acclorite.book_story.presentation.book_info.BookInfoScreen
import ua.acclorite.book_story.presentation.library.LibraryScreen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.presentation.reader.ReaderScreen
import ua.acclorite.book_story.ui.history.HistoryContent
import ua.acclorite.book_story.ui.navigator.LocalNavigator
@Parcelize
object HistoryScreen : Screen, Parcelable {

View file

@ -4,11 +4,11 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.history
package ua.acclorite.book_story.presentation.history
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.core.Dialog
import ua.acclorite.book_story.ui.history.model.GroupedHistory
import ua.acclorite.book_story.presentation.history.model.GroupedHistory
@Immutable
data class HistoryState(

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.history.model
package ua.acclorite.book_story.presentation.history.model
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.domain.history.History

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.library
package ua.acclorite.book_story.presentation.library
import android.content.Context
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.library
package ua.acclorite.book_story.presentation.library
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
@ -26,10 +26,10 @@ import ua.acclorite.book_story.domain.library.Book
import ua.acclorite.book_story.domain.use_case.book.DeleteBooks
import ua.acclorite.book_story.domain.use_case.book.GetBooks
import ua.acclorite.book_story.domain.use_case.book.UpdateBook
import ua.acclorite.book_story.presentation.common.util.showToast
import ua.acclorite.book_story.ui.browse.BrowseScreen
import ua.acclorite.book_story.ui.history.HistoryScreen
import ua.acclorite.book_story.ui.library.model.SelectableBook
import ua.acclorite.book_story.presentation.browse.BrowseScreen
import ua.acclorite.book_story.presentation.history.HistoryScreen
import ua.acclorite.book_story.presentation.library.model.SelectableBook
import ua.acclorite.book_story.ui.common.util.showToast
import javax.inject.Inject
@HiltViewModel

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.library
package ua.acclorite.book_story.presentation.library
import android.os.Parcelable
import androidx.compose.foundation.pager.rememberPagerState
@ -23,16 +23,16 @@ import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.receiveAsFlow
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.library.LibraryContent
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.ui.book_info.BookInfoScreen
import ua.acclorite.book_story.ui.browse.BrowseScreen
import ua.acclorite.book_story.ui.history.HistoryScreen
import ua.acclorite.book_story.ui.main.MainModel
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.ui.reader.ReaderScreen
import ua.acclorite.book_story.ui.settings.LibrarySettingsScreen
import ua.acclorite.book_story.ui.settings.SettingsModel
import ua.acclorite.book_story.presentation.book_info.BookInfoScreen
import ua.acclorite.book_story.presentation.browse.BrowseScreen
import ua.acclorite.book_story.presentation.history.HistoryScreen
import ua.acclorite.book_story.presentation.main.MainModel
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.presentation.reader.ReaderScreen
import ua.acclorite.book_story.presentation.settings.LibrarySettingsScreen
import ua.acclorite.book_story.presentation.settings.SettingsModel
import ua.acclorite.book_story.ui.library.LibraryContent
import ua.acclorite.book_story.ui.navigator.LocalNavigator
@Parcelize
object LibraryScreen : Screen, Parcelable {

View file

@ -4,12 +4,12 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.library
package ua.acclorite.book_story.presentation.library
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.core.BottomSheet
import ua.acclorite.book_story.core.Dialog
import ua.acclorite.book_story.ui.library.model.SelectableBook
import ua.acclorite.book_story.presentation.library.model.SelectableBook
@Immutable
data class LibraryState(

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.library.model
package ua.acclorite.book_story.presentation.library.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.library.model
package ua.acclorite.book_story.presentation.library.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.library.model
package ua.acclorite.book_story.presentation.library.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.library.model
package ua.acclorite.book_story.presentation.library.model
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.core.Selected

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.library.model
package ua.acclorite.book_story.presentation.library.model
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.core.Selected

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.license_info
package ua.acclorite.book_story.presentation.license_info
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
@ -18,11 +18,11 @@ import com.mikepenz.aboutlibraries.Libs
import com.mikepenz.aboutlibraries.util.withJson
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.R
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.license_info.LicenseInfoContent
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.ui.about.AboutModel
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.about.AboutModel
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.license_info.LicenseInfoContent
import ua.acclorite.book_story.ui.navigator.LocalNavigator
@Parcelize
data class LicenseInfoScreen(val uniqueId: String) : Screen, Parcelable {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.licenses
package ua.acclorite.book_story.presentation.licenses
import android.os.Parcelable
import androidx.compose.foundation.lazy.rememberLazyListState
@ -20,11 +20,11 @@ import com.mikepenz.aboutlibraries.util.withJson
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.R
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.licenses.LicensesContent
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.ui.license_info.LicenseInfoScreen
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.license_info.LicenseInfoScreen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.licenses.LicensesContent
import ua.acclorite.book_story.ui.navigator.LocalNavigator
@Parcelize
object LicensesScreen : Screen, Parcelable {

View file

@ -6,7 +6,7 @@
@file:Suppress("UnusedVariable", "unused")
package ua.acclorite.book_story.ui.main
package ua.acclorite.book_story.presentation.main
import android.annotation.SuppressLint
import android.database.CursorWindow
@ -23,25 +23,25 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import dagger.hilt.android.AndroidEntryPoint
import okhttp3.internal.immutableListOf
import ua.acclorite.book_story.R
import ua.acclorite.book_story.presentation.common.components.navigation_bar.NavigationBar
import ua.acclorite.book_story.presentation.common.components.navigation_rail.NavigationRail
import ua.acclorite.book_story.presentation.main.MainActivityKeyboardManager
import ua.acclorite.book_story.presentation.navigator.Navigator
import ua.acclorite.book_story.presentation.navigator.NavigatorTabs
import ua.acclorite.book_story.ui.browse.BrowseModel
import ua.acclorite.book_story.ui.browse.BrowseScreen
import ua.acclorite.book_story.ui.history.HistoryModel
import ua.acclorite.book_story.ui.history.HistoryScreen
import ua.acclorite.book_story.ui.library.LibraryModel
import ua.acclorite.book_story.ui.library.LibraryScreen
import ua.acclorite.book_story.ui.main.model.isDark
import ua.acclorite.book_story.ui.main.model.isPureDark
import ua.acclorite.book_story.ui.navigator.NavigatorItem
import ua.acclorite.book_story.ui.navigator.StackEvent
import ua.acclorite.book_story.ui.settings.SettingsModel
import ua.acclorite.book_story.ui.start.StartScreen
import ua.acclorite.book_story.ui.theme.BookStoryTheme
import ua.acclorite.book_story.ui.theme.Transitions
import ua.acclorite.book_story.presentation.browse.BrowseModel
import ua.acclorite.book_story.presentation.browse.BrowseScreen
import ua.acclorite.book_story.presentation.history.HistoryModel
import ua.acclorite.book_story.presentation.history.HistoryScreen
import ua.acclorite.book_story.presentation.library.LibraryModel
import ua.acclorite.book_story.presentation.library.LibraryScreen
import ua.acclorite.book_story.presentation.main.model.isDark
import ua.acclorite.book_story.presentation.main.model.isPureDark
import ua.acclorite.book_story.presentation.navigator.NavigatorItem
import ua.acclorite.book_story.presentation.navigator.StackEvent
import ua.acclorite.book_story.presentation.settings.SettingsModel
import ua.acclorite.book_story.presentation.start.StartScreen
import ua.acclorite.book_story.presentation.theme.BookStoryTheme
import ua.acclorite.book_story.presentation.theme.Transitions
import ua.acclorite.book_story.ui.common.components.navigation_bar.NavigationBar
import ua.acclorite.book_story.ui.common.components.navigation_rail.NavigationRail
import ua.acclorite.book_story.ui.main.MainActivityKeyboardManager
import ua.acclorite.book_story.ui.navigator.Navigator
import ua.acclorite.book_story.ui.navigator.NavigatorTabs
import java.lang.reflect.Field

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.main
package ua.acclorite.book_story.presentation.main
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.main
package ua.acclorite.book_story.presentation.main
import androidx.datastore.preferences.core.Preferences
import androidx.lifecycle.SavedStateHandle
@ -25,25 +25,25 @@ import kotlinx.coroutines.yield
import ua.acclorite.book_story.domain.use_case.data_store.ChangeLanguage
import ua.acclorite.book_story.domain.use_case.data_store.GetAllSettings
import ua.acclorite.book_story.domain.use_case.data_store.SetDatastore
import ua.acclorite.book_story.presentation.common.constants.DataStoreConstants
import ua.acclorite.book_story.presentation.common.constants.provideFonts
import ua.acclorite.book_story.presentation.common.constants.provideMainState
import ua.acclorite.book_story.ui.browse.model.BrowseLayout
import ua.acclorite.book_story.ui.browse.model.BrowseSortOrder
import ua.acclorite.book_story.ui.library.model.LibraryLayout
import ua.acclorite.book_story.ui.library.model.LibrarySortOrder
import ua.acclorite.book_story.ui.library.model.LibraryTitlePosition
import ua.acclorite.book_story.ui.main.model.DarkTheme
import ua.acclorite.book_story.ui.main.model.HorizontalAlignment
import ua.acclorite.book_story.ui.main.model.PureDark
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.ui.reader.model.ReaderColorEffects
import ua.acclorite.book_story.ui.reader.model.ReaderFontThickness
import ua.acclorite.book_story.ui.reader.model.ReaderHorizontalGesture
import ua.acclorite.book_story.ui.reader.model.ReaderProgressCount
import ua.acclorite.book_story.ui.reader.model.ReaderScreenOrientation
import ua.acclorite.book_story.ui.reader.model.ReaderTextAlignment
import ua.acclorite.book_story.ui.theme.toTheme
import ua.acclorite.book_story.presentation.browse.model.BrowseLayout
import ua.acclorite.book_story.presentation.browse.model.BrowseSortOrder
import ua.acclorite.book_story.presentation.library.model.LibraryLayout
import ua.acclorite.book_story.presentation.library.model.LibrarySortOrder
import ua.acclorite.book_story.presentation.library.model.LibraryTitlePosition
import ua.acclorite.book_story.presentation.main.model.DarkTheme
import ua.acclorite.book_story.presentation.main.model.HorizontalAlignment
import ua.acclorite.book_story.presentation.main.model.PureDark
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.reader.model.ReaderColorEffects
import ua.acclorite.book_story.presentation.reader.model.ReaderFontThickness
import ua.acclorite.book_story.presentation.reader.model.ReaderHorizontalGesture
import ua.acclorite.book_story.presentation.reader.model.ReaderProgressCount
import ua.acclorite.book_story.presentation.reader.model.ReaderScreenOrientation
import ua.acclorite.book_story.presentation.reader.model.ReaderTextAlignment
import ua.acclorite.book_story.presentation.theme.toTheme
import ua.acclorite.book_story.ui.common.constants.DataStoreConstants
import ua.acclorite.book_story.ui.common.constants.provideFonts
import ua.acclorite.book_story.ui.common.constants.provideMainState
import javax.inject.Inject

View file

@ -6,33 +6,33 @@
@file:Suppress("UNCHECKED_CAST")
package ua.acclorite.book_story.ui.main
package ua.acclorite.book_story.presentation.main
import android.os.Parcelable
import androidx.annotation.Keep
import androidx.compose.runtime.Immutable
import androidx.datastore.preferences.core.Preferences
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.constants.DataStoreConstants
import ua.acclorite.book_story.presentation.common.constants.provideFonts
import ua.acclorite.book_story.presentation.common.constants.provideLanguages
import ua.acclorite.book_story.ui.browse.model.BrowseLayout
import ua.acclorite.book_story.ui.browse.model.BrowseSortOrder
import ua.acclorite.book_story.ui.library.model.LibraryLayout
import ua.acclorite.book_story.ui.library.model.LibrarySortOrder
import ua.acclorite.book_story.ui.library.model.LibraryTitlePosition
import ua.acclorite.book_story.ui.main.model.DarkTheme
import ua.acclorite.book_story.ui.main.model.HorizontalAlignment
import ua.acclorite.book_story.ui.main.model.PureDark
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.ui.reader.model.ReaderColorEffects
import ua.acclorite.book_story.ui.reader.model.ReaderFontThickness
import ua.acclorite.book_story.ui.reader.model.ReaderHorizontalGesture
import ua.acclorite.book_story.ui.reader.model.ReaderProgressCount
import ua.acclorite.book_story.ui.reader.model.ReaderScreenOrientation
import ua.acclorite.book_story.ui.reader.model.ReaderTextAlignment
import ua.acclorite.book_story.ui.theme.Theme
import ua.acclorite.book_story.ui.theme.toTheme
import ua.acclorite.book_story.presentation.browse.model.BrowseLayout
import ua.acclorite.book_story.presentation.browse.model.BrowseSortOrder
import ua.acclorite.book_story.presentation.library.model.LibraryLayout
import ua.acclorite.book_story.presentation.library.model.LibrarySortOrder
import ua.acclorite.book_story.presentation.library.model.LibraryTitlePosition
import ua.acclorite.book_story.presentation.main.model.DarkTheme
import ua.acclorite.book_story.presentation.main.model.HorizontalAlignment
import ua.acclorite.book_story.presentation.main.model.PureDark
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.reader.model.ReaderColorEffects
import ua.acclorite.book_story.presentation.reader.model.ReaderFontThickness
import ua.acclorite.book_story.presentation.reader.model.ReaderHorizontalGesture
import ua.acclorite.book_story.presentation.reader.model.ReaderProgressCount
import ua.acclorite.book_story.presentation.reader.model.ReaderScreenOrientation
import ua.acclorite.book_story.presentation.reader.model.ReaderTextAlignment
import ua.acclorite.book_story.presentation.theme.Theme
import ua.acclorite.book_story.presentation.theme.toTheme
import ua.acclorite.book_story.ui.common.constants.DataStoreConstants
import ua.acclorite.book_story.ui.common.constants.provideFonts
import ua.acclorite.book_story.ui.common.constants.provideLanguages
import java.util.Locale
/**

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.main.model
package ua.acclorite.book_story.presentation.main.model
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.runtime.Composable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.main.model
package ua.acclorite.book_story.presentation.main.model
import androidx.compose.runtime.Immutable
import androidx.compose.ui.Alignment

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.main.model
package ua.acclorite.book_story.presentation.main.model
import android.content.Context
import android.os.PowerManager

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.main.model
package ua.acclorite.book_story.presentation.main.model
import androidx.compose.runtime.Immutable

View file

@ -6,70 +6,76 @@
package ua.acclorite.book_story.presentation.navigator
import androidx.activity.compose.BackHandler
import androidx.activity.viewModels
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.ContentTransform
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import dagger.hilt.android.lifecycle.withCreationCallback
import kotlinx.coroutines.Dispatchers
import ua.acclorite.book_story.presentation.common.util.LocalActivity
import ua.acclorite.book_story.ui.navigator.Navigator
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.ui.navigator.StackEvent
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn
@Composable
fun rememberNavigator(initialScreen: Screen): Navigator {
val activity = LocalActivity.current
return activity.viewModels<Navigator>(
extrasProducer = {
activity.defaultViewModelCreationExtras
.withCreationCallback<Navigator.Factory> { factory ->
factory.create(initialScreen)
}
}
).value
}
@HiltViewModel(assistedFactory = Navigator.Factory::class)
class Navigator @AssistedInject constructor(
private val savedStateHandle: SavedStateHandle,
@Assisted private val initialScreen: Screen
) : ViewModel() {
@Composable
fun Navigator(
modifier: Modifier = Modifier,
initialScreen: Screen,
transitionSpec: AnimatedContentTransitionScope<Screen>.(lastEvent: StackEvent) -> ContentTransform,
contentKey: (Screen) -> Any? = { it },
backHandlerEnabled: (Screen) -> Boolean = { true },
content: @Composable (currentScreen: Screen) -> Unit
) {
val navigator = rememberNavigator(initialScreen = initialScreen)
val currentScreen = navigator.lastItem.collectAsStateWithLifecycle(
context = Dispatchers.Main.immediate
)
val lastEvent = navigator.lastEvent.collectAsStateWithLifecycle(
context = Dispatchers.Main.immediate
val items = savedStateHandle.getStateFlow("items", mutableListOf(initialScreen))
private fun StateFlow<MutableList<Screen>>.removeLast() {
savedStateHandle["items"] = value.dropLast(1)
}
private fun StateFlow<MutableList<Screen>>.add(item: Screen) {
savedStateHandle["items"] = value + item
}
val lastItem = items.map {
it.lastOrNull() ?: initialScreen
}.stateIn(
scope = viewModelScope,
started = SharingStarted.Eagerly,
initialValue = initialScreen
)
CompositionLocalProvider(LocalNavigator provides navigator) {
AnimatedContent(
modifier = modifier
.fillMaxSize()
.background(MaterialTheme.colorScheme.surface),
targetState = currentScreen.value,
transitionSpec = {
transitionSpec(this, lastEvent.value)
},
contentKey = contentKey,
content = { content(it) }
val lastEvent = savedStateHandle.getStateFlow("stack_event", StackEvent.Default)
private fun changeStackEvent(stackEvent: StackEvent) {
savedStateHandle["stack_event"] = stackEvent
}
fun push(
targetScreen: Screen,
popping: Boolean = false,
saveInBackStack: Boolean = true
) {
if (lastItem.value::class == targetScreen::class) return
if (!saveInBackStack) items.removeLast()
changeStackEvent(
if (popping) StackEvent.Pop
else StackEvent.Default
)
if (lastItem.value::class == targetScreen::class) items.removeLast()
items.add(targetScreen)
}
BackHandler(enabled = backHandlerEnabled.invoke(currentScreen.value)) {
navigator.pop()
fun pop(popping: Boolean = true) {
if (items.value.count() > 1) {
changeStackEvent(
if (popping) StackEvent.Pop
else StackEvent.Default
)
items.removeLast()
}
}
@AssistedFactory
interface Factory {
fun create(startScreen: Screen): Navigator
}
}

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.navigator
package ua.acclorite.book_story.presentation.navigator
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.navigator
package ua.acclorite.book_story.presentation.navigator
import androidx.compose.runtime.Composable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.navigator
package ua.acclorite.book_story.presentation.navigator
import android.os.Parcelable
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader
package ua.acclorite.book_story.presentation.reader
import androidx.activity.ComponentActivity
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader
package ua.acclorite.book_story.presentation.reader
import android.app.SearchManager
import android.content.Intent
@ -41,13 +41,13 @@ import ua.acclorite.book_story.domain.use_case.book.GetBookById
import ua.acclorite.book_story.domain.use_case.book.GetText
import ua.acclorite.book_story.domain.use_case.book.UpdateBook
import ua.acclorite.book_story.domain.use_case.history.GetLatestHistory
import ua.acclorite.book_story.presentation.common.util.coerceAndPreventNaN
import ua.acclorite.book_story.presentation.common.util.launchActivity
import ua.acclorite.book_story.presentation.common.util.setBrightness
import ua.acclorite.book_story.presentation.common.util.showToast
import ua.acclorite.book_story.ui.history.HistoryScreen
import ua.acclorite.book_story.ui.library.LibraryScreen
import ua.acclorite.book_story.ui.reader.model.Checkpoint
import ua.acclorite.book_story.presentation.history.HistoryScreen
import ua.acclorite.book_story.presentation.library.LibraryScreen
import ua.acclorite.book_story.presentation.reader.model.Checkpoint
import ua.acclorite.book_story.ui.common.util.coerceAndPreventNaN
import ua.acclorite.book_story.ui.common.util.launchActivity
import ua.acclorite.book_story.ui.common.util.setBrightness
import ua.acclorite.book_story.ui.common.util.showToast
import javax.inject.Inject
import kotlin.math.roundToInt

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader
package ua.acclorite.book_story.presentation.reader
import android.content.pm.ActivityInfo
import android.os.Parcelable
@ -44,19 +44,19 @@ import androidx.core.view.WindowInsetsCompat
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.constants.provideFonts
import ua.acclorite.book_story.presentation.common.util.LocalActivity
import ua.acclorite.book_story.presentation.common.util.calculateProgress
import ua.acclorite.book_story.presentation.common.util.setBrightness
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.presentation.reader.ReaderContent
import ua.acclorite.book_story.ui.book_info.BookInfoScreen
import ua.acclorite.book_story.ui.main.MainModel
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.ui.reader.model.ReaderColorEffects
import ua.acclorite.book_story.ui.reader.model.ReaderProgressCount
import ua.acclorite.book_story.ui.reader.model.ReaderTextAlignment
import ua.acclorite.book_story.ui.settings.SettingsModel
import ua.acclorite.book_story.presentation.book_info.BookInfoScreen
import ua.acclorite.book_story.presentation.main.MainModel
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.presentation.reader.model.ReaderColorEffects
import ua.acclorite.book_story.presentation.reader.model.ReaderProgressCount
import ua.acclorite.book_story.presentation.reader.model.ReaderTextAlignment
import ua.acclorite.book_story.presentation.settings.SettingsModel
import ua.acclorite.book_story.ui.common.constants.provideFonts
import ua.acclorite.book_story.ui.common.util.LocalActivity
import ua.acclorite.book_story.ui.common.util.calculateProgress
import ua.acclorite.book_story.ui.common.util.setBrightness
import ua.acclorite.book_story.ui.navigator.LocalNavigator
import ua.acclorite.book_story.ui.reader.ReaderContent
import kotlin.math.roundToInt
@Parcelize

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader
package ua.acclorite.book_story.presentation.reader
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.runtime.Immutable
@ -14,8 +14,8 @@ import ua.acclorite.book_story.core.ui.UIText
import ua.acclorite.book_story.domain.library.Book
import ua.acclorite.book_story.domain.reader.ReaderText
import ua.acclorite.book_story.domain.reader.ReaderText.Chapter
import ua.acclorite.book_story.presentation.common.constants.provideEmptyBook
import ua.acclorite.book_story.ui.reader.model.Checkpoint
import ua.acclorite.book_story.presentation.reader.model.Checkpoint
import ua.acclorite.book_story.ui.common.constants.provideEmptyBook
@Immutable
data class ReaderState(

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader.model
package ua.acclorite.book_story.presentation.reader.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader.model
package ua.acclorite.book_story.presentation.reader.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader.model
package ua.acclorite.book_story.presentation.reader.model
import androidx.compose.runtime.Immutable
import androidx.compose.ui.text.font.FontWeight

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader.model
package ua.acclorite.book_story.presentation.reader.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader.model
package ua.acclorite.book_story.presentation.reader.model
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader.model
package ua.acclorite.book_story.presentation.reader.model
import android.content.pm.ActivityInfo
import androidx.compose.runtime.Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.reader.model
package ua.acclorite.book_story.presentation.reader.model
import androidx.compose.runtime.Immutable
import androidx.compose.ui.text.style.TextAlign

View file

@ -4,17 +4,17 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.settings
package ua.acclorite.book_story.presentation.settings
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.presentation.settings.appearance.AppearanceSettingsContent
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.navigator.LocalNavigator
import ua.acclorite.book_story.ui.settings.appearance.AppearanceSettingsContent
@Parcelize
object AppearanceSettingsScreen : Screen, Parcelable {

View file

@ -4,17 +4,17 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.settings
package ua.acclorite.book_story.presentation.settings
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.presentation.settings.browse.BrowseSettingsContent
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.navigator.LocalNavigator
import ua.acclorite.book_story.ui.settings.browse.BrowseSettingsContent
@Parcelize
object BrowseSettingsScreen : Screen, Parcelable {

View file

@ -4,17 +4,17 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.settings
package ua.acclorite.book_story.presentation.settings
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.presentation.settings.general.GeneralSettingsContent
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.navigator.LocalNavigator
import ua.acclorite.book_story.ui.settings.general.GeneralSettingsContent
@Parcelize
object GeneralSettingsScreen : Screen, Parcelable {

View file

@ -4,17 +4,17 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.settings
package ua.acclorite.book_story.presentation.settings
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.presentation.settings.library.LibrarySettingsContent
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.navigator.LocalNavigator
import ua.acclorite.book_story.ui.settings.library.LibrarySettingsContent
@Parcelize
object LibrarySettingsScreen : Screen, Parcelable {

View file

@ -4,17 +4,17 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.settings
package ua.acclorite.book_story.presentation.settings
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.presentation.settings.reader.ReaderSettingsContent
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.navigator.LocalNavigator
import ua.acclorite.book_story.ui.settings.reader.ReaderSettingsContent
@Parcelize
object ReaderSettingsScreen : Screen, Parcelable {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.settings
package ua.acclorite.book_story.presentation.settings
import android.content.Context
import android.net.Uri
@ -12,7 +12,7 @@ import androidx.compose.runtime.Immutable
import androidx.compose.ui.graphics.Color
import ua.acclorite.book_story.core.ID
import ua.acclorite.book_story.domain.library.Category
import ua.acclorite.book_story.ui.library.model.LibrarySortOrder
import ua.acclorite.book_story.presentation.library.model.LibrarySortOrder
@Immutable
sealed class SettingsEvent {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.settings
package ua.acclorite.book_story.presentation.settings
import android.util.Log
import androidx.lifecycle.ViewModel
@ -37,8 +37,8 @@ import ua.acclorite.book_story.domain.use_case.color_preset.SelectColorPreset
import ua.acclorite.book_story.domain.use_case.color_preset.UpdateColorPreset
import ua.acclorite.book_story.domain.use_case.permission.GrantPersistableUriPermission
import ua.acclorite.book_story.domain.use_case.permission.ReleasePersistableUriPermission
import ua.acclorite.book_story.presentation.common.constants.provideDefaultColorPreset
import ua.acclorite.book_story.presentation.common.util.showToast
import ua.acclorite.book_story.ui.common.constants.provideDefaultColorPreset
import ua.acclorite.book_story.ui.common.util.showToast
import javax.inject.Inject
import kotlin.random.Random

View file

@ -4,17 +4,17 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.settings
package ua.acclorite.book_story.presentation.settings
import android.os.Parcelable
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.presentation.settings.SettingsContent
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.ui.common.components.top_bar.collapsibleTopAppBarScrollBehavior
import ua.acclorite.book_story.ui.navigator.LocalNavigator
import ua.acclorite.book_story.ui.settings.SettingsContent
@Parcelize
object SettingsScreen : Screen, Parcelable {

View file

@ -4,14 +4,14 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.settings
package ua.acclorite.book_story.presentation.settings
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.domain.library.Category
import ua.acclorite.book_story.domain.library.CategorySort
import ua.acclorite.book_story.domain.reader.ColorPreset
import ua.acclorite.book_story.presentation.common.constants.provideDefaultColorPreset
import ua.acclorite.book_story.ui.common.constants.provideDefaultColorPreset
@Immutable
data class SettingsState(

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.start
package ua.acclorite.book_story.presentation.start
import android.annotation.SuppressLint
import android.os.Parcelable
@ -17,17 +17,17 @@ import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
import ua.acclorite.book_story.presentation.common.constants.provideLanguages
import ua.acclorite.book_story.presentation.common.model.ButtonItem
import ua.acclorite.book_story.presentation.common.util.LocalActivity
import ua.acclorite.book_story.presentation.navigator.LocalNavigator
import ua.acclorite.book_story.presentation.start.StartContent
import ua.acclorite.book_story.ui.browse.BrowseScreen
import ua.acclorite.book_story.ui.help.HelpScreen
import ua.acclorite.book_story.ui.main.MainEvent
import ua.acclorite.book_story.ui.main.MainModel
import ua.acclorite.book_story.ui.navigator.Screen
import ua.acclorite.book_story.ui.navigator.StackEvent
import ua.acclorite.book_story.presentation.browse.BrowseScreen
import ua.acclorite.book_story.presentation.help.HelpScreen
import ua.acclorite.book_story.presentation.main.MainEvent
import ua.acclorite.book_story.presentation.main.MainModel
import ua.acclorite.book_story.presentation.navigator.Screen
import ua.acclorite.book_story.presentation.navigator.StackEvent
import ua.acclorite.book_story.ui.common.constants.provideLanguages
import ua.acclorite.book_story.ui.common.model.ButtonItem
import ua.acclorite.book_story.ui.common.util.LocalActivity
import ua.acclorite.book_story.ui.navigator.LocalNavigator
import ua.acclorite.book_story.ui.start.StartContent
@Parcelize
object StartScreen : Screen, Parcelable {

View file

@ -4,14 +4,14 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme
package ua.acclorite.book_story.presentation.theme
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.tween
import androidx.compose.material3.ColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
@Composable
private fun animateColor(targetColor: Color): Color {

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme
package ua.acclorite.book_story.presentation.theme
import android.os.Build
import androidx.annotation.StringRes
@ -12,24 +12,24 @@ import androidx.compose.material3.ColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import ua.acclorite.book_story.R
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.ui.theme.color.aquaTheme
import ua.acclorite.book_story.ui.theme.color.blackTheme
import ua.acclorite.book_story.ui.theme.color.blueTheme
import ua.acclorite.book_story.ui.theme.color.dynamicTheme
import ua.acclorite.book_story.ui.theme.color.green2Theme
import ua.acclorite.book_story.ui.theme.color.greenGrayTheme
import ua.acclorite.book_story.ui.theme.color.greenTheme
import ua.acclorite.book_story.ui.theme.color.lavenderTheme
import ua.acclorite.book_story.ui.theme.color.marshTheme
import ua.acclorite.book_story.ui.theme.color.pink2Theme
import ua.acclorite.book_story.ui.theme.color.pinkTheme
import ua.acclorite.book_story.ui.theme.color.purpleGrayTheme
import ua.acclorite.book_story.ui.theme.color.purpleTheme
import ua.acclorite.book_story.ui.theme.color.redGrayTheme
import ua.acclorite.book_story.ui.theme.color.redTheme
import ua.acclorite.book_story.ui.theme.color.yellow2Theme
import ua.acclorite.book_story.ui.theme.color.yellowTheme
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.theme.color.aquaTheme
import ua.acclorite.book_story.presentation.theme.color.blackTheme
import ua.acclorite.book_story.presentation.theme.color.blueTheme
import ua.acclorite.book_story.presentation.theme.color.dynamicTheme
import ua.acclorite.book_story.presentation.theme.color.green2Theme
import ua.acclorite.book_story.presentation.theme.color.greenGrayTheme
import ua.acclorite.book_story.presentation.theme.color.greenTheme
import ua.acclorite.book_story.presentation.theme.color.lavenderTheme
import ua.acclorite.book_story.presentation.theme.color.marshTheme
import ua.acclorite.book_story.presentation.theme.color.pink2Theme
import ua.acclorite.book_story.presentation.theme.color.pinkTheme
import ua.acclorite.book_story.presentation.theme.color.purpleGrayTheme
import ua.acclorite.book_story.presentation.theme.color.purpleTheme
import ua.acclorite.book_story.presentation.theme.color.redGrayTheme
import ua.acclorite.book_story.presentation.theme.color.redTheme
import ua.acclorite.book_story.presentation.theme.color.yellow2Theme
import ua.acclorite.book_story.presentation.theme.color.yellowTheme
@Immutable

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme
package ua.acclorite.book_story.presentation.theme
import android.app.Activity
import android.os.Build
@ -16,7 +16,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.SideEffect
import androidx.compose.ui.platform.LocalView
import androidx.core.view.WindowCompat
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
@Composable
fun BookStoryTheme(

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme
package ua.acclorite.book_story.presentation.theme
import androidx.compose.material3.ColorScheme
import androidx.compose.ui.graphics.Color

View file

@ -6,7 +6,7 @@
@file:Suppress("unused")
package ua.acclorite.book_story.ui.theme
package ua.acclorite.book_story.presentation.theme
import android.util.Log
import androidx.compose.material3.ColorScheme

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme
package ua.acclorite.book_story.presentation.theme
import androidx.compose.animation.core.AnimationSpec
import androidx.compose.animation.core.EaseInOut
@ -30,7 +30,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.dp
import ua.acclorite.book_story.presentation.common.components.common.AnimatedVisibility
import ua.acclorite.book_story.ui.common.components.common.AnimatedVisibility
import kotlin.math.roundToInt
object Transitions {

View file

@ -4,14 +4,14 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
private val primaryLight = Color(0xFF116682)

View file

@ -4,14 +4,14 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import ua.acclorite.book_story.ui.main.MainModel
import ua.acclorite.book_story.presentation.main.MainModel
@Composable
fun blackTheme(initialTheme: ColorScheme): ColorScheme {

View file

@ -4,14 +4,14 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
private val primaryLight = Color(0xFF485D92)

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import android.annotation.SuppressLint
import androidx.compose.material3.ColorScheme

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme

View file

@ -4,14 +4,14 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
private val primaryLight = Color(0xFF306A42)
private val onPrimaryLight = Color(0xFFFFFFFF)

View file

@ -4,14 +4,14 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
private val primaryLight = Color(0xFF824C76)
private val onPrimaryLight = Color(0xFFFFFFFF)

View file

@ -4,14 +4,14 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
private val primaryLight = Color(0xFF006A65)
private val onPrimaryLight = Color(0xFFFFFFFF)

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme

View file

@ -4,14 +4,14 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import ua.acclorite.book_story.ui.main.model.ThemeContrast
import ua.acclorite.book_story.presentation.main.model.ThemeContrast
private val primaryLight = Color(0xFF8C4A60)
private val onPrimaryLight = Color(0xFFFFFFFF)

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-3.0-only
*/
package ua.acclorite.book_story.ui.theme.color
package ua.acclorite.book_story.presentation.theme.color
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.darkColorScheme

Some files were not shown because too many files have changed in this diff Show more