“androidx.lifecycle:lifecycle-livedata-ktx:2.4.1”,
“androidx.lifecycle:lifecycle-runtime-ktx:2.5.1”,
“androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1”,
“com.squareup.retrofit2:retrofit:2.9.0”,
“com.squareup.retrofit2:adapter-rxjava2:2.9.0”,
“com.squareup.retrofit2:converter-gson:2.9.0”,
object BackstageManage {
val apiService1 by lazy {
Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("http://video.54yks.cn/api/v1/")
.build().create(BackstageApi::class.java)
}
/**
* 微信文章
*/
suspend fun getArticleBean(category:String,page: Int = 1,page_size:Int = 100) = flow {
apiService1.getArticleBean(category, page, page_size).apply {
if (code == 200) {
data.let {
emit(data)
LogUtils.dTag("微信文章", data)
}
} else{
LogUtils.dTag("微信文章错误", msg)
}
}
}.flowOn(Dispatchers.IO)
}
interface BackstageApi {
@GET("article")
suspend fun getArticleBean(@Query("category") category: String,@Query("page") page: Int,@Query("page_size") page_size: Int): ArticleEntity
}
class HomeViewModel: ViewModel() {
val travelEntityStateFlow = MutableLiveData<TravelEntity?>(null)
fun getArticleBean(category:String = "窝窝自驾",page: Int = 1,page_size:Int = 100){
viewModelScope.launch(ErrorUtils.exceptionHandler) {
BackstageManage.getArticleBean(category,page,page_size).map {
TravelEntity(1,it.total,it.data_list.map {
TravelListEntity(it.id.toString(),it.create_time,it.title,it.remark,"",it.cover,it.article_link)
})
}.collectLatest {
travelEntityStateFlow.value = it
}
}
}
}
model.getArticleBean()
model.travelEntityStateFlow.observe(this, Observer {
sceneGuidelineAdapter.setList(it?.newslist?.subList(0,5))
})