Merge remote-tracking branch 'origin/dev_6.6.3'

# Conflicts:
#	common/src/main/java/com/yunbao/common/bean/IMLoginModel.java
#	config.gradle
This commit is contained in:
18401019693
2023-12-06 15:20:39 +08:00
68 changed files with 1551 additions and 72 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -70,7 +70,9 @@ import com.yunbao.common.event.LiveOpenSudRoomEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.event.LiveSudGamePopupShowOrHideEvent;
import com.yunbao.common.event.NewRoleCustomDrawerPopupEvent;
import com.yunbao.common.event.QuickGiftingEvent;
import com.yunbao.common.event.ShowHideEvent;
import com.yunbao.common.event.SlideEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil;
@@ -1727,14 +1729,13 @@ public class LiveAudienceActivity extends LiveActivity {
.dismissOnTouchOutside(false)
.dismissOnBackPressed(false)
.asCustom(liveSudGamePopupXPopup).show();
}else {
} else {
if (liveSudGamePopupXPopup != null) {
liveSudGamePopupXPopup.dialog.show();
}
}
break;
case 1:
@@ -1763,6 +1764,36 @@ public class LiveAudienceActivity extends LiveActivity {
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onSlideEvent(SlideEvent event) {
verticalViewPager.setEnableScroll(event.isSlide());
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onQuickGiftingEvent(QuickGiftingEvent event) {
if (manager != null) {
if (TextUtils.isEmpty(event.getHotNum())) {
if (TextUtils.isEmpty(event.getGiftRemainingQuantity())) {
if (event.isReminder()) {
manager.onQuickGifting3();
} else {
if (event.isShow()) {
manager.onQuickGifting2(true);
} else {
manager.onQuickGifting(event.getIndex(), event.getSvgaName());
}
}
} else {
manager.setGiftRemainingQuantity(event.getGiftRemainingQuantity());
}
} else {
manager.setHotNum(event.getHotNum());
}
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onNewRoleCustomDrawerPopupEvent(NewRoleCustomDrawerPopupEvent event) {
//是否关闭弹窗

View File

@@ -0,0 +1,52 @@
package com.yunbao.live.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.bean.BaseModel;
public class SendQuickGiftModel extends BaseModel {
@SerializedName("_method_")
private String method;
@SerializedName("user_nicename")
private String userNicename;
@SerializedName("quick_gift_number")
private String quickGiftNumber;
@SerializedName("hot_num")
private String hotNum;
public String getHotNum() {
return hotNum;
}
public SendQuickGiftModel setHotNum(String hotNum) {
this.hotNum = hotNum;
return this;
}
public String getMethod() {
return method;
}
public SendQuickGiftModel setMethod(String method) {
this.method = method;
return this;
}
public String getUserNicename() {
return userNicename;
}
public SendQuickGiftModel setUserNicename(String userNicename) {
this.userNicename = userNicename;
return this;
}
public String getQuickGiftNumber() {
return quickGiftNumber;
}
public SendQuickGiftModel setQuickGiftNumber(String quickGiftNumber) {
this.quickGiftNumber = quickGiftNumber;
return this;
}
}

View File

@@ -38,6 +38,7 @@ import com.yunbao.common.bean.XydCompleteModel;
import com.yunbao.common.event.AllServerNotifyEvent;
import com.yunbao.common.event.CustomFullServiceNotifyEvent;
import com.yunbao.common.event.GiftWallIlluminateEvent;
import com.yunbao.common.event.QuickGiftingEvent;
import com.yunbao.common.event.SendBlindGiftEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
@@ -62,6 +63,7 @@ import com.yunbao.live.bean.LiveGiftPrizePoolWinBean;
import com.yunbao.live.bean.LiveLuckGiftWinBean;
import com.yunbao.live.bean.LivePKUserListBean;
import com.yunbao.live.bean.LiveReceiveGiftBean;
import com.yunbao.live.bean.SendQuickGiftModel;
import com.yunbao.live.event.LiveAnchorEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.views.LiveEndViewHolder;
@@ -762,6 +764,16 @@ public class SocketRyClient {
.setAvatar(WordUtil.isNewZh() ? map.getString("sud_game_name") : map.getString("sud_game_name_en"))
.setCreateSudRoomModel(GsonUtils.fromJson(map.toString(), SudGameDateModel.class)));
break;
case "sendQuickGift":
SendQuickGiftModel sendQuickGiftModel = GsonUtils.fromJson(map.toString(), SendQuickGiftModel.class);
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(sendQuickGiftModel.getUserNicename())
.append(WordUtil.isNewZh() ? " 送出了 " : " sent ")
.append(sendQuickGiftModel.getQuickGiftNumber())
.append(WordUtil.isNewZh() ? " 個小PD " : " small pandas ");
systemChatMessage2(stringBuffer.toString());
Bus.get().post(new QuickGiftingEvent().setHotNum(sendQuickGiftModel.getHotNum()));
break;
}
}

View File

@@ -28,19 +28,24 @@ import com.lxj.xpopup.XPopup;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.NewPeopleInfo;
import com.yunbao.common.bean.QuickGiftSendGiftModel;
import com.yunbao.common.dialog.LiveNewRolePopup;
import com.yunbao.common.event.MessageIMEvent;
import com.yunbao.common.event.QuickGiftingEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.API;
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.ProcessResultUtil;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.CircleProgress2;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
@@ -58,7 +63,10 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Random;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
@@ -76,7 +84,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
private View v_msg_redpoint, stationHornBanner;
private Activity context;
private ViewFlipper viewFlipper;
private TextView goToRomm;
private TextView goToRomm, quick_gift_remaining_quantity, time_text;
private int icon = 0;
private String nobleName, nobleTtext;
private ImageView giftImage, liveNewPeople;
@@ -86,10 +94,13 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
private ImageView mRole;//特权
private ImageView mPlay;//玩
private ImageView mCheat;//整蛊
private ImageView pd_pao, combo;
private CircleProgress2 circleProgress;
public LiveAudienceViewHolder(Context context, ViewGroup parentView) {
super(context, parentView);
this.context = (Activity) context;
initLittlePanda();
}
@@ -110,6 +121,8 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
findViewById(R.id.btn_zg).setOnClickListener(this);
voiceButton = (LinearLayout) findViewById(R.id.voice_button);
giftImage = (ImageView) findViewById(R.id.gift_image);
quick_gift_remaining_quantity = (TextView) findViewById(R.id.quick_gift_remaining_quantity);
time_text = (TextView) findViewById(R.id.time_text);
liveNewPeople = (ImageView) findViewById(R.id.live_new_people);
viewFlipper = (ViewFlipper) findViewById(R.id.viewflipper_banner);
@@ -118,6 +131,10 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
mPlay = (ImageView) findViewById(R.id.live_play);
stationHornBanner = findViewById(R.id.station_horn_banner);
mNewPeopleRedDot = findViewById(R.id.live_new_people_red_dot);
pd_pao = (ImageView) findViewById(R.id.pd_pao);
combo = (ImageView) findViewById(R.id.combo);
circleProgress = (CircleProgress2) findViewById(R.id.circleProgress);
combo.setVisibility(View.GONE);
liveNewPeople.setOnClickListener(this);
mRole.setOnClickListener(this);
mCheat.setOnClickListener(this);
@@ -261,6 +278,249 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
return true;
});
mProcessResultUtil = new ProcessResultUtil((FragmentActivity) mContext);
quick_gift_remaining_quantity.setVisibility(View.GONE);
time_text.setVisibility(View.GONE);
ViewClicksAntiShake.clicksAntiShake(time_text, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
StringBuffer urlString = new StringBuffer();
urlString.append(CommonAppConfig.HOST)
.append("/h5/exchangeShop/index.html?uid=")
.append(userInfo.getId())
.append("&token=")
.append(userInfo.getToken()).append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
Bundle bundle1 = new Bundle();
bundle1.putString("url", urlString.toString());
LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment();
liveHDDialogFragment.setArguments(bundle1);
liveHDDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
Bus.get().post(new QuickGiftingEvent().setReminder(true));
}
});
pd_pao.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
StringBuffer urlString = new StringBuffer();
urlString.append(CommonAppConfig.HOST)
.append("/h5/exchangeShop/index.html?uid=")
.append(userInfo.getId())
.append("&token=")
.append(userInfo.getToken()).append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
Bundle bundle1 = new Bundle();
bundle1.putString("url", urlString.toString());
LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment();
liveHDDialogFragment.setArguments(bundle1);
liveHDDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
Bus.get().post(new QuickGiftingEvent().setReminder(true));
MobclickAgent.onEvent(mContext, "small_pd_gifts", "长按");
return true;
}
});
pd_pao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mQuickGiftRemainingQuantity > 0) {
quickGiftingIndex = 1;
combo.setVisibility(View.VISIBLE);
removeRunnable = true;
lianSongHandler.postDelayed(lianSongRunnable, 1000);
Random random = new Random();
int randomNumber = random.nextInt(shortSvgas.size());
String randomName = shortSvgas.get(randomNumber);
Bus.get().post(new QuickGiftingEvent().setIndex(quickGiftingIndex).setSvgaName(randomName));
mQuickGiftRemainingQuantity = mQuickGiftRemainingQuantity - 1;
quick_gift_remaining_quantity.setText(String.valueOf(mQuickGiftRemainingQuantity));
MobclickAgent.onEvent(mContext, "small_pd_gifts", "连点");
}
}
});
combo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mQuickGiftRemainingQuantity > 0) {
quickGiftingIndex = quickGiftingIndex + 1;
removeRunnable = true;
lianSongHandler.postDelayed(lianSongRunnable, 1000);
Random random = new Random();
if (quickGiftingIndex < 11) {
int randomNumber = random.nextInt(shortSvgas.size());
String randomName = shortSvgas.get(randomNumber);
Bus.get().post(new QuickGiftingEvent().setIndex(quickGiftingIndex).setSvgaName(randomName));
} else {
int randomNumber = random.nextInt(highSvgas.size());
String randomName = highSvgas.get(randomNumber);
if (quickGiftingIndex >= 88) {
Bus.get().post(new QuickGiftingEvent().setIndex(quickGiftingIndex).setSvgaName("littlepanda_craft.svga"));
} else {
Bus.get().post(new QuickGiftingEvent().setIndex(quickGiftingIndex).setSvgaName(randomName));
}
}
mQuickGiftRemainingQuantity = mQuickGiftRemainingQuantity - 1;
quick_gift_remaining_quantity.setText(String.valueOf(mQuickGiftRemainingQuantity));
MobclickAgent.onEvent(mContext, "small_pd_gifts", "连点"+quickGiftingIndex);
}
}
});
}
public void setGiftRemainingQuantity(String giftRemainingQuantity) {
mQuickGiftRemainingQuantity = Integer.parseInt(giftRemainingQuantity);
if (mQuickGiftRemainingQuantity > 0) {
quick_gift_remaining_quantity.setVisibility(View.VISIBLE);
quick_gift_remaining_quantity.setText(String.valueOf(mQuickGiftRemainingQuantity));
} else {
quick_gift_remaining_quantity.setVisibility(View.GONE);
}
}
private int mQuickGiftRemainingQuantity = 0, mIfViewingDurationComplete;
public void upDataQuickGift(int quickGiftRemainingQuantity, int ifViewingDurationComplete) {
mQuickGiftRemainingQuantity = quickGiftRemainingQuantity;
mIfViewingDurationComplete = ifViewingDurationComplete;
if (!(quickGiftContDown > 0 && quickGiftContDown < 120)) {
quickGiftContDown = 120;
circleProgress.setMax(120);
circleProgress.setCurrent(quickGiftContDown);
}
if (quickGiftRemainingQuantity > 0) {
quick_gift_remaining_quantity.setVisibility(View.VISIBLE);
quick_gift_remaining_quantity.setText(String.valueOf(quickGiftRemainingQuantity));
} else {
quick_gift_remaining_quantity.setVisibility(View.GONE);
}
if (quickGiftRemainingQuantity < 10 && ifViewingDurationComplete > 0) {
if (!(quickGiftContDown > 0 && quickGiftContDown < 120)) {
quickGiftHandler.postDelayed(quickGiftRunnable, 1000);
}
}else {
circleProgress.setCurrent(2);
}
}
private int quickGiftContDown = 120;
private Handler quickGiftHandler = new Handler();
private Runnable quickGiftRunnable = new Runnable() {
@Override
public void run() {
if (mQuickGiftRemainingQuantity == 0) {
time_text.setVisibility(View.VISIBLE);
quick_gift_remaining_quantity.setVisibility(View.GONE);
} else {
time_text.setVisibility(View.GONE);
}
if (quickGiftContDown > 0) {
quickGiftContDown = quickGiftContDown - 1;
if (time_text.getVisibility() == View.VISIBLE) {
time_text.setText(String.valueOf(quickGiftContDown) + "s");
}
circleProgress.setCurrent(quickGiftContDown);
quickGiftHandler.postDelayed(quickGiftRunnable, 1000);
} else {
quickGiftHandler.removeCallbacks(quickGiftRunnable);
LiveNetManager.get(mContext).viewingDurationGetGift(mLiveUid, new com.yunbao.common.http.base.HttpCallback<QuickGiftSendGiftModel>() {
@Override
public void onSuccess(QuickGiftSendGiftModel data) {
upDataQuickGift(data.getQuickGiftRemainingQuantity(), data.getIfViewingDurationComplete());
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
}
};
public void resetView() {
pd_pao.setVisibility(View.VISIBLE);
combo.setVisibility(View.GONE);
lianSongHandler.removeCallbacks(lianSongRunnable);
lianSongHandler.removeCallbacks(lianSongRunnable);
quickGiftHandler.removeCallbacks(quickGiftRunnable);
}
private boolean removeRunnable = false;
private int mLianCountDownCount;//连送倒计时的数字
private Handler lianSongHandler = new Handler();
private Runnable lianSongRunnable = new Runnable() {
@Override
public void run() {
if (removeRunnable) {
lianSongHandler.removeCallbacks(lianSongRunnable);
mLianCountDownCount = 5;
lianSongHandler.postDelayed(lianSongRunnable, 1000);
removeRunnable = false;
Log.e("QuickGiftingEvent", removeRunnable + " " + mLianCountDownCount);
} else {
mLianCountDownCount--;
if (mLianCountDownCount == 0) {
pd_pao.setVisibility(View.VISIBLE);
combo.setVisibility(View.GONE);
lianSongHandler.removeCallbacks(lianSongRunnable);
Bus.get().post(new QuickGiftingEvent().setShow(true));
LiveNetManager.get(mContext).quickGiftSendGift(String.valueOf(quickGiftingIndex), mLiveUid, mStream, new com.yunbao.common.http.base.HttpCallback<QuickGiftSendGiftModel>() {
@Override
public void onSuccess(QuickGiftSendGiftModel data) {
upDataQuickGift(data.getQuickGiftRemainingQuantity(), data.getIfViewingDurationComplete());
if (data.getIfHiddenEgg() == 3) {
ToastUtil.show(WordUtil.isNewZh() ? "恭喜您解鎖隱藏彩蛋! 獎勵已發放!" : "Congratulations on unlocking the hidden easter egg! Rewards have been distributed!");
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
} else {
lianSongHandler.postDelayed(lianSongRunnable, 1000);
}
Log.e("QuickGiftingEvent", removeRunnable + " " + mLianCountDownCount);
}
}
};
private List<String> highSvgas = new ArrayList<>();
private List<String> shortSvgas = new ArrayList<>();
private int quickGiftingIndex = 1;
private void initLittlePanda() {
highSvgas = new ArrayList<>();
shortSvgas = new ArrayList<>();
highSvgas.add("littlepanda1.svga");
highSvgas.add("littlepanda2.svga");
highSvgas.add("littlepanda3.svga");
highSvgas.add("littlepanda4.svga");
highSvgas.add("littlepanda5.svga");
highSvgas.add("littlepanda6.svga");
highSvgas.add("littlepanda7.svga");
highSvgas.add("littlepanda8.svga");
highSvgas.add("littlepanda9.svga");
highSvgas.add("littlepanda10.svga");
shortSvgas.add("littlepanda11.svga");
shortSvgas.add("littlepanda12.svga");
shortSvgas.add("littlepanda13.svga");
shortSvgas.add("littlepanda14.svga");
shortSvgas.add("littlepanda15.svga");
shortSvgas.add("littlepanda16.svga");
shortSvgas.add("littlepanda17.svga");
shortSvgas.add("littlepanda18.svga");
shortSvgas.add("littlepanda19.svga");
}
private float downY = 0;
@@ -528,6 +788,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
super.release();
EventBus.getDefault().unregister(this);
removeCallbacks();
resetView();
}
/**

View File

@@ -198,7 +198,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
// ImgLoader.displayBlurLive(mContext, coverUrl, mCover, 400, 600);
//
// }
}
}//
@Override
public synchronized void setLiveBeanLandscape(int landscape) {
@@ -206,7 +206,10 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
Log.i(TAG, "setLiveBeanLandscape: " + landscape + " isPk: " + isPk);
this.landscape = landscape;
this.videoLandscape = landscape;
mPlayer.setViewResizeMode(landscape == VIDEO_VERTICAL);
if (mPlayer != null) {
mPlayer.setViewResizeMode(landscape == VIDEO_VERTICAL);
}
if (landscape == 2) {
Log.i(TAG, "还原916");
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
@@ -1111,19 +1114,19 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
int maxRate = 900;
switch (IMLoginManager.get(mContext).getSelectClarity()) {
case 0:
rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_848;
minRate = 200;
maxRate = 900;
rcrtcVideoResolution = landscape == 1 ? RCRTCParamsType.RCRTCVideoResolution.parseVideoResolution(960, 720) : RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_848;
minRate = landscape == 1 ? 900 : 200;
maxRate = landscape == 1 ? 700 : 900;
break;
case 1:
rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_720_1280;
minRate = 250;
maxRate = 2200;
rcrtcVideoResolution = landscape == 1 ? RCRTCParamsType.RCRTCVideoResolution.parseVideoResolution(960, 720) : RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_720_1280;
minRate = landscape == 1 ? 900 : 250;
maxRate = landscape == 1 ? 700 : 2200;
break;
case 2:
rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_1080_1920;
minRate = 400;
maxRate = 4000;
rcrtcVideoResolution = landscape == 1 ? RCRTCParamsType.RCRTCVideoResolution.parseVideoResolution(960, 720) : RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_1080_1920;
minRate = landscape == 1 ? 900 : 400;
maxRate = landscape == 1 ? 700 : 4000;
break;
}
// 示例代码使用480x640分辨率演示
@@ -1146,6 +1149,15 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
ArrayList<RCRTCOutputStream> streams = new ArrayList<>();
// streams.add(RCRTCEngine.getInstance().getDefaultVideoStream());
streams.add(RCRTCEngine.getInstance().getDefaultAudioStream());
if (landscape == 1) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
setLiveBeanLandscape(1);
}
});
}
// 开启摄像头
// RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(null);
// 开始切换为主播身份

View File

@@ -56,6 +56,7 @@ import com.makeramen.roundedimageview.RoundedImageView;
import com.ms.banner.Banner;
import com.ms.banner.BannerConfig;
import com.ms.banner.listener.OnBannerClickListener;
import com.opensource.svgaplayer.SVGACallback;
import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser;
@@ -99,9 +100,9 @@ import com.yunbao.common.bean.XydCompleteModel;
import com.yunbao.common.event.AllServerNotifyEvent;
import com.yunbao.common.event.AnchorInfoEvent;
import com.yunbao.common.event.CustomFullServiceNotifyEvent;
import com.yunbao.common.event.HideShowEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.event.LiveSudGamePopupShowOrHideEvent;
import com.yunbao.common.event.SlideEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.API;
import com.yunbao.common.http.CommonHttpConsts;
@@ -131,7 +132,6 @@ import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.utils.formatBigNum;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.common.views.LiveSudGamePopup;
import com.yunbao.common.views.weight.ClipPathCircleImage;
import com.yunbao.common.views.weight.FullServiceNotificationView;
import com.yunbao.common.views.weight.NobleNoticeView;
@@ -384,6 +384,10 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
private String mAnchorName;//主播名字
private boolean isHinde = false;
private boolean isFans = false;
private FrameLayout pa_pao_layout;
private LinearLayout combo_layout;
private TextView combo_number;
private View quick_gift_reminder ;
@Subscribe(threadMode = ThreadMode.MAIN)
public void onUpdata(String str) {
@@ -703,6 +707,90 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
HashMap<String, SVGAImageView> svgaImageViewHashMap = new HashMap<>();
public void onQuickGifting2(boolean show) {
if (show) {
combo_layout.setVisibility(View.GONE);
if (IMLoginManager.get(mContext).getQuickGiftIfFirst()) {
quick_gift_reminder.setVisibility(View.VISIBLE);
} else {
quick_gift_reminder.setVisibility(View.GONE);
}
}
}
public void onQuickGifting3() {
IMLoginManager.get(mContext).setQuickGiftIfFirst();
quick_gift_reminder.setVisibility(View.GONE);
}
public void onQuickGifting(int index, String svgaName) {
pa_pao_layout.setVisibility(View.VISIBLE);
combo_layout.setVisibility(View.VISIBLE);
combo_number.setText(String.valueOf(index));
SVGAImageView svgaImageView = new SVGAImageView(mContext);
String tag = svgaName + System.currentTimeMillis();
svgaImageViewHashMap.put(tag, svgaImageView);
Bus.get().post(new SlideEvent().setSlide(!(svgaImageViewHashMap.size() > 0)));
svgaImageView.setLoops(1);
svgaImageView.setTag(tag);
pa_pao_layout.addView(svgaImageView);
Log.e("QuickGiftingEvent", "pa_pao_layout:getChildCount:" + pa_pao_layout.getChildCount());
Log.e("QuickGiftingEvent", "index:" + index + " svgaName:" + svgaName);
svgaImageView.setCallback(new SVGACallback() {
@Override
public void onPause() {
}
@Override
public void onFinished() {
if (svgaImageViewHashMap.size() != 0) {
svgaImageView.clear();
pa_pao_layout.removeView(svgaImageView);
Log.e("QuickGiftingEvent", "svgaImageView.getTag:" + svgaImageView.getTag());
svgaImageViewHashMap.remove(svgaName);
Log.e("QuickGiftingEvent", "svgaImageViewHashMap:" + svgaImageViewHashMap.toString());
Log.e("QuickGiftingEvent", "pa_pao_layout:getChildCount:" + pa_pao_layout.getChildCount());
if (pa_pao_layout.getChildCount() == 0) {
pa_pao_layout.setVisibility(View.GONE);
Bus.get().post(new SlideEvent().setSlide(true));
}
}
}
@Override
public void onRepeat() {
}
@Override
public void onStep(int i, double v) {
}
});
new SVGAParser(mContext).decodeFromAssets(svgaName, new SVGAParser.ParseCompletion() {
@Override
public void onComplete(@NonNull SVGAVideoEntity svgaVideoEntity) {
SVGADrawable drawable = new SVGADrawable(svgaVideoEntity);
svgaImageView.setImageDrawable(drawable);
svgaImageView.startAnimation();
}
@Override
public void onError() {
}
}, null);
}
/**
* 获取下一秒钟的时间
*/
@@ -1473,6 +1561,12 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
new LoadDian9TuUtil().loadDian9TuAssets2(mContext, wishListLayout2, "rectangle_new.png", 1);
pa_pao_layout = (FrameLayout) findViewById(R.id.pa_pao_layout);
combo_layout = (LinearLayout) findViewById(R.id.combo_layout);
combo_number = (TextView) findViewById(R.id.combo_number);
quick_gift_reminder = findViewById(R.id.quick_gift_reminder);
pa_pao_layout.setVisibility(View.GONE);
combo_layout.setVisibility(View.GONE);
}
@@ -1730,8 +1824,12 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
* 重置数据
*/
public void resetView() {
svgaImageViewHashMap.clear();
pa_pao_layout.removeAllViews();
timeHandler.removeCallbacks(timeRunnable);
anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
pa_pao_layout.setVisibility(View.GONE);
combo_layout.setVisibility(View.GONE);
resetViewGone();
visibility = false;
pkUidTmp = "";
@@ -2446,11 +2544,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
* @param rank 小时榜
*/
public void setHourRankData(long rank) {
if (mHourRank != null) {
if (mHotText != null) {
if (rank == 0) {
mHourRank.setText(R.string.no_rank_data);
mHotText.setText(R.string.no_rank_data);
} else {
mHourRank.setText(String.format(mContext.getString(R.string.hour_rank), formatBigNum.formatBigNum(rank + "")));
mHotText.setText(String.format(mContext.getString(R.string.hour_rank), formatBigNum.formatBigNum(rank + "")));
}
}
}
@@ -2470,12 +2568,14 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
* @param hot 热度值
*/
public void setHotData(String hot) {
if (mHotText != null && !TextUtils.isEmpty(hot)) {
mHotText.setText(hot);
if (mHourRank != null && !TextUtils.isEmpty(hot)) {
mHourRank.setText(hot);
}
}
public void setHotNum(String hotNum) {
setHotData(formatBigNum.formatBigNum(hotNum));
}
/**
* 更新心愿单进度
*
@@ -3987,6 +4087,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
public void clearData() {
svgaImageViewHashMap.clear();
pa_pao_layout.removeAllViews();
timeHandler.removeCallbacks(timeRunnable);
anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
LiveHttpUtil.cancel(LiveHttpConsts.GET_USER_LIST);

View File

@@ -56,6 +56,7 @@ import com.yunbao.common.event.LiveFloatEvent;
import com.yunbao.common.event.LiveGiftDialogEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.event.LiveSudGamePopupShowOrHideEvent;
import com.yunbao.common.event.QuickGiftingEvent;
import com.yunbao.common.event.SendBlindGiftEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpConsts;
@@ -223,6 +224,34 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
}
public void onQuickGifting(int index, String svgaName) {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.onQuickGifting(index, svgaName);
}
}
public void onQuickGifting2(boolean show) {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.onQuickGifting2(show);
}
}
public void onQuickGifting3() {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.onQuickGifting3();
}
}
public void setGiftRemainingQuantity(String giftRemainingQuantity) {
if (mLiveAudienceViewHolder!=null){
mLiveAudienceViewHolder.setGiftRemainingQuantity(giftRemainingQuantity);
}
}
public void setHotNum(String hotNum) {
if (mLiveRoomViewHolder!=null){
mLiveRoomViewHolder.setHotNum(hotNum);
}
}
public PortraitLiveManager(Activity context, Intent intent) {
this.mContext = context;
this.mIntent = intent;
@@ -386,6 +415,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
});
mLiveRoomViewHolder.resetView();
mLiveAudienceViewHolder.resetView();
enterRoomModel.clear();
enterRoomLeaveHandler.removeCallbacks(enterRoomLeaveRunnable);
mLiveRoomViewHolder.setAvatar(data.getAvatar());
@@ -726,6 +756,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRoomViewHolder.setSudName(WordUtil.isNewZh() ? data.getSudGameDateModel().getSudGameName() : data.getSudGameDateModel().getSud_game_name_en(), data.getSudGameDateModel());
}
}
mLiveAudienceViewHolder.upDataQuickGift(data.getQuickGiftRemainingQuantity(), data.getIfViewingDurationComplete());
}
@@ -832,8 +863,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLivePlayViewHolder.release();
}
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.removeFromParent();
mLiveRoomViewHolder.clearData();
mLiveRoomViewHolder.removeFromParent();
mLiveRoomViewHolder.countDownTimerTrickery = null;
}
@@ -932,7 +963,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
* 申请连麦但是主播还未同意的状态
*/
public void micIngTypeOne(LiveBean bean, int liveType, int liveTypeVal) {
DialogUitl.showSimpleDialog(mContext, null, WordUtil.isNewZh()?"您已申請,退出將取消語音連麥申請!":"You have applied, logout will cancel the voice connection application!", false, new DialogUitl.SimpleCallback3() {
DialogUitl.showSimpleDialog(mContext, null, WordUtil.isNewZh() ? "您已申請,退出將取消語音連麥申請!" : "You have applied, logout will cancel the voice connection application!", false, new DialogUitl.SimpleCallback3() {
@Override
public void onConfirmClick(Dialog dialog) {
MicStatusManager.getInstance().clear();

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<RelativeLayout
@@ -345,11 +345,11 @@
<!--整蛊-->
<ImageView
android:id="@+id/live_cheat"
android:visibility="gone"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginEnd="8dp"
android:src="@mipmap/icon_prank" />
android:src="@mipmap/icon_prank"
android:visibility="gone" />
<!---->
<ImageView
android:id="@+id/live_play"
@@ -384,31 +384,74 @@
android:background="@drawable/background_ff5075"
android:visibility="invisible" />
</RelativeLayout>
<RelativeLayout
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginEnd="8dp">
<com.yunbao.common.views.weight.CircleProgress2
android:id="@+id/circleProgress"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
<ImageView
android:id="@+id/pd_pao"
android:layout_width="27dp"
android:layout_height="27dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@mipmap/icon_pd_pao" />
<TextView
android:id="@+id/time_text"
android:layout_width="27dp"
android:layout_height="27dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/backgroud_panda_time"
android:gravity="center"
android:text="120S"
android:textColor="@color/white"
android:textSize="10sp"
android:visibility="gone" />
<ImageView
android:id="@+id/combo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/icon_combo"
android:visibility="gone" />
</RelativeLayout>
<!--礼物-->
<ImageView
android:id="@+id/gift_image"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginEnd="8dp"
android:background="@drawable/background_gift"
/>
android:background="@drawable/background_gift" />
<!--特权-->
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="40dp"
android:layout_height="40dp">
<ImageView
android:id="@+id/live_privilege"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="8dp"
android:src="@mipmap/icon_privilege"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:src="@mipmap/icon_privilege" />
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/privilege_red_point"
android:layout_width="10dp"
@@ -433,10 +476,6 @@
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
@@ -455,6 +494,18 @@
android:visibility="gone" />
</RelativeLayout>
<TextView
android:id="@+id/quick_gift_remaining_quantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="150dp"
android:layout_marginBottom="-2dp"
android:text="99"
android:textColor="#FFB403"
android:textSize="8sp"
android:textStyle="bold" />
</RelativeLayout>

View File

@@ -2484,13 +2484,13 @@
android:layout_height="40dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:background="@drawable/background_live_sud_hint"
android:gravity="center"
android:layout_marginStart="21dp"
android:layout_marginEnd="42dp"
android:background="@drawable/background_live_sud_hint"
android:gravity="center"
android:paddingStart="21dp"
android:visibility="gone"
android:paddingEnd="15dp">
android:paddingEnd="15dp"
android:visibility="gone">
<com.yunbao.common.views.weight.MarqueeTextView
android:id="@+id/sud_text_name"
@@ -2501,8 +2501,47 @@
android:singleLine="true"
android:text="主播創建了【游戲名】房間,快來與主播同玩~"
android:textColor="@color/white"
android:textSize="14sp"
/>
android:textSize="14sp" />
</LinearLayout>
<FrameLayout
android:id="@+id/pa_pao_layout"
android:layout_width="match_parent"
android:layout_height="384dp"
android:layout_alignParentBottom="true" />
<LinearLayout
android:id="@+id/combo_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginStart="220dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/combo"
android:textColor="#FFDD25"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/combo_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:textColor="#FFDD25"
android:textSize="45sp"
android:textStyle="bold" />
</LinearLayout>
<ImageView
android:id="@+id/quick_gift_reminder"
android:layout_width="63dp"
android:layout_height="72dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="125dp"
android:src="@mipmap/background_quick_gift_reminder"
android:visibility="gone" />
</RelativeLayout>