Add more dependency injection
This commit is contained in:
parent
f460c25a92
commit
cb005e1cf6
12 changed files with 49 additions and 9 deletions
|
@ -7,9 +7,11 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.databinding.FragmentAddServerBinding
|
||||
import dev.jdtech.jellyfin.viewmodels.AddServerViewModel
|
||||
|
||||
@AndroidEntryPoint
|
||||
class AddServerFragment : Fragment() {
|
||||
|
||||
private lateinit var binding: FragmentAddServerBinding
|
||||
|
|
|
@ -7,10 +7,12 @@ import android.view.ViewGroup
|
|||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.databinding.EpisodeBottomSheetBinding
|
||||
import dev.jdtech.jellyfin.viewmodels.EpisodeBottomSheetViewModel
|
||||
import dev.jdtech.jellyfin.viewmodels.EpisodeBottomSheetViewModelFactory
|
||||
|
||||
@AndroidEntryPoint
|
||||
class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
|
||||
private val args: EpisodeBottomSheetFragmentArgs by navArgs()
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import android.view.ViewGroup
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.adapters.HomeEpisodeListAdapter
|
||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
||||
|
@ -15,6 +16,7 @@ import dev.jdtech.jellyfin.databinding.FragmentHomeBinding
|
|||
import dev.jdtech.jellyfin.viewmodels.HomeViewModel
|
||||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
|
||||
@AndroidEntryPoint
|
||||
class HomeFragment : Fragment() {
|
||||
|
||||
private lateinit var binding: FragmentHomeBinding
|
||||
|
|
|
@ -8,12 +8,14 @@ import android.view.ViewGroup
|
|||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.viewmodels.LibraryViewModel
|
||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
||||
import dev.jdtech.jellyfin.databinding.FragmentLibraryBinding
|
||||
import dev.jdtech.jellyfin.viewmodels.LibraryViewModelFactory
|
||||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
|
||||
@AndroidEntryPoint
|
||||
class LibraryFragment : Fragment() {
|
||||
|
||||
private lateinit var binding: FragmentLibraryBinding
|
||||
|
|
|
@ -7,9 +7,11 @@ import android.view.ViewGroup
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.databinding.FragmentLoginBinding
|
||||
import dev.jdtech.jellyfin.viewmodels.LoginViewModel
|
||||
|
||||
@AndroidEntryPoint
|
||||
class LoginFragment : Fragment() {
|
||||
|
||||
private val viewModel: LoginViewModel by viewModels()
|
||||
|
|
|
@ -7,11 +7,13 @@ import android.view.ViewGroup
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.adapters.CollectionListAdapter
|
||||
import dev.jdtech.jellyfin.databinding.FragmentMediaBinding
|
||||
import dev.jdtech.jellyfin.viewmodels.MediaViewModel
|
||||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MediaFragment : Fragment() {
|
||||
|
||||
private lateinit var binding: FragmentMediaBinding
|
||||
|
|
|
@ -10,6 +10,7 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.adapters.PersonListAdapter
|
||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
||||
import dev.jdtech.jellyfin.databinding.FragmentMediaInfoBinding
|
||||
|
@ -17,6 +18,7 @@ import dev.jdtech.jellyfin.viewmodels.MediaInfoViewModel
|
|||
import dev.jdtech.jellyfin.viewmodels.MediaInfoViewModelFactory
|
||||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MediaInfoFragment : Fragment() {
|
||||
|
||||
private lateinit var binding: FragmentMediaInfoBinding
|
||||
|
|
|
@ -8,12 +8,14 @@ import android.view.ViewGroup
|
|||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.jdtech.jellyfin.adapters.EpisodeListAdapter
|
||||
import dev.jdtech.jellyfin.databinding.FragmentSeasonBinding
|
||||
import dev.jdtech.jellyfin.viewmodels.SeasonViewModel
|
||||
import dev.jdtech.jellyfin.viewmodels.SeasonViewModelFactory
|
||||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SeasonFragment : Fragment() {
|
||||
|
||||
private lateinit var binding: FragmentSeasonBinding
|
||||
|
|
|
@ -3,6 +3,7 @@ package dev.jdtech.jellyfin.viewmodels
|
|||
import android.app.Application
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.*
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dev.jdtech.jellyfin.api.JellyfinApi
|
||||
import dev.jdtech.jellyfin.database.Server
|
||||
import dev.jdtech.jellyfin.database.ServerDatabase
|
||||
|
@ -10,8 +11,12 @@ import kotlinx.coroutines.Dispatchers
|
|||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.lang.Exception
|
||||
import javax.inject.Inject
|
||||
|
||||
class AddServerViewModel(application: Application) : AndroidViewModel(application) {
|
||||
@HiltViewModel
|
||||
class AddServerViewModel
|
||||
@Inject
|
||||
constructor(application: Application) : ViewModel() {
|
||||
private val database = ServerDatabase.getInstance(application).serverDatabaseDao
|
||||
|
||||
private val _navigateToLogin = MutableLiveData<Boolean>()
|
||||
|
|
|
@ -2,6 +2,8 @@ package dev.jdtech.jellyfin.viewmodels
|
|||
|
||||
import android.app.Application
|
||||
import androidx.lifecycle.*
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dev.jdtech.jellyfin.BaseApplication
|
||||
import dev.jdtech.jellyfin.R
|
||||
import dev.jdtech.jellyfin.adapters.HomeItem
|
||||
import dev.jdtech.jellyfin.api.JellyfinApi
|
||||
|
@ -13,10 +15,14 @@ import kotlinx.coroutines.withContext
|
|||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
import org.jellyfin.sdk.model.api.BaseItemDtoQueryResult
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
|
||||
class HomeViewModel(
|
||||
@HiltViewModel
|
||||
class HomeViewModel
|
||||
@Inject
|
||||
constructor(
|
||||
application: Application
|
||||
) : AndroidViewModel(application) {
|
||||
) : ViewModel() {
|
||||
private val jellyfinApi = JellyfinApi.getInstance(application, "")
|
||||
|
||||
private val continueWatchingString = application.resources.getString(R.string.continue_watching)
|
||||
|
@ -56,7 +62,8 @@ class HomeViewModel(
|
|||
val items = mutableListOf<HomeItem>()
|
||||
|
||||
val resumeItems = getResumeItems()
|
||||
val resumeSection = HomeSection(UUID.randomUUID(), continueWatchingString, resumeItems)
|
||||
val resumeSection =
|
||||
HomeSection(UUID.randomUUID(), continueWatchingString, resumeItems)
|
||||
|
||||
if (!resumeItems.isNullOrEmpty()) {
|
||||
items.add(HomeItem.Section(resumeSection))
|
||||
|
|
|
@ -3,19 +3,26 @@ package dev.jdtech.jellyfin.viewmodels
|
|||
import android.app.Application
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.*
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dev.jdtech.jellyfin.api.JellyfinApi
|
||||
import dev.jdtech.jellyfin.database.Server
|
||||
import dev.jdtech.jellyfin.database.ServerDatabase
|
||||
import dev.jdtech.jellyfin.database.ServerDatabaseDao
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.jellyfin.sdk.model.api.AuthenticateUserByName
|
||||
import java.lang.Exception
|
||||
import javax.inject.Inject
|
||||
|
||||
class LoginViewModel(application: Application) : AndroidViewModel(application) {
|
||||
@HiltViewModel
|
||||
class LoginViewModel
|
||||
@Inject
|
||||
constructor(
|
||||
application: Application,
|
||||
private val database: ServerDatabaseDao
|
||||
) : ViewModel() {
|
||||
// BaseUrl can be empty string because we want to get the existing instance.
|
||||
private val jellyfinApi = JellyfinApi.getInstance(application, "")
|
||||
private val database = ServerDatabase.getInstance(application).serverDatabaseDao
|
||||
|
||||
private val _error = MutableLiveData<String>()
|
||||
val error: LiveData<String> = _error
|
||||
|
|
|
@ -2,16 +2,21 @@ package dev.jdtech.jellyfin.viewmodels
|
|||
|
||||
import android.app.Application
|
||||
import androidx.lifecycle.*
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dev.jdtech.jellyfin.api.JellyfinApi
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.jellyfin.sdk.model.api.BaseItemDto
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
|
||||
class MediaViewModel(
|
||||
@HiltViewModel
|
||||
class MediaViewModel
|
||||
@Inject
|
||||
constructor(
|
||||
application: Application
|
||||
) : AndroidViewModel(application) {
|
||||
) : ViewModel() {
|
||||
private val jellyfinApi = JellyfinApi.getInstance(application, "")
|
||||
|
||||
private val _collections = MutableLiveData<List<BaseItemDto>>()
|
||||
|
|
Loading…
Reference in a new issue