diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt
index c719ec26..93913390 100644
--- a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt
+++ b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContentTest.kt
@@ -19,10 +19,10 @@ import androidx.compose.ui.unit.dp
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.LibraryKind
import hu.bbara.purefin.model.Movie
-import hu.bbara.purefin.ui.model.EpisodeUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
-import hu.bbara.purefin.ui.model.MovieUiModel
-import hu.bbara.purefin.ui.model.LibraryUiModel
+import hu.bbara.purefin.core.model.EpisodeUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
+import hu.bbara.purefin.core.model.MovieUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
import hu.bbara.purefin.ui.screen.home.TvHomeScreen
import hu.bbara.purefin.ui.theme.AppTheme
import org.junit.Assert.assertEquals
diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvNavigationDrawerTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvNavigationDrawerTest.kt
index daa23409..8862ae3e 100644
--- a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvNavigationDrawerTest.kt
+++ b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/home/components/TvNavigationDrawerTest.kt
@@ -24,8 +24,8 @@ import androidx.compose.ui.test.performKeyInput
import androidx.compose.ui.test.performSemanticsAction
import androidx.compose.ui.test.pressKey
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.navigation.LibraryDto
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.LibraryDto
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.ui.theme.AppTheme
import org.junit.Rule
import org.junit.Test
diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreenTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreenTest.kt
index d149fe0e..04ad7bba 100644
--- a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreenTest.kt
+++ b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreenTest.kt
@@ -5,7 +5,7 @@ import androidx.compose.ui.test.junit4.createAndroidComposeRule
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performClick
import hu.bbara.purefin.model.LibraryKind
-import hu.bbara.purefin.ui.model.LibraryUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
import hu.bbara.purefin.ui.theme.AppTheme
import org.junit.Assert.assertEquals
import org.junit.Rule
diff --git a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerControlsOverlayTest.kt b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerControlsOverlayTest.kt
index 6ddbe43b..bb2f8383 100644
--- a/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerControlsOverlayTest.kt
+++ b/app-tv/src/androidTest/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerControlsOverlayTest.kt
@@ -39,10 +39,10 @@ import androidx.compose.ui.test.performKeyInput
import androidx.compose.ui.test.performSemanticsAction
import androidx.compose.ui.test.pressKey
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.PlayerUiState
-import hu.bbara.purefin.player.model.PlaylistElementUiModel
-import hu.bbara.purefin.player.model.TrackOption
-import hu.bbara.purefin.player.model.TrackType
+import hu.bbara.purefin.core.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.PlaylistElementUiModel
+import hu.bbara.purefin.core.player.model.TrackOption
+import hu.bbara.purefin.core.player.model.TrackType
import hu.bbara.purefin.ui.screen.player.TV_HIDDEN_STOP_FEEDBACK_MS
import hu.bbara.purefin.ui.screen.player.TvPlayerHiddenStopFeedback
import hu.bbara.purefin.ui.screen.player.TvPlayerHiddenStopFeedbackTag
diff --git a/app-tv/src/main/AndroidManifest.xml b/app-tv/src/main/AndroidManifest.xml
index a7354a47..47b40545 100644
--- a/app-tv/src/main/AndroidManifest.xml
+++ b/app-tv/src/main/AndroidManifest.xml
@@ -41,7 +41,7 @@
diff --git a/app-tv/src/main/java/hu/bbara/purefin/modules/TvNavigationModule.kt b/app-tv/src/main/java/hu/bbara/purefin/modules/TvNavigationModule.kt
index 6c2f0a75..fff648ea 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/modules/TvNavigationModule.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/modules/TvNavigationModule.kt
@@ -6,7 +6,7 @@ import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ActivityRetainedComponent
import dagger.multibindings.IntoSet
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.navigation.tvEpisodeSection
import hu.bbara.purefin.navigation.tvHomeSection
import hu.bbara.purefin.navigation.tvLibrarySection
diff --git a/app-tv/src/main/java/hu/bbara/purefin/modules/TvPlaybackProfileFamilyModule.kt b/app-tv/src/main/java/hu/bbara/purefin/modules/TvPlaybackProfileFamilyModule.kt
index d79aa490..bc23ecaa 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/modules/TvPlaybackProfileFamilyModule.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/modules/TvPlaybackProfileFamilyModule.kt
@@ -4,7 +4,7 @@ import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
-import hu.bbara.purefin.data.PlaybackProfileFamily
+import hu.bbara.purefin.core.data.PlaybackProfileFamily
@Module
@InstallIn(SingletonComponent::class)
diff --git a/app-tv/src/main/java/hu/bbara/purefin/navigation/NavigationLocals.kt b/app-tv/src/main/java/hu/bbara/purefin/navigation/NavigationLocals.kt
index 3a2723fd..de0cc1c8 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/navigation/NavigationLocals.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/navigation/NavigationLocals.kt
@@ -3,6 +3,8 @@ package hu.bbara.purefin.navigation
import androidx.compose.runtime.ProvidableCompositionLocal
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.staticCompositionLocalOf
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
val LocalNavigationManager: ProvidableCompositionLocal =
staticCompositionLocalOf { error("NavigationManager not provided") }
diff --git a/app-tv/src/main/java/hu/bbara/purefin/navigation/TvRouteEntryBuilder.kt b/app-tv/src/main/java/hu/bbara/purefin/navigation/TvRouteEntryBuilder.kt
index 3023f224..79528969 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/navigation/TvRouteEntryBuilder.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/navigation/TvRouteEntryBuilder.kt
@@ -2,7 +2,9 @@ package hu.bbara.purefin.navigation
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation3.runtime.EntryProviderScope
-import hu.bbara.purefin.feature.browse.home.AppViewModel
+import hu.bbara.purefin.core.navigation.Route
+import hu.bbara.purefin.core.navigation.SeriesDto
+import hu.bbara.purefin.core.feature.browse.home.AppViewModel
import hu.bbara.purefin.ui.screen.movie.TvMovieScreen
import hu.bbara.purefin.ui.screen.series.TvSeriesScreen
import hu.bbara.purefin.ui.screen.login.LoginScreen
diff --git a/app-tv/src/main/java/hu/bbara/purefin/tv/TvActivity.kt b/app-tv/src/main/java/hu/bbara/purefin/tv/TvActivity.kt
index 832855f1..c35e48b7 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/tv/TvActivity.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/tv/TvActivity.kt
@@ -42,14 +42,14 @@ import coil3.network.okhttp.OkHttpNetworkFetcherFactory
import coil3.request.crossfade
import coil3.util.DebugLogger
import dagger.hilt.android.AndroidEntryPoint
-import hu.bbara.purefin.data.SessionBootstrapper
-import hu.bbara.purefin.data.UserSessionRepository
-import hu.bbara.purefin.feature.update.AppUpdateInfo
-import hu.bbara.purefin.feature.update.AppUpdateViewModel
-import hu.bbara.purefin.jellyfin.JellyfinAuthInterceptor
-import hu.bbara.purefin.navigation.NavigationCommand
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.data.SessionBootstrapper
+import hu.bbara.purefin.core.data.UserSessionRepository
+import hu.bbara.purefin.core.feature.update.AppUpdateInfo
+import hu.bbara.purefin.core.feature.update.AppUpdateViewModel
+import hu.bbara.purefin.core.jellyfin.JellyfinAuthInterceptor
+import hu.bbara.purefin.core.navigation.NavigationCommand
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.navigation.LocalNavigationBackStack
import hu.bbara.purefin.navigation.LocalNavigationManager
import hu.bbara.purefin.ui.screen.login.LoginScreen
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt
index 108e7539..82369c6a 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt
@@ -31,10 +31,10 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import hu.bbara.purefin.ui.common.badge.WatchStateBadge
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
-import hu.bbara.purefin.ui.model.EpisodeUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
-import hu.bbara.purefin.ui.model.MovieUiModel
-import hu.bbara.purefin.ui.model.SeriesUiModel
+import hu.bbara.purefin.core.model.EpisodeUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
+import hu.bbara.purefin.core.model.MovieUiModel
+import hu.bbara.purefin.core.model.SeriesUiModel
import java.util.UUID
@Composable
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/common/media/MediaDetailShell.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/common/media/MediaDetailShell.kt
index fbb9bcc2..642106a8 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/common/media/MediaDetailShell.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/common/media/MediaDetailShell.kt
@@ -27,8 +27,8 @@ import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
internal val MediaDetailHorizontalPadding = 48.dp
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/TvAppScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/TvAppScreen.kt
index e419f22c..128be01c 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/TvAppScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/TvAppScreen.kt
@@ -19,11 +19,11 @@ import androidx.navigation3.runtime.entryProvider
import androidx.navigation3.runtime.rememberNavBackStack
import androidx.navigation3.runtime.rememberSaveableStateHolderNavEntryDecorator
import androidx.navigation3.ui.NavDisplay
-import hu.bbara.purefin.feature.browse.home.AppViewModel
+import hu.bbara.purefin.core.feature.browse.home.AppViewModel
import hu.bbara.purefin.model.LibraryKind
-import hu.bbara.purefin.navigation.LibraryDto
+import hu.bbara.purefin.core.navigation.LibraryDto
import hu.bbara.purefin.navigation.LocalNavigationManager
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.ui.screen.home.TvHomeScreen
import hu.bbara.purefin.ui.screen.home.components.TvDrawerDestinationItem
import hu.bbara.purefin.ui.screen.home.components.TvNavigationDrawer
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/episode/TvEpisodeScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/episode/TvEpisodeScreen.kt
index a5928491..9371fbc8 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/episode/TvEpisodeScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/episode/TvEpisodeScreen.kt
@@ -13,13 +13,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.content.episode.EpisodeScreenViewModel
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.feature.content.episode.EpisodeScreenViewModel
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.Episode
-import hu.bbara.purefin.navigation.EpisodeDto
+import hu.bbara.purefin.core.navigation.EpisodeDto
import hu.bbara.purefin.navigation.LocalNavigationManager
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.ui.common.media.MediaDetailOverviewSection
import hu.bbara.purefin.ui.common.media.MediaDetailPlaybackSection
import hu.bbara.purefin.ui.common.media.MediaDetailSectionTitle
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/TvHomeScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/TvHomeScreen.kt
index 9bf97868..947c08b2 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/TvHomeScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/TvHomeScreen.kt
@@ -11,9 +11,9 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.ui.model.MediaUiModel
-import hu.bbara.purefin.ui.model.MovieUiModel
-import hu.bbara.purefin.ui.model.LibraryUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
+import hu.bbara.purefin.core.model.MovieUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
import hu.bbara.purefin.ui.screen.home.components.TvFocusedItemHero
import hu.bbara.purefin.ui.screen.home.components.TvHomeContent
import java.util.UUID
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHero.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHero.kt
index f06f9b46..d4001fbb 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHero.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHero.kt
@@ -23,7 +23,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
internal const val TvHomeHeroTitleTag = "tv-home-hero-title"
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContent.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContent.kt
index 595701b9..f27f857c 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContent.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeContent.kt
@@ -24,8 +24,8 @@ import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.ui.model.LibraryUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
import java.util.UUID
internal const val TvHomeInitialFocusTag = "tv-home-initial-focus-item"
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeModels.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeModels.kt
index b73205f1..c0a920df 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeModels.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeModels.kt
@@ -1,7 +1,7 @@
package hu.bbara.purefin.ui.screen.home.components
import androidx.compose.ui.graphics.vector.ImageVector
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.Route
data class TvDrawerDestinationItem(
val destination: Route,
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeSections.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeSections.kt
index 38086961..6fa56f76 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeSections.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvHomeSections.kt
@@ -51,7 +51,7 @@ import androidx.compose.ui.unit.sp
import hu.bbara.purefin.ui.common.bar.MediaProgressBar
import hu.bbara.purefin.ui.common.card.PosterCardContent
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
import java.util.UUID
import kotlin.math.roundToInt
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvNavigationDrawer.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvNavigationDrawer.kt
index 0b8c7443..d1e269af 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvNavigationDrawer.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/home/components/TvNavigationDrawer.kt
@@ -28,7 +28,7 @@ import androidx.tv.material3.NavigationDrawer
import androidx.tv.material3.NavigationDrawerItem
import androidx.tv.material3.Text
import androidx.tv.material3.darkColorScheme
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.tv.R
import androidx.tv.material3.MaterialTheme as TvMaterialTheme
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreen.kt
index 9777ec00..8475ea11 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/libraries/TvLibrariesOverviewScreen.kt
@@ -43,7 +43,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
-import hu.bbara.purefin.ui.model.LibraryUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
import hu.bbara.purefin.model.LibraryKind
internal const val TvLibrariesOverviewItemTagPrefix = "tv-libraries-overview-item-"
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/library/TvLibraryScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/library/TvLibraryScreen.kt
index f8b5e2f8..8f2e1563 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/library/TvLibraryScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/library/TvLibraryScreen.kt
@@ -19,10 +19,10 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.browse.library.LibraryViewModel
-import hu.bbara.purefin.navigation.LibraryDto
+import hu.bbara.purefin.core.feature.browse.library.LibraryViewModel
+import hu.bbara.purefin.core.navigation.LibraryDto
import hu.bbara.purefin.ui.common.card.PosterCard
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
@Composable
fun TvLibraryScreen(
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/login/LoginScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/login/LoginScreen.kt
index deac9ad7..0bea9088 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/login/LoginScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/login/LoginScreen.kt
@@ -9,7 +9,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.login.LoginViewModel
+import hu.bbara.purefin.core.feature.login.LoginViewModel
import kotlinx.coroutines.launch
@Composable
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/movie/TvMovieScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/movie/TvMovieScreen.kt
index 8098e262..cc77d23f 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/movie/TvMovieScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/movie/TvMovieScreen.kt
@@ -12,9 +12,9 @@ import androidx.compose.runtime.withFrameNanos
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.content.movie.MovieScreenViewModel
+import hu.bbara.purefin.core.feature.content.movie.MovieScreenViewModel
import hu.bbara.purefin.model.Movie
-import hu.bbara.purefin.navigation.MovieDto
+import hu.bbara.purefin.core.navigation.MovieDto
import hu.bbara.purefin.ui.common.media.MediaDetailHorizontalPadding
import hu.bbara.purefin.ui.common.media.TvMediaDetailBodyBox
import hu.bbara.purefin.ui.common.media.TvMediaDetailScaffold
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/TvPlayerScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/TvPlayerScreen.kt
index e46481b8..25098b96 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/TvPlayerScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/TvPlayerScreen.kt
@@ -51,8 +51,8 @@ import androidx.media3.common.util.UnstableApi
import androidx.media3.ui.AspectRatioFrameLayout
import androidx.media3.ui.PlayerView
import androidx.media3.ui.SubtitleView
-import hu.bbara.purefin.player.viewmodel.ControlsAutoHideBlocker
-import hu.bbara.purefin.player.viewmodel.PlayerViewModel
+import hu.bbara.purefin.core.player.viewmodel.ControlsAutoHideBlocker
+import hu.bbara.purefin.core.player.viewmodel.PlayerViewModel
import hu.bbara.purefin.ui.screen.player.components.TvIconButton
import hu.bbara.purefin.ui.screen.player.components.TvPlayerControlsOverlay
import hu.bbara.purefin.ui.screen.player.components.TvPlayerLoadingErrorEndCard
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerControlsOverlay.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerControlsOverlay.kt
index 5505e32a..f5b99024 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerControlsOverlay.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerControlsOverlay.kt
@@ -46,7 +46,7 @@ import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.stateDescription
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.PlayerUiState
internal const val TvPlayerPlaylistStateTag = "tv_player_playlist_state"
internal const val TvPlayerPlayPauseButtonTag = "tv_player_play_pause_button"
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerLoadingErrorEndCard.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerLoadingErrorEndCard.kt
index e8933ae7..b0c098f1 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerLoadingErrorEndCard.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerLoadingErrorEndCard.kt
@@ -4,7 +4,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.PlayerUiState
@Composable
internal fun TvPlayerLoadingErrorEndCard(
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerQueuePanel.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerQueuePanel.kt
index 0fd03bfe..a56e734e 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerQueuePanel.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerQueuePanel.kt
@@ -42,8 +42,8 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import coil3.compose.AsyncImage
-import hu.bbara.purefin.player.model.PlayerUiState
-import hu.bbara.purefin.player.model.PlaylistElementUiModel
+import hu.bbara.purefin.core.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.PlaylistElementUiModel
internal const val TvPlayerPlaylistRowTag = "tv_player_playlist_row"
internal const val TvPlayerPlaylistCurrentItemTag = "tv_player_playlist_current_item"
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerSeekBar.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerSeekBar.kt
index 3abf4abe..f82a4e3d 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerSeekBar.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvPlayerSeekBar.kt
@@ -22,7 +22,7 @@ import androidx.compose.ui.input.key.key
import androidx.compose.ui.input.key.onPreviewKeyEvent
import androidx.compose.ui.input.key.type
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.TimedMarker
+import hu.bbara.purefin.core.player.model.TimedMarker
@Composable
internal fun TvPlayerSeekBar(
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvTrackSelectionButtons.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvTrackSelectionButtons.kt
index 32267e91..f68ad62d 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvTrackSelectionButtons.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/player/components/TvTrackSelectionButtons.kt
@@ -44,8 +44,8 @@ import androidx.compose.ui.input.key.type
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.PlayerUiState
-import hu.bbara.purefin.player.model.TrackOption
+import hu.bbara.purefin.core.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.TrackOption
internal const val TvPlayerQualityButtonTag = "tv_player_quality_button"
internal const val TvPlayerAudioButtonTag = "tv_player_audio_button"
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/series/TvSeriesScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/series/TvSeriesScreen.kt
index 889a4f00..3787c4db 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/series/TvSeriesScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/series/TvSeriesScreen.kt
@@ -18,11 +18,11 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.content.series.SeriesViewModel
+import hu.bbara.purefin.core.feature.content.series.SeriesViewModel
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Season
import hu.bbara.purefin.model.Series
-import hu.bbara.purefin.navigation.SeriesDto
+import hu.bbara.purefin.core.navigation.SeriesDto
import hu.bbara.purefin.ui.common.media.MediaDetailHorizontalPadding
import hu.bbara.purefin.ui.common.media.TvMediaDetailBodyBox
import hu.bbara.purefin.ui.common.media.TvMediaDetailScaffold
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/series/components/TvSeriesComponents.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/series/components/TvSeriesComponents.kt
index b958caf2..b6429bc4 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/series/components/TvSeriesComponents.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/series/components/TvSeriesComponents.kt
@@ -52,8 +52,8 @@ import androidx.compose.ui.unit.sp
import androidx.tv.material3.Tab
import androidx.tv.material3.TabDefaults
import androidx.tv.material3.TabRow
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.CastMember
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Season
diff --git a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/settings/TvSettingsScreen.kt b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/settings/TvSettingsScreen.kt
index 5322f721..b028a9f9 100644
--- a/app-tv/src/main/java/hu/bbara/purefin/ui/screen/settings/TvSettingsScreen.kt
+++ b/app-tv/src/main/java/hu/bbara/purefin/ui/screen/settings/TvSettingsScreen.kt
@@ -31,8 +31,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.settings.SettingsViewModel
-import hu.bbara.purefin.settings.SettingsOptions
+import hu.bbara.purefin.core.feature.settings.SettingsViewModel
+import hu.bbara.purefin.core.settings.SettingsOptions
import java.util.Locale
@Composable
diff --git a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHeroTest.kt b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHeroTest.kt
index cd5dc5ce..3041ca8a 100644
--- a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHeroTest.kt
+++ b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvFocusedItemHeroTest.kt
@@ -1,6 +1,6 @@
package hu.bbara.purefin.ui.screen.home.components
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.MediaKind
import hu.bbara.purefin.model.Movie
@@ -8,7 +8,7 @@ import hu.bbara.purefin.model.Series
import hu.bbara.purefin.feature.browse.home.ContinueWatchingItem
import hu.bbara.purefin.feature.browse.home.NextUpItem
import hu.bbara.purefin.feature.browse.home.PosterItem
-import hu.bbara.purefin.image.ArtworkKind
+import hu.bbara.purefin.core.image.ArtworkKind
import org.junit.Assert.assertEquals
import org.junit.Test
import java.util.UUID
diff --git a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt
index 49dc6979..5597cc7b 100644
--- a/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt
+++ b/app-tv/src/test/java/hu/bbara/purefin/ui/screen/home/components/TvHomeHeroStateTest.kt
@@ -5,7 +5,7 @@ import hu.bbara.purefin.model.LibraryKind
import hu.bbara.purefin.model.MediaKind
import hu.bbara.purefin.model.Movie
import hu.bbara.purefin.feature.browse.home.ContinueWatchingItem
-import hu.bbara.purefin.ui.model.LibraryUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
import hu.bbara.purefin.feature.browse.home.NextUpItem
import hu.bbara.purefin.feature.browse.home.PosterItem
import org.junit.Assert.assertEquals
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index eb9534c2..897e8a1e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -39,11 +39,11 @@
android:exported="false"
android:theme="@style/Theme.Purefin" />
diff --git a/app/src/main/java/hu/bbara/purefin/PurefinActivity.kt b/app/src/main/java/hu/bbara/purefin/PurefinActivity.kt
index a1c536d2..ee2f5013 100644
--- a/app/src/main/java/hu/bbara/purefin/PurefinActivity.kt
+++ b/app/src/main/java/hu/bbara/purefin/PurefinActivity.kt
@@ -38,17 +38,17 @@ import coil3.network.okhttp.OkHttpNetworkFetcherFactory
import coil3.request.crossfade
import coil3.util.DebugLogger
import dagger.hilt.android.AndroidEntryPoint
-import hu.bbara.purefin.data.SessionBootstrapper
-import hu.bbara.purefin.jellyfin.JellyfinAuthInterceptor
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.SessionBootstrapper
+import hu.bbara.purefin.core.jellyfin.JellyfinAuthInterceptor
+import hu.bbara.purefin.core.data.UserSessionRepository
import hu.bbara.purefin.navigation.LocalHomeMediaSharedBoundsKey
import hu.bbara.purefin.navigation.LocalNavigationBackStack
import hu.bbara.purefin.navigation.LocalNavigationManager
import hu.bbara.purefin.navigation.LocalSetHomeMediaSharedBoundsKey
import hu.bbara.purefin.navigation.LocalSharedTransitionScope
-import hu.bbara.purefin.navigation.NavigationCommand
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.NavigationCommand
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.ui.screen.waiting.PurefinWaitingScreen
import hu.bbara.purefin.ui.screen.login.LoginScreen
import hu.bbara.purefin.ui.theme.AppTheme
diff --git a/app/src/main/java/hu/bbara/purefin/modules/NavigationModule.kt b/app/src/main/java/hu/bbara/purefin/modules/NavigationModule.kt
index 86c835c7..06fd732a 100644
--- a/app/src/main/java/hu/bbara/purefin/modules/NavigationModule.kt
+++ b/app/src/main/java/hu/bbara/purefin/modules/NavigationModule.kt
@@ -6,7 +6,7 @@ import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ActivityRetainedComponent
import dagger.multibindings.IntoSet
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.navigation.appRouteEntryBuilder
@Module
diff --git a/app/src/main/java/hu/bbara/purefin/modules/PlaybackProfileFamilyModule.kt b/app/src/main/java/hu/bbara/purefin/modules/PlaybackProfileFamilyModule.kt
index 37988f9b..a5303d6f 100644
--- a/app/src/main/java/hu/bbara/purefin/modules/PlaybackProfileFamilyModule.kt
+++ b/app/src/main/java/hu/bbara/purefin/modules/PlaybackProfileFamilyModule.kt
@@ -4,7 +4,7 @@ import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
-import hu.bbara.purefin.data.PlaybackProfileFamily
+import hu.bbara.purefin.core.data.PlaybackProfileFamily
@Module
@InstallIn(SingletonComponent::class)
diff --git a/app/src/main/java/hu/bbara/purefin/navigation/NavigationLocals.kt b/app/src/main/java/hu/bbara/purefin/navigation/NavigationLocals.kt
index c1514958..00039c0b 100644
--- a/app/src/main/java/hu/bbara/purefin/navigation/NavigationLocals.kt
+++ b/app/src/main/java/hu/bbara/purefin/navigation/NavigationLocals.kt
@@ -6,6 +6,8 @@ import androidx.compose.animation.SharedTransitionScope
import androidx.compose.runtime.ProvidableCompositionLocal
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.staticCompositionLocalOf
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
val LocalNavigationManager: ProvidableCompositionLocal =
staticCompositionLocalOf { error("NavigationManager not provided") }
diff --git a/app/src/main/java/hu/bbara/purefin/navigation/RouteEntryBuilder.kt b/app/src/main/java/hu/bbara/purefin/navigation/RouteEntryBuilder.kt
index 7420355b..9ce1fa96 100644
--- a/app/src/main/java/hu/bbara/purefin/navigation/RouteEntryBuilder.kt
+++ b/app/src/main/java/hu/bbara/purefin/navigation/RouteEntryBuilder.kt
@@ -3,6 +3,7 @@ package hu.bbara.purefin.navigation
import androidx.compose.runtime.CompositionLocalProvider
import androidx.navigation3.runtime.EntryProviderScope
import androidx.navigation3.ui.LocalNavAnimatedContentScope
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.ui.screen.library.LibraryScreen
import hu.bbara.purefin.ui.screen.login.LoginScreen
import hu.bbara.purefin.ui.screen.AppScreen
diff --git a/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt b/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt
index 8af7257b..a1644600 100644
--- a/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt
+++ b/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt
@@ -11,7 +11,7 @@ import androidx.core.view.WindowInsetsControllerCompat
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import dagger.hilt.android.AndroidEntryPoint
-import hu.bbara.purefin.player.viewmodel.PlayerViewModel
+import hu.bbara.purefin.core.player.viewmodel.PlayerViewModel
import hu.bbara.purefin.ui.screen.player.PlayerScreen
import hu.bbara.purefin.ui.theme.AppTheme
diff --git a/app/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt b/app/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt
index 438984d4..5087f4d4 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt
@@ -29,10 +29,10 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-import hu.bbara.purefin.ui.model.EpisodeUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
-import hu.bbara.purefin.ui.model.MovieUiModel
-import hu.bbara.purefin.ui.model.SeriesUiModel
+import hu.bbara.purefin.core.model.EpisodeUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
+import hu.bbara.purefin.core.model.MovieUiModel
+import hu.bbara.purefin.core.model.SeriesUiModel
import hu.bbara.purefin.ui.common.badge.WatchStateBadge
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
import java.util.UUID
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/AppScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/AppScreen.kt
index e4c79fca..92105395 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/AppScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/AppScreen.kt
@@ -23,9 +23,9 @@ import androidx.navigation3.runtime.entryProvider
import androidx.navigation3.runtime.rememberNavBackStack
import androidx.navigation3.runtime.rememberSaveableStateHolderNavEntryDecorator
import androidx.navigation3.ui.NavDisplay
-import hu.bbara.purefin.feature.browse.home.AppViewModel
-import hu.bbara.purefin.feature.update.AppUpdateInfo
-import hu.bbara.purefin.feature.update.AppUpdateViewModel
+import hu.bbara.purefin.core.feature.browse.home.AppViewModel
+import hu.bbara.purefin.core.feature.update.AppUpdateInfo
+import hu.bbara.purefin.core.feature.update.AppUpdateViewModel
import hu.bbara.purefin.navigation.LocalNavigationManager
import hu.bbara.purefin.ui.screen.download.DownloadsScreen
import hu.bbara.purefin.ui.screen.home.HomeScreen
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/download/components/DownloadingItemRow.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/download/components/DownloadingItemRow.kt
index f4221311..5c6ca14c 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/download/components/DownloadingItemRow.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/download/components/DownloadingItemRow.kt
@@ -27,7 +27,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
-import hu.bbara.purefin.feature.downloads.ActiveDownloadItem
+import hu.bbara.purefin.core.feature.downloads.ActiveDownloadItem
@Composable
internal fun DownloadingItemRow(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/download/components/DownloadsContent.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/download/components/DownloadsContent.kt
index 9e1e27a5..f0ec7ec8 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/download/components/DownloadsContent.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/download/components/DownloadsContent.kt
@@ -24,7 +24,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import hu.bbara.purefin.ui.common.card.PosterCard
-import hu.bbara.purefin.feature.downloads.DownloadsViewModel
+import hu.bbara.purefin.core.feature.downloads.DownloadsViewModel
@Composable
fun DownloadsContent(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreen.kt
index be05f2f6..c5db6385 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/episode/EpisodeScreen.kt
@@ -36,19 +36,19 @@ import hu.bbara.purefin.ui.common.media.MediaHero
import hu.bbara.purefin.ui.common.media.MediaMetadataFlowRow
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsDestination
import hu.bbara.purefin.ui.common.media.isHomeMediaSharedBoundsTransitionActive
-import hu.bbara.purefin.download.DownloadState
-import hu.bbara.purefin.image.ImageUrlBuilder
-import hu.bbara.purefin.navigation.EpisodeDto
+import hu.bbara.purefin.core.download.DownloadState
+import hu.bbara.purefin.core.image.ImageUrlBuilder
+import hu.bbara.purefin.core.navigation.EpisodeDto
import hu.bbara.purefin.navigation.LocalNavigationBackStack
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.model.CastMember
import hu.bbara.purefin.model.Episode
-import hu.bbara.purefin.feature.content.episode.EpisodeScreenViewModel
+import hu.bbara.purefin.core.feature.content.episode.EpisodeScreenViewModel
import hu.bbara.purefin.ui.screen.episode.components.EpisodeDetails
import hu.bbara.purefin.ui.screen.episode.components.EpisodeTopBar
import hu.bbara.purefin.ui.screen.episode.components.EpisodeTopBarShortcut
import hu.bbara.purefin.ui.theme.AppTheme
-import hu.bbara.purefin.image.ArtworkKind
+import hu.bbara.purefin.core.image.ArtworkKind
import java.util.UUID
@Composable
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/episode/components/EpisodeComponents.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/episode/components/EpisodeComponents.kt
index 591d08de..7c5ee576 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/episode/components/EpisodeComponents.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/episode/components/EpisodeComponents.kt
@@ -34,7 +34,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-import hu.bbara.purefin.download.DownloadState
+import hu.bbara.purefin.core.download.DownloadState
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.player.PlayerActivity
import hu.bbara.purefin.ui.common.button.GhostIconButton
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/HomeScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/HomeScreen.kt
index 1acd8fe1..dd28acc7 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/HomeScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/HomeScreen.kt
@@ -8,8 +8,8 @@ import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import hu.bbara.purefin.ui.model.LibraryUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
import hu.bbara.purefin.ui.screen.AppBottomBar
import hu.bbara.purefin.ui.screen.home.components.HomeContent
import hu.bbara.purefin.ui.screen.home.components.HomeTopBar
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/HomeContent.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/HomeContent.kt
index 37e43528..3b9ea49b 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/HomeContent.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/HomeContent.kt
@@ -21,8 +21,8 @@ import androidx.compose.runtime.setValue
import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.ui.model.LibraryUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
import hu.bbara.purefin.ui.screen.home.components.continuewatching.ContinueWatchingSection
import hu.bbara.purefin.ui.screen.home.components.featured.SuggestionsSection
import hu.bbara.purefin.ui.screen.home.components.library.LibraryPosterSection
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/continuewatching/ContinueWatchingCard.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/continuewatching/ContinueWatchingCard.kt
index 85b673b8..130bce54 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/continuewatching/ContinueWatchingCard.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/continuewatching/ContinueWatchingCard.kt
@@ -16,7 +16,7 @@ import hu.bbara.purefin.ui.common.card.MediaImageCard
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsSource
import hu.bbara.purefin.ui.common.media.rememberHomeMediaSharedBoundsClick
import hu.bbara.purefin.ui.model.MediaAction
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
@Composable
internal fun ContinueWatchingCard(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/continuewatching/ContinueWatchingSection.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/continuewatching/ContinueWatchingSection.kt
index f8fb5645..80bbbcdb 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/continuewatching/ContinueWatchingSection.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/continuewatching/ContinueWatchingSection.kt
@@ -15,7 +15,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.common.header.SectionHeader
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsKey
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
@Composable
fun ContinueWatchingSection(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/featured/SuggestionCard.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/featured/SuggestionCard.kt
index f21be043..bbe4fb45 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/featured/SuggestionCard.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/featured/SuggestionCard.kt
@@ -27,7 +27,7 @@ import hu.bbara.purefin.ui.common.bar.MediaProgressBar
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsSource
import hu.bbara.purefin.ui.common.media.rememberHomeMediaSharedBoundsClick
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
@Composable
internal fun SuggestionCard(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/featured/SuggestionsSection.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/featured/SuggestionsSection.kt
index c62b5239..f0489646 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/featured/SuggestionsSection.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/featured/SuggestionsSection.kt
@@ -23,7 +23,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsKey
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
@Composable
fun SuggestionsSection(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/HomeBrowseCard.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/HomeBrowseCard.kt
index 78cf3bc6..f0b2d059 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/HomeBrowseCard.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/HomeBrowseCard.kt
@@ -10,9 +10,9 @@ import hu.bbara.purefin.ui.common.badge.WatchStateBadge
import hu.bbara.purefin.ui.common.card.MediaImageCard
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsSource
import hu.bbara.purefin.ui.common.media.rememberHomeMediaSharedBoundsClick
-import hu.bbara.purefin.ui.model.EpisodeUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
-import hu.bbara.purefin.ui.model.MovieUiModel
+import hu.bbara.purefin.core.model.EpisodeUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
+import hu.bbara.purefin.core.model.MovieUiModel
@Composable
internal fun HomeBrowseCard(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/LibraryPosterSection.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/LibraryPosterSection.kt
index 520b2d49..7d181ead 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/LibraryPosterSection.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/library/LibraryPosterSection.kt
@@ -15,8 +15,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.common.header.SectionHeader
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsKey
-import hu.bbara.purefin.ui.model.LibraryUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
@Composable
fun LibraryPosterSection(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/nextup/NextUpCard.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/nextup/NextUpCard.kt
index 3a82effb..b0df7f02 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/nextup/NextUpCard.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/nextup/NextUpCard.kt
@@ -13,7 +13,7 @@ import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.common.card.MediaImageCard
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsSource
import hu.bbara.purefin.ui.common.media.rememberHomeMediaSharedBoundsClick
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
@Composable
internal fun NextUpCard(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/nextup/NextUpSection.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/nextup/NextUpSection.kt
index dce69d1e..2f3ea813 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/nextup/NextUpSection.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/nextup/NextUpSection.kt
@@ -15,7 +15,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.common.header.SectionHeader
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsKey
-import hu.bbara.purefin.ui.model.MediaUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
@Composable
fun NextUpSection(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchOverlay.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchOverlay.kt
index 93bc4b0b..f7b5c1dc 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchOverlay.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchOverlay.kt
@@ -35,7 +35,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.search.SearchViewModel
+import hu.bbara.purefin.core.feature.search.SearchViewModel
import java.util.UUID
import hu.bbara.purefin.model.MediaKind
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchResultCard.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchResultCard.kt
index 0aa3d317..3bfb8bab 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchResultCard.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchResultCard.kt
@@ -2,7 +2,7 @@ package hu.bbara.purefin.ui.screen.home.components.search
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import hu.bbara.purefin.feature.search.SearchResult
+import hu.bbara.purefin.core.feature.search.SearchResult
import hu.bbara.purefin.model.MediaKind
import hu.bbara.purefin.ui.common.card.MediaImageCard
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchScreen.kt
index be4531fe..d6ef8b53 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/home/components/search/SearchScreen.kt
@@ -54,8 +54,8 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
-import hu.bbara.purefin.feature.search.SearchResult
-import hu.bbara.purefin.feature.search.SearchViewModel
+import hu.bbara.purefin.core.feature.search.SearchResult
+import hu.bbara.purefin.core.feature.search.SearchViewModel
import hu.bbara.purefin.model.Genre
import hu.bbara.purefin.model.MediaKind
import hu.bbara.purefin.navigation.HOME_SEARCH_SHARED_BOUNDS_KEY
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/LibrariesScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/LibrariesScreen.kt
index e5f6ae19..80c161df 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/LibrariesScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/LibrariesScreen.kt
@@ -6,7 +6,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import hu.bbara.purefin.ui.model.LibraryUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
import hu.bbara.purefin.ui.screen.AppBottomBar
import hu.bbara.purefin.ui.screen.libraries.components.LibrariesContent
import hu.bbara.purefin.ui.screen.libraries.components.LibrariesTopBar
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/components/LibrariesContent.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/components/LibrariesContent.kt
index ed6daed8..4caa5e36 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/components/LibrariesContent.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/components/LibrariesContent.kt
@@ -9,7 +9,7 @@ import androidx.compose.foundation.lazy.grid.items
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.ui.model.LibraryUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
@Composable
fun LibrariesContent(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/components/LibraryListItem.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/components/LibraryListItem.kt
index bf24f5c9..9af642f2 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/components/LibraryListItem.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/libraries/components/LibraryListItem.kt
@@ -4,7 +4,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import hu.bbara.purefin.model.LibraryKind
import hu.bbara.purefin.ui.common.card.MediaImageCard
-import hu.bbara.purefin.ui.model.LibraryUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
@Composable
fun LibraryListItem(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/library/LibraryScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/library/LibraryScreen.kt
index 4dc27edf..85576cc2 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/library/LibraryScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/library/LibraryScreen.kt
@@ -19,14 +19,14 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.browse.library.LibraryViewModel
-import hu.bbara.purefin.navigation.LibraryDto
+import hu.bbara.purefin.core.feature.browse.library.LibraryViewModel
+import hu.bbara.purefin.core.navigation.LibraryDto
import hu.bbara.purefin.ui.common.badge.WatchStateBadge
import hu.bbara.purefin.ui.common.card.MediaImageCard
-import hu.bbara.purefin.ui.model.EpisodeUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
-import hu.bbara.purefin.ui.model.MovieUiModel
-import hu.bbara.purefin.ui.model.SeriesUiModel
+import hu.bbara.purefin.core.model.EpisodeUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
+import hu.bbara.purefin.core.model.MovieUiModel
+import hu.bbara.purefin.core.model.SeriesUiModel
import hu.bbara.purefin.ui.screen.library.components.LibraryTopBar
@Composable
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/login/LoginScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/login/LoginScreen.kt
index deac9ad7..0bea9088 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/login/LoginScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/login/LoginScreen.kt
@@ -9,7 +9,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.login.LoginViewModel
+import hu.bbara.purefin.core.feature.login.LoginViewModel
import kotlinx.coroutines.launch
@Composable
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/movie/MovieScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/movie/MovieScreen.kt
index d1842ec2..a6476192 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/movie/MovieScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/movie/MovieScreen.kt
@@ -30,13 +30,13 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.download.DownloadState
-import hu.bbara.purefin.feature.content.movie.MovieScreenViewModel
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.download.DownloadState
+import hu.bbara.purefin.core.feature.content.movie.MovieScreenViewModel
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.CastMember
import hu.bbara.purefin.model.Movie
-import hu.bbara.purefin.navigation.MovieDto
+import hu.bbara.purefin.core.navigation.MovieDto
import hu.bbara.purefin.ui.common.media.MediaHero
import hu.bbara.purefin.ui.common.media.MediaMetadataFlowRow
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsDestination
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/movie/components/MovieComponents.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/movie/components/MovieComponents.kt
index 429310e1..9948467c 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/movie/components/MovieComponents.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/movie/components/MovieComponents.kt
@@ -29,7 +29,7 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-import hu.bbara.purefin.download.DownloadState
+import hu.bbara.purefin.core.download.DownloadState
import hu.bbara.purefin.model.Movie
import hu.bbara.purefin.player.PlayerActivity
import hu.bbara.purefin.ui.common.button.GhostIconButton
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/player/PlayerScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/player/PlayerScreen.kt
index 1b52c511..fc70aede 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/player/PlayerScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/player/PlayerScreen.kt
@@ -38,7 +38,7 @@ import androidx.media3.common.util.UnstableApi
import androidx.media3.ui.AspectRatioFrameLayout
import androidx.media3.ui.PlayerView
import androidx.media3.ui.SubtitleView
-import hu.bbara.purefin.player.viewmodel.PlayerViewModel
+import hu.bbara.purefin.core.player.viewmodel.PlayerViewModel
import hu.bbara.purefin.ui.common.visual.EmptyValueTimedVisibility
import hu.bbara.purefin.ui.common.visual.ValueChangeTimedVisibility
import hu.bbara.purefin.ui.screen.player.components.PersistentOverlayContainer
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerControlsOverlay.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerControlsOverlay.kt
index 107f097d..72353ca4 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerControlsOverlay.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerControlsOverlay.kt
@@ -42,8 +42,8 @@ import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.PlayerUiState
-import hu.bbara.purefin.player.model.TrackOption
+import hu.bbara.purefin.core.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.TrackOption
import hu.bbara.purefin.ui.common.button.GhostIconButton
import hu.bbara.purefin.ui.common.button.PurefinIconButton
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerLoadingErrorEndCard.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerLoadingErrorEndCard.kt
index 518333c0..d058f4e5 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerLoadingErrorEndCard.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerLoadingErrorEndCard.kt
@@ -3,7 +3,7 @@ package hu.bbara.purefin.ui.screen.player.components
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import hu.bbara.purefin.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.PlayerUiState
@Composable
fun PlayerLoadingErrorEndCard(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerQueuePanel.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerQueuePanel.kt
index 54d4e1f5..85b51711 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerQueuePanel.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerQueuePanel.kt
@@ -29,7 +29,7 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.PlayerUiState
import hu.bbara.purefin.ui.common.image.PurefinAsyncImage
@Composable
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerSeekBar.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerSeekBar.kt
index d9bfcfce..1c52d617 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerSeekBar.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerSeekBar.kt
@@ -17,7 +17,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.TimedMarker
+import hu.bbara.purefin.core.player.model.TimedMarker
@Composable
fun PlayerSeekBar(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/TrackSelectionButtons.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/TrackSelectionButtons.kt
index d9f10057..0da40b24 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/TrackSelectionButtons.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/player/components/TrackSelectionButtons.kt
@@ -36,7 +36,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import hu.bbara.purefin.ui.common.button.PurefinIconButton
-import hu.bbara.purefin.player.model.TrackOption
+import hu.bbara.purefin.core.player.model.TrackOption
@Composable
fun QualitySelectionButton(
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt
index a047e869..022b07ff 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt
@@ -30,15 +30,15 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.download.DownloadState
-import hu.bbara.purefin.feature.content.series.SeriesViewModel
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.download.DownloadState
+import hu.bbara.purefin.core.feature.content.series.SeriesViewModel
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.CastMember
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Season
import hu.bbara.purefin.model.Series
-import hu.bbara.purefin.navigation.SeriesDto
+import hu.bbara.purefin.core.navigation.SeriesDto
import hu.bbara.purefin.ui.common.media.MediaHero
import hu.bbara.purefin.ui.common.media.MediaSynopsis
import hu.bbara.purefin.ui.common.media.homeMediaSharedBoundsDestination
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/series/components/SeriesComponents.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/series/components/SeriesComponents.kt
index ed103521..7fbae252 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/series/components/SeriesComponents.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/series/components/SeriesComponents.kt
@@ -55,17 +55,17 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.download.DownloadState
-import hu.bbara.purefin.feature.content.series.SeriesViewModel
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.download.DownloadState
+import hu.bbara.purefin.core.feature.content.series.SeriesViewModel
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.CastMember
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Season
import hu.bbara.purefin.model.Series
-import hu.bbara.purefin.navigation.EpisodeDto
+import hu.bbara.purefin.core.navigation.EpisodeDto
import hu.bbara.purefin.navigation.LocalNavigationManager
-import hu.bbara.purefin.navigation.Route
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.player.PlayerActivity
import hu.bbara.purefin.ui.common.badge.WatchStateBadge
import hu.bbara.purefin.ui.common.bar.MediaProgressBar
diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/settings/SettingsScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/settings/SettingsScreen.kt
index 47d97f81..99332963 100644
--- a/app/src/main/java/hu/bbara/purefin/ui/screen/settings/SettingsScreen.kt
+++ b/app/src/main/java/hu/bbara/purefin/ui/screen/settings/SettingsScreen.kt
@@ -16,8 +16,8 @@ import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-import hu.bbara.purefin.feature.settings.SettingsViewModel
-import hu.bbara.purefin.settings.SettingsOptions
+import hu.bbara.purefin.core.feature.settings.SettingsViewModel
+import hu.bbara.purefin.core.settings.SettingsOptions
import hu.bbara.purefin.ui.screen.home.components.DefaultTopBar
import hu.bbara.purefin.ui.screen.home.components.DefaultTopBarIconButton
import hu.bbara.purefin.ui.screen.settings.components.BooleanSettingItem
diff --git a/core-ui/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerLoadingErrorEndCardContent.kt b/core-ui/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerLoadingErrorEndCardContent.kt
index 15edb4cc..7ddf51e7 100644
--- a/core-ui/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerLoadingErrorEndCardContent.kt
+++ b/core-ui/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerLoadingErrorEndCardContent.kt
@@ -21,7 +21,7 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.PlayerUiState
@Composable
fun PlayerLoadingErrorEndCardContent(
diff --git a/core-ui/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerSeekBarTrack.kt b/core-ui/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerSeekBarTrack.kt
index 73c5f739..26496e9a 100644
--- a/core-ui/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerSeekBarTrack.kt
+++ b/core-ui/src/main/java/hu/bbara/purefin/ui/screen/player/components/PlayerSeekBarTrack.kt
@@ -10,8 +10,8 @@ import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
-import hu.bbara.purefin.player.model.MarkerType
-import hu.bbara.purefin.player.model.TimedMarker
+import hu.bbara.purefin.core.player.model.MarkerType
+import hu.bbara.purefin.core.player.model.TimedMarker
@Composable
fun PlayerSeekBarTrack(
diff --git a/core/src/main/java/hu/bbara/purefin/Qualifiers.kt b/core/src/main/java/hu/bbara/purefin/core/Qualifiers.kt
similarity index 85%
rename from core/src/main/java/hu/bbara/purefin/Qualifiers.kt
rename to core/src/main/java/hu/bbara/purefin/core/Qualifiers.kt
index 895092a4..47b22134 100644
--- a/core/src/main/java/hu/bbara/purefin/Qualifiers.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/Qualifiers.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin
+package hu.bbara.purefin.core
import javax.inject.Qualifier
diff --git a/core/src/main/java/hu/bbara/purefin/data/AuthenticationRepository.kt b/core/src/main/java/hu/bbara/purefin/core/data/AuthenticationRepository.kt
similarity index 77%
rename from core/src/main/java/hu/bbara/purefin/data/AuthenticationRepository.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/AuthenticationRepository.kt
index 07e9577a..9dde8ce7 100644
--- a/core/src/main/java/hu/bbara/purefin/data/AuthenticationRepository.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/AuthenticationRepository.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
interface AuthenticationRepository {
suspend fun login(url: String, username: String, password: String): Boolean
diff --git a/core/src/main/java/hu/bbara/purefin/data/CompositeLocalMediaRepository.kt b/core/src/main/java/hu/bbara/purefin/core/data/CompositeLocalMediaRepository.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/data/CompositeLocalMediaRepository.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/CompositeLocalMediaRepository.kt
index 6f315892..e1947a33 100644
--- a/core/src/main/java/hu/bbara/purefin/data/CompositeLocalMediaRepository.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/CompositeLocalMediaRepository.kt
@@ -1,7 +1,7 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
-import hu.bbara.purefin.Offline
-import hu.bbara.purefin.Online
+import hu.bbara.purefin.core.Offline
+import hu.bbara.purefin.core.Online
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Movie
import hu.bbara.purefin.model.Series
diff --git a/core/src/main/java/hu/bbara/purefin/data/DownloadMediaSourceResolver.kt b/core/src/main/java/hu/bbara/purefin/core/data/DownloadMediaSourceResolver.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/data/DownloadMediaSourceResolver.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/DownloadMediaSourceResolver.kt
index 7cb6d7f0..7efcbba1 100644
--- a/core/src/main/java/hu/bbara/purefin/data/DownloadMediaSourceResolver.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/DownloadMediaSourceResolver.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Movie
diff --git a/core/src/main/java/hu/bbara/purefin/data/HomeRepository.kt b/core/src/main/java/hu/bbara/purefin/core/data/HomeRepository.kt
similarity index 92%
rename from core/src/main/java/hu/bbara/purefin/data/HomeRepository.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/HomeRepository.kt
index b9d00833..48609765 100644
--- a/core/src/main/java/hu/bbara/purefin/data/HomeRepository.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/HomeRepository.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import hu.bbara.purefin.model.Library
import hu.bbara.purefin.model.Media
diff --git a/core/src/main/java/hu/bbara/purefin/data/LocalMediaRepository.kt b/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaRepository.kt
similarity index 94%
rename from core/src/main/java/hu/bbara/purefin/data/LocalMediaRepository.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/LocalMediaRepository.kt
index 9890c3d5..fbdc33c3 100644
--- a/core/src/main/java/hu/bbara/purefin/data/LocalMediaRepository.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaRepository.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Movie
diff --git a/core/src/main/java/hu/bbara/purefin/data/LocalMediaUpdater.kt b/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaUpdater.kt
similarity index 85%
rename from core/src/main/java/hu/bbara/purefin/data/LocalMediaUpdater.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/LocalMediaUpdater.kt
index 0e52bc6d..2258a174 100644
--- a/core/src/main/java/hu/bbara/purefin/data/LocalMediaUpdater.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/LocalMediaUpdater.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import java.util.UUID
diff --git a/core/src/main/java/hu/bbara/purefin/data/NetworkMonitor.kt b/core/src/main/java/hu/bbara/purefin/core/data/NetworkMonitor.kt
similarity index 73%
rename from core/src/main/java/hu/bbara/purefin/data/NetworkMonitor.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/NetworkMonitor.kt
index 2cda483f..ffa3e9a2 100644
--- a/core/src/main/java/hu/bbara/purefin/data/NetworkMonitor.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/NetworkMonitor.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import kotlinx.coroutines.flow.Flow
diff --git a/core/src/main/java/hu/bbara/purefin/data/OfflineCatalogReader.kt b/core/src/main/java/hu/bbara/purefin/core/data/OfflineCatalogReader.kt
similarity index 90%
rename from core/src/main/java/hu/bbara/purefin/data/OfflineCatalogReader.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/OfflineCatalogReader.kt
index 4c0a85ee..2f7b8095 100644
--- a/core/src/main/java/hu/bbara/purefin/data/OfflineCatalogReader.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/OfflineCatalogReader.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Movie
diff --git a/core/src/main/java/hu/bbara/purefin/data/OfflineCatalogStore.kt b/core/src/main/java/hu/bbara/purefin/core/data/OfflineCatalogStore.kt
similarity index 95%
rename from core/src/main/java/hu/bbara/purefin/data/OfflineCatalogStore.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/OfflineCatalogStore.kt
index 41c58759..c9f02604 100644
--- a/core/src/main/java/hu/bbara/purefin/data/OfflineCatalogStore.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/OfflineCatalogStore.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Movie
diff --git a/core/src/main/java/hu/bbara/purefin/data/PlayableMediaRepository.kt b/core/src/main/java/hu/bbara/purefin/core/data/PlayableMediaRepository.kt
similarity index 90%
rename from core/src/main/java/hu/bbara/purefin/data/PlayableMediaRepository.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/PlayableMediaRepository.kt
index b1686975..86b80a80 100644
--- a/core/src/main/java/hu/bbara/purefin/data/PlayableMediaRepository.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/PlayableMediaRepository.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import hu.bbara.purefin.model.PlayableMedia
import java.util.UUID
diff --git a/core/src/main/java/hu/bbara/purefin/data/PlaybackMethod.kt b/core/src/main/java/hu/bbara/purefin/core/data/PlaybackMethod.kt
similarity index 70%
rename from core/src/main/java/hu/bbara/purefin/data/PlaybackMethod.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/PlaybackMethod.kt
index c4d5b76c..b1e63175 100644
--- a/core/src/main/java/hu/bbara/purefin/data/PlaybackMethod.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/PlaybackMethod.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
enum class PlaybackMethod {
DIRECT_PLAY,
diff --git a/core/src/main/java/hu/bbara/purefin/data/PlaybackProfileFamily.kt b/core/src/main/java/hu/bbara/purefin/core/data/PlaybackProfileFamily.kt
similarity index 62%
rename from core/src/main/java/hu/bbara/purefin/data/PlaybackProfileFamily.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/PlaybackProfileFamily.kt
index 72ca2ad7..6771b159 100644
--- a/core/src/main/java/hu/bbara/purefin/data/PlaybackProfileFamily.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/PlaybackProfileFamily.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
enum class PlaybackProfileFamily {
MOBILE,
diff --git a/core/src/main/java/hu/bbara/purefin/data/PlaybackProgressReporter.kt b/core/src/main/java/hu/bbara/purefin/core/data/PlaybackProgressReporter.kt
similarity index 92%
rename from core/src/main/java/hu/bbara/purefin/data/PlaybackProgressReporter.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/PlaybackProgressReporter.kt
index e26c1f36..b4d84c5b 100644
--- a/core/src/main/java/hu/bbara/purefin/data/PlaybackProgressReporter.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/PlaybackProgressReporter.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import java.util.UUID
diff --git a/core/src/main/java/hu/bbara/purefin/data/PlaybackReportContext.kt b/core/src/main/java/hu/bbara/purefin/core/data/PlaybackReportContext.kt
similarity index 87%
rename from core/src/main/java/hu/bbara/purefin/data/PlaybackReportContext.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/PlaybackReportContext.kt
index c1c1eb4f..8f5915cb 100644
--- a/core/src/main/java/hu/bbara/purefin/data/PlaybackReportContext.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/PlaybackReportContext.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
data class PlaybackReportContext(
val playMethod: PlaybackMethod,
diff --git a/core/src/main/java/hu/bbara/purefin/data/SearchManager.kt b/core/src/main/java/hu/bbara/purefin/core/data/SearchManager.kt
similarity index 75%
rename from core/src/main/java/hu/bbara/purefin/data/SearchManager.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/SearchManager.kt
index b3b20af5..f9a799e2 100644
--- a/core/src/main/java/hu/bbara/purefin/data/SearchManager.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/SearchManager.kt
@@ -1,6 +1,6 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
-import hu.bbara.purefin.feature.search.SearchResult
+import hu.bbara.purefin.core.feature.search.SearchResult
import hu.bbara.purefin.model.Genre
import kotlinx.coroutines.flow.StateFlow
diff --git a/core/src/main/java/hu/bbara/purefin/data/SessionBootstrapper.kt b/core/src/main/java/hu/bbara/purefin/core/data/SessionBootstrapper.kt
similarity index 64%
rename from core/src/main/java/hu/bbara/purefin/data/SessionBootstrapper.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/SessionBootstrapper.kt
index 9d8ff604..912af10c 100644
--- a/core/src/main/java/hu/bbara/purefin/data/SessionBootstrapper.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/SessionBootstrapper.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
interface SessionBootstrapper {
suspend fun initialize()
diff --git a/core/src/main/java/hu/bbara/purefin/data/SmartDownloadStore.kt b/core/src/main/java/hu/bbara/purefin/core/data/SmartDownloadStore.kt
similarity index 88%
rename from core/src/main/java/hu/bbara/purefin/data/SmartDownloadStore.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/SmartDownloadStore.kt
index 3af20698..4843d7a5 100644
--- a/core/src/main/java/hu/bbara/purefin/data/SmartDownloadStore.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/SmartDownloadStore.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import kotlinx.coroutines.flow.Flow
import java.util.UUID
diff --git a/core/src/main/java/hu/bbara/purefin/data/UserSessionRepository.kt b/core/src/main/java/hu/bbara/purefin/core/data/UserSessionRepository.kt
similarity index 93%
rename from core/src/main/java/hu/bbara/purefin/data/UserSessionRepository.kt
rename to core/src/main/java/hu/bbara/purefin/core/data/UserSessionRepository.kt
index f430c3c2..b78461e4 100644
--- a/core/src/main/java/hu/bbara/purefin/data/UserSessionRepository.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/data/UserSessionRepository.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.data
+package hu.bbara.purefin.core.data
import kotlinx.coroutines.flow.Flow
import java.util.UUID
diff --git a/core/src/main/java/hu/bbara/purefin/download/DownloadControllerModule.kt b/core/src/main/java/hu/bbara/purefin/core/download/DownloadControllerModule.kt
similarity index 90%
rename from core/src/main/java/hu/bbara/purefin/download/DownloadControllerModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/download/DownloadControllerModule.kt
index 60314e1a..da9b2e08 100644
--- a/core/src/main/java/hu/bbara/purefin/download/DownloadControllerModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/download/DownloadControllerModule.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.download
+package hu.bbara.purefin.core.download
import dagger.Binds
import dagger.Module
diff --git a/core/src/main/java/hu/bbara/purefin/download/DownloadModule.kt b/core/src/main/java/hu/bbara/purefin/core/download/DownloadModule.kt
similarity index 98%
rename from core/src/main/java/hu/bbara/purefin/download/DownloadModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/download/DownloadModule.kt
index 1e64d966..a28d7b16 100644
--- a/core/src/main/java/hu/bbara/purefin/download/DownloadModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/download/DownloadModule.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.download
+package hu.bbara.purefin.core.download
import android.content.Context
import androidx.annotation.OptIn
diff --git a/core/src/main/java/hu/bbara/purefin/download/DownloadState.kt b/core/src/main/java/hu/bbara/purefin/core/download/DownloadState.kt
similarity index 85%
rename from core/src/main/java/hu/bbara/purefin/download/DownloadState.kt
rename to core/src/main/java/hu/bbara/purefin/core/download/DownloadState.kt
index 4ec0e7d8..7ee38b80 100644
--- a/core/src/main/java/hu/bbara/purefin/download/DownloadState.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/download/DownloadState.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.download
+package hu.bbara.purefin.core.download
sealed class DownloadState {
data object NotDownloaded : DownloadState()
diff --git a/core/src/main/java/hu/bbara/purefin/download/MediaDownloadController.kt b/core/src/main/java/hu/bbara/purefin/core/download/MediaDownloadController.kt
similarity index 94%
rename from core/src/main/java/hu/bbara/purefin/download/MediaDownloadController.kt
rename to core/src/main/java/hu/bbara/purefin/core/download/MediaDownloadController.kt
index 52210a90..13aa3d9b 100644
--- a/core/src/main/java/hu/bbara/purefin/download/MediaDownloadController.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/download/MediaDownloadController.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.download
+package hu.bbara.purefin.core.download
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
diff --git a/core/src/main/java/hu/bbara/purefin/download/MediaDownloadManager.kt b/core/src/main/java/hu/bbara/purefin/core/download/MediaDownloadManager.kt
similarity index 98%
rename from core/src/main/java/hu/bbara/purefin/download/MediaDownloadManager.kt
rename to core/src/main/java/hu/bbara/purefin/core/download/MediaDownloadManager.kt
index dbb18d59..784fb201 100644
--- a/core/src/main/java/hu/bbara/purefin/download/MediaDownloadManager.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/download/MediaDownloadManager.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.download
+package hu.bbara.purefin.core.download
import android.content.Context
import android.util.Log
@@ -9,9 +9,9 @@ import androidx.media3.exoplayer.offline.Download
import androidx.media3.exoplayer.offline.DownloadManager
import androidx.media3.exoplayer.offline.DownloadRequest
import dagger.hilt.android.qualifiers.ApplicationContext
-import hu.bbara.purefin.data.DownloadMediaSourceResolver
-import hu.bbara.purefin.data.OfflineCatalogStore
-import hu.bbara.purefin.data.SmartDownloadStore
+import hu.bbara.purefin.core.data.DownloadMediaSourceResolver
+import hu.bbara.purefin.core.data.OfflineCatalogStore
+import hu.bbara.purefin.core.data.SmartDownloadStore
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.delay
diff --git a/core/src/main/java/hu/bbara/purefin/download/PurefinDownloadService.kt b/core/src/main/java/hu/bbara/purefin/core/download/PurefinDownloadService.kt
similarity index 99%
rename from core/src/main/java/hu/bbara/purefin/download/PurefinDownloadService.kt
rename to core/src/main/java/hu/bbara/purefin/core/download/PurefinDownloadService.kt
index 22444699..3d248392 100644
--- a/core/src/main/java/hu/bbara/purefin/download/PurefinDownloadService.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/download/PurefinDownloadService.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.download
+package hu.bbara.purefin.core.download
import android.app.Notification
import android.content.Context
diff --git a/core/src/main/java/hu/bbara/purefin/feature/browse/home/AppViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/browse/home/AppViewModel.kt
similarity index 82%
rename from core/src/main/java/hu/bbara/purefin/feature/browse/home/AppViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/browse/home/AppViewModel.kt
index 92e3ce58..8d6cb394 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/browse/home/AppViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/browse/home/AppViewModel.kt
@@ -1,26 +1,26 @@
-package hu.bbara.purefin.feature.browse.home
+package hu.bbara.purefin.core.feature.browse.home
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.data.HomeRepository
-import hu.bbara.purefin.data.LocalMediaRepository
-import hu.bbara.purefin.data.UserSessionRepository
-import hu.bbara.purefin.download.MediaDownloadController
-import hu.bbara.purefin.jellyfin.JellyfinMediaMetadataUpdater
+import hu.bbara.purefin.core.data.HomeRepository
+import hu.bbara.purefin.core.data.LocalMediaRepository
+import hu.bbara.purefin.core.data.UserSessionRepository
+import hu.bbara.purefin.core.download.MediaDownloadController
+import hu.bbara.purefin.core.jellyfin.JellyfinMediaMetadataUpdater
+import hu.bbara.purefin.core.model.EpisodeUiModel
+import hu.bbara.purefin.core.model.LibraryUiModel
+import hu.bbara.purefin.core.model.MediaUiModel
+import hu.bbara.purefin.core.model.MovieUiModel
+import hu.bbara.purefin.core.model.SeriesUiModel
+import hu.bbara.purefin.core.navigation.EpisodeDto
+import hu.bbara.purefin.core.navigation.LibraryDto
+import hu.bbara.purefin.core.navigation.MovieDto
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
+import hu.bbara.purefin.core.navigation.SeriesDto
import hu.bbara.purefin.model.LibraryKind
import hu.bbara.purefin.model.Media
-import hu.bbara.purefin.navigation.EpisodeDto
-import hu.bbara.purefin.navigation.LibraryDto
-import hu.bbara.purefin.navigation.MovieDto
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.navigation.Route
-import hu.bbara.purefin.navigation.SeriesDto
-import hu.bbara.purefin.ui.model.EpisodeUiModel
-import hu.bbara.purefin.ui.model.LibraryUiModel
-import hu.bbara.purefin.ui.model.MediaUiModel
-import hu.bbara.purefin.ui.model.MovieUiModel
-import hu.bbara.purefin.ui.model.SeriesUiModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
@@ -172,7 +172,12 @@ class AppViewModel @Inject constructor(
fun onLibrarySelected(id: UUID, name: String) {
viewModelScope.launch {
- navigationManager.navigate(Route.LibraryRoute(library = LibraryDto(id = id, name = name)))
+ navigationManager.navigate(
+ Route.LibraryRoute(library = LibraryDto(
+ id = id,
+ name = name
+ )
+ ))
}
}
@@ -189,31 +194,34 @@ class AppViewModel @Inject constructor(
}
private fun onMovieSelected(movieId: UUID) {
- navigationManager.navigate(Route.MovieRoute(
- MovieDto(
- id = movieId,
- )
+ navigationManager.navigate(
+ Route.MovieRoute(
+ MovieDto(
+ id = movieId,
+ )
))
}
private fun onSeriesSelected(seriesId: UUID) {
viewModelScope.launch {
- navigationManager.navigate(Route.SeriesRoute(
- SeriesDto(
- id = seriesId,
- )
+ navigationManager.navigate(
+ Route.SeriesRoute(
+ SeriesDto(
+ id = seriesId,
+ )
))
}
}
private fun onEpisodeSelected(seriesId: UUID, seasonId: UUID, episodeId: UUID) {
viewModelScope.launch {
- navigationManager.navigate(Route.EpisodeRoute(
- EpisodeDto(
- id = episodeId,
- seasonId = seasonId,
- seriesId = seriesId
- )
+ navigationManager.navigate(
+ Route.EpisodeRoute(
+ EpisodeDto(
+ id = episodeId,
+ seasonId = seasonId,
+ seriesId = seriesId
+ )
))
}
}
diff --git a/core/src/main/java/hu/bbara/purefin/feature/browse/library/LibraryViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/browse/library/LibraryViewModel.kt
similarity index 70%
rename from core/src/main/java/hu/bbara/purefin/feature/browse/library/LibraryViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/browse/library/LibraryViewModel.kt
index 91dd547e..139b4e70 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/browse/library/LibraryViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/browse/library/LibraryViewModel.kt
@@ -1,17 +1,17 @@
-package hu.bbara.purefin.feature.browse.library
+package hu.bbara.purefin.core.feature.browse.library
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.data.HomeRepository
+import hu.bbara.purefin.core.data.HomeRepository
+import hu.bbara.purefin.core.model.MediaUiModel
+import hu.bbara.purefin.core.model.MovieUiModel
+import hu.bbara.purefin.core.model.SeriesUiModel
+import hu.bbara.purefin.core.navigation.MovieDto
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
+import hu.bbara.purefin.core.navigation.SeriesDto
import hu.bbara.purefin.model.LibraryKind
-import hu.bbara.purefin.navigation.MovieDto
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.navigation.Route
-import hu.bbara.purefin.navigation.SeriesDto
-import hu.bbara.purefin.ui.model.MediaUiModel
-import hu.bbara.purefin.ui.model.MovieUiModel
-import hu.bbara.purefin.ui.model.SeriesUiModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
@@ -50,19 +50,21 @@ class LibraryViewModel @Inject constructor(
}
fun onMovieSelected(movieId: UUID) {
- navigationManager.navigate(Route.MovieRoute(
- MovieDto(
- id = movieId,
- )
+ navigationManager.navigate(
+ Route.MovieRoute(
+ MovieDto(
+ id = movieId,
+ )
))
}
fun onSeriesSelected(seriesId: UUID) {
viewModelScope.launch {
- navigationManager.navigate(Route.SeriesRoute(
- SeriesDto(
- id = seriesId,
- )
+ navigationManager.navigate(
+ Route.SeriesRoute(
+ SeriesDto(
+ id = seriesId,
+ )
))
}
}
diff --git a/core/src/main/java/hu/bbara/purefin/feature/content/episode/EpisodeScreenViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/content/episode/EpisodeScreenViewModel.kt
similarity index 87%
rename from core/src/main/java/hu/bbara/purefin/feature/content/episode/EpisodeScreenViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/content/episode/EpisodeScreenViewModel.kt
index 849cc5ad..89d95e54 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/content/episode/EpisodeScreenViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/content/episode/EpisodeScreenViewModel.kt
@@ -1,15 +1,15 @@
-package hu.bbara.purefin.feature.content.episode
+package hu.bbara.purefin.core.feature.content.episode
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.data.LocalMediaRepository
-import hu.bbara.purefin.download.DownloadState
-import hu.bbara.purefin.download.MediaDownloadController
+import hu.bbara.purefin.core.data.LocalMediaRepository
+import hu.bbara.purefin.core.download.DownloadState
+import hu.bbara.purefin.core.download.MediaDownloadController
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
+import hu.bbara.purefin.core.navigation.SeriesDto
import hu.bbara.purefin.model.Episode
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.navigation.Route
-import hu.bbara.purefin.navigation.SeriesDto
import java.util.UUID
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
diff --git a/core/src/main/java/hu/bbara/purefin/feature/content/movie/MovieScreenViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/content/movie/MovieScreenViewModel.kt
similarity index 87%
rename from core/src/main/java/hu/bbara/purefin/feature/content/movie/MovieScreenViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/content/movie/MovieScreenViewModel.kt
index 9609ff88..c544be56 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/content/movie/MovieScreenViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/content/movie/MovieScreenViewModel.kt
@@ -1,14 +1,14 @@
-package hu.bbara.purefin.feature.content.movie
+package hu.bbara.purefin.core.feature.content.movie
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.data.LocalMediaRepository
-import hu.bbara.purefin.download.DownloadState
-import hu.bbara.purefin.download.MediaDownloadController
+import hu.bbara.purefin.core.data.LocalMediaRepository
+import hu.bbara.purefin.core.download.DownloadState
+import hu.bbara.purefin.core.download.MediaDownloadController
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.model.Movie
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.navigation.Route
import java.util.UUID
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
diff --git a/core/src/main/java/hu/bbara/purefin/feature/content/series/SeriesViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/content/series/SeriesViewModel.kt
similarity index 87%
rename from core/src/main/java/hu/bbara/purefin/feature/content/series/SeriesViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/content/series/SeriesViewModel.kt
index bdacebad..09a5eab6 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/content/series/SeriesViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/content/series/SeriesViewModel.kt
@@ -1,16 +1,16 @@
-package hu.bbara.purefin.feature.content.series
+package hu.bbara.purefin.core.feature.content.series
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.data.LocalMediaRepository
-import hu.bbara.purefin.download.DownloadState
-import hu.bbara.purefin.download.MediaDownloadController
+import hu.bbara.purefin.core.data.LocalMediaRepository
+import hu.bbara.purefin.core.download.DownloadState
+import hu.bbara.purefin.core.download.MediaDownloadController
+import hu.bbara.purefin.core.navigation.EpisodeDto
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Series
-import hu.bbara.purefin.navigation.EpisodeDto
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.navigation.Route
import java.util.UUID
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.MutableStateFlow
@@ -105,12 +105,13 @@ class SeriesViewModel @Inject constructor(
}
fun onSelectEpisode(seriesId: UUID, seasonId: UUID, episodeId: UUID) {
- navigationManager.navigate(Route.EpisodeRoute(
- EpisodeDto(
- id = episodeId,
- seasonId = seasonId,
- seriesId = seriesId
- )
+ navigationManager.navigate(
+ Route.EpisodeRoute(
+ EpisodeDto(
+ id = episodeId,
+ seasonId = seasonId,
+ seriesId = seriesId
+ )
))
}
diff --git a/core/src/main/java/hu/bbara/purefin/feature/downloads/ActiveDownloadItem.kt b/core/src/main/java/hu/bbara/purefin/core/feature/downloads/ActiveDownloadItem.kt
similarity index 77%
rename from core/src/main/java/hu/bbara/purefin/feature/downloads/ActiveDownloadItem.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/downloads/ActiveDownloadItem.kt
index b618cbf3..b2520525 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/downloads/ActiveDownloadItem.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/downloads/ActiveDownloadItem.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.feature.downloads
+package hu.bbara.purefin.core.feature.downloads
data class ActiveDownloadItem(
val contentId: String,
diff --git a/core/src/main/java/hu/bbara/purefin/feature/downloads/DownloadsViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/downloads/DownloadsViewModel.kt
similarity index 80%
rename from core/src/main/java/hu/bbara/purefin/feature/downloads/DownloadsViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/downloads/DownloadsViewModel.kt
index c8e28b8e..16ece628 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/downloads/DownloadsViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/downloads/DownloadsViewModel.kt
@@ -1,19 +1,19 @@
-package hu.bbara.purefin.feature.downloads
+package hu.bbara.purefin.core.feature.downloads
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.Offline
-import hu.bbara.purefin.data.LocalMediaRepository
-import hu.bbara.purefin.download.MediaDownloadController
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
-import hu.bbara.purefin.navigation.MovieDto
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.navigation.Route
-import hu.bbara.purefin.navigation.SeriesDto
-import hu.bbara.purefin.ui.model.MovieUiModel
-import hu.bbara.purefin.ui.model.SeriesUiModel
+import hu.bbara.purefin.core.Offline
+import hu.bbara.purefin.core.data.LocalMediaRepository
+import hu.bbara.purefin.core.download.MediaDownloadController
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
+import hu.bbara.purefin.core.model.MovieUiModel
+import hu.bbara.purefin.core.model.SeriesUiModel
+import hu.bbara.purefin.core.navigation.MovieDto
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
+import hu.bbara.purefin.core.navigation.SeriesDto
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.stateIn
@@ -29,15 +29,17 @@ class DownloadsViewModel @Inject constructor(
) : ViewModel() {
fun onMovieSelected(movieId: UUID) {
- navigationManager.navigate(Route.MovieRoute(
- MovieDto(id = movieId)
+ navigationManager.navigate(
+ Route.MovieRoute(
+ MovieDto(id = movieId)
))
}
fun onSeriesSelected(seriesId: UUID) {
viewModelScope.launch {
- navigationManager.navigate(Route.SeriesRoute(
- SeriesDto(id = seriesId)
+ navigationManager.navigate(
+ Route.SeriesRoute(
+ SeriesDto(id = seriesId)
))
}
}
diff --git a/core/src/main/java/hu/bbara/purefin/feature/login/LoginViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/login/LoginViewModel.kt
similarity index 92%
rename from core/src/main/java/hu/bbara/purefin/feature/login/LoginViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/login/LoginViewModel.kt
index 616cc588..532056da 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/login/LoginViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/login/LoginViewModel.kt
@@ -1,10 +1,10 @@
-package hu.bbara.purefin.feature.login
+package hu.bbara.purefin.core.feature.login
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.data.AuthenticationRepository
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.AuthenticationRepository
+import hu.bbara.purefin.core.data.UserSessionRepository
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
diff --git a/core/src/main/java/hu/bbara/purefin/feature/search/SearchResult.kt b/core/src/main/java/hu/bbara/purefin/core/feature/search/SearchResult.kt
similarity index 94%
rename from core/src/main/java/hu/bbara/purefin/feature/search/SearchResult.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/search/SearchResult.kt
index 33d80ab1..b3b46e0a 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/search/SearchResult.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/search/SearchResult.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.feature.search
+package hu.bbara.purefin.core.feature.search
import hu.bbara.purefin.model.MediaKind
import hu.bbara.purefin.model.Movie
diff --git a/core/src/main/java/hu/bbara/purefin/feature/search/SearchViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/search/SearchViewModel.kt
similarity index 82%
rename from core/src/main/java/hu/bbara/purefin/feature/search/SearchViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/search/SearchViewModel.kt
index a3df2606..588243b0 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/search/SearchViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/search/SearchViewModel.kt
@@ -1,13 +1,13 @@
-package hu.bbara.purefin.feature.search
+package hu.bbara.purefin.core.feature.search
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.data.SearchManager
+import hu.bbara.purefin.core.data.SearchManager
+import hu.bbara.purefin.core.navigation.MovieDto
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.navigation.Route
+import hu.bbara.purefin.core.navigation.SeriesDto
import hu.bbara.purefin.model.MediaKind
-import hu.bbara.purefin.navigation.MovieDto
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.navigation.Route
-import hu.bbara.purefin.navigation.SeriesDto
import java.util.UUID
import javax.inject.Inject
diff --git a/core/src/main/java/hu/bbara/purefin/feature/settings/SettingsViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/settings/SettingsViewModel.kt
similarity index 77%
rename from core/src/main/java/hu/bbara/purefin/feature/settings/SettingsViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/settings/SettingsViewModel.kt
index 9d49ef1f..5766b195 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/settings/SettingsViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/settings/SettingsViewModel.kt
@@ -1,13 +1,13 @@
-package hu.bbara.purefin.feature.settings
+package hu.bbara.purefin.core.feature.settings
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.navigation.NavigationManager
-import hu.bbara.purefin.settings.BooleanSetting
-import hu.bbara.purefin.settings.NumberSetting
-import hu.bbara.purefin.settings.SettingsRepository
-import hu.bbara.purefin.settings.StringSetting
+import hu.bbara.purefin.core.navigation.NavigationManager
+import hu.bbara.purefin.core.settings.BooleanSetting
+import hu.bbara.purefin.core.settings.NumberSetting
+import hu.bbara.purefin.core.settings.SettingsRepository
+import hu.bbara.purefin.core.settings.StringSetting
import kotlinx.coroutines.launch
import javax.inject.Inject
diff --git a/core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateInfo.kt b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateInfo.kt
similarity index 78%
rename from core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateInfo.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateInfo.kt
index 52632d04..84c0b734 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateInfo.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateInfo.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.feature.update
+package hu.bbara.purefin.core.feature.update
data class AppUpdateInfo(
val versionCode: Long,
diff --git a/core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateInstaller.kt b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateInstaller.kt
similarity index 67%
rename from core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateInstaller.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateInstaller.kt
index 97e5908e..57897e88 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateInstaller.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateInstaller.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.feature.update
+package hu.bbara.purefin.core.feature.update
interface AppUpdateInstaller {
suspend fun installUpdate(update: AppUpdateInfo): String
diff --git a/core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateRepository.kt b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateRepository.kt
similarity index 97%
rename from core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateRepository.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateRepository.kt
index 956c3645..08ef4a34 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateRepository.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateRepository.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.feature.update
+package hu.bbara.purefin.core.feature.update
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
diff --git a/core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateViewModel.kt
similarity index 98%
rename from core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateViewModel.kt
index eac78d9b..d2f666cb 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/update/AppUpdateViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppUpdateViewModel.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.feature.update
+package hu.bbara.purefin.core.feature.update
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
diff --git a/core/src/main/java/hu/bbara/purefin/feature/update/AppVersionProvider.kt b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppVersionProvider.kt
similarity index 67%
rename from core/src/main/java/hu/bbara/purefin/feature/update/AppVersionProvider.kt
rename to core/src/main/java/hu/bbara/purefin/core/feature/update/AppVersionProvider.kt
index bc0264ae..2f05ebf8 100644
--- a/core/src/main/java/hu/bbara/purefin/feature/update/AppVersionProvider.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/feature/update/AppVersionProvider.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.feature.update
+package hu.bbara.purefin.core.feature.update
interface AppVersionProvider {
val versionCode: Long
diff --git a/core/src/main/java/hu/bbara/purefin/image/ArtworkKind.kt b/core/src/main/java/hu/bbara/purefin/core/image/ArtworkKind.kt
similarity index 76%
rename from core/src/main/java/hu/bbara/purefin/image/ArtworkKind.kt
rename to core/src/main/java/hu/bbara/purefin/core/image/ArtworkKind.kt
index 7259133d..f35f6cd3 100644
--- a/core/src/main/java/hu/bbara/purefin/image/ArtworkKind.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/image/ArtworkKind.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.image
+package hu.bbara.purefin.core.image
enum class ArtworkKind(
internal val pathSegment: String,
diff --git a/core/src/main/java/hu/bbara/purefin/image/ImageUrlBuilder.kt b/core/src/main/java/hu/bbara/purefin/core/image/ImageUrlBuilder.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/image/ImageUrlBuilder.kt
rename to core/src/main/java/hu/bbara/purefin/core/image/ImageUrlBuilder.kt
index c689f387..be7a8446 100644
--- a/core/src/main/java/hu/bbara/purefin/image/ImageUrlBuilder.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/image/ImageUrlBuilder.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.image
+package hu.bbara.purefin.core.image
import java.util.UUID
diff --git a/core/src/main/java/hu/bbara/purefin/jellyfin/JellyfinAuthInterceptor.kt b/core/src/main/java/hu/bbara/purefin/core/jellyfin/JellyfinAuthInterceptor.kt
similarity index 90%
rename from core/src/main/java/hu/bbara/purefin/jellyfin/JellyfinAuthInterceptor.kt
rename to core/src/main/java/hu/bbara/purefin/core/jellyfin/JellyfinAuthInterceptor.kt
index 16bb4759..0e15ec0d 100644
--- a/core/src/main/java/hu/bbara/purefin/jellyfin/JellyfinAuthInterceptor.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/jellyfin/JellyfinAuthInterceptor.kt
@@ -1,6 +1,6 @@
-package hu.bbara.purefin.jellyfin
+package hu.bbara.purefin.core.jellyfin
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.UserSessionRepository
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
diff --git a/core/src/main/java/hu/bbara/purefin/jellyfin/JellyfinMediaMetadataUpdater.kt b/core/src/main/java/hu/bbara/purefin/core/jellyfin/JellyfinMediaMetadataUpdater.kt
similarity index 76%
rename from core/src/main/java/hu/bbara/purefin/jellyfin/JellyfinMediaMetadataUpdater.kt
rename to core/src/main/java/hu/bbara/purefin/core/jellyfin/JellyfinMediaMetadataUpdater.kt
index 50238f47..c2980541 100644
--- a/core/src/main/java/hu/bbara/purefin/jellyfin/JellyfinMediaMetadataUpdater.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/jellyfin/JellyfinMediaMetadataUpdater.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.jellyfin
+package hu.bbara.purefin.core.jellyfin
import java.util.UUID
diff --git a/core/src/main/java/hu/bbara/purefin/jellyfin/JellyfinNetworkModule.kt b/core/src/main/java/hu/bbara/purefin/core/jellyfin/JellyfinNetworkModule.kt
similarity index 92%
rename from core/src/main/java/hu/bbara/purefin/jellyfin/JellyfinNetworkModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/jellyfin/JellyfinNetworkModule.kt
index 545b373f..856b1eef 100644
--- a/core/src/main/java/hu/bbara/purefin/jellyfin/JellyfinNetworkModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/jellyfin/JellyfinNetworkModule.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.jellyfin
+package hu.bbara.purefin.core.jellyfin
import dagger.Module
import dagger.Provides
diff --git a/core/src/main/java/hu/bbara/purefin/ui/model/LibraryUiModel.kt b/core/src/main/java/hu/bbara/purefin/core/model/LibraryUiModel.kt
similarity index 86%
rename from core/src/main/java/hu/bbara/purefin/ui/model/LibraryUiModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/model/LibraryUiModel.kt
index 4205af9e..f3dd6a42 100644
--- a/core/src/main/java/hu/bbara/purefin/ui/model/LibraryUiModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/model/LibraryUiModel.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.ui.model
+package hu.bbara.purefin.core.model
import hu.bbara.purefin.model.LibraryKind
import java.util.UUID
diff --git a/core/src/main/java/hu/bbara/purefin/ui/model/MediaUiModel.kt b/core/src/main/java/hu/bbara/purefin/core/model/MediaUiModel.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/ui/model/MediaUiModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/model/MediaUiModel.kt
index 83e6b025..144cee2f 100644
--- a/core/src/main/java/hu/bbara/purefin/ui/model/MediaUiModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/model/MediaUiModel.kt
@@ -1,7 +1,7 @@
-package hu.bbara.purefin.ui.model
+package hu.bbara.purefin.core.model
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Movie
import hu.bbara.purefin.model.Series
diff --git a/core/src/main/java/hu/bbara/purefin/module/RepositoryModule.kt b/core/src/main/java/hu/bbara/purefin/core/module/RepositoryModule.kt
similarity index 66%
rename from core/src/main/java/hu/bbara/purefin/module/RepositoryModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/module/RepositoryModule.kt
index 76142df0..2e46146e 100644
--- a/core/src/main/java/hu/bbara/purefin/module/RepositoryModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/module/RepositoryModule.kt
@@ -1,12 +1,12 @@
-package hu.bbara.purefin.module
+package hu.bbara.purefin.core.module
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
-import hu.bbara.purefin.data.CompositeLocalMediaRepository
-import hu.bbara.purefin.data.LocalMediaUpdater
-import hu.bbara.purefin.data.LocalMediaRepository
+import hu.bbara.purefin.core.data.CompositeLocalMediaRepository
+import hu.bbara.purefin.core.data.LocalMediaRepository
+import hu.bbara.purefin.core.data.LocalMediaUpdater
@Module
diff --git a/core/src/main/java/hu/bbara/purefin/navigation/EpisodeDto.kt b/core/src/main/java/hu/bbara/purefin/core/navigation/EpisodeDto.kt
similarity index 88%
rename from core/src/main/java/hu/bbara/purefin/navigation/EpisodeDto.kt
rename to core/src/main/java/hu/bbara/purefin/core/navigation/EpisodeDto.kt
index b40bfd83..f99dd41c 100644
--- a/core/src/main/java/hu/bbara/purefin/navigation/EpisodeDto.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/navigation/EpisodeDto.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.navigation
+package hu.bbara.purefin.core.navigation
import kotlinx.serialization.Serializable
import java.util.UUID
diff --git a/core/src/main/java/hu/bbara/purefin/navigation/LibraryDto.kt b/core/src/main/java/hu/bbara/purefin/core/navigation/LibraryDto.kt
similarity index 69%
rename from core/src/main/java/hu/bbara/purefin/navigation/LibraryDto.kt
rename to core/src/main/java/hu/bbara/purefin/core/navigation/LibraryDto.kt
index 338b9c20..eec03671 100644
--- a/core/src/main/java/hu/bbara/purefin/navigation/LibraryDto.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/navigation/LibraryDto.kt
@@ -1,8 +1,7 @@
-package hu.bbara.purefin.navigation
+package hu.bbara.purefin.core.navigation
import java.util.UUID
import kotlinx.serialization.Serializable
-import hu.bbara.purefin.navigation.UuidSerializer
@Serializable
data class LibraryDto(
diff --git a/core/src/main/java/hu/bbara/purefin/navigation/MovieDto.kt b/core/src/main/java/hu/bbara/purefin/core/navigation/MovieDto.kt
similarity index 66%
rename from core/src/main/java/hu/bbara/purefin/navigation/MovieDto.kt
rename to core/src/main/java/hu/bbara/purefin/core/navigation/MovieDto.kt
index a4ea9c1c..c9b1b693 100644
--- a/core/src/main/java/hu/bbara/purefin/navigation/MovieDto.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/navigation/MovieDto.kt
@@ -1,8 +1,7 @@
-package hu.bbara.purefin.navigation
+package hu.bbara.purefin.core.navigation
import java.util.UUID
import kotlinx.serialization.Serializable
-import hu.bbara.purefin.navigation.UuidSerializer
@Serializable
data class MovieDto(
diff --git a/core/src/main/java/hu/bbara/purefin/navigation/NavigationManager.kt b/core/src/main/java/hu/bbara/purefin/core/navigation/NavigationManager.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/navigation/NavigationManager.kt
rename to core/src/main/java/hu/bbara/purefin/core/navigation/NavigationManager.kt
index bbf268bb..2d2a3ed8 100644
--- a/core/src/main/java/hu/bbara/purefin/navigation/NavigationManager.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/navigation/NavigationManager.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.navigation
+package hu.bbara.purefin.core.navigation
import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.flow.MutableSharedFlow
diff --git a/core/src/main/java/hu/bbara/purefin/navigation/NavigationManagerModule.kt b/core/src/main/java/hu/bbara/purefin/core/navigation/NavigationManagerModule.kt
similarity index 89%
rename from core/src/main/java/hu/bbara/purefin/navigation/NavigationManagerModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/navigation/NavigationManagerModule.kt
index e5c87b04..e7503ad9 100644
--- a/core/src/main/java/hu/bbara/purefin/navigation/NavigationManagerModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/navigation/NavigationManagerModule.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.navigation
+package hu.bbara.purefin.core.navigation
import dagger.Module
import dagger.Provides
diff --git a/core/src/main/java/hu/bbara/purefin/navigation/Route.kt b/core/src/main/java/hu/bbara/purefin/core/navigation/Route.kt
similarity index 94%
rename from core/src/main/java/hu/bbara/purefin/navigation/Route.kt
rename to core/src/main/java/hu/bbara/purefin/core/navigation/Route.kt
index 942379a1..23e83692 100644
--- a/core/src/main/java/hu/bbara/purefin/navigation/Route.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/navigation/Route.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.navigation
+package hu.bbara.purefin.core.navigation
import androidx.navigation3.runtime.NavKey
import kotlinx.serialization.Serializable
diff --git a/core/src/main/java/hu/bbara/purefin/navigation/SeriesDto.kt b/core/src/main/java/hu/bbara/purefin/core/navigation/SeriesDto.kt
similarity index 66%
rename from core/src/main/java/hu/bbara/purefin/navigation/SeriesDto.kt
rename to core/src/main/java/hu/bbara/purefin/core/navigation/SeriesDto.kt
index ac7e5498..98f79203 100644
--- a/core/src/main/java/hu/bbara/purefin/navigation/SeriesDto.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/navigation/SeriesDto.kt
@@ -1,8 +1,7 @@
-package hu.bbara.purefin.navigation
+package hu.bbara.purefin.core.navigation
import java.util.UUID
import kotlinx.serialization.Serializable
-import hu.bbara.purefin.navigation.UuidSerializer
@Serializable
data class SeriesDto(
diff --git a/core/src/main/java/hu/bbara/purefin/navigation/UuidSerializer.kt b/core/src/main/java/hu/bbara/purefin/core/navigation/UuidSerializer.kt
similarity index 94%
rename from core/src/main/java/hu/bbara/purefin/navigation/UuidSerializer.kt
rename to core/src/main/java/hu/bbara/purefin/core/navigation/UuidSerializer.kt
index ec1fa714..a7e1969f 100644
--- a/core/src/main/java/hu/bbara/purefin/navigation/UuidSerializer.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/navigation/UuidSerializer.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.navigation
+package hu.bbara.purefin.core.navigation
import kotlinx.serialization.KSerializer
import kotlinx.serialization.descriptors.PrimitiveKind
diff --git a/core/src/main/java/hu/bbara/purefin/player/manager/MediaSegmentManager.kt b/core/src/main/java/hu/bbara/purefin/core/player/manager/MediaSegmentManager.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/player/manager/MediaSegmentManager.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/manager/MediaSegmentManager.kt
index 237ffcc1..edb4c717 100644
--- a/core/src/main/java/hu/bbara/purefin/player/manager/MediaSegmentManager.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/manager/MediaSegmentManager.kt
@@ -1,9 +1,9 @@
-package hu.bbara.purefin.player.manager
+package hu.bbara.purefin.core.player.manager
import android.util.Log
import androidx.media3.exoplayer.ExoPlayer
+import hu.bbara.purefin.core.player.model.SegmentStatus
import hu.bbara.purefin.model.MediaSegment
-import hu.bbara.purefin.player.model.SegmentStatus
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
diff --git a/core/src/main/java/hu/bbara/purefin/player/manager/PlayerManager.kt b/core/src/main/java/hu/bbara/purefin/core/player/manager/PlayerManager.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/player/manager/PlayerManager.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/manager/PlayerManager.kt
index 734850f6..225a89e1 100644
--- a/core/src/main/java/hu/bbara/purefin/player/manager/PlayerManager.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/manager/PlayerManager.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.manager
+package hu.bbara.purefin.core.player.manager
import androidx.annotation.OptIn
import androidx.media3.common.C
@@ -9,21 +9,21 @@ import androidx.media3.common.TrackSelectionOverride
import androidx.media3.common.util.UnstableApi
import androidx.media3.exoplayer.ExoPlayer
import dagger.hilt.android.scopes.ViewModelScoped
-import hu.bbara.purefin.data.PlayableMediaRepository
-import hu.bbara.purefin.data.PlaybackReportContext
+import hu.bbara.purefin.core.data.PlayableMediaRepository
+import hu.bbara.purefin.core.data.PlaybackReportContext
+import hu.bbara.purefin.core.player.model.MetadataState
+import hu.bbara.purefin.core.player.model.PlaybackProgressSnapshot
+import hu.bbara.purefin.core.player.model.PlaybackStateSnapshot
+import hu.bbara.purefin.core.player.model.SegmentStatus
+import hu.bbara.purefin.core.player.model.TrackOption
+import hu.bbara.purefin.core.player.model.TrackType
import hu.bbara.purefin.model.AudioTrackProperties
import hu.bbara.purefin.model.MediaSegment
import hu.bbara.purefin.model.PlayableMedia
import hu.bbara.purefin.model.SegmentType
import hu.bbara.purefin.model.SubtitleTrackProperties
-import hu.bbara.purefin.player.model.MetadataState
-import hu.bbara.purefin.player.model.PlaybackProgressSnapshot
-import hu.bbara.purefin.player.model.PlaybackStateSnapshot
-import hu.bbara.purefin.player.model.SegmentStatus
-import hu.bbara.purefin.player.model.TrackOption
-import hu.bbara.purefin.player.model.TrackType
-import hu.bbara.purefin.player.preference.TrackMatcher
-import hu.bbara.purefin.player.preference.TrackPreferencesRepository
+import hu.bbara.purefin.core.player.preference.TrackMatcher
+import hu.bbara.purefin.core.player.preference.TrackPreferencesRepository
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
diff --git a/core/src/main/java/hu/bbara/purefin/player/manager/ProgressManager.kt b/core/src/main/java/hu/bbara/purefin/core/player/manager/ProgressManager.kt
similarity index 92%
rename from core/src/main/java/hu/bbara/purefin/player/manager/ProgressManager.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/manager/ProgressManager.kt
index b4cb4501..0cd0be8f 100644
--- a/core/src/main/java/hu/bbara/purefin/player/manager/ProgressManager.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/manager/ProgressManager.kt
@@ -1,13 +1,13 @@
-package hu.bbara.purefin.player.manager
+package hu.bbara.purefin.core.player.manager
import android.util.Log
import dagger.hilt.android.scopes.ViewModelScoped
-import hu.bbara.purefin.data.LocalMediaUpdater
-import hu.bbara.purefin.data.PlaybackProgressReporter
-import hu.bbara.purefin.data.PlaybackReportContext
-import hu.bbara.purefin.player.model.MetadataState
-import hu.bbara.purefin.player.model.PlaybackProgressSnapshot
-import hu.bbara.purefin.player.model.PlaybackStateSnapshot
+import hu.bbara.purefin.core.data.LocalMediaUpdater
+import hu.bbara.purefin.core.data.PlaybackProgressReporter
+import hu.bbara.purefin.core.data.PlaybackReportContext
+import hu.bbara.purefin.core.player.model.MetadataState
+import hu.bbara.purefin.core.player.model.PlaybackProgressSnapshot
+import hu.bbara.purefin.core.player.model.PlaybackStateSnapshot
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
diff --git a/core/src/main/java/hu/bbara/purefin/player/manager/TrackMapper.kt b/core/src/main/java/hu/bbara/purefin/core/player/manager/TrackMapper.kt
similarity index 98%
rename from core/src/main/java/hu/bbara/purefin/player/manager/TrackMapper.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/manager/TrackMapper.kt
index a8604475..97d630a9 100644
--- a/core/src/main/java/hu/bbara/purefin/player/manager/TrackMapper.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/manager/TrackMapper.kt
@@ -1,12 +1,12 @@
-package hu.bbara.purefin.player.manager
+package hu.bbara.purefin.core.player.manager
import androidx.annotation.OptIn
import androidx.media3.common.C
import androidx.media3.common.Format
import androidx.media3.common.Tracks
import androidx.media3.common.util.UnstableApi
-import hu.bbara.purefin.player.model.TrackOption
-import hu.bbara.purefin.player.model.TrackType
+import hu.bbara.purefin.core.player.model.TrackOption
+import hu.bbara.purefin.core.player.model.TrackType
import java.util.Locale
import javax.inject.Inject
diff --git a/core/src/main/java/hu/bbara/purefin/player/model/MediaContext.kt b/core/src/main/java/hu/bbara/purefin/core/player/model/MediaContext.kt
similarity index 84%
rename from core/src/main/java/hu/bbara/purefin/player/model/MediaContext.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/model/MediaContext.kt
index 37617b05..d6c08fef 100644
--- a/core/src/main/java/hu/bbara/purefin/player/model/MediaContext.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/model/MediaContext.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.model
+package hu.bbara.purefin.core.player.model
import hu.bbara.purefin.model.MediaSegment
import hu.bbara.purefin.model.MediaTrackPreferences
diff --git a/core/src/main/java/hu/bbara/purefin/player/model/MetadataState.kt b/core/src/main/java/hu/bbara/purefin/core/player/model/MetadataState.kt
similarity index 65%
rename from core/src/main/java/hu/bbara/purefin/player/model/MetadataState.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/model/MetadataState.kt
index 98dcc07e..a25342e6 100644
--- a/core/src/main/java/hu/bbara/purefin/player/model/MetadataState.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/model/MetadataState.kt
@@ -1,6 +1,6 @@
-package hu.bbara.purefin.player.model
+package hu.bbara.purefin.core.player.model
-import hu.bbara.purefin.data.PlaybackReportContext
+import hu.bbara.purefin.core.data.PlaybackReportContext
data class MetadataState(
val mediaId: String? = null,
diff --git a/core/src/main/java/hu/bbara/purefin/player/model/PlaybackProgressSnapshot.kt b/core/src/main/java/hu/bbara/purefin/core/player/model/PlaybackProgressSnapshot.kt
similarity index 79%
rename from core/src/main/java/hu/bbara/purefin/player/model/PlaybackProgressSnapshot.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/model/PlaybackProgressSnapshot.kt
index dcff4548..ef09734f 100644
--- a/core/src/main/java/hu/bbara/purefin/player/model/PlaybackProgressSnapshot.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/model/PlaybackProgressSnapshot.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.model
+package hu.bbara.purefin.core.player.model
data class PlaybackProgressSnapshot(
val durationMs: Long = 0L,
diff --git a/core/src/main/java/hu/bbara/purefin/player/model/PlaybackStateSnapshot.kt b/core/src/main/java/hu/bbara/purefin/core/player/model/PlaybackStateSnapshot.kt
similarity index 80%
rename from core/src/main/java/hu/bbara/purefin/player/model/PlaybackStateSnapshot.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/model/PlaybackStateSnapshot.kt
index 174be0c6..06721653 100644
--- a/core/src/main/java/hu/bbara/purefin/player/model/PlaybackStateSnapshot.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/model/PlaybackStateSnapshot.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.model
+package hu.bbara.purefin.core.player.model
data class PlaybackStateSnapshot(
val isPlaying: Boolean = false,
diff --git a/core/src/main/java/hu/bbara/purefin/player/model/PlayerUiModels.kt b/core/src/main/java/hu/bbara/purefin/core/player/model/PlayerUiModels.kt
similarity index 97%
rename from core/src/main/java/hu/bbara/purefin/player/model/PlayerUiModels.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/model/PlayerUiModels.kt
index d201920d..47f7f364 100644
--- a/core/src/main/java/hu/bbara/purefin/player/model/PlayerUiModels.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/model/PlayerUiModels.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.model
+package hu.bbara.purefin.core.player.model
data class PlayerUiState(
val isPlaying: Boolean = false,
diff --git a/core/src/main/java/hu/bbara/purefin/player/model/SegmentStatus.kt b/core/src/main/java/hu/bbara/purefin/core/player/model/SegmentStatus.kt
similarity index 52%
rename from core/src/main/java/hu/bbara/purefin/player/model/SegmentStatus.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/model/SegmentStatus.kt
index fae23751..d5616b5d 100644
--- a/core/src/main/java/hu/bbara/purefin/player/model/SegmentStatus.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/model/SegmentStatus.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.model
+package hu.bbara.purefin.core.player.model
enum class SegmentStatus {
START,
diff --git a/core/src/main/java/hu/bbara/purefin/player/module/PlaybackNetworkModule.kt b/core/src/main/java/hu/bbara/purefin/core/player/module/PlaybackNetworkModule.kt
similarity index 93%
rename from core/src/main/java/hu/bbara/purefin/player/module/PlaybackNetworkModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/module/PlaybackNetworkModule.kt
index 6dffb45a..7627a3c9 100644
--- a/core/src/main/java/hu/bbara/purefin/player/module/PlaybackNetworkModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/module/PlaybackNetworkModule.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.module
+package hu.bbara.purefin.core.player.module
import androidx.annotation.OptIn
import androidx.media3.common.util.UnstableApi
diff --git a/core/src/main/java/hu/bbara/purefin/player/module/VideoPlayerModule.kt b/core/src/main/java/hu/bbara/purefin/core/player/module/VideoPlayerModule.kt
similarity index 98%
rename from core/src/main/java/hu/bbara/purefin/player/module/VideoPlayerModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/module/VideoPlayerModule.kt
index 0b44ea75..b3052d24 100644
--- a/core/src/main/java/hu/bbara/purefin/player/module/VideoPlayerModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/module/VideoPlayerModule.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.module
+package hu.bbara.purefin.core.player.module
import android.app.Application
import androidx.annotation.OptIn
diff --git a/core/src/main/java/hu/bbara/purefin/player/preference/TrackMatcher.kt b/core/src/main/java/hu/bbara/purefin/core/player/preference/TrackMatcher.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/player/preference/TrackMatcher.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/preference/TrackMatcher.kt
index cdad2788..843efce1 100644
--- a/core/src/main/java/hu/bbara/purefin/player/preference/TrackMatcher.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/preference/TrackMatcher.kt
@@ -1,9 +1,9 @@
-package hu.bbara.purefin.player.preference
+package hu.bbara.purefin.core.player.preference
+import hu.bbara.purefin.core.player.model.TrackOption
+import hu.bbara.purefin.core.player.model.TrackType
import hu.bbara.purefin.model.AudioTrackProperties
import hu.bbara.purefin.model.SubtitleTrackProperties
-import hu.bbara.purefin.player.model.TrackOption
-import hu.bbara.purefin.player.model.TrackType
import javax.inject.Inject
class TrackMatcher @Inject constructor() {
diff --git a/core/src/main/java/hu/bbara/purefin/player/preference/TrackPreferencesModule.kt b/core/src/main/java/hu/bbara/purefin/core/player/preference/TrackPreferencesModule.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/player/preference/TrackPreferencesModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/preference/TrackPreferencesModule.kt
index 0dfa5805..23afb7f3 100644
--- a/core/src/main/java/hu/bbara/purefin/player/preference/TrackPreferencesModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/preference/TrackPreferencesModule.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.preference
+package hu.bbara.purefin.core.player.preference
import android.content.Context
import androidx.datastore.core.DataStore
diff --git a/core/src/main/java/hu/bbara/purefin/player/preference/TrackPreferencesRepository.kt b/core/src/main/java/hu/bbara/purefin/core/player/preference/TrackPreferencesRepository.kt
similarity index 97%
rename from core/src/main/java/hu/bbara/purefin/player/preference/TrackPreferencesRepository.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/preference/TrackPreferencesRepository.kt
index 66424ef6..27f1d8bc 100644
--- a/core/src/main/java/hu/bbara/purefin/player/preference/TrackPreferencesRepository.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/preference/TrackPreferencesRepository.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.preference
+package hu.bbara.purefin.core.player.preference
import androidx.datastore.core.DataStore
import hu.bbara.purefin.model.AudioTrackProperties
diff --git a/core/src/main/java/hu/bbara/purefin/player/preference/TrackPreferencesSerializer.kt b/core/src/main/java/hu/bbara/purefin/core/player/preference/TrackPreferencesSerializer.kt
similarity index 95%
rename from core/src/main/java/hu/bbara/purefin/player/preference/TrackPreferencesSerializer.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/preference/TrackPreferencesSerializer.kt
index 09b881af..9e1f4ae5 100644
--- a/core/src/main/java/hu/bbara/purefin/player/preference/TrackPreferencesSerializer.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/preference/TrackPreferencesSerializer.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.preference
+package hu.bbara.purefin.core.player.preference
import androidx.datastore.core.CorruptionException
import androidx.datastore.core.Serializer
diff --git a/core/src/main/java/hu/bbara/purefin/player/viewmodel/ControlsAutoHidePolicy.kt b/core/src/main/java/hu/bbara/purefin/core/player/viewmodel/ControlsAutoHidePolicy.kt
similarity index 97%
rename from core/src/main/java/hu/bbara/purefin/player/viewmodel/ControlsAutoHidePolicy.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/viewmodel/ControlsAutoHidePolicy.kt
index da73391b..795d751b 100644
--- a/core/src/main/java/hu/bbara/purefin/player/viewmodel/ControlsAutoHidePolicy.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/viewmodel/ControlsAutoHidePolicy.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.viewmodel
+package hu.bbara.purefin.core.player.viewmodel
enum class ControlsAutoHideBlocker {
PLAYLIST,
diff --git a/core/src/main/java/hu/bbara/purefin/player/viewmodel/PlayerViewModel.kt b/core/src/main/java/hu/bbara/purefin/core/player/viewmodel/PlayerViewModel.kt
similarity index 95%
rename from core/src/main/java/hu/bbara/purefin/player/viewmodel/PlayerViewModel.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/viewmodel/PlayerViewModel.kt
index 8f586fee..3d2a934a 100644
--- a/core/src/main/java/hu/bbara/purefin/player/viewmodel/PlayerViewModel.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/viewmodel/PlayerViewModel.kt
@@ -1,19 +1,19 @@
-package hu.bbara.purefin.player.viewmodel
+package hu.bbara.purefin.core.player.viewmodel
import android.util.Log
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
-import hu.bbara.purefin.data.LocalMediaRepository
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.data.LocalMediaRepository
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
+import hu.bbara.purefin.core.player.manager.PlayerManager
+import hu.bbara.purefin.core.player.manager.ProgressManager
+import hu.bbara.purefin.core.player.model.PlayerUiState
+import hu.bbara.purefin.core.player.model.PlaylistElementUiModel
+import hu.bbara.purefin.core.player.model.TrackOption
import hu.bbara.purefin.model.PlayableMedia
-import hu.bbara.purefin.player.manager.PlayerManager
-import hu.bbara.purefin.player.manager.ProgressManager
-import hu.bbara.purefin.player.model.PlayerUiState
-import hu.bbara.purefin.player.model.PlaylistElementUiModel
-import hu.bbara.purefin.player.model.TrackOption
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableStateFlow
diff --git a/core/src/main/java/hu/bbara/purefin/player/viewmodel/SeekByCollector.kt b/core/src/main/java/hu/bbara/purefin/core/player/viewmodel/SeekByCollector.kt
similarity index 95%
rename from core/src/main/java/hu/bbara/purefin/player/viewmodel/SeekByCollector.kt
rename to core/src/main/java/hu/bbara/purefin/core/player/viewmodel/SeekByCollector.kt
index 2f6a5aa1..bd90bc83 100644
--- a/core/src/main/java/hu/bbara/purefin/player/viewmodel/SeekByCollector.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/player/viewmodel/SeekByCollector.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.player.viewmodel
+package hu.bbara.purefin.core.player.viewmodel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
diff --git a/core/src/main/java/hu/bbara/purefin/settings/SettingOption.kt b/core/src/main/java/hu/bbara/purefin/core/settings/SettingOption.kt
similarity index 97%
rename from core/src/main/java/hu/bbara/purefin/settings/SettingOption.kt
rename to core/src/main/java/hu/bbara/purefin/core/settings/SettingOption.kt
index 1e3b4185..b0cfa1c9 100644
--- a/core/src/main/java/hu/bbara/purefin/settings/SettingOption.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/settings/SettingOption.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.settings
+package hu.bbara.purefin.core.settings
sealed interface SettingOption {
val key: String
diff --git a/core/src/main/java/hu/bbara/purefin/settings/SettingsModule.kt b/core/src/main/java/hu/bbara/purefin/core/settings/SettingsModule.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/settings/SettingsModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/settings/SettingsModule.kt
index eb8f25bf..734ae3be 100644
--- a/core/src/main/java/hu/bbara/purefin/settings/SettingsModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/settings/SettingsModule.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.settings
+package hu.bbara.purefin.core.settings
import android.content.Context
import androidx.datastore.core.DataStore
diff --git a/core/src/main/java/hu/bbara/purefin/settings/SettingsRepository.kt b/core/src/main/java/hu/bbara/purefin/core/settings/SettingsRepository.kt
similarity index 97%
rename from core/src/main/java/hu/bbara/purefin/settings/SettingsRepository.kt
rename to core/src/main/java/hu/bbara/purefin/core/settings/SettingsRepository.kt
index df541c1c..941459d1 100644
--- a/core/src/main/java/hu/bbara/purefin/settings/SettingsRepository.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/settings/SettingsRepository.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.settings
+package hu.bbara.purefin.core.settings
import androidx.datastore.core.DataStore
import hu.bbara.purefin.model.Settings
diff --git a/core/src/main/java/hu/bbara/purefin/settings/SettingsSerializer.kt b/core/src/main/java/hu/bbara/purefin/core/settings/SettingsSerializer.kt
similarity index 96%
rename from core/src/main/java/hu/bbara/purefin/settings/SettingsSerializer.kt
rename to core/src/main/java/hu/bbara/purefin/core/settings/SettingsSerializer.kt
index 98655dbf..a2dd7b56 100644
--- a/core/src/main/java/hu/bbara/purefin/settings/SettingsSerializer.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/settings/SettingsSerializer.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.settings
+package hu.bbara.purefin.core.settings
import androidx.datastore.core.CorruptionException
import androidx.datastore.core.Serializer
diff --git a/core/src/main/java/hu/bbara/purefin/update/AndroidAppVersionProvider.kt b/core/src/main/java/hu/bbara/purefin/core/update/AndroidAppVersionProvider.kt
similarity index 94%
rename from core/src/main/java/hu/bbara/purefin/update/AndroidAppVersionProvider.kt
rename to core/src/main/java/hu/bbara/purefin/core/update/AndroidAppVersionProvider.kt
index 559156ad..62aec24a 100644
--- a/core/src/main/java/hu/bbara/purefin/update/AndroidAppVersionProvider.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/update/AndroidAppVersionProvider.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.update
+package hu.bbara.purefin.core.update
import android.content.Context
import android.content.pm.ApplicationInfo
@@ -6,7 +6,7 @@ import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.Build
import dagger.hilt.android.qualifiers.ApplicationContext
-import hu.bbara.purefin.feature.update.AppVersionProvider
+import hu.bbara.purefin.core.feature.update.AppVersionProvider
import javax.inject.Inject
class AndroidAppVersionProvider @Inject constructor(
diff --git a/core/src/main/java/hu/bbara/purefin/update/AppUpdateInstallReceiver.kt b/core/src/main/java/hu/bbara/purefin/core/update/AppUpdateInstallReceiver.kt
similarity index 97%
rename from core/src/main/java/hu/bbara/purefin/update/AppUpdateInstallReceiver.kt
rename to core/src/main/java/hu/bbara/purefin/core/update/AppUpdateInstallReceiver.kt
index 510e9698..b4be1572 100644
--- a/core/src/main/java/hu/bbara/purefin/update/AppUpdateInstallReceiver.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/update/AppUpdateInstallReceiver.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.update
+package hu.bbara.purefin.core.update
import android.content.ActivityNotFoundException
import android.content.BroadcastReceiver
diff --git a/core/src/main/java/hu/bbara/purefin/update/AppUpdateInstaller.kt b/core/src/main/java/hu/bbara/purefin/core/update/AppUpdateInstaller.kt
similarity index 97%
rename from core/src/main/java/hu/bbara/purefin/update/AppUpdateInstaller.kt
rename to core/src/main/java/hu/bbara/purefin/core/update/AppUpdateInstaller.kt
index 8fd7cafc..fd367e76 100644
--- a/core/src/main/java/hu/bbara/purefin/update/AppUpdateInstaller.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/update/AppUpdateInstaller.kt
@@ -1,4 +1,4 @@
-package hu.bbara.purefin.update
+package hu.bbara.purefin.core.update
import android.app.PendingIntent
import android.content.ActivityNotFoundException
@@ -11,8 +11,8 @@ import android.net.Uri
import android.os.Build
import android.provider.Settings
import dagger.hilt.android.qualifiers.ApplicationContext
-import hu.bbara.purefin.feature.update.AppUpdateInfo
-import hu.bbara.purefin.feature.update.AppUpdateInstaller
+import hu.bbara.purefin.core.feature.update.AppUpdateInfo
+import hu.bbara.purefin.core.feature.update.AppUpdateInstaller
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import okhttp3.HttpUrl.Companion.toHttpUrl
diff --git a/core/src/main/java/hu/bbara/purefin/update/AppUpdateModule.kt b/core/src/main/java/hu/bbara/purefin/core/update/AppUpdateModule.kt
similarity index 71%
rename from core/src/main/java/hu/bbara/purefin/update/AppUpdateModule.kt
rename to core/src/main/java/hu/bbara/purefin/core/update/AppUpdateModule.kt
index c272a53d..a5a20c62 100644
--- a/core/src/main/java/hu/bbara/purefin/update/AppUpdateModule.kt
+++ b/core/src/main/java/hu/bbara/purefin/core/update/AppUpdateModule.kt
@@ -1,11 +1,11 @@
-package hu.bbara.purefin.update
+package hu.bbara.purefin.core.update
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
-import hu.bbara.purefin.feature.update.AppUpdateInstaller
-import hu.bbara.purefin.feature.update.AppVersionProvider
+import hu.bbara.purefin.core.feature.update.AppUpdateInstaller
+import hu.bbara.purefin.core.feature.update.AppVersionProvider
@Module
@InstallIn(SingletonComponent::class)
diff --git a/core/src/test/java/hu/bbara/purefin/core/download/DownloadModuleTest.kt b/core/src/test/java/hu/bbara/purefin/core/download/DownloadModuleTest.kt
index bbf20eac..d5602423 100644
--- a/core/src/test/java/hu/bbara/purefin/core/download/DownloadModuleTest.kt
+++ b/core/src/test/java/hu/bbara/purefin/core/download/DownloadModuleTest.kt
@@ -3,7 +3,6 @@ package hu.bbara.purefin.core.download
import androidx.media3.datasource.DataSource
import androidx.media3.datasource.cache.CacheDataSource
import androidx.media3.datasource.cache.NoOpCacheEvictor
-import hu.bbara.purefin.download.DownloadModuleFactories
import org.junit.Assert.assertNull
import org.junit.Assert.assertSame
import org.junit.Assert.assertTrue
diff --git a/core/src/test/java/hu/bbara/purefin/core/navigation/RouteSerializationTest.kt b/core/src/test/java/hu/bbara/purefin/core/navigation/RouteSerializationTest.kt
index 043cf77a..d0140f34 100644
--- a/core/src/test/java/hu/bbara/purefin/core/navigation/RouteSerializationTest.kt
+++ b/core/src/test/java/hu/bbara/purefin/core/navigation/RouteSerializationTest.kt
@@ -1,10 +1,5 @@
package hu.bbara.purefin.core.navigation
-import hu.bbara.purefin.navigation.EpisodeDto
-import hu.bbara.purefin.navigation.LibraryDto
-import hu.bbara.purefin.navigation.MovieDto
-import hu.bbara.purefin.navigation.Route
-import hu.bbara.purefin.navigation.SeriesDto
import java.util.UUID
import kotlinx.serialization.json.Json
import org.junit.Assert.assertEquals
diff --git a/core/src/test/java/hu/bbara/purefin/core/player/viewmodel/ControlsAutoHidePolicyTest.kt b/core/src/test/java/hu/bbara/purefin/core/player/viewmodel/ControlsAutoHidePolicyTest.kt
index 33ea830c..f184b621 100644
--- a/core/src/test/java/hu/bbara/purefin/core/player/viewmodel/ControlsAutoHidePolicyTest.kt
+++ b/core/src/test/java/hu/bbara/purefin/core/player/viewmodel/ControlsAutoHidePolicyTest.kt
@@ -1,8 +1,5 @@
package hu.bbara.purefin.core.player.viewmodel
-import hu.bbara.purefin.player.viewmodel.ControlsAutoHideBlocker
-import hu.bbara.purefin.player.viewmodel.ControlsAutoHideCommand
-import hu.bbara.purefin.player.viewmodel.ControlsAutoHidePolicy
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
diff --git a/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryAppContentRepository.kt b/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryAppContentRepository.kt
index ed5907e4..60f6f531 100644
--- a/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryAppContentRepository.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryAppContentRepository.kt
@@ -2,9 +2,9 @@ package hu.bbara.purefin.data.catalog
import android.util.Log
import androidx.datastore.core.DataStore
-import hu.bbara.purefin.data.HomeRepository
-import hu.bbara.purefin.data.NetworkMonitor
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.HomeRepository
+import hu.bbara.purefin.core.data.NetworkMonitor
+import hu.bbara.purefin.core.data.UserSessionRepository
import hu.bbara.purefin.data.converter.toEpisode
import hu.bbara.purefin.data.converter.toLibrary
import hu.bbara.purefin.data.converter.toMovie
diff --git a/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryLocalMediaRepository.kt b/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryLocalMediaRepository.kt
index d8a35e56..1262d959 100644
--- a/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryLocalMediaRepository.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/catalog/InMemoryLocalMediaRepository.kt
@@ -1,8 +1,8 @@
package hu.bbara.purefin.data.catalog
import android.util.Log
-import hu.bbara.purefin.data.LocalMediaRepository
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.LocalMediaRepository
+import hu.bbara.purefin.core.data.UserSessionRepository
import hu.bbara.purefin.data.converter.toEpisode
import hu.bbara.purefin.data.converter.toMovie
import hu.bbara.purefin.data.converter.toSeason
diff --git a/data/src/main/java/hu/bbara/purefin/data/catalog/OfflineLocalMediaRepository.kt b/data/src/main/java/hu/bbara/purefin/data/catalog/OfflineLocalMediaRepository.kt
index c13594e7..b13ec614 100644
--- a/data/src/main/java/hu/bbara/purefin/data/catalog/OfflineLocalMediaRepository.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/catalog/OfflineLocalMediaRepository.kt
@@ -1,6 +1,6 @@
package hu.bbara.purefin.data.catalog
-import hu.bbara.purefin.data.LocalMediaRepository
+import hu.bbara.purefin.core.data.LocalMediaRepository
import hu.bbara.purefin.data.offline.room.offline.OfflineRoomMediaLocalDataSource
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Movie
diff --git a/data/src/main/java/hu/bbara/purefin/data/converter/BaseItemDtoConverter.kt b/data/src/main/java/hu/bbara/purefin/data/converter/BaseItemDtoConverter.kt
index 146d3098..2af465bb 100644
--- a/data/src/main/java/hu/bbara/purefin/data/converter/BaseItemDtoConverter.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/converter/BaseItemDtoConverter.kt
@@ -1,7 +1,7 @@
package hu.bbara.purefin.data.converter
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Genre
import hu.bbara.purefin.model.Library
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/ConnectivityNetworkMonitor.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/ConnectivityNetworkMonitor.kt
index 40ac9986..5a954123 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/ConnectivityNetworkMonitor.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/ConnectivityNetworkMonitor.kt
@@ -6,7 +6,7 @@ import android.net.Network
import android.net.NetworkCapabilities
import android.net.NetworkRequest
import dagger.hilt.android.qualifiers.ApplicationContext
-import hu.bbara.purefin.data.NetworkMonitor
+import hu.bbara.purefin.core.data.NetworkMonitor
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/DefaultPlayableMediaRepository.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/DefaultPlayableMediaRepository.kt
index b01334ab..8021c471 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/DefaultPlayableMediaRepository.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/DefaultPlayableMediaRepository.kt
@@ -6,19 +6,19 @@ import androidx.core.net.toUri
import androidx.media3.common.MediaItem
import androidx.media3.common.MediaMetadata
import androidx.media3.common.util.UnstableApi
-import hu.bbara.purefin.data.PlayableMediaRepository
-import hu.bbara.purefin.data.PlaybackReportContext
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.PlayableMediaRepository
+import hu.bbara.purefin.core.data.PlaybackReportContext
+import hu.bbara.purefin.core.data.UserSessionRepository
import hu.bbara.purefin.data.jellyfin.client.JellyfinApiClient
import hu.bbara.purefin.data.jellyfin.playback.JellyfinPlaybackResolver
import hu.bbara.purefin.data.jellyfin.playback.PlaybackDecision
import hu.bbara.purefin.data.jellyfin.playback.playbackCustomCacheKey
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.MediaSegment
import hu.bbara.purefin.model.PlayableMedia
import hu.bbara.purefin.model.SegmentType
-import hu.bbara.purefin.player.preference.TrackPreferencesRepository
+import hu.bbara.purefin.core.player.preference.TrackPreferencesRepository
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.withContext
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinBindingsModule.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinBindingsModule.kt
index 5bb76c13..d6375ecd 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinBindingsModule.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinBindingsModule.kt
@@ -4,12 +4,12 @@ import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
-import hu.bbara.purefin.data.AuthenticationRepository
-import hu.bbara.purefin.data.DownloadMediaSourceResolver
-import hu.bbara.purefin.data.NetworkMonitor
-import hu.bbara.purefin.data.PlayableMediaRepository
-import hu.bbara.purefin.data.PlaybackProgressReporter
-import hu.bbara.purefin.data.SessionBootstrapper
+import hu.bbara.purefin.core.data.AuthenticationRepository
+import hu.bbara.purefin.core.data.DownloadMediaSourceResolver
+import hu.bbara.purefin.core.data.NetworkMonitor
+import hu.bbara.purefin.core.data.PlayableMediaRepository
+import hu.bbara.purefin.core.data.PlaybackProgressReporter
+import hu.bbara.purefin.core.data.SessionBootstrapper
import hu.bbara.purefin.data.jellyfin.download.JellyfinDownloadMediaSourceResolver
import hu.bbara.purefin.data.jellyfin.session.JellyfinAuthenticationRepository
import hu.bbara.purefin.data.jellyfin.session.JellyfinSessionBootstrapper
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinMediaMetadataUpdaterImpl.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinMediaMetadataUpdaterImpl.kt
index fee24724..9635579a 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinMediaMetadataUpdaterImpl.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinMediaMetadataUpdaterImpl.kt
@@ -1,7 +1,7 @@
package hu.bbara.purefin.data.jellyfin
import hu.bbara.purefin.data.jellyfin.client.JellyfinApiClient
-import hu.bbara.purefin.jellyfin.JellyfinMediaMetadataUpdater
+import hu.bbara.purefin.core.jellyfin.JellyfinMediaMetadataUpdater
import java.util.UUID
import javax.inject.Inject
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinPlaybackProgressReporter.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinPlaybackProgressReporter.kt
index 7604b422..d1520e86 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinPlaybackProgressReporter.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/JellyfinPlaybackProgressReporter.kt
@@ -1,8 +1,8 @@
package hu.bbara.purefin.data.jellyfin
-import hu.bbara.purefin.data.PlaybackProgressReporter
+import hu.bbara.purefin.core.data.PlaybackProgressReporter
import hu.bbara.purefin.data.jellyfin.client.JellyfinApiClient
-import hu.bbara.purefin.data.PlaybackReportContext
+import hu.bbara.purefin.core.data.PlaybackReportContext
import java.util.UUID
import javax.inject.Inject
import javax.inject.Singleton
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/SearchManagerImpl.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/SearchManagerImpl.kt
index 5bebb3f1..a20f313b 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/SearchManagerImpl.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/SearchManagerImpl.kt
@@ -1,11 +1,11 @@
package hu.bbara.purefin.data.jellyfin
-import hu.bbara.purefin.data.SearchManager
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.SearchManager
+import hu.bbara.purefin.core.data.UserSessionRepository
import hu.bbara.purefin.data.jellyfin.client.JellyfinApiClient
-import hu.bbara.purefin.feature.search.SearchResult
-import hu.bbara.purefin.image.ArtworkKind
-import hu.bbara.purefin.image.ImageUrlBuilder
+import hu.bbara.purefin.core.feature.search.SearchResult
+import hu.bbara.purefin.core.image.ArtworkKind
+import hu.bbara.purefin.core.image.ImageUrlBuilder
import hu.bbara.purefin.model.Genre
import hu.bbara.purefin.model.MediaKind
import kotlinx.coroutines.CoroutineScope
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/client/JellyfinApiClient.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/client/JellyfinApiClient.kt
index bfc091df..e565f82c 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/client/JellyfinApiClient.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/client/JellyfinApiClient.kt
@@ -3,9 +3,9 @@ package hu.bbara.purefin.data.jellyfin.client
import android.content.Context
import android.util.Log
import dagger.hilt.android.qualifiers.ApplicationContext
-import hu.bbara.purefin.data.PlaybackMethod
-import hu.bbara.purefin.data.PlaybackReportContext
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.PlaybackMethod
+import hu.bbara.purefin.core.data.PlaybackReportContext
+import hu.bbara.purefin.core.data.UserSessionRepository
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.first
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/download/JellyfinDownloadMediaSourceResolver.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/download/JellyfinDownloadMediaSourceResolver.kt
index 2e05abb5..ad38a046 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/download/JellyfinDownloadMediaSourceResolver.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/download/JellyfinDownloadMediaSourceResolver.kt
@@ -1,10 +1,10 @@
package hu.bbara.purefin.data.jellyfin.download
-import hu.bbara.purefin.data.DownloadMediaSourceResolver
-import hu.bbara.purefin.data.EpisodeDownloadSource
-import hu.bbara.purefin.data.MovieDownloadSource
-import hu.bbara.purefin.data.PlaybackMethod
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.DownloadMediaSourceResolver
+import hu.bbara.purefin.core.data.EpisodeDownloadSource
+import hu.bbara.purefin.core.data.MovieDownloadSource
+import hu.bbara.purefin.core.data.PlaybackMethod
+import hu.bbara.purefin.core.data.UserSessionRepository
import hu.bbara.purefin.data.converter.toEpisode
import hu.bbara.purefin.data.converter.toMovie
import hu.bbara.purefin.data.converter.toSeason
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/JellyfinPlaybackResolver.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/JellyfinPlaybackResolver.kt
index d5082722..e21b860b 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/JellyfinPlaybackResolver.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/JellyfinPlaybackResolver.kt
@@ -1,7 +1,7 @@
package hu.bbara.purefin.data.jellyfin.playback
import android.util.Log
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.UserSessionRepository
import hu.bbara.purefin.data.jellyfin.client.JellyfinApiClient
import java.util.UUID
import java.util.concurrent.ConcurrentHashMap
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackCacheKeys.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackCacheKeys.kt
index 63cf33b7..c401f115 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackCacheKeys.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackCacheKeys.kt
@@ -1,6 +1,6 @@
package hu.bbara.purefin.data.jellyfin.playback
-import hu.bbara.purefin.data.PlaybackMethod
+import hu.bbara.purefin.core.data.PlaybackMethod
fun playbackCustomCacheKey(
mediaId: String,
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecision.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecision.kt
index 265117df..a90177c1 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecision.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecision.kt
@@ -1,6 +1,6 @@
package hu.bbara.purefin.data.jellyfin.playback
-import hu.bbara.purefin.data.PlaybackReportContext
+import hu.bbara.purefin.core.data.PlaybackReportContext
import org.jellyfin.sdk.model.api.MediaSourceInfo
data class PlaybackDecision(
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecisionResolver.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecisionResolver.kt
index 9c3a60b7..e11ff79f 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecisionResolver.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecisionResolver.kt
@@ -1,7 +1,7 @@
package hu.bbara.purefin.data.jellyfin.playback
-import hu.bbara.purefin.data.PlaybackMethod
-import hu.bbara.purefin.data.PlaybackReportContext
+import hu.bbara.purefin.core.data.PlaybackMethod
+import hu.bbara.purefin.core.data.PlaybackReportContext
import org.jellyfin.sdk.model.api.MediaProtocol
import org.jellyfin.sdk.model.api.MediaSourceInfo
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackProfileModule.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackProfileModule.kt
index 572f98fe..330fb6de 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackProfileModule.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackProfileModule.kt
@@ -4,7 +4,7 @@ import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
-import hu.bbara.purefin.data.PlaybackProfileFamily
+import hu.bbara.purefin.core.data.PlaybackProfileFamily
import javax.inject.Singleton
@Module
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/JellyfinAuthenticationRepository.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/JellyfinAuthenticationRepository.kt
index da52b2a2..ab9ac332 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/JellyfinAuthenticationRepository.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/JellyfinAuthenticationRepository.kt
@@ -1,8 +1,8 @@
package hu.bbara.purefin.data.jellyfin.session
import android.util.Log
-import hu.bbara.purefin.data.AuthenticationRepository
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.AuthenticationRepository
+import hu.bbara.purefin.core.data.UserSessionRepository
import hu.bbara.purefin.data.jellyfin.client.JellyfinApiClient
import javax.inject.Inject
import javax.inject.Singleton
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/JellyfinSessionBootstrapper.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/JellyfinSessionBootstrapper.kt
index 3d728cdc..f3f36181 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/JellyfinSessionBootstrapper.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/JellyfinSessionBootstrapper.kt
@@ -1,6 +1,6 @@
package hu.bbara.purefin.data.jellyfin.session
-import hu.bbara.purefin.data.SessionBootstrapper
+import hu.bbara.purefin.core.data.SessionBootstrapper
import hu.bbara.purefin.data.jellyfin.client.JellyfinApiClient
import javax.inject.Inject
import javax.inject.Singleton
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSession.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSession.kt
index 8d3a7428..e7d51cd2 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSession.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSession.kt
@@ -1,7 +1,7 @@
package hu.bbara.purefin.data.jellyfin.session
import kotlinx.serialization.Serializable
-import hu.bbara.purefin.navigation.UuidSerializer
+import hu.bbara.purefin.core.navigation.UuidSerializer
import java.util.UUID
@Serializable
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSessionModule.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSessionModule.kt
index f7952a02..b3503dce 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSessionModule.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSessionModule.kt
@@ -10,7 +10,7 @@ import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.UserSessionRepository
import javax.inject.Singleton
@Module
diff --git a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSessionRepository.kt b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSessionRepository.kt
index 73b08f60..68ac7db7 100644
--- a/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSessionRepository.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/jellyfin/session/UserSessionRepository.kt
@@ -1,7 +1,7 @@
package hu.bbara.purefin.data.jellyfin.session
import androidx.datastore.core.DataStore
-import hu.bbara.purefin.data.UserSessionRepository
+import hu.bbara.purefin.core.data.UserSessionRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.first
diff --git a/data/src/main/java/hu/bbara/purefin/data/module/MediaRepositoryModule.kt b/data/src/main/java/hu/bbara/purefin/data/module/MediaRepositoryModule.kt
index f957377f..db869f22 100644
--- a/data/src/main/java/hu/bbara/purefin/data/module/MediaRepositoryModule.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/module/MediaRepositoryModule.kt
@@ -4,17 +4,17 @@ import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
-import hu.bbara.purefin.Offline
-import hu.bbara.purefin.Online
-import hu.bbara.purefin.data.HomeRepository
-import hu.bbara.purefin.data.LocalMediaRepository
-import hu.bbara.purefin.data.SearchManager
+import hu.bbara.purefin.core.Offline
+import hu.bbara.purefin.core.Online
+import hu.bbara.purefin.core.data.HomeRepository
+import hu.bbara.purefin.core.data.LocalMediaRepository
+import hu.bbara.purefin.core.data.SearchManager
import hu.bbara.purefin.data.catalog.InMemoryAppContentRepository
import hu.bbara.purefin.data.catalog.InMemoryLocalMediaRepository
import hu.bbara.purefin.data.catalog.OfflineLocalMediaRepository
import hu.bbara.purefin.data.jellyfin.JellyfinMediaMetadataUpdaterImpl
import hu.bbara.purefin.data.jellyfin.SearchManagerImpl
-import hu.bbara.purefin.jellyfin.JellyfinMediaMetadataUpdater
+import hu.bbara.purefin.core.jellyfin.JellyfinMediaMetadataUpdater
@Module
@InstallIn(SingletonComponent::class)
diff --git a/data/src/main/java/hu/bbara/purefin/data/offline/OfflineBindingsModule.kt b/data/src/main/java/hu/bbara/purefin/data/offline/OfflineBindingsModule.kt
index 3b6054e5..146c13d1 100644
--- a/data/src/main/java/hu/bbara/purefin/data/offline/OfflineBindingsModule.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/offline/OfflineBindingsModule.kt
@@ -4,8 +4,8 @@ import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
-import hu.bbara.purefin.data.OfflineCatalogStore
-import hu.bbara.purefin.data.SmartDownloadStore
+import hu.bbara.purefin.core.data.OfflineCatalogStore
+import hu.bbara.purefin.core.data.SmartDownloadStore
@Module
@InstallIn(SingletonComponent::class)
diff --git a/data/src/main/java/hu/bbara/purefin/data/offline/RoomOfflineCatalogStore.kt b/data/src/main/java/hu/bbara/purefin/data/offline/RoomOfflineCatalogStore.kt
index 56d54ae6..f2f87427 100644
--- a/data/src/main/java/hu/bbara/purefin/data/offline/RoomOfflineCatalogStore.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/offline/RoomOfflineCatalogStore.kt
@@ -1,6 +1,6 @@
package hu.bbara.purefin.data.offline
-import hu.bbara.purefin.data.OfflineCatalogStore
+import hu.bbara.purefin.core.data.OfflineCatalogStore
import hu.bbara.purefin.data.offline.room.offline.OfflineRoomMediaLocalDataSource
import hu.bbara.purefin.model.Episode
import hu.bbara.purefin.model.Movie
diff --git a/data/src/main/java/hu/bbara/purefin/data/offline/RoomSmartDownloadStore.kt b/data/src/main/java/hu/bbara/purefin/data/offline/RoomSmartDownloadStore.kt
index befe025b..5ad51c04 100644
--- a/data/src/main/java/hu/bbara/purefin/data/offline/RoomSmartDownloadStore.kt
+++ b/data/src/main/java/hu/bbara/purefin/data/offline/RoomSmartDownloadStore.kt
@@ -1,6 +1,6 @@
package hu.bbara.purefin.data.offline
-import hu.bbara.purefin.data.SmartDownloadStore
+import hu.bbara.purefin.core.data.SmartDownloadStore
import hu.bbara.purefin.data.offline.room.dao.SmartDownloadDao
import hu.bbara.purefin.data.offline.room.entity.SmartDownloadEntity
import java.util.UUID
diff --git a/data/src/test/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackCacheKeysTest.kt b/data/src/test/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackCacheKeysTest.kt
index 2ea16a1e..e58b9953 100644
--- a/data/src/test/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackCacheKeysTest.kt
+++ b/data/src/test/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackCacheKeysTest.kt
@@ -1,6 +1,6 @@
package hu.bbara.purefin.data.jellyfin.playback
-import hu.bbara.purefin.data.PlaybackMethod
+import hu.bbara.purefin.core.data.PlaybackMethod
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Test
diff --git a/data/src/test/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecisionResolverTest.kt b/data/src/test/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecisionResolverTest.kt
index 9f3915e0..c8da70ab 100644
--- a/data/src/test/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecisionResolverTest.kt
+++ b/data/src/test/java/hu/bbara/purefin/data/jellyfin/playback/PlaybackDecisionResolverTest.kt
@@ -1,6 +1,6 @@
package hu.bbara.purefin.data.jellyfin.playback
-import hu.bbara.purefin.data.PlaybackMethod
+import hu.bbara.purefin.core.data.PlaybackMethod
import org.jellyfin.sdk.model.api.MediaProtocol
import org.jellyfin.sdk.model.api.MediaSourceInfo
import org.jellyfin.sdk.model.api.MediaSourceType