优化版主问题标签

This commit is contained in:
kehaoyuan
2018-12-06 11:55:16 +08:00
parent a03754d02b
commit da91e7de1d
3 changed files with 57 additions and 15 deletions

View File

@ -182,7 +182,10 @@ class QuestionEditActivity : BaseActivity() {
override fun onMenuItemClick(menuItem: MenuItem?): Boolean {
if (mViewModel.isManagerPatch) {
mViewModel.selectedTags.addAll(mViewModel.questionEntity?.tags!!)
// todo 直接提交
// todo 判断版主等级
DialogUtils.showAlertDialog(this, "修改标签"
, "你的操作将提交给小编审核,确定提交吗?", "确定"
, "取消", DialogUtils.ConfirmListener {}, null)
} else {
mViewModel.checkTitleAndLoadTitleTag()
}

View File

@ -24,7 +24,6 @@ import okhttp3.RequestBody
import okhttp3.ResponseBody
import retrofit2.HttpException
import java.io.File
import java.util.*
/**
* Created by khy on 28/04/18.
@ -242,10 +241,12 @@ class QuestionEditViewModel(application: Application) : AndroidViewModel(applica
val body = RequestBody.create(MediaType.parse("application/json"), GsonUtils.getInstance().toJson(entity))
val observable = if (questionEntity != null) {
questionEntity?.tags = entity.tags
questionEntity?.images = entity.images
questionEntity?.title = entity.title
questionEntity?.description = entity.description
if (!isManagerPatch) {
questionEntity?.images = entity.images
questionEntity?.title = entity.title
questionEntity?.description = entity.description
questionEntity?.tags = entity.tags
}
mApiService.patchQuestions(body, questionEntity?.id) // patch
} else {
mApiService.postQuestions(body, communityId) // add

View File

@ -16,6 +16,7 @@ import android.widget.EditText
import android.widget.TextView
import com.gh.base.fragment.BaseDialogWrapperFragment
import com.gh.base.fragment.BaseFragment
import com.gh.common.util.DialogUtils
import com.gh.common.util.DisplayUtils
import com.gh.common.util.EntranceUtils
import com.gh.gamecenter.R
@ -65,16 +66,18 @@ class TagsSelectFragment : BaseFragment<String>() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (activity != null) mViewModel = ViewModelProviders.of(activity!!).get(QuestionEditViewModel::class.java)
val isManagerPatch = arguments?.getBoolean(EntranceUtils.KEY_QUESTION_MANAGER_PATCH)
if (isManagerPatch != null && isManagerPatch) {
mViewModel = ViewModelProviders.of(this).get(QuestionEditViewModel::class.java)
mViewModel?.isManagerPatch = isManagerPatch
mViewModel?.questionEntity = arguments?.getParcelable(QuestionsDetailEntity::class.java.simpleName)
} else {
mViewModel = activity?.let { ViewModelProviders.of(it).get(QuestionEditViewModel::class.java) }
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val isManagerPatch = arguments?.getBoolean(EntranceUtils.KEY_QUESTION_MANAGER_PATCH)
if (isManagerPatch != null && isManagerPatch) {
mViewModel?.isManagerPatch = isManagerPatch
mViewModel?.questionEntity = arguments?.getParcelable(QuestionsDetailEntity::class.java.simpleName)
}
if (mViewModel != null && mViewModel?.isManagerPatch!!) {
mCancelBtn.text = "取消"
@ -110,15 +113,50 @@ class TagsSelectFragment : BaseFragment<String>() {
}
mPostBtn.setOnClickListener {
if (mViewModel?.isManagerPatch!!
&& mViewModel?.questionEntity?.tags == mViewModel?.selectedTags) {
toast("标签没有变化")
if (mViewModel?.isManagerPatch!!) {
if (checkTagsContent()) {
toast("标签没有变化")
} else {
// todo 判断版主等级
DialogUtils.showAlertDialog(context, "修改标签"
, "你的操作将提交给小编审核,确定提交吗?", "确定"
, "取消", DialogUtils.ConfirmListener {}, null)
}
} else {
mViewModel?.postQuestion()
}
}
}
/**
* 检查内容是否一致
* @return true:相同 false:不同
*/
private fun checkTagsContent(): Boolean {
val defaultTags = mViewModel?.questionEntity?.tags
val selectedTags = mViewModel?.selectedTags
if (defaultTags == selectedTags) {
return true
}
if (defaultTags == null && selectedTags == null) {
return true
}
if (defaultTags == null || selectedTags == null) {
return false
}
if (defaultTags.size != selectedTags.size) {
return false
}
for (tag in defaultTags) {
if (!selectedTags.contains(tag)) return false
}
for (tag in selectedTags) {
if (!defaultTags.contains(tag)) return false
}
return true
}
private fun initTags() {
// 添加标签
val mDefaultTag = mViewModel?.defaultTags ?: ArrayList()