From ce7433226d9777d593142bad405793300c0f5f88 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Mon, 10 Oct 2022 17:22:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=9F=E7=BA=A7=E6=8C=91=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yunbao/common/bean/BannerBean.java | 22 +++ .../common/bean/StarChallengeStatusModel.java | 112 +++++++++++++ .../com/yunbao/common/http/PDLiveApi.java | 9 ++ .../common/http/live/LiveNetManager.java | 20 +++ .../common/views/weight/ProgressView.java | 136 ++++++++++++++++ .../src/main/res/mipmap-xxhdpi/icon_start.png | Bin 0 -> 3570 bytes .../res/mipmap-xxhdpi/icon_start_number.png | Bin 0 -> 3962 bytes .../main/res/mipmap-xxhdpi/start_level.png | Bin 0 -> 37452 bytes common/src/main/res/values/strings.xml | 2 + .../yunbao/live/adapter/LiveChatAdapter.java | 2 +- .../yunbao/live/views/CustomViewHolder.java | 62 ++++++-- .../yunbao/live/views/LiveRoomViewHolder.java | 12 ++ .../live/views/PortraitLiveManager.java | 25 ++- live/src/main/res/layout/view_live_room.xml | 10 +- live/src/main/res/layout/view_start_level.xml | 148 ++++++++++++++++++ 15 files changed, 542 insertions(+), 18 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/bean/StarChallengeStatusModel.java create mode 100644 common/src/main/java/com/yunbao/common/views/weight/ProgressView.java create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_start.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_start_number.png create mode 100644 common/src/main/res/mipmap-xxhdpi/start_level.png create mode 100644 live/src/main/res/layout/view_start_level.xml diff --git a/common/src/main/java/com/yunbao/common/bean/BannerBean.java b/common/src/main/java/com/yunbao/common/bean/BannerBean.java index c95b9a437..0cfa15ea8 100644 --- a/common/src/main/java/com/yunbao/common/bean/BannerBean.java +++ b/common/src/main/java/com/yunbao/common/bean/BannerBean.java @@ -7,11 +7,33 @@ import com.alibaba.fastjson.annotation.JSONField; */ public class BannerBean { + //是否是星标 + private boolean isStart = false; private String mImageUrl; private String mLink; private String show_type; private String mIntoUrl; + private StarChallengeStatusModel model; + + public boolean isStart() { + return isStart; + } + + public BannerBean setStart(boolean start) { + isStart = start; + return this; + } + + public StarChallengeStatusModel getModel() { + return model; + } + + public BannerBean setModel(StarChallengeStatusModel model) { + this.model = model; + return this; + } + public String getShow_type() { return show_type; } diff --git a/common/src/main/java/com/yunbao/common/bean/StarChallengeStatusModel.java b/common/src/main/java/com/yunbao/common/bean/StarChallengeStatusModel.java new file mode 100644 index 000000000..58cd6a217 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/StarChallengeStatusModel.java @@ -0,0 +1,112 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +public class StarChallengeStatusModel extends BaseModel { + //当前星级 + @SerializedName("taskNum") + private String taskNum; + //当前总星值 + @SerializedName("currentStarVal") + private String currentStarVal; + //目标总星值 + @SerializedName("targetStarVal") + private String targetStarVal; + //当前助力数 + @SerializedName("currentAssistNum") + private String currentAssistNum; + //目标助力数 + @SerializedName("targetAssistNum") + private String targetAssistNum; + //总星值图标 + @SerializedName("starSrc") + private String starSrc; + //助力图标 + @SerializedName("assistSrc") + private String assistSrc; + @SerializedName("taskName1") + private String taskName1; + @SerializedName("taskName2") + private String taskName2; + + public String getTaskName1() { + return taskName1; + } + + public StarChallengeStatusModel setTaskName1(String taskName1) { + this.taskName1 = taskName1; + return this; + } + + public String getTaskName2() { + return taskName2; + } + + public StarChallengeStatusModel setTaskName2(String taskName2) { + this.taskName2 = taskName2; + return this; + } + + public String getTaskNum() { + return taskNum; + } + + public BaseModel setTaskNum(String taskNum) { + this.taskNum = taskNum; + return this; + } + + public String getCurrentStarVal() { + return currentStarVal; + } + + public BaseModel setCurrentStarVal(String currentStarVal) { + this.currentStarVal = currentStarVal; + return this; + } + + public String getTargetStarVal() { + return targetStarVal; + } + + public BaseModel setTargetStarVal(String targetStarVal) { + this.targetStarVal = targetStarVal; + return this; + } + + public String getCurrentAssistNum() { + return currentAssistNum; + } + + public BaseModel setCurrentAssistNum(String currentAssistNum) { + this.currentAssistNum = currentAssistNum; + return this; + } + + public String getTargetAssistNum() { + return targetAssistNum; + } + + public BaseModel setTargetAssistNum(String targetAssistNum) { + this.targetAssistNum = targetAssistNum; + return this; + } + + public String getStarSrc() { + return starSrc; + } + + public BaseModel setStarSrc(String starSrc) { + this.starSrc = starSrc; + return this; + } + + public String getAssistSrc() { + return assistSrc; + } + + public BaseModel setAssistSrc(String assistSrc) { + this.assistSrc = assistSrc; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java index acaf1a8a9..aa95757ee 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -15,6 +15,7 @@ import com.yunbao.common.bean.NobleTrumpetModel; import com.yunbao.common.bean.SearchModel; import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.bean.SlideInBannerModel; +import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.VipModel; import java.util.List; @@ -232,4 +233,12 @@ public interface PDLiveApi { */ @GET("/api/public/?service=Noble.getNobleRankHideUserList") Observable> getNobleRankHideUserList(); + + /** + *获取当前星级 + * @param liveUid + * @return + */ + @GET("/api/public/?service=StarChallenge.getStarChallengeStatus") + Observable> getStarChallengeStatus(@Query("liveUid") String liveUid); } diff --git a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java index fdbeabb9a..84c26b000 100644 --- a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java +++ b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java @@ -10,8 +10,10 @@ import com.yunbao.common.bean.LiveInfoModel; import com.yunbao.common.bean.NobleRankHideUserListModel; import com.yunbao.common.bean.NobleTrumpetModel; import com.yunbao.common.bean.SetAttentsModel; +import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.VipModel; import com.yunbao.common.http.API; +import com.yunbao.common.http.ResponseModel; import com.yunbao.common.http.base.HttpCallback; import java.util.List; @@ -213,4 +215,22 @@ public class LiveNetManager { callback.onError(throwable.getMessage()); }).isDisposed(); } + + /** + * 获取当前星级 + */ + public void getStarChallengeStatus(String liveUid, HttpCallback callback) { + API.get().pdLiveApi(mContext) + .getStarChallengeStatus(liveUid) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(starChallengeStatusModelResponseModel -> { + if (callback != null) { + callback.onSuccess(starChallengeStatusModelResponseModel.getData().getInfo()); + } + }, throwable -> { + if (callback != null) + callback.onError(throwable.getMessage()); + }).isDisposed(); + } } diff --git a/common/src/main/java/com/yunbao/common/views/weight/ProgressView.java b/common/src/main/java/com/yunbao/common/views/weight/ProgressView.java new file mode 100644 index 000000000..fcf6f838e --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/weight/ProgressView.java @@ -0,0 +1,136 @@ +package com.yunbao.common.views.weight; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.RectF; +import android.util.AttributeSet; +import android.view.View; + +/** + * 横向进度条(星级) + */ +public class ProgressView extends View { + /** + * 进度条最大值 + */ + private float maxCount; + /** + * 进度条当前值 + */ + private float currentCount; + /** + * 画笔 + */ + private Paint mPaint; + private int mWidth, mHeight; + + public ProgressView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + public ProgressView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public ProgressView(Context context) { + super(context); + } + + /*** + * 设置最大的进度值 + */ + public void setMaxCount(float maxCount) { + + this.maxCount = maxCount; + + } + + /** + * 得到最大进度值 + */ + public double getMaxCount() { + return maxCount; + } + + /*** + * 设置当前的进度值 + * @param currentCount + */ + public void setCurrentCount(float currentCount) { + this.currentCount = currentCount > maxCount ? maxCount : currentCount; + /** + * invalidate()是用来刷新View的,必须是在UI线程中进行工作。比如在修改某个view的显示时, + * 调用invalidate()才能看到重新绘制的界面。invalidate()的调用是把之前的旧的view从主UI + * 线程队列中pop掉。 + */ + invalidate(); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + mPaint = new Paint(); + //设置抗锯齿效果 + mPaint.setAntiAlias(true); + + int round = mHeight; + /** + * RectF:绘制矩形,四个参数分别是left,top,right,bottom + * 类型是单精度浮点数 + */ + RectF rf = new RectF(0, 0, mWidth, mHeight); + /*绘制圆角矩形,背景色为画笔颜色*/ + /*设置progress内部是灰色*/ + mPaint.setColor(Color.parseColor("#F6CCDA")); + RectF rectBlackBg = new RectF(2, 2, mWidth - 2, mHeight - 2); + canvas.drawRoundRect(rectBlackBg, round, round, mPaint); + //设置进度条进度及颜色 + float section = currentCount / maxCount; + RectF rectProgressBg = new RectF(3, 3, (mWidth - 3) * section, mHeight - 3); + if (section != 0.0f) { + mPaint.setColor(Color.parseColor("#F85F73")); + } else { + mPaint.setColor(Color.TRANSPARENT); + } + canvas.drawRoundRect(rectProgressBg, round, round, mPaint); + } + + //dip * scale + 0.5f * (dip >= 0 ? 1 : -1) + private int dipToPx(int dip) { + float scale = getContext().getResources().getDisplayMetrics().density; + return (int) (dip * scale + 0.5f * (dip >= 0 ? 1 : -1));//加0.5是为了四舍五入 + } + + /** + * 指定自定义控件在屏幕上的大小,onMeasure方法的两个参数是由上一层控件 + *

+ * 传入的大小,而且是模式和尺寸混合在一起的数值,需要MeasureSpec.getMode(widthMeasureSpec) + *

+ * 得到模式,MeasureSpec.getSize(widthMeasureSpec)得到尺寸 + */ + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec); + int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec); + int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec); + int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec); + //MeasureSpec.EXACTLY,精确尺寸 + if (widthSpecMode == MeasureSpec.EXACTLY || widthSpecMode == MeasureSpec.AT_MOST) { + mWidth = widthSpecSize; + } else { + mWidth = 0; + } + //MeasureSpec.AT_MOST,最大尺寸,只要不超过父控件允许的最大尺寸即可,MeasureSpec.UNSPECIFIED未指定尺寸 + if (heightSpecMode == MeasureSpec.AT_MOST || heightSpecMode == MeasureSpec.UNSPECIFIED) { + mHeight = dipToPx(20); + } else { + mHeight = heightSpecSize; + } + //设置控件实际大小 + setMeasuredDimension(mWidth, mHeight); + + } +} diff --git a/common/src/main/res/mipmap-xxhdpi/icon_start.png b/common/src/main/res/mipmap-xxhdpi/icon_start.png new file mode 100644 index 0000000000000000000000000000000000000000..abf5d20b862f64d8a8223d27359dfd77d75c8606 GIT binary patch literal 3570 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 literal 0 HcmV?d00001 diff --git a/common/src/main/res/mipmap-xxhdpi/icon_start_number.png b/common/src/main/res/mipmap-xxhdpi/icon_start_number.png new file mode 100644 index 0000000000000000000000000000000000000000..0eb0588ff5448bf3e39a8c9f65d36a820c6fb85c GIT binary patch literal 3962 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 literal 0 HcmV?d00001 diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 01e0203fa..8210d5524 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -921,6 +921,8 @@ 在線觀眾 觀眾 無法@自己 + 總星值 + 助力人數 diff --git a/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java b/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java index 67306f83b..ac1402fa3 100644 --- a/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java @@ -173,7 +173,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter { itemView.setTag(bean); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); - params.setMargins(0, 0, DpUtil.dp2px(80), 12); + params.setMargins(0, 0, DpUtil.dp2px(95), 12); mBg.setLayoutParams(params); if (bean.getType() == 6) {//大作战活动 view_action_game.setVisibility(View.VISIBLE); diff --git a/live/src/main/java/com/yunbao/live/views/CustomViewHolder.java b/live/src/main/java/com/yunbao/live/views/CustomViewHolder.java index 0618c4a35..f36ad600d 100644 --- a/live/src/main/java/com/yunbao/live/views/CustomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/CustomViewHolder.java @@ -1,28 +1,72 @@ package com.yunbao.live.views; import android.content.Context; +import android.text.TextUtils; +import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; +import android.widget.FrameLayout; import android.widget.ImageView; +import android.widget.TextView; import com.bumptech.glide.Glide; import com.ms.banner.holder.BannerViewHolder; import com.yunbao.common.bean.BannerBean; +import com.yunbao.common.views.weight.ProgressView; +import com.yunbao.live.R; public class CustomViewHolder implements BannerViewHolder { @Override public View createView(Context context, int position, BannerBean data) { // 返回mImageView页面布局 - ImageView imageView = new ImageView(context); - ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT - ); - imageView.setLayoutParams(params); - imageView.setScaleType(ImageView.ScaleType.FIT_XY); - Glide.with(context).load(data.getImageUrl()).into(imageView); + LayoutInflater inflater = LayoutInflater.from(context); - return imageView; + View contextView = inflater.inflate(R.layout.view_start_level, null); + + FrameLayout startContext = contextView.findViewById(R.id.start_context); + ImageView bannerBack = contextView.findViewById(R.id.banner_back); + ImageView iconStart = contextView.findViewById(R.id.icon_start); + ImageView iconStartNumber = contextView.findViewById(R.id.icon_start_number); + ProgressView totalStarProgress = contextView.findViewById(R.id.total_star_progress); + ProgressView assistProgress = contextView.findViewById(R.id.assist_progress); + TextView currentStart = contextView.findViewById(R.id.current_start); + TextView targetStart = contextView.findViewById(R.id.target_start); + TextView totalStarValue = contextView.findViewById(R.id.total_star_value); + TextView numberOfPeopleAssisted = contextView.findViewById(R.id.number_of_people_assisted); + TextView targetAssist = contextView.findViewById(R.id.target_assist_num); + TextView currentAssist = contextView.findViewById(R.id.current_assist_num); + if (data.isStart()) { + startContext.setVisibility(View.VISIBLE); + Glide.with(context).load(R.mipmap.start_level).into(bannerBack); + Glide.with(context) + .load(data.getModel().getStarSrc()) + .error(R.mipmap.icon_start) + .into(iconStart); + Glide.with(context) + .load(data.getModel().getAssistSrc()) + .error(R.mipmap.icon_start_number) + .into(iconStartNumber); + int targetStarVal = TextUtils.isEmpty(data.getModel().getTargetStarVal()) ? 100 : Integer.parseInt(data.getModel().getTargetStarVal()); + int currentStarVal = TextUtils.isEmpty(data.getModel().getCurrentStarVal()) ? 0 : Integer.parseInt(data.getModel().getCurrentStarVal()); + int targetAssistNum = TextUtils.isEmpty(data.getModel().getTargetAssistNum()) ? 0 : Integer.parseInt(data.getModel().getTargetAssistNum()); + int currentAssistNum = TextUtils.isEmpty(data.getModel().getCurrentAssistNum()) ? 0 : Integer.parseInt(data.getModel().getCurrentAssistNum()); + totalStarProgress.setMaxCount(targetStarVal); + assistProgress.setMaxCount(targetAssistNum); + totalStarProgress.setCurrentCount(currentStarVal); + assistProgress.setCurrentCount(currentAssistNum); + currentStart.setText(String.valueOf(currentStarVal)); + targetStart.setText("/" + targetStarVal); + totalStarValue.setText(TextUtils.isEmpty(data.getModel().getTaskName1()) ? context.getString(R.string.total_star_value) : data.getModel().getTaskName1()); + numberOfPeopleAssisted.setText(TextUtils.isEmpty(data.getModel().getTaskName2()) ? context.getString(R.string.total_star_value) : data.getModel().getTaskName2()); + targetAssist.setText("/" + targetAssistNum); + currentAssist.setText(String.valueOf(currentAssistNum)); + } else { + String imagerUrl = data.getImageUrl().replace("qny", "downs"); + Glide.with(context).load(imagerUrl).into(bannerBack); + startContext.setVisibility(View.GONE); + } + + return contextView; } } diff --git a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java index fccdebe3d..426416528 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -65,6 +65,7 @@ import com.yunbao.common.bean.HourRank; import com.yunbao.common.bean.LevelBean; import com.yunbao.common.bean.LiveGiftBean; import com.yunbao.common.bean.MsgModel; +import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.UserBean; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.API; @@ -1024,6 +1025,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis reloadIM(); } + public void showStart(StarChallengeStatusModel data) { + if (mBannerList2 == null) { + mBannerList2 = new ArrayList<>(); + } + BannerBean bannerBean = new BannerBean(); + bannerBean.setStart(true); + bannerBean.setModel(data); + mBannerList2.add(bannerBean); + showBanner2(); + } + public void hideFloatMsg() { msgLayout.setVisibility(View.GONE); } diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java index 358f220b2..bacfda760 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -37,6 +37,7 @@ import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppContext; import com.yunbao.common.Constants; import com.yunbao.common.bean.MsgModel; +import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.UserBean; import com.yunbao.common.custom.MyViewPager; import com.yunbao.common.event.FollowEvent; @@ -45,6 +46,7 @@ import com.yunbao.common.http.CommonHttpConsts; import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpClient; +import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DialogUitl; @@ -284,7 +286,23 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe mLiveRoomViewHolder.initHourRankList(); } }); + /** + * 获取当前直播间星级 + */ + LiveNetManager.get(mContext) + .getStarChallengeStatus(mLiveBean.getUid(), new com.yunbao.common.http.base.HttpCallback() { + @Override + public void onSuccess(StarChallengeStatusModel data) { + if (mLiveRoomViewHolder != null) { + mLiveRoomViewHolder.showStart(data); + } + } + @Override + public void onError(String error) { + + } + }); } @Override @@ -1531,11 +1549,12 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe */ public void showNewMessage() { if (mLiveRoomViewHolder != null) { - mLiveRoomViewHolder.showNewMessage( ); + mLiveRoomViewHolder.showNewMessage(); } } - public void showAtMessage(){ - if (mLiveRoomViewHolder!=null){ + + public void showAtMessage() { + if (mLiveRoomViewHolder != null) { mLiveRoomViewHolder.showAtMessage(); } } diff --git a/live/src/main/res/layout/view_live_room.xml b/live/src/main/res/layout/view_live_room.xml index 45c9d118c..86080e552 100644 --- a/live/src/main/res/layout/view_live_room.xml +++ b/live/src/main/res/layout/view_live_room.xml @@ -91,8 +91,8 @@ diff --git a/live/src/main/res/layout/view_start_level.xml b/live/src/main/res/layout/view_start_level.xml new file mode 100644 index 000000000..f2a95ba8a --- /dev/null +++ b/live/src/main/res/layout/view_start_level.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file