Merge branch 'dev' of gitlab.ghzhushou.com:halo/assistant-android into dev

This commit is contained in:
kehaoyuan
2018-10-31 02:31:38 +08:00
11 changed files with 155 additions and 30 deletions

View File

@ -239,11 +239,11 @@ class DescAdapter(context: Context,
viewHolder.binding.expandRl.setOnClickListener {
if (viewHolder.binding.updateTv.maxLines == 5) {
viewHolder.binding.updateTv.maxLines = 100
viewHolder.binding.expandIv.setImageResource(R.drawable.ic_category_arrow_up)
viewHolder.binding.expandIv.setImageResource(R.drawable.ic_arrow_up)
MtaHelper.onEvent("游戏详情", "展开更新内容", gameName)
} else {
viewHolder.binding.updateTv.maxLines = 5
viewHolder.binding.expandIv.setImageResource(R.drawable.ic_category_arrow_down)
viewHolder.binding.expandIv.setImageResource(R.drawable.ic_arrow_down)
MtaHelper.onEvent("游戏详情", "收起更新内容", gameName)
}
notifyItemChanged(viewHolder.adapterPosition)
@ -260,7 +260,7 @@ class DescAdapter(context: Context,
val layoutManager = GridLayoutManager(mContext, 3)
layoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
override fun getSpanSize(position: Int): Int {
return if (!TextUtils.isEmpty(tips!!.content)) {
return if (tips!!.title != null) {
if (position == 0) 3 else 1
} else {
1
@ -274,7 +274,7 @@ class DescAdapter(context: Context,
viewHolder.gameDetailPluginRv.layoutManager = layoutManager
viewHolder.gamedetailPluginExpandIv.visibility = View.GONE
viewHolder.gameDetailPluginRv.adapter = GameDetailPluginAdapter(tag, tips, false, mContext)
viewHolder.gameDetailPluginRv.adapter = GameDetailBasicInfoAdapter(tag, tips, false, mContext)
}
private fun initPluginViewHolder(viewHolder: GameDetailPluginViewHolder, descItemData: DescItemData) {
@ -301,10 +301,10 @@ class DescAdapter(context: Context,
if (mIsPluginExpanded) {
viewHolder.gameDetailPluginRv.layoutManager = linearLayoutManager
viewHolder.gamedetailPluginExpandIv.setImageResource(R.drawable.ic_category_arrow_up)
viewHolder.gamedetailPluginExpandIv.setImageResource(R.drawable.ic_arrow_up)
} else {
viewHolder.gameDetailPluginRv.layoutManager = layoutManager
viewHolder.gamedetailPluginExpandIv.setImageResource(R.drawable.ic_category_arrow_down)
viewHolder.gamedetailPluginExpandIv.setImageResource(R.drawable.ic_arrow_down)
}
viewHolder.gameDetailPluginRv.adapter = GameDetailPluginAdapter(tag, tips, mIsPluginExpanded, mContext)
viewHolder.gamedetailPluginOpen.setOnClickListener { _ ->
@ -364,11 +364,11 @@ class DescAdapter(context: Context,
mIsIntroExpanded = !mIsIntroExpanded
if (mIsIntroExpanded) {
viewHolder.introContent.maxLines = 100
viewHolder.expandIv.setImageResource(R.drawable.ic_category_arrow_up)
viewHolder.expandIv.setImageResource(R.drawable.ic_arrow_up)
DataUtils.onMtaEvent(mContext, "游戏详情", "展开游戏介绍", gameName)
} else {
viewHolder.introContent.maxLines = 3
viewHolder.expandIv.setImageResource(R.drawable.ic_category_arrow_down)
viewHolder.expandIv.setImageResource(R.drawable.ic_arrow_down)
DataUtils.onMtaEvent(mContext, "游戏详情", "收起游戏介绍", gameName)
}
notifyItemChanged(viewHolder.adapterPosition)

View File

@ -0,0 +1,125 @@
package com.gh.gamecenter.gamedetail.desc;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import com.gh.common.util.ImageUtils;
import com.gh.gamecenter.R;
import com.gh.gamecenter.entity.TagEntity;
import com.gh.gamecenter.entity.TipsEntity;
import com.gh.gamecenter.entity.TitleEntity;
import com.lightgame.adapter.BaseRecyclerAdapter;
import java.util.ArrayList;
/**
* Created by khy on 2017/3/27.
*/
public class GameDetailBasicInfoAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> {
public static final int POSITION_LEFT = 0;
public static final int POSITION_MIDDLE = 1;
public static final int POSITION_RIGHT = 2;
public static final int LABEL_COLUMN_LIMIT = 3;
private ArrayList<TagEntity> tags;
private TipsEntity tips;
private boolean isOpen;
public GameDetailBasicInfoAdapter(ArrayList<TagEntity> tags, TipsEntity tips, boolean isOpen, Context context) {
super(context);
this.tags = tags;
this.tips = tips;
this.isOpen = isOpen;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = mLayoutInflater.inflate(R.layout.gamedetail_plugin_item, parent, false);
LinearLayout hintLl = view.findViewById(R.id.gamedetail_ll_hint);
if (tips.getTitle() != null) {
viewType--;
}
if (!isOpen) {
switch (viewType % LABEL_COLUMN_LIMIT) {
case POSITION_LEFT:
hintLl.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
break;
case POSITION_MIDDLE:
hintLl.setGravity(Gravity.CENTER);
break;
case POSITION_RIGHT:
hintLl.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);
}
}
return new GameDetailPluginRvViewHolder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof GameDetailPluginRvViewHolder) {
GameDetailPluginRvViewHolder viewHolder = (GameDetailPluginRvViewHolder) holder;
int index;
if ((tips.getTitle() != null)) {
index = 1;
} else {
index = 0;
}
if (tips.getTitle() != null && position == 0) {
TitleEntity title = tips.getTitle();
if (!TextUtils.isEmpty(tips.getIcon())) {
viewHolder.hintDv.setVisibility(View.VISIBLE);
ImageUtils.displayIcon(viewHolder.hintDv, tips.getIcon());
} else {
viewHolder.hintDv.setVisibility(View.GONE);
}
if (!TextUtils.isEmpty(tips.getContent())) {
viewHolder.hintContentTv.setVisibility(View.VISIBLE);
viewHolder.hintContentTv.setText(tips.getContent());
} else {
viewHolder.hintContentTv.setVisibility(View.GONE);
}
viewHolder.hintTv.setText(title.getValue());
if (!TextUtils.isEmpty(title.getColor())) {
viewHolder.hintTv.setTextColor(Color.parseColor(title.getColor()));
}
} else {
TagEntity tagEntity = tags.get(position - index);
if (!TextUtils.isEmpty(tagEntity.getIcon())) {
viewHolder.hintDv.setVisibility(View.VISIBLE);
ImageUtils.displayIcon(viewHolder.hintDv, tagEntity.getIcon());
} else {
viewHolder.hintDv.setVisibility(View.GONE);
}
viewHolder.hintTv.setText(tagEntity.getName());
viewHolder.hintTv.setTextColor(Color.parseColor(tagEntity.getColor()));
if (isOpen) {
viewHolder.hintContentTv.setVisibility(View.VISIBLE);
viewHolder.hintContentTv.setText(tagEntity.getDes());
} else {
viewHolder.hintContentTv.setVisibility(View.GONE);
}
}
}
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public int getItemCount() {
if (tips.getTitle() != null) {
return tags.size() + 1;
}
return tags.size();
}
}

View File

@ -11,6 +11,7 @@ import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
@ -50,6 +51,8 @@ public class KaiFuVpFragment extends BaseFragment {
RecyclerView mRecyclerView;
@BindView(R.id.kaifu_item_time_tv)
TextView mKaifuItemTimeTv;
@BindView(R.id.kaifu_item_header)
ImageView mKaifuItemHeaderIv;
@BindView(R.id.kaifu_item_time)
LinearLayout mKaiFuTimeLl;
@BindView(R.id.kaifu_pb_loading)
@ -143,6 +146,7 @@ public class KaiFuVpFragment extends BaseFragment {
if (fixedTopHint) {
mKaifuItemTimeTv.setText("热门开服");
mKaifuItemHeaderIv.setImageResource(R.drawable.ic_kaifu_hot);
} else {
Long timeHint = timeGameEntity.getKaifuTimeHint();
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd (EEEE) HH:mm", Locale.CHINA);
@ -150,10 +154,12 @@ public class KaiFuVpFragment extends BaseFragment {
KaiFuCalendarEntity serverEntity = timeGameEntity.getServerEntity();
if (serverEntity != null) {
mKaifuItemTimeTv.setText(dateFm.format(serverEntity.getTime() * 1000));
mKaifuItemHeaderIv.setImageResource(R.drawable.kaifu_time_icon);
mKaifuItemTimeTv.setTag(serverEntity.getTime());
}
} else {
mKaifuItemTimeTv.setText(dateFm.format(timeHint * 1000));
mKaifuItemHeaderIv.setImageResource(R.drawable.kaifu_time_icon);
mKaifuItemTimeTv.setTag(timeHint);
}
}