diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment.java b/app/src/main/java/com/gh/base/fragment/BaseFragment.java index 1cc3a6cad5..e7f80077ad 100644 --- a/app/src/main/java/com/gh/base/fragment/BaseFragment.java +++ b/app/src/main/java/com/gh/base/fragment/BaseFragment.java @@ -43,6 +43,8 @@ import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE; public abstract class BaseFragment extends Fragment implements OnRequestCallBackListener, View.OnClickListener, OnListClickListener, OnTitleClickListener { + public static final int RESULT_REFRESH = 9528; + protected View mCachedView; protected boolean isEverPause; diff --git a/app/src/main/java/com/gh/common/util/CommentHelper.kt b/app/src/main/java/com/gh/common/util/CommentHelper.kt index 0781180046..9f0e4630c0 100644 --- a/app/src/main/java/com/gh/common/util/CommentHelper.kt +++ b/app/src/main/java/com/gh/common/util/CommentHelper.kt @@ -114,7 +114,9 @@ object CommentHelper { dialogOptions.add("举报") commentEntity.me?.let { - if (it.isModerator) { + if (it.isModerator && ( + it.moderatorPermissions.contains(MeEntity.HIDE_ANSWER_COMMENT) + || it.moderatorPermissions.contains(MeEntity.TOP_ANSWER_COMMENT))) { dialogOptions.add("管理") } } @@ -129,7 +131,7 @@ object CommentHelper { when (it) { "管理" -> { dialog?.dismiss() - showControlDialog(context, answerId, commentEntity.id!!, commentEntity.me!!) + showControlDialog(context, answerId, commentEntity, commentEntity.me!!) } "回复" -> { context.ifLogin("回答详情-评论-回复") { @@ -174,7 +176,7 @@ object CommentHelper { dialog.show() } - private fun showControlDialog(context: Context, answerId: String, commentId: String, me: MeEntity) { + private fun showControlDialog(context: Context, answerId: String, comment: CommentEntity, me: MeEntity) { val dialogOptions = arrayListOf() val highlight = "置顶评论" val hide = "隐藏评论" @@ -196,11 +198,24 @@ object CommentHelper { val dialog = createOptionsSelectDialog(context, dialogOptions) { when (it) { highlight -> { + + if (comment.priority != 0) { + Utils.toast(context, "评论已经置顶") + return@createOptionsSelectDialog + } + + comment.me?.let { me -> + if (me.isCommentOwn) { + Utils.toast(context, "不能置顶自己的评论") + return@createOptionsSelectDialog + } + } + DialogUtils.showAlertDialog(context, highlight, content, "确定", "取消", { RetrofitManager.getInstance(context).api - .highlightAnswerComment(answerId, commentId) + .highlightAnswerComment(answerId, comment.id) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(object : Response() { @@ -233,7 +248,7 @@ object CommentHelper { "确定", "取消", { RetrofitManager.getInstance(context).api - .hideAnswerComment(answerId, commentId) + .hideAnswerComment(answerId, comment.id) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(object : Response() { diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.java b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.java index 4c89911092..d527d145ce 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.java @@ -412,6 +412,7 @@ public class AnswerDetailFragment extends NormalFragment { toast("提交成功"); } else { toast("操作成功"); + requireActivity().setResult(RESULT_REFRESH, null); requireActivity().finish(); } } else { @@ -428,6 +429,7 @@ public class AnswerDetailFragment extends NormalFragment { } else { toast("操作成功"); mViewModel.getAnswerDetail(mAnswerId, mEntrance); + requireActivity().setResult(RESULT_REFRESH, null); } } else { toast("权限错误,请刷新后重试"); @@ -523,7 +525,7 @@ public class AnswerDetailFragment extends NormalFragment { // 将答案加入精选的权限 displayablePermissionList.add(highlight); } - if (permissionList.contains(MeEntity.FOLD_ANSWER) && !mDetailEntity.getFold()) { + if (permissionList.contains(MeEntity.FOLD_ANSWER)) { displayablePermissionList.add(fold); } if (permissionList.contains(MeEntity.HIDE_ANSWER)) { @@ -545,9 +547,13 @@ public class AnswerDetailFragment extends NormalFragment { () -> mViewModel.doHighlightThisAnswer(mAnswerId), null); break; case fold: - DialogUtils.showAlertDialog(requireContext(), fold, content, - "确定", "取消", - () -> mViewModel.doFoldThisAnswer(mAnswerId), null); + if (mDetailEntity.getFold()) { + Utils.toast(requireContext(), "回答已经折叠"); + } else { + DialogUtils.showAlertDialog(requireContext(), fold, content, + "确定", "取消", + () -> mViewModel.doFoldThisAnswer(mAnswerId), null); + } break; case hide: DialogUtils.showAlertDialog(requireContext(), hide, content, @@ -600,7 +606,6 @@ public class AnswerDetailFragment extends NormalFragment { me.setAnswerFavorite(false); mDetailEntity.setMe(me); toast(R.string.collection_cancel); - } @Override diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailFragment.java b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailFragment.java index 14e3ff642d..f50698a4ce 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailFragment.java @@ -141,9 +141,12 @@ public class QuestionsDetailFragment if (requestCode == QUESTIONS_DETAIL_ANSWER_REQUEST) { if (resultCode == AnswerEditFragment.SAVE_DRAFTS) { postDraftsSuccess(); + } else if (resultCode == RESULT_REFRESH) { + onLoadRefresh(); } else if (resultCode == Activity.RESULT_OK) { - if (data != null) + if (data != null) { postAnswerSuccess(data.getStringExtra(EntranceUtils.KEY_ANSWER_ID)); + } } } else if (requestCode == QUESTIONS_EDIT_REQUEST && resultCode == Activity.RESULT_OK) { if (data != null && data.getParcelableExtra(QuestionsDetailEntity.class.getSimpleName()) != null) { diff --git a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java index 4f6fcf6c10..479cc64222 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java @@ -15,6 +15,7 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; +import com.gh.common.util.ClickUtils; import com.gh.common.util.DialogUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.IdCardEntity; @@ -227,7 +228,7 @@ public class UserInfoEditFragment extends NormalFragment { change(value); } else if (UserViewModel.TYPE_INTRODUCE.equals(mEditType)) { String value = mUserInfoIntroduceEt.getText().toString().trim(); // 去除前后空格 - change(value.replaceAll("\\s+"," ")); // 多个空格合成一个 + change(value.replaceAll("\\s+", " ")); // 多个空格合成一个 } else if (UserViewModel.TYPE_ID_CARD.equals(mEditType)) { String name = mIdCardNameEt.getText().toString(); String idCard = mIdCardEt.getText().toString(); @@ -328,7 +329,9 @@ public class UserInfoEditFragment extends NormalFragment { String str = mEditText.getText().toString().substring(0, 12); mEditText.setText(str); mEditText.setSelection(str.length()); - Utils.toast(requireContext(), "最多12个字"); + if (!ClickUtils.isFastDoubleClick(R.id.userinfo_nickname_et, 2000)) { + Utils.toast(requireContext(), "最多12个字"); + } } } else { mUserinfoNicknameIv.setVisibility(View.GONE); @@ -340,7 +343,9 @@ public class UserInfoEditFragment extends NormalFragment { String str = mEditText.getText().toString().substring(0, 30); mEditText.setText(str); mEditText.setSelection(str.length()); - Utils.toast(requireContext(), "最多30个字"); + if (!ClickUtils.isFastDoubleClick(R.id.userinfo_nickname_et, 2000)) { + Utils.toast(requireContext(), "最多30个字"); + } } } else { mUserInfoIntroduceIv.setVisibility(View.GONE);