From fc0c734261ad09d764bc3531747c38363f87fb3c Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Fri, 16 Sep 2022 18:03:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B4=E6=92=AD=E9=97=B4=E8=B4=A1=E7=8C=AE?= =?UTF-8?q?=E6=A6=9C=E6=B7=BB=E5=8A=A0=E9=9A=90=E8=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yunbao/common/bean/UserBean.java | 11 + .../live/adapter/UserMoreInfoAdapter.java | 190 ++++++++++-------- .../dialog/LiveUserMoreDialogFragment.java | 131 ++++++------ live/src/main/res/mipmap-xxxhdpi/hide.png | Bin 0 -> 30021 bytes 4 files changed, 189 insertions(+), 143 deletions(-) create mode 100644 live/src/main/res/mipmap-xxxhdpi/hide.png diff --git a/common/src/main/java/com/yunbao/common/bean/UserBean.java b/common/src/main/java/com/yunbao/common/bean/UserBean.java index 869dd6d61..a9dd62735 100644 --- a/common/src/main/java/com/yunbao/common/bean/UserBean.java +++ b/common/src/main/java/com/yunbao/common/bean/UserBean.java @@ -56,6 +56,17 @@ public class UserBean implements Parcelable { private String mobile; private String front_task; private String is_admin; + //是否隐藏 + private boolean isHide = false; + + public boolean isHide() { + return isHide; + } + + public UserBean setHide(boolean hide) { + isHide = hide; + return this; + } public String getIs_admin() { return is_admin; diff --git a/live/src/main/java/com/yunbao/live/adapter/UserMoreInfoAdapter.java b/live/src/main/java/com/yunbao/live/adapter/UserMoreInfoAdapter.java index 148ea8aab..db40c03e0 100644 --- a/live/src/main/java/com/yunbao/live/adapter/UserMoreInfoAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/UserMoreInfoAdapter.java @@ -3,10 +3,7 @@ package com.yunbao.live.adapter; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.Drawable; -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; -import androidx.recyclerview.widget.RecyclerView; - +import android.text.TextUtils; import android.util.Log; import android.view.Gravity; import android.view.View; @@ -16,6 +13,10 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + import com.opensource.svgaplayer.SVGADrawable; import com.opensource.svgaplayer.SVGAImageView; import com.opensource.svgaplayer.SVGAParser; @@ -24,45 +25,36 @@ import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; import com.yunbao.common.adapter.RefreshAdapter; import com.yunbao.common.bean.LevelBean; +import com.yunbao.common.bean.LiveUserRankBean; import com.yunbao.common.bean.UserBean; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.utils.CommonIconUtil; import com.yunbao.common.utils.DpUtil; +import com.yunbao.common.utils.ToastUtil; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.bean.LiveUserGiftBean; -import com.yunbao.common.bean.LiveUserRankBean; import com.yunbao.live.dialog.LiveUserMoreDialogFragment; import java.net.MalformedURLException; import java.net.URL; +import java.util.ArrayList; +import java.util.List; public class UserMoreInfoAdapter extends RefreshAdapter { -// private static final int HEAD = 1; -// private static final int NORMAL = 0; private String mVotesName; public int num; public String type; private Drawable mGuardDrawable0; private Drawable mGuardDrawable1; private Drawable mGuardDrawable2; -// private View.OnClickListener mOnClickListener; private LiveUserMoreDialogFragment fragments; - public UserMoreInfoAdapter(Context context,LiveUserMoreDialogFragment fragment) { + private List outRankHide = new ArrayList<>(); + + public UserMoreInfoAdapter(Context context, LiveUserMoreDialogFragment fragment) { super(context); -// mOnClickListener = new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// Object tag = v.getTag(); -// if (tag != null) { -// int position = (int) tag; -// if (mOnItemClickListener != null) { -// mOnItemClickListener.onItemClick(mList.get(position), position); -// } -// } -// } -// }; + this.fragments = fragment; mVotesName = CommonAppConfig.getInstance().getVotesName(); mGuardDrawable0 = ContextCompat.getDrawable(context, R.mipmap.icon_guard_type_0); @@ -73,12 +65,9 @@ public class UserMoreInfoAdapter extends RefreshAdapter { @Override public int getItemViewType(int position) { -// if (position == 0) { -// return HEAD; -// } -// return NORMAL; return position; } + @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -88,14 +77,13 @@ public class UserMoreInfoAdapter extends RefreshAdapter { @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder vh, int position) { -// vh.setIsRecyclable(false); - //type 3、4为日榜和周榜模式,数据与观众有差距,分开处理 - if(Integer.parseInt(type)>3){ - ((Vh)vh).setRankModel(true); - }else{ - ((Vh)vh).setRankModel(false); - } - ((Vh) vh).setData(mList.get(position), position); + //type 3、4为日榜和周榜模式,数据与观众有差距,分开处理 + if (Integer.parseInt(type) > 3) { + ((Vh) vh).setRankModel(true); + } else { + ((Vh) vh).setRankModel(false); + } + ((Vh) vh).setData(mList.get(position), position); } @Override @@ -105,10 +93,10 @@ public class UserMoreInfoAdapter extends RefreshAdapter { class Vh extends RecyclerView.ViewHolder { - TextView title,title1; + TextView title, title1; ImageView mIcon; ImageView mAvatar; - TextView mName,tvName; + TextView mName, tvName; ImageView mNoble; ImageView mSex; ImageView mLevel; @@ -118,43 +106,49 @@ public class UserMoreInfoAdapter extends RefreshAdapter { ImageView ivIcon; ImageView rankImage; TextView rankText; + public Vh(@NonNull View itemView) { super(itemView); - title1 = (TextView)itemView.findViewById(R.id.title1); - title = (TextView)itemView.findViewById(R.id.title); + title1 = (TextView) itemView.findViewById(R.id.title1); + title = (TextView) itemView.findViewById(R.id.title); mNoble = (ImageView) itemView.findViewById(R.id.noble); - tvName = (TextView)itemView.findViewById(R.id.tvName); + tvName = (TextView) itemView.findViewById(R.id.tvName); ivIcon = (ImageView) itemView.findViewById(R.id.ivIcon); mIcon = (ImageView) itemView.findViewById(R.id.icon); mAvatar = (ImageView) itemView.findViewById(R.id.avatar); mName = (TextView) itemView.findViewById(R.id.name); mSex = (ImageView) itemView.findViewById(R.id.sex); mLevel = (ImageView) itemView.findViewById(R.id.level); - gift_svga = (SVGAImageView)itemView.findViewById(R.id.gift_svga); - mUserIcon = (RelativeLayout)itemView.findViewById(R.id.userIcon); - mRanksIcon = (LinearLayout)itemView.findViewById(R.id.ranks); - rankImage=new ImageView(mContext); - rankText=new TextView(mContext); + gift_svga = (SVGAImageView) itemView.findViewById(R.id.gift_svga); + mUserIcon = (RelativeLayout) itemView.findViewById(R.id.userIcon); + mRanksIcon = (LinearLayout) itemView.findViewById(R.id.ranks); + rankImage = new ImageView(mContext); + rankText = new TextView(mContext); } - void setData(final UserBean bean,int position) { + void setData(final UserBean bean, int position) { itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - ((LiveActivity) mContext).showUserDialog(bean.getId()); - fragments.dismiss(); + if (bean.isHide() && (type.equals("5") || type.equals("4"))) { + ToastUtil.show(R.string.can_not_go); + } else { + ((LiveActivity) mContext).showUserDialog(bean.getId()); + fragments.dismiss(); + } + } }); LevelBean levelBean = CommonAppConfig.getInstance().getLevel(bean.getLevel()); title.setVisibility(View.GONE); title1.setVisibility(View.GONE); - Log.i("tag",""+num); - if(position==0&&type.equals("1")){ + Log.i("tag", "" + num); + if (position == 0 && type.equals("1")) { title1.setText(R.string.noble); title1.setVisibility(View.VISIBLE); } - if(position== num&&type.equals("1")){ + if (position == num && type.equals("1")) { title.setText(R.string.live_audience); title.setVisibility(View.VISIBLE); } @@ -165,11 +159,11 @@ public class UserMoreInfoAdapter extends RefreshAdapter { tvName.setVisibility(View.GONE); tvName.setTextSize(12); tvName.setTextColor(mContext.getResources().getColor(R.color.white)); - if(type.equals("1")) { + if (type.equals("1")) { if (!bean.getDress().getMedal().equals("")) { ImgLoader.display(mContext, bean.getDress().getMedal(), mIcon); } else { - int guardType = ((LiveUserGiftBean)bean).getGuardType(); + int guardType = ((LiveUserGiftBean) bean).getGuardType(); if (guardType == Constants.GUARD_TYPE_NONE) { if (mIcon.getVisibility() != View.VISIBLE) { mIcon.setVisibility(View.INVISIBLE); @@ -187,8 +181,8 @@ public class UserMoreInfoAdapter extends RefreshAdapter { } } } - }else if(type.equals("2")){ - int guardType = ((LiveUserGiftBean)bean).getGuardType(); + } else if (type.equals("2")) { + int guardType = ((LiveUserGiftBean) bean).getGuardType(); if (guardType == Constants.GUARD_TYPE_NONE) { if (mIcon.getVisibility() != View.VISIBLE) { mIcon.setVisibility(View.INVISIBLE); @@ -205,7 +199,7 @@ public class UserMoreInfoAdapter extends RefreshAdapter { mIcon.setImageDrawable(mGuardDrawable2); } } - }else if(type.equals("3")){ + } else if (type.equals("3")) { ivIcon.setVisibility(View.VISIBLE); tvName.setVisibility(View.VISIBLE); @@ -213,39 +207,52 @@ public class UserMoreInfoAdapter extends RefreshAdapter { @Override public void onLoadSuccess(Drawable drawable) { ivIcon.setImageDrawable(drawable); - tvName.setText( bean.getMedal_name()); + tvName.setText(bean.getMedal_name()); } + @Override public void onLoadFailed() { } }); - }else if(type.equals("4")||type.equals("5")){//日、周榜 + } else if (type.equals("4") || type.equals("5")) {//日、周榜 tvName.setVisibility(View.VISIBLE); - tvName.setText(((LiveUserRankBean)bean).getTotal()+""); + tvName.setText(((LiveUserRankBean) bean).getTotal() + ""); tvName.setTextColor(Color.parseColor("#9E9E9E")); tvName.setTextSize(12); - switch (position){ - case 0:rankImage.setImageResource(R.mipmap.day_list_no_1);break; - case 1:rankImage.setImageResource(R.mipmap.day_list_no_2);break; - case 2:rankImage.setImageResource(R.mipmap.day_list_no_3);break; + switch (position) { + case 0: + rankImage.setImageResource(R.mipmap.day_list_no_1); + break; + case 1: + rankImage.setImageResource(R.mipmap.day_list_no_2); + break; + case 2: + rankImage.setImageResource(R.mipmap.day_list_no_3); + break; default: - rankText.setText((position+1)+""); + rankText.setText((position + 1) + ""); rankText.setTextColor(Color.parseColor("#FFFFFF")); rankText.setTextSize(20); rankText.setGravity(Gravity.CENTER); } mRanksIcon.removeAllViews(); - if (position>2){ - mRanksIcon.addView(rankText,0); - }else{ - mRanksIcon.addView(rankImage,0); + if (position > 2) { + mRanksIcon.addView(rankText, 0); + } else { + mRanksIcon.addView(rankImage, 0); } } - ImgLoader.display(mContext, bean.getAvatar(), mAvatar); - if(bean.getDress()!=null&&bean.getDress().getAvatar_frame()!=null){ + if (bean.isHide() && (type.equals("5") || type.equals("4"))) { + mName.setText(R.string.mystery_man); + ImgLoader.display(mContext, R.mipmap.hide, mAvatar); + } else { + ImgLoader.display(mContext, bean.getAvatar(), mAvatar); + mName.setText(bean.getUserNiceName()); + } + if (bean.getDress() != null && bean.getDress().getAvatar_frame() != null) { gift_svga.setVisibility(View.VISIBLE); - if(bean.getDress().getAvatar_frame().contains("svga")) { + if (bean.getDress().getAvatar_frame().contains("svga")) { try { new SVGAParser(mContext).parse(new URL(bean.getDress().getAvatar_frame()), new SVGAParser.ParseCompletion() { @Override @@ -262,21 +269,20 @@ public class UserMoreInfoAdapter extends RefreshAdapter { } catch (MalformedURLException e) { e.printStackTrace(); } - }else{ - ImgLoader.display(mContext,bean.getDress().getAvatar_frame(), gift_svga); + } else { + ImgLoader.display(mContext, bean.getDress().getAvatar_frame(), gift_svga); } - }else{ + } else { gift_svga.setVisibility(View.GONE); } mNoble.setVisibility(View.GONE); - if(bean.getDress()!=null&&bean.getDress().getMedal()!=null){ + if (bean.getDress() != null && bean.getDress().getMedal() != null) { ImgLoader.displayAvatar(mContext, bean.getDress().getMedal(), mNoble); - }else{ + } else { mNoble.setVisibility(View.GONE); } - mName.setText(bean.getUserNiceName()); mSex.setImageResource(CommonIconUtil.getSexIcon(bean.getSex())); if (levelBean != null) { @@ -286,20 +292,44 @@ public class UserMoreInfoAdapter extends RefreshAdapter { /** * 设置在榜单模式下,头像的位置 + * * @param isRank 是否为榜单模式 */ - private void setRankModel(boolean isRank){ + private void setRankModel(boolean isRank) { LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mUserIcon.getLayoutParams(); - if(isRank){ + if (isRank) { mRanksIcon.setVisibility(View.VISIBLE); - params.leftMargin= DpUtil.dp2px(16); - }else{ + params.leftMargin = DpUtil.dp2px(16); + } else { mRanksIcon.setVisibility(View.GONE); - params.leftMargin= DpUtil.dp2px(27); + params.leftMargin = DpUtil.dp2px(27); } mUserIcon.setLayoutParams(params); } } + /** + * 设置隐藏数据 + * + * @param outRankHide + */ + public void setHide(List outRankHide) { + this.outRankHide = outRankHide; + for (UserBean model : mList) { + for (String hideId : outRankHide) { + model.setHide(TextUtils.equals(model.getId(), hideId)); + } + } + notifyDataSetChanged(); + } + @Override + public void refreshData(List list) { + for (UserBean model : list) { + for (String hideId : outRankHide) { + model.setHide(TextUtils.equals(model.getId(), hideId)); + } + } + super.refreshData(list); + } } diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveUserMoreDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveUserMoreDialogFragment.java index 0d8a630d0..4b002d076 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveUserMoreDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveUserMoreDialogFragment.java @@ -23,12 +23,14 @@ import com.alibaba.fastjson.JSONObject; import com.yunbao.common.Constants; import com.yunbao.common.adapter.RefreshAdapter; import com.yunbao.common.bean.LiveUserRankBean; +import com.yunbao.common.bean.NobleRankHideUserListModel; import com.yunbao.common.bean.UserBean; import com.yunbao.common.bean.UserRankModel; import com.yunbao.common.custom.CommonRefreshView; import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.http.API; import com.yunbao.common.http.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.utils.DpUtil; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; @@ -57,7 +59,7 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie public static LiveActivity activity = null; public eightbitlab.com.blurview.BlurView blurView; - public TextView audience_btn, guard_btn, fans_btn, tags, btn, gz_view, dayRank, weekRank,title; + public TextView audience_btn, guard_btn, fans_btn, tags, btn, gz_view, dayRank, weekRank, title; private LinearLayout tabs; private ConstraintLayout noMoreLayout; private TextView noMoreText; @@ -66,6 +68,7 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie private String type = "guanzhong"; private boolean isOnly; ImageView no_more; + private List outRankHide = new ArrayList<>(); @Override protected int getLayoutId() { @@ -105,28 +108,9 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie if (bundle == null) { return; } - //毛玻璃 -// final int radius = 16; -// -// blurView = mRootView.findViewById(R.id.blurView); -// View decorView = activity.getWindow().getDecorView(); -// //ViewGroup you want to start blur from. Choose root as close to BlurView in hierarchy as possible. -// ViewGroup rootView = (ViewGroup) decorView.findViewById(android.R.id.content); -// //Set drawable to draw in the beginning of each blurred frame (Optional). -// //Can be used in case your layout has a lot of transparent space and your content -// //gets kinda lost after after blur is applied. -// Drawable windowBackground = decorView.getBackground(); -// -// blurView.setupWith(rootView) -// .setFrameClearDrawable(windowBackground) -// .setBlurAlgorithm(new RenderScriptBlur(mContext)) -// .setBlurRadius(radius) -// .setBlurAutoUpdate(true) -// .setHasFixedTransformationMatrix(true); - mLiveUid = bundle.getString(Constants.LIVE_UID); stream = bundle.getString(Constants.STREAM); - isOnly = bundle.getBoolean("only",false); + isOnly = bundle.getBoolean("only", false); title = mRootView.findViewById(R.id.title); tabs = mRootView.findViewById(R.id.tabs); audience_btn = mRootView.findViewById(R.id.audience_btn); @@ -152,7 +136,6 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie } else if (Tips.equals("3")) { dismiss(); ((LiveActivity) mContext).openFansWindow(); -// LiveRoomViewHolder.showFansMedalDialog(mLiveUid); } } }); @@ -189,17 +172,17 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie no_more.setImageResource(R.mipmap.bixin); } }); - dayRank.setOnClickListener(View->{ - Tips="4"; + dayRank.setOnClickListener(View -> { + Tips = "4"; Up(); - type="dayRank"; + type = "dayRank"; mRefreshView.initData(); no_more.setImageResource(R.drawable.img_rank_empty); }); - weekRank.setOnClickListener(View->{ - Tips="5"; + weekRank.setOnClickListener(View -> { + Tips = "5"; Up(); - type="weekRank"; + type = "weekRank"; mRefreshView.initData(); no_more.setImageResource(R.drawable.img_rank_empty); }); @@ -219,7 +202,7 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie @Override public void loadData(int p, HttpCallback callback) { Log.i("tag111", p + "ssss"); - if(isRank()){ + if (isRank()) { /** * 榜单接口的uid为直播间ID,并不是也不需要用户uid */ @@ -229,12 +212,12 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie .subscribe(listResponseModel -> { UserRankModel data = listResponseModel.getData().getData(); //获取到参数后手动调用成功方法 - callback.onSuccess(0,"",new String[]{JSONObject.toJSONString(data)}); + callback.onSuccess(0, "", new String[]{JSONObject.toJSONString(data)}); }, throwable -> { throwable.printStackTrace(); callback.onError(); }).isDisposed(); - }else { + } else { LiveHttpUtil.getUserList(mLiveUid, stream, type, p, callback); pg = p; if (p == 1) { @@ -246,11 +229,11 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie } @Override - public List processData(String[] info) { + public List processData(String[] info) { JSONObject obj = JSON.parseObject(info[0]); - if(isRank()){ + if (isRank()) { return processRankData(obj); - }else { + } else { return processUserData(obj); } } @@ -268,16 +251,15 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie @Override public void onLoadMoreSuccess(List loadItemList, int loadItemCount) { Log.i("tag333", "是" + nums); -// userMoreInfoAdapter.num = nums; -// userMoreInfoAdapter.insertList(loadItemList); } @Override public void onLoadMoreFailure() { } - private List processUserData(JSONObject json){ + + private List processUserData(JSONObject json) { List data = JSON.parseArray(json.getString("userlist"), LiveUserGiftBean.class); - if(data==null){ + if (data == null) { return new ArrayList<>(); } Log.i("tag222", "ssss"); @@ -299,25 +281,26 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie } return data; } - private List processRankData(JSONObject json){ - JSONArray rank=Integer.parseInt(Tips)==4?json.getJSONArray("listDay"):json.getJSONArray("listWeek"); - List data =new ArrayList<>(); + + private List processRankData(JSONObject json) { + JSONArray rank = Integer.parseInt(Tips) == 4 ? json.getJSONArray("listDay") : json.getJSONArray("listWeek"); + List data = new ArrayList<>(); /* * 由于在线观众和粉丝列表实体结构与榜单结构不一致,做个兼容操作 */ - if(rank==null){ + if (rank == null) { return data; } for (Object o : rank) { - JSONObject item= (JSONObject) o; - LiveUserRankBean bean=JSON.parseObject(item.getString("userinfo"),LiveUserRankBean.class); + JSONObject item = (JSONObject) o; + LiveUserRankBean bean = JSON.parseObject(item.getString("userinfo"), LiveUserRankBean.class); bean.setTotal(item.getLong("total")); data.add(bean); } - if(data.size()==0){ + if (data.size() == 0) { noMoreLayout.setVisibility(View.VISIBLE); mRefreshView.setVisibility(View.GONE); - }else{ + } else { noMoreLayout.setVisibility(View.GONE); } mRefreshView.setNotLoadMore(); @@ -325,10 +308,27 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie } }); mRefreshView.initData(); - if(isOnly){ + if (isOnly) { tabs.setVisibility(View.GONE); title.setVisibility(View.GONE); } + //获取隐身的用户的ID + LiveNetManager.get(mContext) + .getNobleRankHideUserList(new com.yunbao.common.http.base.HttpCallback() { + @Override + public void onSuccess(NobleRankHideUserListModel data) { + outRankHide = data.getOutRankHide(); + if (userMoreInfoAdapter != null) { + + userMoreInfoAdapter.setHide(outRankHide); + } + } + + @Override + public void onError(String error) { + Log.e("LiveUserMoreDialog", error); + } + }); } @Override @@ -345,17 +345,20 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie void Up() { userMoreInfoAdapter.clearData(); + if (userMoreInfoAdapter != null) { + userMoreInfoAdapter.setHide(outRankHide); + } bottom_msg.setVisibility(View.VISIBLE); mRefreshView.setVisibility(View.VISIBLE); title.setVisibility(View.GONE); noMoreText.setVisibility(View.GONE); LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mRefreshView.getLayoutParams(); - params.bottomMargin=DpUtil.dp2px(65); + params.bottomMargin = DpUtil.dp2px(65); if (Tips.equals("1")) { tags.setText("開通貴族,尊享超多特權!"); btn.setBackgroundResource(R.mipmap.btn_openvip); btn.setText("開通貴族"); - setTextColor(audience_btn,guard_btn,fans_btn,weekRank,dayRank); + setTextColor(audience_btn, guard_btn, fans_btn, weekRank, dayRank); gz_view.setVisibility(View.GONE); userMoreInfoAdapter.type = "1"; type = "guanzhong"; @@ -363,7 +366,7 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie tags.setText("快為您喜歡的主播開通守護吧"); btn.setBackgroundResource(R.mipmap.btn_openprotection); btn.setText("守護列表"); - setTextColor(guard_btn,audience_btn,fans_btn,dayRank,weekRank); + setTextColor(guard_btn, audience_btn, fans_btn, dayRank, weekRank); gz_view.setVisibility(View.GONE); userMoreInfoAdapter.type = "2"; no_more.setImageResource(R.mipmap.grayicon); @@ -372,30 +375,30 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie tags.setText("快加入您喜歡的主播粉絲團吧"); btn.setText("加入粉絲團"); btn.setBackgroundResource(R.mipmap.btn_joinfans); - setTextColor(fans_btn,audience_btn,guard_btn,dayRank,weekRank); + setTextColor(fans_btn, audience_btn, guard_btn, dayRank, weekRank); gz_view.setVisibility(View.GONE); userMoreInfoAdapter.type = "3"; type = "fans"; no_more.setImageResource(R.mipmap.bixin); - }else if(Tips.equals("4")){ - params.bottomMargin=DpUtil.dp2px(0); + } else if (Tips.equals("4")) { + params.bottomMargin = DpUtil.dp2px(0); userMoreInfoAdapter.type = "4"; bottom_msg.setVisibility(View.GONE); - type="dayRank"; - setTextColor(dayRank,audience_btn,guard_btn,fans_btn,gz_view,weekRank); + type = "dayRank"; + setTextColor(dayRank, audience_btn, guard_btn, fans_btn, gz_view, weekRank); gz_view.setVisibility(View.GONE); no_more.setImageResource(R.drawable.img_rank_empty); noMoreText.setText(R.string.no_more_day_rank); noMoreText.setVisibility(View.VISIBLE); - }else if (Tips.equals("5")){ - params.bottomMargin=DpUtil.dp2px(0); + } else if (Tips.equals("5")) { + params.bottomMargin = DpUtil.dp2px(0); userMoreInfoAdapter.type = "5"; bottom_msg.setVisibility(View.GONE); - type="weekRank"; + type = "weekRank"; gz_view.setVisibility(View.GONE); no_more.setImageResource(R.drawable.img_rank_empty); noMoreText.setText(R.string.no_more_day_rank); - setTextColor(weekRank,audience_btn,guard_btn,fans_btn,gz_view,dayRank); + setTextColor(weekRank, audience_btn, guard_btn, fans_btn, gz_view, dayRank); noMoreText.setVisibility(View.VISIBLE); } mRefreshView.setLayoutParams(params); @@ -403,16 +406,18 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie /** * 设置文本按钮颜色 + * * @param light 高亮的文本 - * @param dark 暗淡的文本 + * @param dark 暗淡的文本 */ - private void setTextColor(TextView light,TextView... dark){ + private void setTextColor(TextView light, TextView... dark) { light.setTextColor(Color.parseColor("#fff6f7fb")); for (TextView textView : dark) { textView.setTextColor(Color.parseColor("#ff646464")); } } - private boolean isRank(){ - return Integer.parseInt(Tips)>3; + + private boolean isRank() { + return Integer.parseInt(Tips) > 3; } } diff --git a/live/src/main/res/mipmap-xxxhdpi/hide.png b/live/src/main/res/mipmap-xxxhdpi/hide.png new file mode 100644 index 0000000000000000000000000000000000000000..35dfadbaa7ea6708b735330f81c107e5ef20183c GIT binary patch literal 30021 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�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