You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
csamsclient/foreground/src/main/java/com/gyf/csams/activity/model/ActivityDetailViewModel.kt

151 lines
3.1 KiB

package com.gyf.csams.activity.model
import android.app.Application
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.gyf.csams.uikit.AbstractComment
import com.gyf.csams.uikit.ActivityDetailMenu
import com.gyf.csams.uikit.TopMenuInterface
import com.gyf.lib.model.ScrollViewModel
import com.gyf.lib.uikit.ValidStringForm
import com.gyf.lib.util.*
import kotlinx.coroutines.launch
/**
* 活动详情菜单通用状态
*
*/
class ActivityDetailViewModel : ViewModel(), TopMenuInterface<ActivityDetailMenu> {
override val _currentMenu: MutableLiveData<ActivityDetailMenu> = MutableLiveData()
override val currentMenu: LiveData<ActivityDetailMenu> = _currentMenu
}
/**
* 活动信息
*
*/
class ActivityInfoViewModel : ViewModel() {
private val _activityDetailVo = MutableLiveData<ActivityDetailVo>()
val activityDetailVo: LiveData<ActivityDetailVo> = _activityDetailVo
val like = "点赞"
val collect = "收藏"
init {
loadInfo()
}
/**
* TODO 点赞
*
* @param callback
*/
fun like(callback: (message: String) -> Unit) {
callback(NOT_IMPL_TIP)
}
/**
* TODO 收藏
*
* @param callback
*/
fun collect(callback: (message: String) -> Unit) {
callback(NOT_IMPL_TIP)
}
private fun loadInfo() {
viewModelScope.launch {
_activityDetailVo.value = ActivityDetailVo(
activityName = randomChinese(4),
associationName = randomChinese(4),
activityTime = randomDateTime(),
activityLocation = randomChinese(3),
activityDesc = randomChinese(500)
)
}
}
}
/**
* 活动相册数据状态管理
*
*/
class ActivityPhotoViewModel(application: Application) :
ScrollViewModel<ActivityPhotoVo>(application) {
override val initSize: Int = 10
init {
load()
}
fun upload(callback: (message: String) -> Unit) {
callback(NOT_IMPL_TIP)
}
/**
*
*
*/
fun load() {
TODO("加载相册")
}
/**
*
*
* @param callback
*/
fun loadMore(callback: (message: String) -> Unit) {
TODO("加载更多相册")
}
}
class ActivityMemberViewModel(application: Application) :
ScrollViewModel<UserInfoVo>(application) {
/**
*
*
*/
fun load() {
TODO("加载活动成员")
}
}
class BBSCommentModel : AbstractComment() {
override val newContent = ValidStringForm(formDesc = "评论内容", textLength = 80)
/**
* TODO 发送评论
*
* @param callback
*/
override fun send(callback: (message: String) -> Unit) {
callback(NOT_IMPL_TIP)
}
}
/**
* 交流区数据状态管理
*
*/
class BBSViewModel(application: Application) : ScrollViewModel<BBSVo>(application) {
override val initSize: Int = 10
val title = "发送评论"
/**
*
*/
fun load() {
TODO("加载评论")
}
}