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.
151 lines
3.1 KiB
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("加载评论")
|
|
}
|
|
} |