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 84bb5260c9..2e0a01b807 100644 --- a/app/src/main/java/com/gh/common/util/CommentHelper.kt +++ b/app/src/main/java/com/gh/common/util/CommentHelper.kt @@ -33,12 +33,14 @@ object CommentHelper { showConversation: Boolean, articleId: String, communityId: String, + ignoreModerator: Boolean = false, listener: OnCommentOptionClickListener?) { showCommentOptions(view = view, commentEntity = commentEntity, showConversation = showConversation, articleId = articleId, communityId = communityId, + ignoreModerator = ignoreModerator, listener = listener) } @@ -77,6 +79,7 @@ object CommentHelper { communityId: String? = null, answerId: String? = null, videoId: String? = null, + ignoreModerator: Boolean = false, isVideoAuthor: Boolean = false, listener: OnCommentOptionClickListener? = null) { val context = view.context @@ -88,6 +91,8 @@ object CommentHelper { dialogOptions.add("投诉") commentEntity.me?.let { + if (ignoreModerator) return@let + if (it.isModerator || (it.moderatorPermissions.hideAnswerComment > Permissions.GUEST || it.moderatorPermissions.topAnswerComment > Permissions.GUEST || it.moderatorPermissions.hideCommunityArticleComment > Permissions.GUEST diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 47b3fb908b..4cd8041f92 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -56,6 +56,7 @@ import com.halo.assistant.fragment.SettingsFragment; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.download.DownloadEntity; import com.lightgame.utils.AppManager; +import com.lightgame.utils.Util_System_Keyboard; import com.lightgame.utils.Utils; import java.util.ArrayList; @@ -1487,7 +1488,10 @@ public class DialogUtils { dialog.dismiss(); }); + Context finalContext1 = context; confirmBtn.setOnClickListener(v -> { + Util_System_Keyboard.hideSoftKeyboard((Activity) finalContext1); + confirmListener.onConfirm(); dialog.dismiss(); }); diff --git a/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt b/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt index 0a6965a9c6..111ccf5075 100644 --- a/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt +++ b/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt @@ -169,6 +169,10 @@ object DownloadNotificationHelper { } } + fun removeAllNotification() { + getNotificationManager().cancel(DOWNLOAD_NOTIFICATION_FOLD_ID) + } + @JvmStatic fun initDownloadNotification(downloadTasks: MutableList) { for (downloadTask in downloadTasks) { diff --git a/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt index 29d727cf13..bf9b0c4730 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt @@ -158,6 +158,9 @@ class MessageEntity { @SerializedName("_id") var id: String? = null + @SerializedName("top_id") + var topId: String? = null + var content: String? = null } @@ -165,6 +168,9 @@ class MessageEntity { @SerializedName("_id") var id: String? = null + @SerializedName("top_id") + var topId: String? = null + var content: String? = null } diff --git a/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt index e31546a190..b5ff015bf0 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt @@ -111,6 +111,7 @@ data class PersonalHistoryEntity( answer.commentCount = count.comment answer.me = me answer.commentable = commentable + answer.articleCommunityId = community.id if (type.contains("article")) { answer.type = "community_article" } diff --git a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListAdapter.kt index 70702a0cda..06ed895ac2 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListAdapter.kt @@ -17,13 +17,10 @@ import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.forum.home.ForumArticleAskItemViewHolder -import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity import com.gh.gamecenter.qa.entity.AnswerEntity import com.gh.gamecenter.qa.entity.Questions import com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity -import java.io.LineNumberReader class ForumArticleAskListAdapter(context: Context, val bbsId: String, val mEntrance: String, val path: String) : ListAdapter(context), ISyncAdapterHandler { @@ -64,6 +61,8 @@ class ForumArticleAskListAdapter(context: Context, val bbsId: String, val mEntra if (path == "精华") answer.type = "community_article" if (path == "问答") answer.type = "question" + if (answer.bbs.id.isEmpty()) answer.bbs.id = bbsId + val answerViewHolder = holder as ForumArticleAskItemViewHolder val binding = answerViewHolder.binding binding.forumNameLl.visibility = View.GONE diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt index 9427ed321d..107b09e9a4 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt @@ -85,8 +85,7 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B commentCountContainer.setOnClickListener { if (filterIllegalCommentStatus(entity.commentable, entity.active)) return@setOnClickListener if (entity.type == "community_article") { - val communityId = if (entity.articleCommunityId.isNotEmpty()) entity.articleCommunityId - else UserManager.getInstance().community.id + val communityId = if (entity.bbs.id.isNotEmpty()) entity.bbs.id else UserManager.getInstance().community.id val intent = ArticleDetailActivity.getCommentIntent(itemView.context, CommunityEntity(communityId, entity.communityName ?: ""), entity.id ?: "", @@ -102,7 +101,6 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B } itemView.context.startActivity(intent) } - } voteCountContainer.setOnClickListener { diff --git a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java index 6b14d8c8bc..51b40d3c3e 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java @@ -391,7 +391,7 @@ public class LoginFragment extends NormalFragment implements LoginUtils.onCaptch mLoginBtn.setAlpha(1f); } else { mLoginBtn.setEnabled(false); - mLoginBtn.setAlpha(0.6f); + mLoginBtn.setAlpha(0.4f); } } } diff --git a/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java b/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java index 8a9bcf1c4c..6e8e72b338 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java @@ -20,6 +20,7 @@ import com.gh.common.constant.Constants; import com.gh.common.util.DataLogUtils; import com.gh.common.util.DialogUtils; import com.gh.common.util.DisplayUtils; +import com.gh.common.util.DownloadNotificationHelper; import com.gh.common.util.ExtensionsKt; import com.gh.common.util.MD5Utils; import com.gh.common.util.MtaHelper; @@ -126,7 +127,7 @@ public class UpdateManager { downloadDialog.dismiss(); } if (appEntity != null && appEntity.isForce()) { - AppManager.getInstance().finishAllActivity(); + exitApp(); } } else if (DownloadStatus.neterror.equals(downloadEntity.getStatus())) { Utils.toast(mContext, "网络错误,请稍后重试"); @@ -144,7 +145,8 @@ public class UpdateManager { } if (updateDialog != null && updateDialog.isShowing()) { - if (DownloadStatus.done.equals(downloadEntity.getStatus())) { + // 强制更新的时候完成下载不用更新页面 + if (DownloadStatus.done.equals(downloadEntity.getStatus()) && !appEntity.isForce()) { updateUpdateDialogView(true); } } else { @@ -155,7 +157,6 @@ public class UpdateManager { } } } - } } } @@ -236,6 +237,7 @@ public class UpdateManager { } if (response != null) { if (!appEntity.isForce() + && isAutoCheck && !isUpdateFileDownloaded(response) && NetworkUtils.isWifiConnected(mContext)) { createUpdate(response, true); @@ -314,7 +316,7 @@ public class UpdateManager { cancelUpdateTextView.setOnClickListener(v -> { if (appEntity.isForce()) { - AppManager.getInstance().finishAllActivity(); + exitApp(); } else { updateDialog.dismiss(); } @@ -327,11 +329,16 @@ public class UpdateManager { updateDialog.dismiss(); } String path = FileUtils.getDownloadPath(mContext, "光环助手V" + appEntity.getVersion() + "_" + md5 + ".apk"); - if (isUpdateFileDownloaded(md5)) { + // 产品不接受显示下载完成文案从立即更新变为立即安装,所以文案为立即更新时一律不执行安装 + if (isUpdateFileDownloaded(md5) && confirmTextView.getText() != "立即更新") { DataLogUtils.uploadUpgradeLog(mContext, "install"); //上传更新安装数据 PackageInstaller.install(mContext, path); } else { MtaHelper.onEvent("软件更新", "下载开始"); + + if (isUpdateFileDownloaded(md5)) { + deleteDownloadedFile(md5); + } showDownloadDialog(md5); } }); @@ -347,6 +354,11 @@ public class UpdateManager { DataLogUtils.uploadUpgradeLog(mContext, "notice"); //上传更新通知弹窗数据 } + private void exitApp() { + AppManager.getInstance().finishAllActivity(); + DownloadNotificationHelper.INSTANCE.removeAllNotification(); + } + private void showDownloadDialog(String md5) { if (NetworkUtils.isMobileConnected(mContext)) { Utils.toast(mContext, "当前使用移动数据进行下载"); @@ -370,7 +382,7 @@ public class UpdateManager { view.findViewById(R.id.app_tv_cancel).setOnClickListener(v -> { DownloadManager.getInstance(mContext).cancel(appEntity.getUrl()); if (appEntity.isForce()) { - AppManager.getInstance().finishAllActivity(); + exitApp(); } else { downloadDialog.dismiss(); } @@ -429,6 +441,12 @@ public class UpdateManager { return file.exists() && file.length() == SPUtils.getLong(Constants.LAST_GHZS_UPDATE_FILE_SIZE, 0); } + private void deleteDownloadedFile(String md5) { + String path = FileUtils.getDownloadPath(mContext, "光环助手V" + appEntity.getVersion() + "_" + md5 + ".apk"); + File file = new File(path); + file.delete(); + } + private void updateUpdateDialogView(boolean isUpdateDownloaded) { if (isUpdateDownloaded) { confirmTextView.setText("立即安装"); diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java index 969048f2bd..2d3536eb6e 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java @@ -5,6 +5,9 @@ import android.content.Intent; import android.view.View; import android.widget.RelativeLayout; +import androidx.annotation.Nullable; +import androidx.fragment.app.FragmentActivity; + import com.gh.base.BaseActivity; import com.gh.base.BaseRecyclerViewHolder; import com.gh.base.OnListClickListener; @@ -41,8 +44,6 @@ import com.lightgame.utils.Utils; import java.util.ArrayList; import java.util.List; -import androidx.annotation.Nullable; -import androidx.fragment.app.FragmentActivity; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import retrofit2.HttpException; @@ -250,6 +251,19 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; + case "community_article_comment_reply_vote": + mBinding.messageCommand.setText("赞了你的回复"); + mBinding.messageContent.setVisibility(View.GONE); + mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); + images = messageEntity.getArticle().getImages(); + if (images.size() > 0) { + targetUrl = images.get(0); + } + ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); + mBinding.messageAskIcon.setVisibility(View.VISIBLE); + mBinding.messageArticleIcon.setVisibility(View.GONE); + voteMoreUser(messageEntity); + break; case "reply_community_article_comment": mBinding.messageCommand.setText("回复了你"); mBinding.messageContent.setVisibility(View.VISIBLE); @@ -530,9 +544,10 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } break; case "community_article_comment_vote": + case "community_article_comment_reply_vote": community = new CommunityEntity(entity.getArticle().getCommunityId(), ""); if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { - context.startActivity(ArticleDetailCommentActivity.Companion.getIntent(context, entity.getComment().getId(), community.getId(), entity.getArticle().getId(), false, entrance, path)); + context.startActivity(ArticleDetailCommentActivity.Companion.getIntent(context, entity.getComment().getTopId(), community.getId(), entity.getArticle().getId(), false, entrance, path)); } break; case "community_article_comment": @@ -551,8 +566,7 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder break; case "reply_community_article_comment": if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { - community = new CommunityEntity(entity.getArticle().getCommunityId(), ""); - context.startActivity(ArticleDetailCommentActivity.Companion.getIntent(context, entity.getComment().getId(), community.getId(), entity.getArticle().getId(), false, entrance, path)); + context.startActivity(ArticleDetailCommentActivity.Companion.getIntent(context, entity.getDialogue().getTo().getTopId(), entity.getArticle().getCommunityId(), entity.getArticle().getId(), false, entrance, path)); } break; case "game_comment_vote": diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailContentViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailContentViewHolder.kt index d3a8e95152..e09de8182c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailContentViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailContentViewHolder.kt @@ -36,7 +36,7 @@ class ArticleDetailContentViewHolder(var binding: ItemArticleDetailContentBindin fun bindView(article: ArticleDetailEntity) { binding.run { richEditor.setInputEnabled(false) - richEditor.setPadding(20, 15, 20, 15) + richEditor.setPadding(20, 20, 20, 15) richEditor.addJavascriptInterface(JsInterface(), "imagelistener") richEditor.addJavascriptInterface(OnLinkClickListener(root.context, mEntrance, "帖子详情"), "OnLinkClickListener") richEditor.setLayoutCallback(object : EmptyCallback { diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailFragment.kt index 0f3899d488..7fa1531914 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailFragment.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.app.Activity import android.content.Intent import android.graphics.drawable.ColorDrawable -import android.graphics.drawable.InsetDrawable import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -13,7 +12,6 @@ import android.widget.ImageView import android.widget.LinearLayout import android.widget.PopupWindow import android.widget.TextView -import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat import androidx.lifecycle.Lifecycle import androidx.recyclerview.widget.RecyclerView @@ -22,7 +20,6 @@ import com.ethanhua.skeleton.Skeleton import com.gh.common.TimeElapsedHelper import com.gh.common.history.HistoryHelper import com.gh.common.util.* -import com.gh.common.view.CustomDividerItemDecoration import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity @@ -159,13 +156,6 @@ class ArticleDetailFragment : BaseArticleDetailCommentFragment?) { + fun updateSubComment(subCommentList: ArrayList?, articleOwnerUserId: String) { binding.subCommentContainer.goneIf(subCommentList.isNullOrEmpty()) binding.firstSubCommentTv.goneIf(subCommentList?.firstOrNull() == null) binding.secondSubCommentTv.goneIf(subCommentList?.secondOrNull() == null) + binding.subCommentContainer.setRoundedColorBackground(R.color.text_F5F5F5, 5F) subCommentList?.firstOrNull()?.let { - binding.firstSubCommentTv.text = "${it.user.name}:${it.content}" + binding.firstSubCommentTv.text = getSubCommentSpanned(it.user.name, if (it.user.id == articleOwnerUserId) "作者" else "", it.content) } subCommentList?.secondOrNull()?.let { - binding.secondSubCommentTv.text = "${it.user.name}:${it.content}" + binding.secondSubCommentTv.text = getSubCommentSpanned(it.user.name, if (it.user.id == articleOwnerUserId) "作者" else "", it.content) } } + private fun getSubCommentSpanned(name: String?, author: String?, content: String?): SpannableStringBuilder { + val finalAuthor = author ?: "" + val finalName = "$name " + val colon = " :" + + val nameSpan = SpanBuilder(finalName).bold(0, finalName.length).build() + val authorSpan = if (finalAuthor.isNotEmpty()) SpanBuilder(finalAuthor).image(0, finalAuthor.length, R.drawable.ic_hint_author).build() else "" + val colonSpan = SpanBuilder(colon).bold(0, colon.length).build() + return SpannableStringBuilder().append(nameSpan).append(authorSpan).append(colonSpan).append(content) + } + companion object { fun bindComment(binding: ItemArticleDetailCommentBinding, viewModel: BaseArticleDetailCommentViewModel, @@ -310,6 +343,7 @@ abstract class BaseArticleDetailCommentAdapter(context: Context, false, viewModel.articleId, viewModel.communityId, + true, null) if (viewModel is ArticleDetailViewModel) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentAdapter.kt index bd4513c13d..cc5cca8a77 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentAdapter.kt @@ -7,6 +7,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.databinding.DataBindingUtil import androidx.recyclerview.widget.RecyclerView +import com.gh.common.util.dip2px import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemArticleDetailCommentBinding import com.gh.gamecenter.entity.CommentEntity @@ -57,11 +58,16 @@ class ArticleDetailCommentAdapter(context: Context, constraintSet.connect(binding.contentTv.id, ConstraintSet.START, binding.iconContainer.id, ConstraintSet.START) constraintSet.applyTo(binding.contentTv.parent as ConstraintLayout) + val lp: ConstraintLayout.LayoutParams = binding.contentTv.layoutParams as ConstraintLayout.LayoutParams + lp.topMargin = 16F.dip2px() + binding.contentTv.layoutParams = lp + binding.comment = comment binding.moreIv.visibility = View.GONE binding.floorHintTv.text = "1楼" binding.commentCountTv.text = mViewModel.getCommentText(comment.reply, "回复") binding.commentCountTv.setOnClickListener { commentClosure?.invoke(comment) } + binding.contentTv.text = comment.content ArticleDetailCommentViewHolder.bindComment(binding, mViewModel, comment, mEntrance) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentFragment.kt index d1e48e8f69..7f23ccb39c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentFragment.kt @@ -1,5 +1,6 @@ package com.gh.gamecenter.qa.article.detail.comment +import android.annotation.SuppressLint import android.content.Intent import android.os.Bundle import android.view.View @@ -11,6 +12,7 @@ import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.entity.CommentEntity +import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.article.detail.BaseArticleDetailCommentAdapter import com.gh.gamecenter.qa.article.detail.BaseArticleDetailCommentFragment import com.gh.gamecenter.qa.article.detail.BaseArticleDetailCommentViewModel @@ -26,7 +28,7 @@ class ArticleDetailCommentFragment : BaseArticleDetailCommentFragment { return mAdapter ?: ArticleDetailCommentAdapter(requireContext(), mViewModel, BaseArticleDetailCommentAdapter.AdapterType.SUB_COMMENT, mEntrance) { - mCurrentComment = it - startCommentActivity(it) +// mCurrentComment = it + if (it.user.id == UserManager.getInstance().userId) { + toast("不能回复自己") + } else { + startCommentActivity(it) + } }.apply { mAdapter = this } } @@ -84,11 +90,9 @@ class ArticleDetailCommentFragment : BaseArticleDetailCommentFragment { if (it == BaseArticleDetailCommentViewModel.LoadResult.DELETED) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentAdapter.kt index ceb7c4323a..d2a40662da 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentAdapter.kt @@ -163,6 +163,7 @@ class NewCommentAdapter(context: Context, mIsShowingConversation, mViewModel.articleId, mViewModel.communityId, + false, mCommentOptionClickListener) } diff --git a/app/src/main/java/com/gh/gamecenter/security/BindPhoneConflictFragment.kt b/app/src/main/java/com/gh/gamecenter/security/BindPhoneConflictFragment.kt index 0104f45bb5..584d1399c4 100644 --- a/app/src/main/java/com/gh/gamecenter/security/BindPhoneConflictFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/security/BindPhoneConflictFragment.kt @@ -1,5 +1,6 @@ package com.gh.gamecenter.security +import android.annotation.SuppressLint import android.os.Bundle import android.view.View import android.view.ViewGroup @@ -39,15 +40,17 @@ class BindPhoneConflictFragment : NormalFragment() { mConflictUser = requireArguments().getParcelable(EntranceUtils.KEY_CONFLICT_USER)!! } + @SuppressLint("SetTextI18n") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) mBindPhoneConflictDesc.text = "手机号${mConflictPhone}已经绑定在另一个冲突号上," - mCurrentDesc.text = "注册方式:${getRegisterType(UserManager.getInstance().loginTokenEntity.loginType)}" - val userInfo = UserManager.getInstance().userInfoEntity - mCurrentName.text = userInfo.name - ImageUtils.display(mCurrentIcon, userInfo.icon) + UserManager.getInstance().userInfoEntity.run { + mCurrentDesc.text = "注册方式:${getRegisterType(registerType)}" + mCurrentName.text = name + ImageUtils.display(mCurrentIcon, icon) + } mConflictUser.run { mConflictName.text = user?.name @@ -62,6 +65,7 @@ class BindPhoneConflictFragment : NormalFragment() { "wechat" -> "微信" "weibo" -> "微博" "douyin" -> "抖音" +// "mobile" -> "手机" else -> "手机" } } diff --git a/app/src/main/java/com/gh/gamecenter/security/BindPhoneFragment.kt b/app/src/main/java/com/gh/gamecenter/security/BindPhoneFragment.kt index 5d3599d34a..8a9f441d78 100644 --- a/app/src/main/java/com/gh/gamecenter/security/BindPhoneFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/security/BindPhoneFragment.kt @@ -125,13 +125,14 @@ class BindPhoneFragment : NormalFragment() { } private fun setTextChangedListener() { + // 手机号EditText监听 mBindPhoneEt.setTextChangedListener { s, _, _, _ -> if (s.isNotEmpty()) { mBindPhoneBtn.isEnabled = true mBindPhoneBtn.alpha = 1f } else { mBindPhoneBtn.isEnabled = false - mBindPhoneBtn.alpha = 0.6f + mBindPhoneBtn.alpha = 0.4f } // 输入手机号码加空格 @@ -153,13 +154,14 @@ class BindPhoneFragment : NormalFragment() { } } + // 验证码EditText监听 mBindPhonePassEt.setTextChangedListener { s, _, _, _ -> if (s.length > 5) { mBindPhoneBtn.isEnabled = true mBindPhoneBtn.alpha = 1f } else { mBindPhoneBtn.isEnabled = false - mBindPhoneBtn.alpha = 0.6f + mBindPhoneBtn.alpha = 0.4f } } } diff --git a/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt b/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt index 4d3345309d..c708ceeffb 100644 --- a/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt @@ -24,27 +24,17 @@ class SecurityFragment : NormalFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - mSecurityBindPhone.text = if (UserManager.getInstance().userInfoEntity.loginMobile.isNullOrEmpty()) { - "立即绑定" - } else { - UserManager.getInstance().userInfoEntity.loginMobile - } - - val loginToken = UserManager.getInstance().loginTokenEntity - if (loginToken != null) { - if (!TextUtils.isEmpty(loginToken.loginType)) { - var loginType = loginToken.loginType.trim { it <= ' ' } - when (loginType) { - "qq" -> loginType = "QQ" - "wechat" -> loginType = "微信" - "weibo" -> loginType = "微博" - "douyin" -> loginType = "抖音" - else -> if (loginType.length == 11) { - loginType = "手机" - } - } - mSecurityRegisterWay.text = loginType + UserManager.getInstance().userInfoEntity.run { + mSecurityRegisterWay.text = when (registerType) { + "qq" -> "QQ" + "wechat" -> "微信" + "weibo" -> "微博" + "douyin" -> "抖音" +// "mobile" -> "手机" + else -> "手机" } + + mSecurityBindPhone.text = if (loginMobile.isNullOrEmpty()) "立即绑定" else loginMobile } } diff --git a/app/src/main/res/drawable-xxhdpi/ic_hint_author.png b/app/src/main/res/drawable-xxhdpi/ic_hint_author.png new file mode 100644 index 0000000000..a186799ba1 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_hint_author.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_hint_author.png b/app/src/main/res/drawable-xxxhdpi/ic_hint_author.png new file mode 100644 index 0000000000..45f14b0b8a Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_hint_author.png differ diff --git a/app/src/main/res/layout/dialog_notice.xml b/app/src/main/res/layout/dialog_notice.xml index 0556e9c9f4..b6b0acc0ee 100644 --- a/app/src/main/res/layout/dialog_notice.xml +++ b/app/src/main/res/layout/dialog_notice.xml @@ -44,6 +44,7 @@ android:paddingBottom="18dp" android:gravity="center" android:textColor="@color/text_333333" + android:textStyle="bold" android:textSize="14sp" android:text="@string/change_phone_same_ok" /> diff --git a/app/src/main/res/layout/fragment_security.xml b/app/src/main/res/layout/fragment_security.xml index 220145cd29..52ea573ce6 100644 --- a/app/src/main/res/layout/fragment_security.xml +++ b/app/src/main/res/layout/fragment_security.xml @@ -4,78 +4,85 @@ android:layout_height="match_parent" android:orientation="vertical" android:background="@color/text_F5F5F5"> - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_article_detail_comment.xml b/app/src/main/res/layout/item_article_detail_comment.xml index f46f2933f5..cefad24a25 100644 --- a/app/src/main/res/layout/item_article_detail_comment.xml +++ b/app/src/main/res/layout/item_article_detail_comment.xml @@ -50,7 +50,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="12dp" - android:layout_marginRight="20dp" + android:layout_marginRight="11dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/iconContainer" app:layout_constraintTop_toTopOf="@id/iconContainer"> @@ -65,6 +65,7 @@ android:text="@{comment.user.name}" android:textColor="@color/text_333333" android:textSize="14sp" + android:textStyle="bold" app:layout_constrainedWidth="true" app:layout_constraintEnd_toStartOf="@+id/authorHintTv" app:layout_constraintHorizontal_bias="0" @@ -79,7 +80,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="4dp" - android:layout_marginRight="4dp" + android:layout_marginRight="8dp" android:background="@drawable/button_round_2496ff" android:includeFontPadding="false" android:paddingLeft="4dp" @@ -120,6 +121,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2dp" + android:layout_marginRight="11dp" android:gravity="center" android:includeFontPadding="false" android:text="@{comment.user.badge.name}" @@ -128,7 +130,7 @@ android:visibility="gone" app:layout_constrainedWidth="true" app:layout_constraintBottom_toBottomOf="@+id/userNameTv" - app:layout_constraintEnd_toStartOf="@+id/commentHintTv" + app:layout_constraintEnd_toStartOf="@+id/moreIv" app:layout_constraintStart_toEndOf="@+id/badgeIv" app:layout_constraintTop_toTopOf="@+id/userNameTv" tools:text="答题先锋" @@ -147,76 +149,6 @@ app:layout_constraintTop_toBottomOf="@id/userNameTv" tools:text="一个小时前" /> - - - - - - - - - - - + app:layout_constraintTop_toTopOf="parent" /> @@ -241,7 +173,6 @@ android:includeFontPadding="false" android:lineSpacingExtra="6dp" android:maxLines="4" - android:text="@{comment.content}" android:textColor="@color/text_333333" android:textSize="14sp" app:layout_constraintEnd_toEndOf="parent" @@ -306,8 +237,8 @@ android:id="@+id/floorHintTv" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="22dp" - android:layout_marginBottom="22dp" + android:layout_marginTop="20dp" + android:layout_marginBottom="20dp" android:textColor="@color/text_999999" android:textSize="12sp" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/item_article_detail_content.xml b/app/src/main/res/layout/item_article_detail_content.xml index 31e8760ae5..7ac57e9a32 100644 --- a/app/src/main/res/layout/item_article_detail_content.xml +++ b/app/src/main/res/layout/item_article_detail_content.xml @@ -24,14 +24,15 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:paddingLeft="18dp" - android:paddingTop="20dp" + android:paddingTop="8dp" android:paddingRight="18dp" - android:paddingBottom="20dp" + android:paddingBottom="5dp" + android:lineSpacingMultiplier="1.4" android:text="@{detail.title}" android:textColor="@color/text_333333" android:textSize="18sp" android:textStyle="bold" - tools:text="这是标题" /> + tools:text="这是一个很长很长很长很长很长很长很长很长很长很长的标题" /> - - - - diff --git a/app/src/main/res/layout/piece_article_detail_comment_filter.xml b/app/src/main/res/layout/piece_article_detail_comment_filter.xml index e65088e2db..9b40bfef48 100644 --- a/app/src/main/res/layout/piece_article_detail_comment_filter.xml +++ b/app/src/main/res/layout/piece_article_detail_comment_filter.xml @@ -9,17 +9,17 @@ android:layout_height="44dp" android:background="@color/white" android:clickable="false" - android:paddingLeft="20dp" - android:paddingRight="20dp" tools:showIn="@layout/fragment_article_detail"> @@ -40,6 +40,7 @@ android:id="@+id/filterLatestTv" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginRight="20dp" android:gravity="center" android:padding="6dp" android:text="最新" @@ -73,5 +74,14 @@ app:layout_constraintRight_toLeftOf="@id/filterDivider" app:layout_constraintTop_toTopOf="parent" /> + + diff --git a/app/src/main/res/layout/piece_article_input_container.xml b/app/src/main/res/layout/piece_article_input_container.xml index a4e253d7b1..d14b9a809e 100644 --- a/app/src/main/res/layout/piece_article_input_container.xml +++ b/app/src/main/res/layout/piece_article_input_container.xml @@ -20,6 +20,7 @@ android:maxLines="1" android:paddingLeft="16dp" android:paddingRight="16dp" + android:textColor="@color/AAAAAA" android:textSize="14sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" @@ -39,8 +40,8 @@ @@ -48,7 +49,6 @@ android:id="@+id/bottomLikeTv" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="2dp" android:gravity="center" android:text="赞同" android:textColor="@color/text_666666" @@ -69,8 +69,8 @@ @@ -78,7 +78,6 @@ android:id="@+id/bottomCommentTv" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="2dp" android:gravity="center" android:text="评论" android:textColor="@color/text_666666" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 88bdb8b454..2b91ee7d3f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -102,6 +102,7 @@ #ff4147 #aaaaaa + #AAAAAA #dcdcdc #c7c7c7 #d6d5ff