```@HiltViewModel class MainVieModel @Inject cons...
# dagger
h
Copy code
@HiltViewModel
class MainVieModel @Inject  constructor(private  val mainRepository: MainRepository,  private  val networkHelper: NetworkHelper) :ViewModel(){

    private val _urls=MutableLiveData<Resource<JsonData>>()
    val urls:LiveData<Resource<JsonData>>
    get() = _urls

   private  val  _vbtopurl= MutableLiveData<Resource<VbtopUrl>>()
    val  vbtopurl:LiveData<Resource<VbtopUrl>>
        get() = _vbtopurl


     fun fetchVbtopUrls(path:String){
       // mainRepository.getRetrofit(path)
        viewModelScope.launch{
            _vbtopurl.postValue(Resource.loading(null))
            if(networkHelper.isNetworkConnected()){
                mainRepository.getVbtop(path).let {
                    if(it.isSuccessful){
                        _vbtopurl.postValue(Resource.success(it.body()))
                    }else{
                        _vbtopurl.postValue(Resource.error(it.errorBody().toString(),null))
                    }
                }
            }else{
                _vbtopurl.postValue(Resource.error("No internet connection", null))
            }
        }
    }


    fun fetchUrls(path:String){
        viewModelScope.launch{
            _urls.postValue(Resource.loading(null))
            if(networkHelper.isNetworkConnected()){
                mainRepository.getUrls(path).let {
                    if(it.isSuccessful){
                        _urls.postValue(Resource.success(it.body()))
                    }else{
                        _urls.postValue(Resource.error(it.errorBody().toString(),null))
                    }
                }
            }else{
                _urls.postValue(Resource.error("No internet connection", null))
            }
        }
    }
}
🧵 2