diff --git a/common/src/main/java/com/yunbao/common/Constants.java b/common/src/main/java/com/yunbao/common/Constants.java index b597b23f7..f1e9e0d49 100644 --- a/common/src/main/java/com/yunbao/common/Constants.java +++ b/common/src/main/java/com/yunbao/common/Constants.java @@ -182,6 +182,7 @@ public class Constants { public static final String LIVE_VOTE_CREATE="createVote"; public static final String LIVE_VOTE_UPDATE="updateVote"; public static final String LIVE_VOTE_END="endVote"; + public static final String LIVE_PK_END="endPK";//结束PK,以这个PK获取到的参数为准 //游戏socket public static final String SOCKET_GAME_ZJH = "startGame";//炸金花 diff --git a/common/src/main/res/values-en-rUS/string.xml b/common/src/main/res/values-en-rUS/string.xml index 11c39afa5..e16582a76 100644 --- a/common/src/main/res/values-en-rUS/string.xml +++ b/common/src/main/res/values-en-rUS/string.xml @@ -1177,4 +1177,5 @@ Limited ride And limited avatar frame VOTE %s
box disappears after %s seconds
Please complete the form. + Create Vote Error diff --git a/common/src/main/res/values-zh-rHK/strings.xml b/common/src/main/res/values-zh-rHK/strings.xml index fb6940897..470a22c53 100644 --- a/common/src/main/res/values-zh-rHK/strings.xml +++ b/common/src/main/res/values-zh-rHK/strings.xml @@ -1172,4 +1172,5 @@ 愛你,愛你 指導下我好嗎 完整填寫領大禮 + 投票創建失敗 diff --git a/common/src/main/res/values-zh-rTW/strings.xml b/common/src/main/res/values-zh-rTW/strings.xml index e67edd9e0..312518d95 100644 --- a/common/src/main/res/values-zh-rTW/strings.xml +++ b/common/src/main/res/values-zh-rTW/strings.xml @@ -1171,4 +1171,5 @@ 愛你,愛你 指導下我好嗎 完整填寫領大禮 + 投票創建失敗 diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml index 42961e3a7..599fbf880 100644 --- a/common/src/main/res/values-zh/strings.xml +++ b/common/src/main/res/values-zh/strings.xml @@ -1177,4 +1177,5 @@ 迷你盲盒 典藏盲盒 PD盲盒 + 投票創建失敗 diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index ba587e3ae..280fb3fe0 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1192,4 +1192,5 @@ Limited ride And limited avatar frame 參與 %s在%s中抽取到了 %S送给了%s + Create Vote Error diff --git a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java index c4aef1ba1..a03991723 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java @@ -1,5 +1,7 @@ package com.yunbao.live.activity; +import static com.yunbao.live.views.LiveRoomViewHolder.mLiveUid; + import android.app.Dialog; import android.content.ClipData; import android.content.ClipboardManager; @@ -390,6 +392,17 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL } + @Override + public void onEndPk(long leftUid, long rightUid, long left, long right, LivePKUserListBean bean) { + if (mLiveRyLinkMicPkPresenter != null) { + if (mLiveUid.equals(leftUid + "")) { + mLiveRyLinkMicPkPresenter.onPkProgressEnd(left, right, bean); + } else { + mLiveRyLinkMicPkPresenter.onPkProgressEnd(right, left, bean); + } + } + } + /** * 收到弹幕消息 */ diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveNewRoomClassDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveNewRoomClassDialogFragment.java index f2ba058b5..d248207cc 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveNewRoomClassDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveNewRoomClassDialogFragment.java @@ -64,7 +64,13 @@ public class LiveNewRoomClassDialogFragment extends AbsDialogFragment implements if (configBean != null) { List list1 = configBean.getLiveClass(); for (int i = 0; i < list1.size(); i++) { - if (!list1.get(i).getName().equals("New") && !list1.get(i).getName().equals("Hot") && !list1.get(i).getName().equals("熱門") && !list1.get(i).getName().equals("新秀")) { + if (!list1.get(i).getName().equals("New") && + !list1.get(i).getName().equals("新秀") && + !list1.get(i).getName().equals("熱門") && + !list1.get(i).getName().equals("Hot") && + !list1.get(i).getName().equals("男神") && + !list1.get(i).getName().equals("Mr.Right") + ) { list.add(list1.get(i)); } } diff --git a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java index 409f79daa..b79c02a83 100644 --- a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java +++ b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java @@ -206,13 +206,14 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener { Log.d("RYM_DG", "Other onLeaveRoom: room = " + room.getRoomId()); } }; + public LiveRyLinkMicPkPresenter(Context context, ILiveLinkMicViewHolder linkMicViewHolder, boolean isAnchor, View root) { mContext = context; mIsAnchor = isAnchor; mRoot = root; mPkContainer = linkMicViewHolder.getPkContainer(); mPkTimeString1 = ""; - mPkTimeString2 =mContext.getString(R.string.live_pk_time_2); + mPkTimeString2 = mContext.getString(R.string.live_pk_time_2); //从本地取数据 String pkTime = CommonAppConfig.getInstance().getAnchorPkTime(); if (!pkTime.isEmpty()) { @@ -253,7 +254,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener { mPkContainer = linkMicViewHolder.getPkContainer(); livePushRyViewHolder = linkMicViewHolder; mPkTimeString1 = ""; - mPkTimeString2 =mContext.getString(R.string.live_pk_time_2); + mPkTimeString2 = mContext.getString(R.string.live_pk_time_2); //从本地取数据 String pkTime = CommonAppConfig.getInstance().getAnchorPkTime(); if (!pkTime.isEmpty()) { @@ -2184,6 +2185,18 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener { nextPkTimeCountDown(2); } + /** + * 修改最终PK数据 + * @param leftGift 左边数据 + * @param rightGift 右边数据 + * @param bean 排位数据 + */ + public void onPkProgressEnd(long leftGift, long rightGift,LivePKUserListBean bean) { + if (mLiveLinkMicPkViewHolder != null) { + mLiveLinkMicPkViewHolder.onProgressChanged(leftGift, rightGift, bean, true); + } + } + /** * 进房间的时候懲罰开始 @@ -2312,7 +2325,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener { // //恢复播放画面 if (i == 1) { - if(btn_close!=null){ + if (btn_close != null) { btn_close.setVisibility(View.GONE); } if (rtcRoom != null) { diff --git a/live/src/main/java/com/yunbao/live/socket/SocketMessageListener.java b/live/src/main/java/com/yunbao/live/socket/SocketMessageListener.java index ff09eb10e..e8cdb4451 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketMessageListener.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketMessageListener.java @@ -291,6 +291,16 @@ public interface SocketMessageListener { */ void onPrizePoolUp(String level); + /** + * 最终PK数据 + * @param leftUid 左边uid + * @param rightUid 右边uid + * @param left 左边分数 + * @param right 右边分数 + * @param bean 排位顺序 + */ + void onEndPk(long leftUid,long rightUid,long left,long right,LivePKUserListBean bean); + /***********************以下是游戏*********************************/ /** * 游戏 智勇三张 游戏的回调 diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java index b131c0f4e..45d0781f4 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java @@ -7,8 +7,10 @@ import static com.yunbao.live.views.LivePushRyViewHolder.rtcRoom; import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot; import android.app.Activity; +import android.app.Dialog; import android.content.Context; import android.os.Handler; +import android.os.Looper; import android.os.Message; import android.text.TextUtils; import android.util.Log; @@ -40,6 +42,7 @@ import com.yunbao.common.http.HttpClient; import com.yunbao.common.manager.IMRTCManager; import com.yunbao.common.manager.RandomPkManager; import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.L; import com.yunbao.common.utils.ToastUtil; import com.yunbao.live.R; @@ -66,6 +69,8 @@ import org.greenrobot.eventbus.EventBus; import java.lang.ref.WeakReference; import java.util.List; +import java.util.Timer; +import java.util.TimerTask; import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback; import cn.rongcloud.rtc.base.RTCErrorCode; @@ -670,6 +675,14 @@ public class SocketRyClient { .setObject(map) ); break; + case Constants.LIVE_PK_END: + mListener.onEndPk(map.getLong("uid"), + map.getLong("pkuid"), + map.getLong("uid_score"), + map.getLong("pkuid_score"), + JSONObject.parseObject(map.getJSONObject("ct").getJSONObject("pk_top_users").toJSONString(), LivePKUserListBean.class) + ); + break; } } diff --git a/live/src/main/java/com/yunbao/live/utils/LiveAnchorVoteManager.java b/live/src/main/java/com/yunbao/live/utils/LiveAnchorVoteManager.java index 1d10fa148..476fb10c6 100644 --- a/live/src/main/java/com/yunbao/live/utils/LiveAnchorVoteManager.java +++ b/live/src/main/java/com/yunbao/live/utils/LiveAnchorVoteManager.java @@ -64,9 +64,8 @@ public class LiveAnchorVoteManager { @Override public void onError(String error) { - ToastUtil.show(error); LiveRoomVoteModel voteModel = new LiveRoomVoteModel(); - voteModel.setContent(error); + voteModel.setContent(CommonAppContext.getTopActivity().getString(com.yunbao.common.R.string.live_vote_create_error)); listener.onItemClick(voteModel, -1); } }); diff --git a/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java index 832a4ec12..94487fe74 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java @@ -5,6 +5,7 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.content.Context; +import android.graphics.Color; import android.graphics.Path; import android.graphics.PathMeasure; import android.graphics.RectF; @@ -84,8 +85,8 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder { public void init() { mHalfScreenWidth = ScreenDimenUtil.getInstance().getScreenWdith() / 2; - mLeftString =mContext.getString(R.string.live_link_mic_pk_1); - mRightString =mContext.getString(R.string.live_link_mic_pk_2); + mLeftString = mContext.getString(R.string.live_link_mic_pk_1); + mRightString = mContext.getString(R.string.live_link_mic_pk_2); mFrameImageView = (FrameImageView) findViewById(R.id.frame_img); mFrameImageView.setImageList(LiveIconUtil.getLinkMicPkAnim());//PK开始动画 frame_img_pk = (ImageView) findViewById(R.id.frame_img_pk); @@ -155,7 +156,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { - Log.i("女神说", "倒计时状态:"+s); + Log.i("女神说", "倒计时状态:" + s); if (mTime.getVisibility() == View.VISIBLE) { EventBus.getDefault().post(new LiveAudienceEvent() .setType(LiveAudienceEvent.LiveAudienceType.LIVE_PK_ING)); @@ -198,6 +199,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder { animationDrawable = (AnimationDrawable) frame_img_pk.getBackground(); animationDrawable.start(); } + mLeft.setTag(null); } public void showTime() { @@ -233,6 +235,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder { } if (mLeft != null) { mLeft.setTranslationX(0); + mLeft.setTag(null); mLeft2.setTranslationX(0); } if (mRight != null) { @@ -241,7 +244,27 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder { } } + /** + * 修改PK进度条进度 + * @param leftGift 左边进度 + * @param rightGift 右边进度 + * @param bean 排位信息 + */ public void onProgressChanged(long leftGift, long rightGift, LivePKUserListBean bean) { + onProgressChanged(leftGift, rightGift, bean, false); + } + + /** + * 修改PK进度条进度 + * @param leftGift 左边进度 + * @param rightGift 右边进度 + * @param bean 排位信息 + * @param isEnd 是否为最终数据,是的话就不再接收后续修改数据,默认false + */ + public void onProgressChanged(long leftGift, long rightGift, LivePKUserListBean bean, boolean isEnd) { + if (mLeft.getTag() != null && ((boolean) mLeft.getTag())) { + return; + } mLeft.setText(mLeftString + " " + leftGift); mRight.setText(rightGift + " " + mRightString); if (leftGift == rightGift) { @@ -262,8 +285,10 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder { animationDrawable = (AnimationDrawable) frame_img_pk.getBackground(); animationDrawable.start(); } - - EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_TWO_UPDATE_HEAD_DATA).setLivePKUserListBean(bean)); + mLeft.setTag(isEnd); + if (bean != null) { + EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_TWO_UPDATE_HEAD_DATA).setLivePKUserListBean(bean)); + } } private void changeLine(float nowIndex, long leftGift, long rightGift) { 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 921a581c0..c555028ed 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -5,6 +5,7 @@ import static com.yunbao.live.bean.LiveChatBean.RECOMMEND_CARD_NOTIFY; import android.app.Activity; import android.app.Dialog; import android.content.Context; +import android.graphics.Color; import android.graphics.Outline; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -1098,7 +1099,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) mChatRecyclerView.getLayoutParams(); - params1.topMargin = 180; + params1.topMargin = DpUtil.dp2px(65); mChatRecyclerView.setLayoutParams(params1); mChatRecyclerView.setHasFixedSize(true); 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 3f39c1888..50114eeaa 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -1,6 +1,7 @@ package com.yunbao.live.views; import static com.yunbao.live.views.LiveRoomViewHolder.isStayRoomfive; +import static com.yunbao.live.views.LiveRoomViewHolder.mLiveUid; import android.app.Activity; import android.app.Dialog; @@ -9,6 +10,7 @@ import android.content.res.Configuration; import android.graphics.drawable.AnimationDrawable; import android.os.CountDownTimer; import android.os.Handler; +import android.os.Looper; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; @@ -97,6 +99,8 @@ import org.greenrobot.eventbus.EventBus; import java.util.ArrayList; import java.util.List; +import java.util.Timer; +import java.util.TimerTask; import cn.rongcloud.rtc.api.RCRTCEngine; import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback; @@ -1204,6 +1208,17 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe } } + @Override + public void onEndPk(long leftUid, long rightUid, long left, long right,LivePKUserListBean bean) { + if (mLiveRyLinkMicPkPresenter != null) { + if (mLiveUid.equals(leftUid + "")) { + mLiveRyLinkMicPkPresenter.onPkProgressEnd(left, right,bean); + } else { + mLiveRyLinkMicPkPresenter.onPkProgressEnd(right, left,bean); + } + } + } + @Override public void onSendDanMu(LiveDanMuBean bean) { if (mLiveRoomViewHolder != null) { diff --git a/live/src/main/res/layout/view_live_end.xml b/live/src/main/res/layout/view_live_end.xml index aaf9be7c0..bf3ac74c6 100644 --- a/live/src/main/res/layout/view_live_end.xml +++ b/live/src/main/res/layout/view_live_end.xml @@ -399,7 +399,6 @@ android:id="@+id/live_duration_anchor" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" android:text="0" android:textColor="@color/white" android:textSize="16sp" diff --git a/main/src/main/res/layout/item_main_home_live_head.xml b/main/src/main/res/layout/item_main_home_live_head.xml index 17dd2fa24..36b611239 100644 --- a/main/src/main/res/layout/item_main_home_live_head.xml +++ b/main/src/main/res/layout/item_main_home_live_head.xml @@ -16,6 +16,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="0dp" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:scaleType="centerCrop"