From c23aa12d0976e5708d7ad7c53ae8e8d7f33fff1a Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Wed, 22 May 2019 16:08:58 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=9B=9E=E7=AD=94=E7=9A=84=E6=8E=A5=E5=8F=A3=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/ErrorHelper.kt | 5 ++-- .../qa/answer/edit/AnswerEditActivity.kt | 24 ++++++------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/ErrorHelper.kt b/app/src/main/java/com/gh/common/util/ErrorHelper.kt index 8708b67b38..88adcb43df 100644 --- a/app/src/main/java/com/gh/common/util/ErrorHelper.kt +++ b/app/src/main/java/com/gh/common/util/ErrorHelper.kt @@ -34,9 +34,8 @@ object ErrorHelper { if (customizedHandler(errorEntity.code ?: 0)) { return } else { - ErrorHelper.handleError(context, important, errorEntity) + handleError(context, important, errorEntity) } - } /** @@ -56,7 +55,7 @@ object ErrorHelper { return } - ErrorHelper.handleError(context, important, errorEntity) + handleError(context, important, errorEntity) } /*** diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt index a83054307d..0eea75bbf8 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt @@ -240,16 +240,11 @@ class AnswerEditActivity : BaseRichEditorActivity() { startActivity(intent) } finish() - } else if (it?.status == Status.ERROR) { - var errorString: String? = null - val e = it.exception - if (e != null && e.code() == 403) { - try { - errorString = e.response().errorBody()!!.string() - val string = JSONObject(errorString) - val code = string.getInt("code") - if (code == 403037) { + val errorString = it.exception?.response()?.errorBody()?.string() + ErrorHelper.handleErrorWithCustomizedHandler(this, errorString, customizedHandler = { code -> + when (code) { + 403037 -> { if (TextUtils.isEmpty(mViewModel?.draftId)) { DialogUtils.showAlertDialog(this, "发布失败" , "问题已被删除,无法发布回答", "好吧", "", { @@ -262,16 +257,11 @@ class AnswerEditActivity : BaseRichEditorActivity() { finish() }) } - return@Observer - } else { - ErrorHelper.handleError(this, errorString, false) - return@Observer + true } - } catch (e1: Exception) { - e1.printStackTrace() + else -> false } - } - ErrorHelper.handleError(this, errorString, false) + }) } }) From 3d49258b8481e027364962addf0cbab084ca2c68 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Wed, 22 May 2019 16:15:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/common/util/Extensions.kt | 8 ++++++++ .../qa/answer/detail/AnswerDetailFragment.kt | 10 +++------- .../gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt | 3 +-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index 14b4d94e99..22b46875bb 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -115,6 +115,14 @@ fun View.debounceActionWithInterval(interval: Long = 300, action: (() -> Unit)? debounceActionWithInterval(this.id, interval, action) } +/** + * 告诉需要返回 true or false 的外层这个事件已经被消费(即返回 true) + */ +inline fun consume(f: () -> Unit): Boolean { + f() + return true +} + /** * String related */ diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt index 8e9866d9aa..59d31bcc1f 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt @@ -322,18 +322,14 @@ class AnswerDetailFragment : NormalFragment() { showFollowHint() } } else if (apiResponse.httpException != null) { - ErrorHelper.handleErrorWithCustomizedHandler(requireContext(), apiResponse.httpException.response().errorBody()!!.string(), false) { + ErrorHelper.handleErrorWithCustomizedHandler(requireContext(), apiResponse.httpException.response().errorBody()?.string(), false) { when (it) { - 403008 -> { + 403008 -> consume { toast(R.string.ask_vote_hint) answerDetail.me.isAnswerVoted = true updateLikeView(answerDetail.me.isAnswerVoted, answerDetail.vote) - true - } - 403036 -> { - toast(R.string.ask_vote_limit_hint) - true } + 403036 -> consume { toast(R.string.ask_vote_limit_hint) } else -> false } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt index 0eea75bbf8..c3c22ede9a 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditActivity.kt @@ -244,7 +244,7 @@ class AnswerEditActivity : BaseRichEditorActivity() { val errorString = it.exception?.response()?.errorBody()?.string() ErrorHelper.handleErrorWithCustomizedHandler(this, errorString, customizedHandler = { code -> when (code) { - 403037 -> { + 403037 -> consume { if (TextUtils.isEmpty(mViewModel?.draftId)) { DialogUtils.showAlertDialog(this, "发布失败" , "问题已被删除,无法发布回答", "好吧", "", { @@ -257,7 +257,6 @@ class AnswerEditActivity : BaseRichEditorActivity() { finish() }) } - true } else -> false }