fix: 修复贴页面赞状态异常

This commit is contained in:
HuanChengFly 2021-02-18 19:23:58 +08:00
parent 31202c9dc4
commit 4aea31983e
1 changed files with 4 additions and 6 deletions

View File

@ -95,6 +95,10 @@ class ThreadActivity : BaseActivity(), View.OnClickListener, IThreadMenuFragment
private var collect = false private var collect = false
private var agree = false private var agree = false
set(value) {
field = value
invalidateAgreeStatus()
}
private var agreeNum = 0 private var agreeNum = 0
private var page = 0 private var page = 0
private var totalPage = 0 private var totalPage = 0
@ -695,38 +699,32 @@ class ThreadActivity : BaseActivity(), View.OnClickListener, IThreadMenuFragment
if (!agree) { if (!agree) {
agree = true agree = true
agreeNum += 1 agreeNum += 1
invalidateAgreeStatus()
TiebaApi.getInstance().agree(dataBean!!.thread?.threadInfo?.threadId!!, dataBean!!.thread?.threadInfo?.firstPostId!!).enqueue(object : Callback<AgreeBean> { TiebaApi.getInstance().agree(dataBean!!.thread?.threadInfo?.threadId!!, dataBean!!.thread?.threadInfo?.firstPostId!!).enqueue(object : Callback<AgreeBean> {
override fun onFailure(call: Call<AgreeBean>, t: Throwable) { override fun onFailure(call: Call<AgreeBean>, t: Throwable) {
agree = false agree = false
agreeNum -= 1 agreeNum -= 1
Toast.makeText(this@ThreadActivity, getString(R.string.toast_agree_failed, t.message), Toast.LENGTH_SHORT).show() Toast.makeText(this@ThreadActivity, getString(R.string.toast_agree_failed, t.message), Toast.LENGTH_SHORT).show()
invalidateAgreeStatus()
} }
override fun onResponse(call: Call<AgreeBean>, response: Response<AgreeBean>) { override fun onResponse(call: Call<AgreeBean>, response: Response<AgreeBean>) {
if (!agree) { if (!agree) {
agree = true agree = true
invalidateAgreeStatus()
} }
} }
}) })
} else { } else {
agree = false agree = false
agreeNum -= 1 agreeNum -= 1
invalidateAgreeStatus()
TiebaApi.getInstance().disagree(dataBean!!.thread?.threadInfo?.threadId!!, dataBean!!.thread?.threadInfo?.firstPostId!!).enqueue(object : Callback<AgreeBean> { TiebaApi.getInstance().disagree(dataBean!!.thread?.threadInfo?.threadId!!, dataBean!!.thread?.threadInfo?.firstPostId!!).enqueue(object : Callback<AgreeBean> {
override fun onFailure(call: Call<AgreeBean>, t: Throwable) { override fun onFailure(call: Call<AgreeBean>, t: Throwable) {
agree = true agree = true
agreeNum += 1 agreeNum += 1
invalidateAgreeStatus()
Toast.makeText(this@ThreadActivity, getString(R.string.toast_unagree_failed, t.message), Toast.LENGTH_SHORT).show() Toast.makeText(this@ThreadActivity, getString(R.string.toast_unagree_failed, t.message), Toast.LENGTH_SHORT).show()
} }
override fun onResponse(call: Call<AgreeBean>, response: Response<AgreeBean>) { override fun onResponse(call: Call<AgreeBean>, response: Response<AgreeBean>) {
if (agree) { if (agree) {
agree = false agree = false
invalidateAgreeStatus()
} }
} }
}) })