diff --git a/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt b/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt index ca3969bd..af05e8a9 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt @@ -12,7 +12,7 @@ import androidx.navigation.ui.setupActionBarWithNavController import androidx.navigation.ui.setupWithNavController import dagger.hilt.android.AndroidEntryPoint import dev.jdtech.jellyfin.databinding.ActivityMainBinding -import dev.jdtech.jellyfin.fragments.InitializingFragmentDirections +import dev.jdtech.jellyfin.fragments.HomeFragmentDirections import dev.jdtech.jellyfin.viewmodels.MainViewModel @AndroidEntryPoint @@ -59,18 +59,10 @@ class MainActivity : AppCompatActivity() { viewModel.navigateToAddServer.observe(this, { if (it) { - navController.navigate(InitializingFragmentDirections.actionInitializingFragmentToAddServerFragment3()) + navController.navigate(HomeFragmentDirections.actionHomeFragmentToAddServerFragment()) viewModel.doneNavigateToAddServer() } }) - - viewModel.doneLoading.observe(this, { - if (it) { - if (navController.currentDestination!!.id == R.id.initializingFragment) { - navController.navigate(InitializingFragmentDirections.actionInitializingFragmentToNavigationHome()) - } - } - }) } override fun onSupportNavigateUp(): Boolean { diff --git a/app/src/main/java/dev/jdtech/jellyfin/di/ApiModule.kt b/app/src/main/java/dev/jdtech/jellyfin/di/ApiModule.kt index 944b0fe6..df5813c6 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/di/ApiModule.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/di/ApiModule.kt @@ -1,12 +1,15 @@ package dev.jdtech.jellyfin.di import android.content.Context +import android.content.SharedPreferences import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import dev.jdtech.jellyfin.api.JellyfinApi +import dev.jdtech.jellyfin.database.ServerDatabaseDao +import java.util.* import javax.inject.Singleton @Module @@ -14,7 +17,23 @@ import javax.inject.Singleton object ApiModule { @Singleton @Provides - fun provideJellyfinApi(@ApplicationContext application: Context): JellyfinApi { - return JellyfinApi.getInstance(application, "") + fun provideJellyfinApi( + @ApplicationContext application: Context, + sharedPreferences: SharedPreferences, + serverDatabase: ServerDatabaseDao + ): JellyfinApi { + val jellyfinApi = JellyfinApi.getInstance(application, "") + + val serverId = sharedPreferences.getString("selectedServer", null) + if (serverId != null) { + val server = serverDatabase.get(serverId) + jellyfinApi.apply { + api.baseUrl = server.address + api.accessToken = server.accessToken + userId = UUID.fromString(server.userId) + } + } + + return jellyfinApi } } \ No newline at end of file diff --git a/app/src/main/java/dev/jdtech/jellyfin/di/DatabaseModule.kt b/app/src/main/java/dev/jdtech/jellyfin/di/DatabaseModule.kt index 8932892f..9f13b4e5 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/di/DatabaseModule.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/di/DatabaseModule.kt @@ -23,6 +23,7 @@ object DatabaseModule { "servers" ) .fallbackToDestructiveMigration() + .allowMainThreadQueries() .build() .serverDatabaseDao } diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/InitializingFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/InitializingFragment.kt deleted file mode 100644 index 99bd8191..00000000 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/InitializingFragment.kt +++ /dev/null @@ -1,20 +0,0 @@ -package dev.jdtech.jellyfin.fragments - -import android.os.Bundle -import androidx.fragment.app.Fragment -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import dev.jdtech.jellyfin.R - - -class InitializingFragment : Fragment() { - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_initializing, container, false) - } -} \ No newline at end of file diff --git a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/MainViewModel.kt b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/MainViewModel.kt index f319617a..2cdfe34e 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/viewmodels/MainViewModel.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/viewmodels/MainViewModel.kt @@ -1,28 +1,23 @@ package dev.jdtech.jellyfin.viewmodels -import android.content.SharedPreferences import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import dev.jdtech.jellyfin.api.JellyfinApi import dev.jdtech.jellyfin.database.Server import dev.jdtech.jellyfin.database.ServerDatabaseDao import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import timber.log.Timber -import java.util.* import javax.inject.Inject @HiltViewModel class MainViewModel @Inject constructor( - private val sharedPreferences: SharedPreferences, private val database: ServerDatabaseDao, - private val jellyfinApi: JellyfinApi, ) : ViewModel() { private val _doneLoading = MutableLiveData() @@ -40,21 +35,10 @@ constructor( } if (servers.isEmpty()) { _navigateToAddServer.value = true - } else { - val serverId = sharedPreferences.getString("selectedServer", null) - val selectedServer = servers.find { server -> server.id == serverId } - Timber.d("Selected server: $selectedServer") - if (selectedServer != null) { - jellyfinApi.apply { - api.baseUrl = selectedServer.address - api.accessToken = selectedServer.accessToken - userId = UUID.fromString(selectedServer.userId) - } - Timber.d("Finish Main") - } - _doneLoading.value = true } + _doneLoading.value = true } + _doneLoading.value = true } fun doneNavigateToAddServer() { diff --git a/app/src/main/res/layout/fragment_initializing.xml b/app/src/main/res/layout/fragment_initializing.xml deleted file mode 100644 index ce899850..00000000 --- a/app/src/main/res/layout/fragment_initializing.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/navigation/main_navigation.xml b/app/src/main/res/navigation/main_navigation.xml index aa8393ad..054688f4 100644 --- a/app/src/main/res/navigation/main_navigation.xml +++ b/app/src/main/res/navigation/main_navigation.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main_navigation" - app:startDestination="@+id/initializingFragment"> + app:startDestination="@+id/homeFragment"> + - - - -