package com.jld.vod.viewmodel

import android.app.Application
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.paging.Config
import androidx.paging.PagedList
import androidx.paging.PagingData
import androidx.paging.toLiveData
import androidx.room.Room
import com.jld.vod.db.BrowserDatabase
import com.jld.vod.interfaces.remote.Apis
import com.jld.vod.model.bean.BaseBean
import com.jld.vod.model.bean.BrowserBean
import com.jld.vod.model.bean.GameBean
import com.jld.vod.repository.BrowserRepository
import com.jld.vod.repository.GameRepository
import com.jld.vod.utils.http.PagingRetrofitUtils
import com.jld.vod.utils.http.RetrofitUtils
import kotlinx.coroutines.flow.Flow


/**
 * @author ZhaoFuXin
 * @Email：18276061387@163.com
 * @description:
 * @date :2020/1/10 13:40
 */
class BrowserViewModel()  : ViewModel() {

    private val repository: BrowserRepository by lazy { BrowserRepository() }
    private val browserApi = PagingRetrofitUtils.create(Apis::class.java)

    fun getBrowserAllList(mid:Long,  lid:Long) : Flow<PagingData<BrowserBean>> {
        return repository.getBrowserAllList(browserApi,mid,lid)
    }
//    val browserdb = Room.databaseBuilder(app, BrowserDatabase::class.java, "browser").build()
//
//    val browserList: LiveData<PagedList<BrowserBean>> =
//        browserdb.browserDao().getAlls().toLiveData(Config(pageSize = 30,enablePlaceholders = true,maxSize = Int.MAX_VALUE))
//
//    val findNetWorkAllliveData: MutableLiveData<BaseBean<List<BrowserBean>>> = MutableLiveData()
//
//    /**
//     * 根据模块编号查询网络链接信息
//     */
//    fun findNetWorkAll(mid:Long,lid:Long): MutableLiveData<BaseBean<List<BrowserBean>>> {
//        findNetWorkAllliveData.postValue(BaseBean.loading(null))
//        RetrofitUtils.findNetWorkAll(mid,lid,
//            { t ->
//                when (t.code) {
//                    20000 ->{
//                        if (t.data!=null)
//                        {
//                            Thread(Runnable{ run {
//                                if (!browserdb.browserDao().getAll().isEmpty())
//                                {
//                                    browserdb.browserDao().delete()
//                                    for ((index,e) in t.data.withIndex()){
//                                        browserdb.browserDao().insertAll(t.data[index])
//                                    }
//                                }else{
//                                    for ((index,e) in t.data.withIndex()){
//                                        browserdb.browserDao().insertAll(t.data[index])
//                                    }
//                                }
//                            }}).start()
//                        }
//                        findNetWorkAllliveData.postValue(BaseBean.success(t.data))
//                    }
//                    else -> findNetWorkAllliveData.postValue(BaseBean.error(t.message, t.data))
//                }
//            },
//            { ex ->
//                findNetWorkAllliveData.postValue(BaseBean.error(ex.message!!, null))
//            }
//        )
//        return findNetWorkAllliveData
//    }

}