diff --git a/.kotlin/sessions/kotlin-compiler-18110105652542382796.salive b/.kotlin/sessions/kotlin-compiler-4532920975854660223.salive similarity index 100% rename from .kotlin/sessions/kotlin-compiler-18110105652542382796.salive rename to .kotlin/sessions/kotlin-compiler-4532920975854660223.salive diff --git a/app/src/main/java/com/songlib/core/di/AppModule.kt b/app/src/main/java/com/songlib/core/di/AppModule.kt index d680fe1..2ebbace 100644 --- a/app/src/main/java/com/songlib/core/di/AppModule.kt +++ b/app/src/main/java/com/songlib/core/di/AppModule.kt @@ -16,35 +16,35 @@ class AppModule { @Singleton fun provideListingRepository( @ApplicationContext context: Context, - ): ListingRepository = ListingRepository(context) + ): ListingRepo = ListingRepo(context) @Provides @Singleton fun providePreferencesRepository( @ApplicationContext context: Context, - ): PreferencesRepository = PreferencesRepository(context) + ): PrefsRepo = PrefsRepo(context) @Provides @Singleton fun provideSongBookRepository( @ApplicationContext context: Context, apiService: ApiService, - ): SongBookRepository = SongBookRepository(context, apiService) + ): SongBookRepo = SongBookRepo(context, apiService) @Provides @Singleton fun provideSubscriptionRepository( - ): SubscriptionsRepository = SubscriptionsRepository() + ): SubsRepo = SubsRepo() @Provides @Singleton fun provideThemeRepository( - prefsRepo: PreferencesRepository, + prefsRepo: PrefsRepo, ): ThemeRepository = ThemeRepository(prefsRepo) @Provides @Singleton fun provideTrackingRepository( @ApplicationContext context: Context, - ): TrackingRepository = TrackingRepository(context) + ): TrackingRepo = TrackingRepo(context) } \ No newline at end of file diff --git a/app/src/main/java/com/songlib/domain/repository/ListingRepository.kt b/app/src/main/java/com/songlib/domain/repos/ListingRepo.kt similarity index 97% rename from app/src/main/java/com/songlib/domain/repository/ListingRepository.kt rename to app/src/main/java/com/songlib/domain/repos/ListingRepo.kt index bd278f9..b0bc184 100644 --- a/app/src/main/java/com/songlib/domain/repository/ListingRepository.kt +++ b/app/src/main/java/com/songlib/domain/repos/ListingRepo.kt @@ -9,7 +9,7 @@ import kotlinx.coroutines.* import javax.inject.* @Singleton -class ListingRepository @Inject constructor(context: Context) { +class ListingRepo @Inject constructor(context: Context) { private var listingDao: ListingDao? init { diff --git a/app/src/main/java/com/songlib/domain/repository/PreferencesRepository.kt b/app/src/main/java/com/songlib/domain/repos/PrefsRepo.kt similarity index 98% rename from app/src/main/java/com/songlib/domain/repository/PreferencesRepository.kt rename to app/src/main/java/com/songlib/domain/repos/PrefsRepo.kt index 71c8b44..005fb66 100644 --- a/app/src/main/java/com/songlib/domain/repository/PreferencesRepository.kt +++ b/app/src/main/java/com/songlib/domain/repos/PrefsRepo.kt @@ -7,7 +7,7 @@ import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.* @Singleton -class PreferencesRepository @Inject constructor( +class PrefsRepo @Inject constructor( @ApplicationContext context: Context ) { private val prefs = diff --git a/app/src/main/java/com/songlib/domain/repository/SongBookRepository.kt b/app/src/main/java/com/songlib/domain/repos/SongBookRepo.kt similarity index 98% rename from app/src/main/java/com/songlib/domain/repository/SongBookRepository.kt rename to app/src/main/java/com/songlib/domain/repos/SongBookRepo.kt index 7ec17aa..42d1e7a 100644 --- a/app/src/main/java/com/songlib/domain/repository/SongBookRepository.kt +++ b/app/src/main/java/com/songlib/domain/repos/SongBookRepo.kt @@ -10,7 +10,7 @@ import kotlinx.coroutines.flow.* import javax.inject.* @Singleton -class SongBookRepository @Inject constructor( +class SongBookRepo @Inject constructor( context: Context, private val apiService: ApiService, ) { diff --git a/app/src/main/java/com/songlib/domain/repository/SubscriptionsRepository.kt b/app/src/main/java/com/songlib/domain/repos/SubsRepo.kt similarity index 93% rename from app/src/main/java/com/songlib/domain/repository/SubscriptionsRepository.kt rename to app/src/main/java/com/songlib/domain/repos/SubsRepo.kt index e39ff06..ed4d31b 100644 --- a/app/src/main/java/com/songlib/domain/repository/SubscriptionsRepository.kt +++ b/app/src/main/java/com/songlib/domain/repos/SubsRepo.kt @@ -6,7 +6,7 @@ import com.songlib.core.utils.AppConstants import javax.inject.* @Singleton -class SubscriptionsRepository @Inject constructor() { +class SubsRepo @Inject constructor() { suspend fun isProUser(isOnline: Boolean, completion: (Boolean) -> Unit) { val fetchPolicy = if (isOnline) { CacheFetchPolicy.FETCH_CURRENT diff --git a/app/src/main/java/com/songlib/domain/repository/ThemeRepository.kt b/app/src/main/java/com/songlib/domain/repos/ThemeRepo.kt similarity index 98% rename from app/src/main/java/com/songlib/domain/repository/ThemeRepository.kt rename to app/src/main/java/com/songlib/domain/repos/ThemeRepo.kt index d266d63..ff6ee52 100644 --- a/app/src/main/java/com/songlib/domain/repository/ThemeRepository.kt +++ b/app/src/main/java/com/songlib/domain/repos/ThemeRepo.kt @@ -14,7 +14,7 @@ enum class ThemeMode { SYSTEM, LIGHT, DARK } @HiltViewModel class ThemeRepository @Inject constructor( - private val prefs: PreferencesRepository + private val prefs: PrefsRepo ) : ViewModel() { var selectedTheme by mutableStateOf(prefs.appThemeMode) private set diff --git a/app/src/main/java/com/songlib/domain/repository/TrackingRepository.kt b/app/src/main/java/com/songlib/domain/repos/TrackingRepo.kt similarity index 97% rename from app/src/main/java/com/songlib/domain/repository/TrackingRepository.kt rename to app/src/main/java/com/songlib/domain/repos/TrackingRepo.kt index 4005f50..42b7838 100644 --- a/app/src/main/java/com/songlib/domain/repository/TrackingRepository.kt +++ b/app/src/main/java/com/songlib/domain/repos/TrackingRepo.kt @@ -8,7 +8,7 @@ import kotlinx.coroutines.* import javax.inject.* @Singleton -class TrackingRepository @Inject constructor( +class TrackingRepo @Inject constructor( context: Context, ) { private var historyDao: HistoryDao? diff --git a/app/src/main/java/com/songlib/presentation/viewmodels/HomeViewModel.kt b/app/src/main/java/com/songlib/presentation/home/HomeViewModel.kt similarity index 88% rename from app/src/main/java/com/songlib/presentation/viewmodels/HomeViewModel.kt rename to app/src/main/java/com/songlib/presentation/home/HomeViewModel.kt index 7d2a43c..664df5a 100644 --- a/app/src/main/java/com/songlib/presentation/viewmodels/HomeViewModel.kt +++ b/app/src/main/java/com/songlib/presentation/home/HomeViewModel.kt @@ -1,23 +1,31 @@ -package com.songlib.presentation.viewmodels +package com.songlib.presentation.home import android.util.Log -import androidx.lifecycle.* +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope import com.songlib.core.utils.SongUtils -import com.songlib.data.models.* +import com.songlib.data.models.Book +import com.songlib.data.models.ListingUi +import com.songlib.data.models.Song import com.songlib.domain.entity.UiState -import com.songlib.domain.repository.* -import com.songlib.presentation.screens.home.components.HomeNavItem +import com.songlib.domain.repository.ListingRepo +import com.songlib.domain.repository.PrefsRepo +import com.songlib.domain.repository.SongBookRepo +import com.songlib.presentation.home.components.HomeNavItem import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.* -import kotlinx.coroutines.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject -import kotlin.collections.* @HiltViewModel class HomeViewModel @Inject constructor( - private val prefsRepo: PreferencesRepository, - private val songbkRepo: SongBookRepository, - private val listRepo: ListingRepository, + private val prefsRepo: PrefsRepo, + private val songbkRepo: SongBookRepo, + private val listRepo: ListingRepo, ) : ViewModel() { private val _uiState: MutableStateFlow = MutableStateFlow(UiState.Loading) val uiState: StateFlow = _uiState.asStateFlow() @@ -196,4 +204,4 @@ class HomeViewModel @Inject constructor( } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/songlib/presentation/screens/home/components/BottomNavBar.kt b/app/src/main/java/com/songlib/presentation/home/components/BottomNavBar.kt similarity index 96% rename from app/src/main/java/com/songlib/presentation/screens/home/components/BottomNavBar.kt rename to app/src/main/java/com/songlib/presentation/home/components/BottomNavBar.kt index 1aa2588..8ef0226 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/components/BottomNavBar.kt +++ b/app/src/main/java/com/songlib/presentation/home/components/BottomNavBar.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home.components +package com.songlib.presentation.home.components //noinspection UsingMaterialAndMaterial3Libraries import androidx.compose.material.* diff --git a/app/src/main/java/com/songlib/presentation/screens/home/components/ChooseListingSheet.kt b/app/src/main/java/com/songlib/presentation/home/components/ChooseListingSheet.kt similarity index 98% rename from app/src/main/java/com/songlib/presentation/screens/home/components/ChooseListingSheet.kt rename to app/src/main/java/com/songlib/presentation/home/components/ChooseListingSheet.kt index 9e78991..317a532 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/components/ChooseListingSheet.kt +++ b/app/src/main/java/com/songlib/presentation/home/components/ChooseListingSheet.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home.components +package com.songlib.presentation.home.components import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* diff --git a/app/src/main/java/com/songlib/presentation/screens/home/components/DialPad.kt b/app/src/main/java/com/songlib/presentation/home/components/DialPad.kt similarity index 98% rename from app/src/main/java/com/songlib/presentation/screens/home/components/DialPad.kt rename to app/src/main/java/com/songlib/presentation/home/components/DialPad.kt index a739a49..5801e54 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/components/DialPad.kt +++ b/app/src/main/java/com/songlib/presentation/home/components/DialPad.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home.components +package com.songlib.presentation.home.components import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape diff --git a/app/src/main/java/com/songlib/presentation/screens/home/components/HomeAppBar.kt b/app/src/main/java/com/songlib/presentation/home/components/HomeAppBar.kt similarity index 93% rename from app/src/main/java/com/songlib/presentation/screens/home/components/HomeAppBar.kt rename to app/src/main/java/com/songlib/presentation/home/components/HomeAppBar.kt index ffbe25e..cdedd49 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/components/HomeAppBar.kt +++ b/app/src/main/java/com/songlib/presentation/home/components/HomeAppBar.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home.components +package com.songlib.presentation.home.components import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.* @@ -6,10 +6,10 @@ import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.platform.LocalContext import com.songlib.data.models.Song -import com.songlib.domain.repository.PreferencesRepository +import com.songlib.domain.repository.PrefsRepo import com.songlib.presentation.components.action.AppTopBar import com.songlib.presentation.components.general.QuickFormDialog -import com.songlib.presentation.viewmodels.HomeViewModel +import com.songlib.presentation.home.HomeViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -22,7 +22,7 @@ fun HomeSearchAppBar( onClearSelection: () -> Unit, ) { val context = LocalContext.current - val prefs = remember { PreferencesRepository(context) } + val prefs = remember { PrefsRepo(context) } var showAddDialog by remember { mutableStateOf(false) } var showListingSheet by remember { mutableStateOf(false) } val isProUser by viewModel.isProUser.collectAsState() diff --git a/app/src/main/java/com/songlib/presentation/screens/home/components/ListingsList.kt b/app/src/main/java/com/songlib/presentation/home/components/ListingsList.kt similarity index 97% rename from app/src/main/java/com/songlib/presentation/screens/home/components/ListingsList.kt rename to app/src/main/java/com/songlib/presentation/home/components/ListingsList.kt index 5a35d13..97b936e 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/components/ListingsList.kt +++ b/app/src/main/java/com/songlib/presentation/home/components/ListingsList.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home.components +package com.songlib.presentation.home.components import androidx.compose.foundation.* import androidx.compose.foundation.layout.* diff --git a/app/src/main/java/com/songlib/presentation/screens/home/components/SongsList.kt b/app/src/main/java/com/songlib/presentation/home/components/SongsList.kt similarity index 96% rename from app/src/main/java/com/songlib/presentation/screens/home/components/SongsList.kt rename to app/src/main/java/com/songlib/presentation/home/components/SongsList.kt index 31732ff..3d2c54f 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/components/SongsList.kt +++ b/app/src/main/java/com/songlib/presentation/home/components/SongsList.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home.components +package com.songlib.presentation.home.components import androidx.compose.foundation.* import androidx.compose.foundation.layout.* @@ -15,7 +15,7 @@ import androidx.navigation.NavHostController import com.songlib.data.models.Song import com.songlib.presentation.components.listitems.* import com.songlib.presentation.navigation.Routes -import com.songlib.presentation.viewmodels.HomeViewModel +import com.songlib.presentation.home.HomeViewModel @Composable fun SongsList( diff --git a/app/src/main/java/com/songlib/presentation/screens/home/HomeScreen.kt b/app/src/main/java/com/songlib/presentation/home/view/HomeScreen.kt similarity index 90% rename from app/src/main/java/com/songlib/presentation/screens/home/HomeScreen.kt rename to app/src/main/java/com/songlib/presentation/home/view/HomeScreen.kt index 21735d4..5fff01c 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/HomeScreen.kt +++ b/app/src/main/java/com/songlib/presentation/home/view/HomeScreen.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home +package com.songlib.presentation.home.view import androidx.compose.foundation.layout.* //noinspection UsingMaterialAndMaterial3Libraries @@ -8,16 +8,16 @@ import androidx.compose.material.icons.filled.EditNote import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.* -import androidx.compose.ui.window.* import androidx.navigation.NavHostController -import com.revenuecat.purchases.ui.revenuecatui.* -import com.revenuecat.purchases.ui.revenuecatui.customercenter.CustomerCenter import com.songlib.domain.entity.UiState import com.songlib.presentation.components.indicators.* -import com.songlib.presentation.screens.home.tabs.* -import com.songlib.presentation.screens.home.components.* -import com.songlib.presentation.viewmodels.HomeViewModel +import com.songlib.presentation.home.HomeViewModel import com.songlib.presentation.components.indicators.ErrorState +import com.songlib.presentation.home.components.BottomNavBar +import com.songlib.presentation.home.components.HomeNavItem +import com.songlib.presentation.home.view.tabs.HomeLikes +import com.songlib.presentation.home.view.tabs.HomeListings +import com.songlib.presentation.home.view.tabs.HomeSearch import com.songlib.presentation.navigation.Routes @OptIn(ExperimentalMaterialApi::class) diff --git a/app/src/main/java/com/songlib/presentation/screens/home/tabs/HomeLikes.kt b/app/src/main/java/com/songlib/presentation/home/view/tabs/HomeLikes.kt similarity index 95% rename from app/src/main/java/com/songlib/presentation/screens/home/tabs/HomeLikes.kt rename to app/src/main/java/com/songlib/presentation/home/view/tabs/HomeLikes.kt index 61a5321..f8f8bd7 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/tabs/HomeLikes.kt +++ b/app/src/main/java/com/songlib/presentation/home/view/tabs/HomeLikes.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home.tabs +package com.songlib.presentation.home.view.tabs import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -11,9 +11,9 @@ import com.songlib.data.models.Song import com.songlib.domain.entity.UiState import com.songlib.presentation.components.action.AppTopBar import com.songlib.presentation.components.indicators.* +import com.songlib.presentation.home.components.SongsList import com.songlib.presentation.navigation.Routes -import com.songlib.presentation.screens.home.components.* -import com.songlib.presentation.viewmodels.HomeViewModel +import com.songlib.presentation.home.HomeViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/app/src/main/java/com/songlib/presentation/screens/home/tabs/HomeListings.kt b/app/src/main/java/com/songlib/presentation/home/view/tabs/HomeListings.kt similarity index 97% rename from app/src/main/java/com/songlib/presentation/screens/home/tabs/HomeListings.kt rename to app/src/main/java/com/songlib/presentation/home/view/tabs/HomeListings.kt index c301a00..4fb5824 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/tabs/HomeListings.kt +++ b/app/src/main/java/com/songlib/presentation/home/view/tabs/HomeListings.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home.tabs +package com.songlib.presentation.home.view.tabs import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -9,14 +9,14 @@ import androidx.compose.ui.* import androidx.compose.ui.window.* import androidx.navigation.NavHostController import com.revenuecat.purchases.ui.revenuecatui.* -import com.songlib.presentation.screens.home.components.ListingsList +import com.songlib.presentation.home.components.ListingsList import com.songlib.data.models.ListingUi import com.songlib.domain.entity.UiState import com.songlib.presentation.components.action.* import com.songlib.presentation.components.general.* import com.songlib.presentation.components.indicators.* import com.songlib.presentation.navigation.Routes -import com.songlib.presentation.viewmodels.HomeViewModel +import com.songlib.presentation.home.HomeViewModel import kotlin.collections.plus @OptIn(ExperimentalMaterial3Api::class) diff --git a/app/src/main/java/com/songlib/presentation/screens/home/tabs/HomeSearch.kt b/app/src/main/java/com/songlib/presentation/home/view/tabs/HomeSearch.kt similarity index 94% rename from app/src/main/java/com/songlib/presentation/screens/home/tabs/HomeSearch.kt rename to app/src/main/java/com/songlib/presentation/home/view/tabs/HomeSearch.kt index d5c0a62..65417bd 100644 --- a/app/src/main/java/com/songlib/presentation/screens/home/tabs/HomeSearch.kt +++ b/app/src/main/java/com/songlib/presentation/home/view/tabs/HomeSearch.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.home.tabs +package com.songlib.presentation.home.view.tabs import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -11,7 +11,7 @@ import androidx.navigation.NavHostController import com.songlib.domain.entity.UiState import com.songlib.presentation.components.action.* import com.songlib.presentation.navigation.Routes -import com.songlib.presentation.viewmodels.HomeViewModel +import com.songlib.presentation.home.HomeViewModel import androidx.compose.ui.Modifier import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties @@ -19,7 +19,9 @@ import com.revenuecat.purchases.ui.revenuecatui.Paywall import com.revenuecat.purchases.ui.revenuecatui.PaywallOptions import com.songlib.data.models.Song import com.songlib.presentation.components.indicators.EmptyState -import com.songlib.presentation.screens.home.components.* +import com.songlib.presentation.home.components.DialPad +import com.songlib.presentation.home.components.HomeSearchAppBar +import com.songlib.presentation.home.components.SongsList @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/app/src/main/java/com/songlib/presentation/viewmodels/ListingViewModel.kt b/app/src/main/java/com/songlib/presentation/listing/ListingViewModel.kt similarity index 80% rename from app/src/main/java/com/songlib/presentation/viewmodels/ListingViewModel.kt rename to app/src/main/java/com/songlib/presentation/listing/ListingViewModel.kt index 516c6d8..5bff34a 100644 --- a/app/src/main/java/com/songlib/presentation/viewmodels/ListingViewModel.kt +++ b/app/src/main/java/com/songlib/presentation/listing/ListingViewModel.kt @@ -1,20 +1,25 @@ -package com.songlib.presentation.viewmodels +package com.songlib.presentation.listing import android.util.Log -import androidx.lifecycle.* -import com.songlib.data.models.* -import com.songlib.domain.entity.* -import com.songlib.domain.repository.* +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.songlib.data.models.ListingUi +import com.songlib.data.models.Song +import com.songlib.domain.entity.UiState +import com.songlib.domain.repository.ListingRepo +import com.songlib.domain.repository.SongBookRepo import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.* -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.launch import javax.inject.Inject -import kotlin.collections.forEach @HiltViewModel class ListingViewModel @Inject constructor( - private val songbkRepo: SongBookRepository, - private val listRepo: ListingRepository, + private val songbkRepo: SongBookRepo, + private val listRepo: ListingRepo, ) : ViewModel() { private val _uiState: MutableStateFlow = MutableStateFlow(UiState.Loading) val uiState: StateFlow = _uiState.asStateFlow() @@ -86,4 +91,4 @@ class ListingViewModel @Inject constructor( } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/songlib/presentation/screens/listing/ListedSongs.kt b/app/src/main/java/com/songlib/presentation/listing/view/ListedSongs.kt similarity index 97% rename from app/src/main/java/com/songlib/presentation/screens/listing/ListedSongs.kt rename to app/src/main/java/com/songlib/presentation/listing/view/ListedSongs.kt index e9aae50..99c1576 100644 --- a/app/src/main/java/com/songlib/presentation/screens/listing/ListedSongs.kt +++ b/app/src/main/java/com/songlib/presentation/listing/view/ListedSongs.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.listing +package com.songlib.presentation.listing.view import androidx.compose.foundation.* import androidx.compose.foundation.layout.* diff --git a/app/src/main/java/com/songlib/presentation/screens/listing/ListingScreen.kt b/app/src/main/java/com/songlib/presentation/listing/view/ListingScreen.kt similarity index 97% rename from app/src/main/java/com/songlib/presentation/screens/listing/ListingScreen.kt rename to app/src/main/java/com/songlib/presentation/listing/view/ListingScreen.kt index 16d3e91..a4756d2 100644 --- a/app/src/main/java/com/songlib/presentation/screens/listing/ListingScreen.kt +++ b/app/src/main/java/com/songlib/presentation/listing/view/ListingScreen.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.listing +package com.songlib.presentation.listing.view import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -13,7 +13,7 @@ import com.songlib.domain.entity.UiState import com.songlib.presentation.components.action.AppTopBar import com.songlib.presentation.components.general.* import com.songlib.presentation.components.indicators.* -import com.songlib.presentation.viewmodels.ListingViewModel +import com.songlib.presentation.listing.ListingViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/app/src/main/java/com/songlib/presentation/navigation/AppNavHost.kt b/app/src/main/java/com/songlib/presentation/navigation/AppNavHost.kt index a080851..e0d9161 100644 --- a/app/src/main/java/com/songlib/presentation/navigation/AppNavHost.kt +++ b/app/src/main/java/com/songlib/presentation/navigation/AppNavHost.kt @@ -8,14 +8,20 @@ import androidx.navigation.* import androidx.navigation.compose.* import com.songlib.data.models.* import com.songlib.domain.repository.ThemeRepository -import com.songlib.presentation.screens.home.HomeScreen -import com.songlib.presentation.screens.settings.SettingsScreen -import com.songlib.presentation.screens.presenter.PresenterScreen -import com.songlib.presentation.screens.selection.step1.Step1Screen -import com.songlib.presentation.screens.selection.step2.Step2Screen -import com.songlib.presentation.screens.listing.ListingScreen -import com.songlib.presentation.screens.splash.SplashScreen -import com.songlib.presentation.viewmodels.* +import com.songlib.presentation.home.HomeViewModel +import com.songlib.presentation.home.view.HomeScreen +import com.songlib.presentation.listing.ListingViewModel +import com.songlib.presentation.listing.view.ListingScreen +import com.songlib.presentation.presenter.PresenterViewModel +import com.songlib.presentation.presenter.view.PresenterScreen +import com.songlib.presentation.selection.step1.Step1ViewModel +import com.songlib.presentation.selection.step1.view.Step1Screen +import com.songlib.presentation.selection.step2.Step2ViewModel +import com.songlib.presentation.selection.step2.view.Step2Screen +import com.songlib.presentation.settings.SettingsViewModel +import com.songlib.presentation.settings.view.SettingsScreen +import com.songlib.presentation.splash.SplashViewModel +import com.songlib.presentation.splash.view.SplashScreen @OptIn(ExperimentalComposeUiApi::class, ExperimentalFoundationApi::class) @Composable diff --git a/app/src/main/java/com/songlib/presentation/viewmodels/PresenterViewModel.kt b/app/src/main/java/com/songlib/presentation/presenter/PresenterViewModel.kt similarity index 78% rename from app/src/main/java/com/songlib/presentation/viewmodels/PresenterViewModel.kt rename to app/src/main/java/com/songlib/presentation/presenter/PresenterViewModel.kt index 7ce13d1..0de2f65 100644 --- a/app/src/main/java/com/songlib/presentation/viewmodels/PresenterViewModel.kt +++ b/app/src/main/java/com/songlib/presentation/presenter/PresenterViewModel.kt @@ -1,19 +1,24 @@ -package com.songlib.presentation.viewmodels - -import androidx.lifecycle.* -import com.songlib.core.utils.* -import com.songlib.data.models.* -import com.songlib.domain.entity.* -import com.songlib.domain.repository.* +package com.songlib.presentation.presenter + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.songlib.core.utils.getSongVerses +import com.songlib.core.utils.songItemTitle +import com.songlib.data.models.Song +import com.songlib.domain.entity.UiState +import com.songlib.domain.repository.PrefsRepo +import com.songlib.domain.repository.SongBookRepo import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.* -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel class PresenterViewModel @Inject constructor( - private val songbkRepo: SongBookRepository, - private val prefsRepo: PreferencesRepository, + private val songbkRepo: SongBookRepo, + private val prefsRepo: PrefsRepo, ) : ViewModel() { private val _uiState: MutableStateFlow = MutableStateFlow(UiState.Loading) val uiState: StateFlow = _uiState.asStateFlow() @@ -81,4 +86,4 @@ class PresenterViewModel @Inject constructor( } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/songlib/presentation/screens/presenter/components/PresenterIndicators.kt b/app/src/main/java/com/songlib/presentation/presenter/components/PresenterIndicators.kt similarity index 97% rename from app/src/main/java/com/songlib/presentation/screens/presenter/components/PresenterIndicators.kt rename to app/src/main/java/com/songlib/presentation/presenter/components/PresenterIndicators.kt index f16161a..459c7cd 100644 --- a/app/src/main/java/com/songlib/presentation/screens/presenter/components/PresenterIndicators.kt +++ b/app/src/main/java/com/songlib/presentation/presenter/components/PresenterIndicators.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.presenter.components +package com.songlib.presentation.presenter.components import androidx.compose.foundation.layout.* import androidx.compose.material3.* diff --git a/app/src/main/java/com/songlib/presentation/screens/presenter/components/PresenterTabs.kt b/app/src/main/java/com/songlib/presentation/presenter/components/PresenterTabs.kt similarity index 97% rename from app/src/main/java/com/songlib/presentation/screens/presenter/components/PresenterTabs.kt rename to app/src/main/java/com/songlib/presentation/presenter/components/PresenterTabs.kt index 256834a..c1df837 100644 --- a/app/src/main/java/com/songlib/presentation/screens/presenter/components/PresenterTabs.kt +++ b/app/src/main/java/com/songlib/presentation/presenter/components/PresenterTabs.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.presenter.components +package com.songlib.presentation.presenter.components import androidx.compose.foundation.layout.* import androidx.compose.material3.* diff --git a/app/src/main/java/com/songlib/presentation/screens/presenter/PresenterScreen.kt b/app/src/main/java/com/songlib/presentation/presenter/view/PresenterScreen.kt similarity index 95% rename from app/src/main/java/com/songlib/presentation/screens/presenter/PresenterScreen.kt rename to app/src/main/java/com/songlib/presentation/presenter/view/PresenterScreen.kt index 42fa62b..c159c37 100644 --- a/app/src/main/java/com/songlib/presentation/screens/presenter/PresenterScreen.kt +++ b/app/src/main/java/com/songlib/presentation/presenter/view/PresenterScreen.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.presenter +package com.songlib.presentation.presenter.view import android.widget.Toast import androidx.compose.foundation.layout.* @@ -17,8 +17,8 @@ import com.songlib.data.sample.* import com.songlib.domain.entity.UiState import com.songlib.presentation.components.action.AppTopBar import com.songlib.presentation.components.indicators.* -import com.songlib.presentation.screens.presenter.components.* -import com.songlib.presentation.viewmodels.PresenterViewModel +import com.songlib.presentation.presenter.PresenterViewModel +import com.songlib.presentation.presenter.components.* @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/app/src/main/java/com/songlib/presentation/viewmodels/Step1ViewModel.kt b/app/src/main/java/com/songlib/presentation/selection/step1/Step1ViewModel.kt similarity index 86% rename from app/src/main/java/com/songlib/presentation/viewmodels/Step1ViewModel.kt rename to app/src/main/java/com/songlib/presentation/selection/step1/Step1ViewModel.kt index 85124d9..9badc9d 100644 --- a/app/src/main/java/com/songlib/presentation/viewmodels/Step1ViewModel.kt +++ b/app/src/main/java/com/songlib/presentation/selection/step1/Step1ViewModel.kt @@ -1,21 +1,29 @@ -package com.songlib.presentation.viewmodels +package com.songlib.presentation.selection.step1 import android.util.Log -import androidx.lifecycle.* -import com.songlib.data.models.* -import com.songlib.domain.entity.* -import com.songlib.domain.repository.* +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.songlib.data.models.Book +import com.songlib.domain.entity.Selectable +import com.songlib.domain.entity.UiState +import com.songlib.domain.repository.PrefsRepo +import com.songlib.domain.repository.SongBookRepo +import com.songlib.domain.repository.SubsRepo import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.* -import kotlinx.coroutines.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.launch import retrofit2.HttpException import javax.inject.Inject @HiltViewModel class Step1ViewModel @Inject constructor( - private val prefsRepo: PreferencesRepository, - private val subsRepo: SubscriptionsRepository, - private val songbkRepo: SongBookRepository, + private val prefsRepo: PrefsRepo, + private val subsRepo: SubsRepo, + private val songbkRepo: SongBookRepo, ) : ViewModel() { private val _uiState = MutableStateFlow(UiState.Loading) val uiState: StateFlow = _uiState.asStateFlow() @@ -142,4 +150,4 @@ class Step1ViewModel @Inject constructor( _pendingBookSelection.value = null } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/songlib/presentation/screens/selection/step1/components/Step1Fab.kt b/app/src/main/java/com/songlib/presentation/selection/step1/components/Step1Fab.kt similarity index 92% rename from app/src/main/java/com/songlib/presentation/screens/selection/step1/components/Step1Fab.kt rename to app/src/main/java/com/songlib/presentation/selection/step1/components/Step1Fab.kt index 9f7d170..0b05896 100644 --- a/app/src/main/java/com/songlib/presentation/screens/selection/step1/components/Step1Fab.kt +++ b/app/src/main/java/com/songlib/presentation/selection/step1/components/Step1Fab.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.selection.step1.components +package com.songlib.presentation.selection.step1.components import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.* @@ -6,7 +6,7 @@ import androidx.compose.material3.* import androidx.compose.runtime.* import com.songlib.data.models.Book import com.songlib.presentation.components.general.* -import com.songlib.presentation.viewmodels.Step1ViewModel +import com.songlib.presentation.selection.step1.Step1ViewModel @Composable fun Step1Fab( diff --git a/app/src/main/java/com/songlib/presentation/screens/selection/step1/Step1Content.kt b/app/src/main/java/com/songlib/presentation/selection/step1/view/Step1Content.kt similarity index 96% rename from app/src/main/java/com/songlib/presentation/screens/selection/step1/Step1Content.kt rename to app/src/main/java/com/songlib/presentation/selection/step1/view/Step1Content.kt index aa36cf3..1017553 100644 --- a/app/src/main/java/com/songlib/presentation/screens/selection/step1/Step1Content.kt +++ b/app/src/main/java/com/songlib/presentation/selection/step1/view/Step1Content.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.selection.step1 +package com.songlib.presentation.selection.step1.view import androidx.compose.foundation.background import androidx.compose.foundation.layout.* diff --git a/app/src/main/java/com/songlib/presentation/screens/selection/step1/Step1Screen.kt b/app/src/main/java/com/songlib/presentation/selection/step1/view/Step1Screen.kt similarity index 96% rename from app/src/main/java/com/songlib/presentation/screens/selection/step1/Step1Screen.kt rename to app/src/main/java/com/songlib/presentation/selection/step1/view/Step1Screen.kt index 9d7d80d..62bd4b0 100644 --- a/app/src/main/java/com/songlib/presentation/screens/selection/step1/Step1Screen.kt +++ b/app/src/main/java/com/songlib/presentation/selection/step1/view/Step1Screen.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.selection.step1 +package com.songlib.presentation.selection.step1.view import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -17,8 +17,8 @@ import com.songlib.domain.repository.* import com.songlib.presentation.components.action.AppTopBar import com.songlib.presentation.components.indicators.* import com.songlib.presentation.navigation.Routes -import com.songlib.presentation.screens.selection.step1.components.Step1Fab -import com.songlib.presentation.viewmodels.Step1ViewModel +import com.songlib.presentation.selection.step1.Step1ViewModel +import com.songlib.presentation.selection.step1.components.Step1Fab @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/app/src/main/java/com/songlib/presentation/viewmodels/Step2ViewModel.kt b/app/src/main/java/com/songlib/presentation/selection/step2/Step2ViewModel.kt similarity index 84% rename from app/src/main/java/com/songlib/presentation/viewmodels/Step2ViewModel.kt rename to app/src/main/java/com/songlib/presentation/selection/step2/Step2ViewModel.kt index 263203c..e4d88f2 100644 --- a/app/src/main/java/com/songlib/presentation/viewmodels/Step2ViewModel.kt +++ b/app/src/main/java/com/songlib/presentation/selection/step2/Step2ViewModel.kt @@ -1,20 +1,26 @@ -package com.songlib.presentation.viewmodels +package com.songlib.presentation.selection.step2 import android.util.Log -import androidx.lifecycle.* -import com.songlib.data.models.* -import com.songlib.domain.entity.* -import com.songlib.domain.repository.* +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.songlib.data.models.Song +import com.songlib.domain.entity.UiState +import com.songlib.domain.repository.PrefsRepo +import com.songlib.domain.repository.SongBookRepo import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.* -import kotlinx.coroutines.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.launch import retrofit2.HttpException import javax.inject.Inject @HiltViewModel class Step2ViewModel @Inject constructor( - private val prefsRepo: PreferencesRepository, - private val songbkRepo: SongBookRepository, + private val prefsRepo: PrefsRepo, + private val songbkRepo: SongBookRepo, ) : ViewModel() { private val _uiState: MutableStateFlow = MutableStateFlow(UiState.Loading) val uiState: StateFlow = _uiState.asStateFlow() @@ -94,4 +100,4 @@ class Step2ViewModel @Inject constructor( } } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/songlib/presentation/screens/selection/step2/Step2Screen.kt b/app/src/main/java/com/songlib/presentation/selection/step2/view/Step2Screen.kt similarity index 94% rename from app/src/main/java/com/songlib/presentation/screens/selection/step2/Step2Screen.kt rename to app/src/main/java/com/songlib/presentation/selection/step2/view/Step2Screen.kt index eede92f..4e07020 100644 --- a/app/src/main/java/com/songlib/presentation/screens/selection/step2/Step2Screen.kt +++ b/app/src/main/java/com/songlib/presentation/selection/step2/view/Step2Screen.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.selection.step2 +package com.songlib.presentation.selection.step2.view import androidx.compose.foundation.background import androidx.compose.foundation.layout.* @@ -10,7 +10,7 @@ import androidx.navigation.NavHostController import com.songlib.domain.entity.UiState import com.songlib.presentation.components.indicators.* import com.songlib.presentation.navigation.Routes -import com.songlib.presentation.viewmodels.Step2ViewModel +import com.songlib.presentation.selection.step2.Step2ViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/app/src/main/java/com/songlib/presentation/viewmodels/SettingsViewModel.kt b/app/src/main/java/com/songlib/presentation/settings/SettingsViewModel.kt similarity index 84% rename from app/src/main/java/com/songlib/presentation/viewmodels/SettingsViewModel.kt rename to app/src/main/java/com/songlib/presentation/settings/SettingsViewModel.kt index 4f57de0..ce2c6ef 100644 --- a/app/src/main/java/com/songlib/presentation/viewmodels/SettingsViewModel.kt +++ b/app/src/main/java/com/songlib/presentation/settings/SettingsViewModel.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.viewmodels +package com.songlib.presentation.settings import androidx.compose.runtime.* import androidx.lifecycle.ViewModel @@ -10,9 +10,9 @@ import javax.inject.Inject @HiltViewModel class SettingsViewModel @Inject constructor( - private val prefsRepo: PreferencesRepository, - private val songbkRepo: SongBookRepository, - private val listRepo: ListingRepository, + private val prefsRepo: PrefsRepo, + private val songbkRepo: SongBookRepo, + private val listRepo: ListingRepo, ) : ViewModel() { var horizontalSlides by mutableStateOf(prefsRepo.horizontalSlides) @@ -37,4 +37,4 @@ class SettingsViewModel @Inject constructor( prefsRepo.selectedBooks = "" } } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/songlib/presentation/screens/settings/components/SettingsDialogs.kt b/app/src/main/java/com/songlib/presentation/settings/components/SettingsDialogs.kt similarity index 95% rename from app/src/main/java/com/songlib/presentation/screens/settings/components/SettingsDialogs.kt rename to app/src/main/java/com/songlib/presentation/settings/components/SettingsDialogs.kt index 7d339a5..78fedd7 100644 --- a/app/src/main/java/com/songlib/presentation/screens/settings/components/SettingsDialogs.kt +++ b/app/src/main/java/com/songlib/presentation/settings/components/SettingsDialogs.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.settings.components +package com.songlib.presentation.settings.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.fillMaxWidth diff --git a/app/src/main/java/com/songlib/presentation/screens/settings/SettingsScreen.kt b/app/src/main/java/com/songlib/presentation/settings/view/SettingsScreen.kt similarity index 94% rename from app/src/main/java/com/songlib/presentation/screens/settings/SettingsScreen.kt rename to app/src/main/java/com/songlib/presentation/settings/view/SettingsScreen.kt index 718fc69..cdacf8d 100644 --- a/app/src/main/java/com/songlib/presentation/screens/settings/SettingsScreen.kt +++ b/app/src/main/java/com/songlib/presentation/settings/view/SettingsScreen.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.settings +package com.songlib.presentation.settings.view import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -13,8 +13,9 @@ import com.songlib.domain.repository.* import com.songlib.domain.repository.appThemeName import com.songlib.presentation.components.action.AppTopBar import com.songlib.presentation.navigation.Routes -import com.songlib.presentation.screens.settings.components.* -import com.songlib.presentation.viewmodels.SettingsViewModel +import com.songlib.presentation.settings.SettingsViewModel +import com.songlib.presentation.settings.components.ConfirmResetDialog +import com.songlib.presentation.settings.components.SettingsSectionTitle @Composable fun SettingsScreen( diff --git a/app/src/main/java/com/songlib/presentation/viewmodels/SplashViewModel.kt b/app/src/main/java/com/songlib/presentation/splash/SplashViewModel.kt similarity index 60% rename from app/src/main/java/com/songlib/presentation/viewmodels/SplashViewModel.kt rename to app/src/main/java/com/songlib/presentation/splash/SplashViewModel.kt index 4063856..7e1cd2c 100644 --- a/app/src/main/java/com/songlib/presentation/viewmodels/SplashViewModel.kt +++ b/app/src/main/java/com/songlib/presentation/splash/SplashViewModel.kt @@ -1,23 +1,19 @@ -package com.songlib.presentation.viewmodels +package com.songlib.presentation.splash import android.content.Context import androidx.lifecycle.* import com.songlib.core.helpers.NetworkUtils import com.songlib.domain.repository.* -import com.songlib.presentation.navigation.Routes import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.* -import kotlinx.coroutines.* +import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel class SplashViewModel @Inject constructor( - private val prefsRepo: PreferencesRepository, - private val subsRepo: SubscriptionsRepository, + private val prefsRepo: PrefsRepo, + private val subsRepo: SubsRepo, ) : ViewModel() { - private val _nextRoute = MutableStateFlow(Routes.SPLASH) - val nextRoute: StateFlow = _nextRoute.asStateFlow() - private val _isLoading = MutableStateFlow(true) val isLoading: StateFlow = _isLoading.asStateFlow() @@ -29,9 +25,9 @@ class SplashViewModel @Inject constructor( } else { checkSubscriptionAndTime(false) } - determineNextRoute() + _isLoading.value = false } catch (e: Exception) { - determineNextRoute() + _isLoading.value = false } finally { _isLoading.value = false } @@ -46,13 +42,4 @@ class SplashViewModel @Inject constructor( } prefsRepo.updateAppOpenTime() } - - private fun determineNextRoute() { - _nextRoute.value = when { - prefsRepo.selectAfresh -> Routes.STEP_1 - prefsRepo.isDataSelected && prefsRepo.isDataLoaded -> Routes.HOME - prefsRepo.isDataSelected && !prefsRepo.isDataLoaded -> Routes.STEP_2 - else -> Routes.HOME - } - } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/songlib/presentation/screens/splash/SplashComponents.kt b/app/src/main/java/com/songlib/presentation/splash/components/SplashComponents.kt similarity index 95% rename from app/src/main/java/com/songlib/presentation/screens/splash/SplashComponents.kt rename to app/src/main/java/com/songlib/presentation/splash/components/SplashComponents.kt index de5f2cd..a0f743c 100644 --- a/app/src/main/java/com/songlib/presentation/screens/splash/SplashComponents.kt +++ b/app/src/main/java/com/songlib/presentation/splash/components/SplashComponents.kt @@ -1,4 +1,4 @@ -package com.songlib.presentation.screens.splash +package com.songlib.presentation.splash.components import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -9,7 +9,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.sp -import com.songlib.presentation.theme.* @Composable diff --git a/app/src/main/java/com/songlib/presentation/screens/splash/SplashScreen.kt b/app/src/main/java/com/songlib/presentation/splash/view/SplashScreen.kt similarity index 83% rename from app/src/main/java/com/songlib/presentation/screens/splash/SplashScreen.kt rename to app/src/main/java/com/songlib/presentation/splash/view/SplashScreen.kt index 58ca93b..01acefc 100644 --- a/app/src/main/java/com/songlib/presentation/screens/splash/SplashScreen.kt +++ b/app/src/main/java/com/songlib/presentation/splash/view/SplashScreen.kt @@ -1,9 +1,8 @@ -package com.songlib.presentation.screens.splash +package com.songlib.presentation.splash.view import androidx.compose.foundation.* import androidx.compose.foundation.layout.* import androidx.compose.material3.* -import androidx.compose.material3.HorizontalDivider import androidx.compose.runtime.* import androidx.compose.ui.* import androidx.compose.ui.platform.LocalContext @@ -14,8 +13,11 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.* import androidx.navigation.NavHostController import com.songlib.R +import com.songlib.domain.repository.PrefsRepo import com.songlib.presentation.navigation.Routes -import com.songlib.presentation.viewmodels.SplashViewModel +import com.songlib.presentation.splash.components.* +import com.songlib.presentation.splash.SplashViewModel +import kotlinx.coroutines.delay @Composable fun SplashScreen( @@ -23,15 +25,24 @@ fun SplashScreen( viewModel: SplashViewModel, ) { val context = LocalContext.current - val nextRoute by viewModel.nextRoute.collectAsState() + val prefs = remember { PrefsRepo(context) } val isLoading by viewModel.isLoading.collectAsState() LaunchedEffect(Unit) { viewModel.initializeApp(context) } - LaunchedEffect(isLoading, nextRoute) { - if (!isLoading && nextRoute != Routes.SPLASH) { + LaunchedEffect(Unit) { + delay(3000) + + val nextRoute = when { + prefs.selectAfresh -> Routes.STEP_1 + prefs.isDataLoaded -> Routes.HOME + prefs.isDataSelected -> Routes.STEP_2 + else -> Routes.STEP_1 + } + + if (!isLoading) { navController.navigate(nextRoute) { popUpTo(Routes.SPLASH) { inclusive = true } } diff --git a/gradle/config/config.properties b/gradle/config/config.properties index 28cc3de..7073460 100644 --- a/gradle/config/config.properties +++ b/gradle/config/config.properties @@ -1,5 +1,5 @@ applicationId=com.songlib -versionName=1.0.820 -versionCode=820 +versionName=1.0.821 +versionCode=821 targetSdk=35 minSdk=24 \ No newline at end of file