From 1694603cd08d3008a193dfd69e38d2b76759b282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= <1484288157@qq.com> Date: Thu, 26 Dec 2019 11:27:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=901225=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E9=97=AE=E9=A2=98:1,2,3,5=20https://gitlab.ghzs.com/pm/halo-ap?= =?UTF-8?q?p-issues/issues/719?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/common/util/GameViewUtils.java | 25 +++++- .../entity/PersonalHistoryEntity.kt | 6 +- .../gamedetail/myrating/MyRatingAdapter.kt | 10 ++- .../gamedetail/myrating/MyRatingFragment.kt | 15 ++++ .../personalhome/rating/MyRating.kt | 4 +- .../main/res/layout/item_my_game_rating.xml | 78 ++++++++++--------- 6 files changed, 96 insertions(+), 42 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/GameViewUtils.java b/app/src/main/java/com/gh/common/util/GameViewUtils.java index cd54cbf90a..6282b22160 100644 --- a/app/src/main/java/com/gh/common/util/GameViewUtils.java +++ b/app/src/main/java/com/gh/common/util/GameViewUtils.java @@ -3,7 +3,6 @@ package com.gh.common.util; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.GradientDrawable; -import androidx.core.content.ContextCompat; import android.text.TextUtils; import android.util.TypedValue; import android.view.View; @@ -22,6 +21,8 @@ import java.util.List; import java.util.Locale; import java.util.TimeZone; +import androidx.core.content.ContextCompat; + /** * @author 温冠超 * @email 294299195@qq.com @@ -53,6 +54,28 @@ public class GameViewUtils { } } + public static void setLabelList(Context context, LinearLayout labelLayout, String tagType, List tagStyle) { + labelLayout.removeAllViews(); + if (tagStyle == null || tagStyle.isEmpty()) { + labelLayout.addView(getGameTagView(context, "官方版", 0, tagType, null)); + } else { + for (int i = 0; i < tagStyle.size() - 1; i++) { + View view; + if (i == tagStyle.size() - 1) { + view = getGameTagView(context, tagStyle.get(i).getName(), 0, tagType, tagStyle.size() > i ? tagStyle.get(i) : null); + } else { + view = getGameTagView(context, tagStyle.get(i).getName(), DisplayUtils.dip2px(context, 8), tagType, tagStyle.size() > i ? tagStyle.get(i) : null); + } + if (view != null) { + labelLayout.addView(view); + } + if (labelLayout.getChildCount() == 3) { + break; + } + } + } + } + private static TextView getGameTagView(Context context, String tagStr, int rightMargin, String tagType, TagStyleEntity tagEntity) { LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 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 512e0f6b2d..0862178a5d 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt @@ -1,7 +1,9 @@ package com.gh.gamecenter.entity +import android.os.Parcelable import com.gh.gamecenter.qa.entity.CommunityVideoEntity import com.google.gson.annotations.SerializedName +import kotlinx.android.parcel.Parcelize data class PersonalHistoryEntity( @SerializedName("_id") @@ -38,6 +40,7 @@ data class PersonalHistoryEntity( val content: String = "", val game: Game = Game()) + @Parcelize data class Game( @SerializedName("_id") val id: String = "", @@ -46,7 +49,8 @@ data class PersonalHistoryEntity( val nameSuffix: String = "", val icon: String = "", + @SerializedName(value = "tag",alternate = ["tag_style"]) val tag: List? = null, val star: Float = 0F - ) + ): Parcelable } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt index d94e9d5792..b87487f05f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt @@ -46,7 +46,8 @@ class MyRatingAdapter(context: Context) : ListAdapter(context) { } else { holder.itemView.tv_comment.setTextWithHighlightedTextWrappedInsideWrapper(text = rating.content, copyClickedText = true) } - GameViewUtils.setLabelList(mContext, holder.itemView.label_list, null, "", rating.game.tag) + GameViewUtils.setLabelList(mContext, holder.itemView.label_list, "", rating.game.tag) + holder.itemView.label_list.goneIf(holder.itemView.label_list.childCount == 0) holder.itemView.apply { game_info.setOnClickListener { @@ -55,7 +56,8 @@ class MyRatingAdapter(context: Context) : ListAdapter(context) { } comment_info.setOnClickListener { MtaHelper.onEvent("我的光环_新", "我的游戏评论", "评论详情") - mContext.startActivity(RatingReplyActivity.getIntent(mContext, rating.game.id, rating.id, "我的游戏评论", "")) + val intent = RatingReplyActivity.getIntent(mContext, rating.game.id, rating.id, "我的游戏评论", "") + SyncDataBetweenPageHelper.startActivityForResult(mContext, intent, 100, position) } } } @@ -73,4 +75,8 @@ class MyRatingAdapter(context: Context) : ListAdapter(context) { override fun getItemCount(): Int { return if (mEntityList.isNullOrEmpty()) 0 else mEntityList.size + FOOTER_ITEM_COUNT } + + fun getEntityList(): List { + return mEntityList + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingFragment.kt index fd710f58c1..a7e3e01db2 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingFragment.kt @@ -1,8 +1,11 @@ package com.gh.gamecenter.gamedetail.myrating +import android.app.Activity +import android.content.Intent import androidx.lifecycle.ViewModelProviders import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.personalhome.rating.MyRating class MyRatingFragment : ListFragment() { @@ -18,4 +21,16 @@ class MyRatingFragment : ListFragment() { override fun provideListViewModel(): MyRatingViewModel { return ViewModelProviders.of(this).get(MyRatingViewModel::class.java) } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + if (100 == requestCode && resultCode == Activity.RESULT_OK) { + val dataPosition = data?.getIntExtra("DATA_POSITION_TAG", -1) ?: -1 + val myRating = mAdapter?.getEntityList()?.get(dataPosition) + val resultData = data?.getParcelableExtra(RatingComment::class.java.simpleName) + myRating?.vote = resultData?.vote ?: 0 + myRating?.reply = resultData?.reply ?: 0 + mAdapter?.notifyItemChanged(dataPosition) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/rating/MyRating.kt b/app/src/main/java/com/gh/gamecenter/personalhome/rating/MyRating.kt index ba4456efb3..721b126e14 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/rating/MyRating.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/rating/MyRating.kt @@ -14,8 +14,8 @@ data class MyRating(@SerializedName("_id") val star: Int = 0, val content: String = "", val time: Long = 0, - val vote: Int = -1, - val reply: Int = -1, + var vote: Int = -1, + var reply: Int = -1, var user: PersonalEntity? = null, val game: PersonalHistoryEntity.Game = PersonalHistoryEntity.Game()) { diff --git a/app/src/main/res/layout/item_my_game_rating.xml b/app/src/main/res/layout/item_my_game_rating.xml index 2e37e7b842..e9abd595cc 100644 --- a/app/src/main/res/layout/item_my_game_rating.xml +++ b/app/src/main/res/layout/item_my_game_rating.xml @@ -37,32 +37,37 @@ app:layout_constraintTop_toTopOf="parent" fresco:roundedCornerRadius="10dp" /> - + + - + + + + + + + app:layout_constraintTop_toTopOf="parent" /> - - -