添加礼物飘屏功能
This commit is contained in:
@@ -11,6 +11,7 @@ import android.content.res.Configuration;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.CountDownTimer;
|
||||
import android.os.Handler;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
@@ -35,6 +36,8 @@ import com.alibaba.android.arouter.facade.annotation.Autowired;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.blankj.utilcode.util.GsonUtils;
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.blankj.utilcode.util.ThreadUtils;
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.example.moduleroom.R;
|
||||
@@ -54,13 +57,18 @@ import com.qxcm.moduleutil.base.CommonAppContext;
|
||||
import com.qxcm.moduleutil.bean.HeadlineBean;
|
||||
import com.qxcm.moduleutil.bean.HeadlineEvent;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.bean.room.RankInfo;
|
||||
import com.qxcm.moduleutil.bean.room.RoomOnline;
|
||||
import com.qxcm.moduleutil.databinding.RoomDialogMusicWindowOpenBinding;
|
||||
import com.qxcm.moduleutil.dialog.RechargeDialogFragment;
|
||||
import com.qxcm.moduleutil.event.ColoseCardEvent;
|
||||
import com.qxcm.moduleutil.event.EffectEvent;
|
||||
import com.qxcm.moduleutil.event.MusicEvent;
|
||||
import com.qxcm.moduleutil.event.RoomGiftGiveEvent;
|
||||
import com.qxcm.moduleutil.event.RoomOutEvent;
|
||||
import com.qxcm.moduleutil.event.RoomWheatEvent;
|
||||
import com.qxcm.moduleutil.http.BaseObserver;
|
||||
import com.qxcm.moduleutil.http.RetrofitClient;
|
||||
import com.qxcm.moduleutil.interfaces.OnMusicItemClickListener;
|
||||
import com.qxcm.moduleutil.listener.MessageListenerSingleton;
|
||||
import com.qxcm.moduleutil.adapter.LikeUserAdapter;
|
||||
@@ -84,8 +92,11 @@ import com.qxcm.moduleutil.rtc.AgoraManager;
|
||||
import com.qxcm.moduleutil.rtc.MusicPlayBean;
|
||||
import com.qxcm.moduleutil.rtc.RtcCore;
|
||||
import com.qxcm.moduleutil.utils.ARouteConstants;
|
||||
import com.qxcm.moduleutil.utils.DialogUtils;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
import com.qxcm.moduleutil.utils.logger.DataLogger;
|
||||
import com.qxcm.moduleutil.widget.CircularProgressView;
|
||||
import com.qxcm.moduleutil.widget.CustomMusicFloatingView;
|
||||
import com.qxcm.moduleutil.widget.MusicView;
|
||||
import com.qxcm.moduleutil.widget.SilentCountDownTimer;
|
||||
@@ -102,6 +113,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.agora.musiccontentcenter.Music;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import pub.devrel.easypermissions.AppSettingsDialog;
|
||||
import pub.devrel.easypermissions.EasyPermissions;
|
||||
|
||||
@@ -139,6 +151,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
private boolean imYc;
|
||||
|
||||
private SilentCountDownTimer silentCountDownTimer;
|
||||
private CircularProgressView circularProgress;
|
||||
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
@@ -238,7 +251,112 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
ivQuan.setOnClickListener(v -> toggleFullScreen());
|
||||
ivExitFullscreen.setOnClickListener(v -> exitFullScreen());
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
circularProgress = mBinding.giftShowProgress;
|
||||
circularProgress.setProgress(0);
|
||||
mBinding.giftShowLayout.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
onGiftGiveProgressClcik();
|
||||
LogUtils.e("xj", "onSubscribe2222");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void onGiftGiveProgressClcik() {
|
||||
if (giftGiveEvent == null || giftGiveEvent.roonGiftModel == null) {
|
||||
return;
|
||||
}
|
||||
// if (giftCountTimer != null) {
|
||||
// giftCountTimer.cancel();
|
||||
// giftCountTimer = null;
|
||||
// }
|
||||
RetrofitClient.getInstance().roomGift(giftGiveEvent.getRoom_id(), giftGiveEvent.getRoonGiftModel().getGift_id(), giftGiveEvent.getNum(), giftGiveEvent.getUserId(),"1",giftGiveEvent.getPit(), new BaseObserver<String>(){
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
// showGiftGiveProgress();
|
||||
// LogUtils.e("xj", "onSubscribe");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
showGiftGiveProgress();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
super.onError(e);
|
||||
String msg = e.getMessage();
|
||||
if (!TextUtils.isEmpty(msg) && msg.contains("当前余额不足")) {
|
||||
com.hjq.toast.ToastUtils.show("当前余额不足,请充值");
|
||||
ThreadUtils.runOnUiThreadDelayed(() -> {
|
||||
RechargeDialogFragment.show(roomId, getSupportFragmentManager());
|
||||
// DialogUtils.showDialogFragment(ARouter.getInstance().build(ARouteConstants.RECHARGE_DIALOG).navigation());
|
||||
}, 1400);
|
||||
}
|
||||
hideGiftGiveProgress();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private RoomGiftGiveEvent giftGiveEvent;
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void roomGiveGiftEvent(RoomGiftGiveEvent event) {
|
||||
if (isFinishing() || event == null || event.roonGiftModel == null) {
|
||||
return;
|
||||
}
|
||||
giftGiveEvent = event;
|
||||
showGiftGiveProgress();
|
||||
}
|
||||
private int giftProgress=0;
|
||||
private CountDownTimer giftCountTimer;
|
||||
|
||||
private void startGiftProgressTime() {
|
||||
giftProgress = 0;
|
||||
if (giftCountTimer != null) {
|
||||
giftCountTimer.cancel();
|
||||
}
|
||||
LogUtils.e("xj2", "onSubscribe");
|
||||
giftCountTimer = new CountDownTimer(1000 * 10, 50) {
|
||||
|
||||
@Override
|
||||
public void onTick(long millisUntilFinished) {
|
||||
if (!isFinishing()) {
|
||||
circularProgress.setProgress(1000 - (int) (millisUntilFinished / 10));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinish() {
|
||||
circularProgress.setProgress(1000);
|
||||
hideGiftGiveProgress();
|
||||
}
|
||||
};
|
||||
giftCountTimer.start();
|
||||
}
|
||||
|
||||
private void showGiftGiveProgress() {
|
||||
ImageUtils.loadImageView(giftGiveEvent.roonGiftModel.getBase_image(), mBinding.giftShowProgressImg);
|
||||
circularProgress.setProgress(1000);// 显示进度条,2025年7月19日11:23:37将这个从下面的方法提起到这里,
|
||||
startGiftProgressTime();
|
||||
mBinding.giftShowLayout.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
private void hideGiftGiveProgress() {
|
||||
mBinding.giftShowLayout.setVisibility(View.GONE);
|
||||
if (giftCountTimer != null) {
|
||||
giftCountTimer.cancel();
|
||||
giftCountTimer = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void toggleFullScreen() {
|
||||
if (isFullScreen) {
|
||||
exitFullScreen();
|
||||
@@ -276,11 +394,9 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
|
||||
private void exitFullScreen() {
|
||||
isFullScreen = false;
|
||||
|
||||
// 恢复系统UI
|
||||
View decorView = getWindow().getDecorView();
|
||||
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
|
||||
|
||||
// 设置回竖屏
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
||||
// 找到 fl_screenshare 并移回原父容器
|
||||
@@ -299,8 +415,6 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
|
||||
floatingMagnetView.addView(fl_screenshare);
|
||||
}
|
||||
|
||||
|
||||
// 恢复界面
|
||||
fullScreenContainer.setVisibility(View.GONE);
|
||||
floatingMagnetView.setVisibility(View.VISIBLE);
|
||||
@@ -342,6 +456,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void roomInfoEvent(RoomMessageEvent messageEvent) {
|
||||
if (messageEvent.getMsgType() == 1005) {
|
||||
|
||||
@@ -407,6 +407,11 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
|
||||
@Override
|
||||
public void giveGift() {
|
||||
// dismiss();
|
||||
if (roomGiftGiveEvent != null){
|
||||
EventBus.getDefault().post(roomGiftGiveEvent);
|
||||
roomGiftGiveEvent = null;
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -63,7 +63,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
private String duration;
|
||||
private MusicSongBean musicSongBean;
|
||||
|
||||
BaseQuickAdapter<RoomCharmRankBean, BaseViewHolder> adapter;
|
||||
BaseQuickAdapter<RoomPitBean, BaseViewHolder> adapter;
|
||||
private RoomOnline online;
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
if (getActivity() instanceof RoomActivity) {
|
||||
((RoomActivity) getActivity()).setvisibTop(true);
|
||||
}
|
||||
MvpPre.getCharmRank(roomInfoResp.getRoom_info().getRoom_id());
|
||||
// MvpPre.getCharmRank(roomInfoResp.getRoom_info().getRoom_id());
|
||||
mKaraokeView = new KaraokeView(mBinding.lyricsView, null);
|
||||
mKaraokeView.setKaraokeEvent(new KaraokeEvent() {
|
||||
@Override
|
||||
@@ -144,7 +144,6 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
did = roomInfoResp.getSong_user_info().getDid();
|
||||
AgoraManager.getInstance(getActivity()).isPreload(Long.parseLong(roomInfoResp.getSong_user_info().getSong_code()), 1);
|
||||
} else {
|
||||
|
||||
AgoraManager.getInstance(getActivity()).isPreload(Long.parseLong(roomInfoResp.getSong_user_info().getSong_code()), 2);
|
||||
}
|
||||
musicSongBean = roomInfoResp.getSong_user_info();
|
||||
@@ -234,20 +233,20 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
mBinding.llJs.setOnClickListener(this::onClick);
|
||||
mBinding.llQg.setOnClickListener(this::onClick);
|
||||
mBinding.llSz.setOnClickListener(this::onClick);
|
||||
adapter = new BaseQuickAdapter<RoomCharmRankBean, BaseViewHolder>(R.layout.item_room_charm_rank) {
|
||||
adapter = new BaseQuickAdapter<RoomPitBean, BaseViewHolder>(R.layout.item_room_charm_rank) {
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RoomCharmRankBean item) {
|
||||
protected void convert(BaseViewHolder helper, RoomPitBean item) {
|
||||
|
||||
RoomPitBean bean = new RoomPitBean();
|
||||
bean.setUser_id(item.getUser_id());
|
||||
bean.setRoom_id(roomInfoResp.getRoom_info().getRoom_id());
|
||||
bean.setNickname(item.getNickname());
|
||||
bean.setAvatar(item.getAvatar());
|
||||
bean.setDress(item.getDress());
|
||||
bean.setCharm(item.getCharm());
|
||||
bean.setPit_number("0");
|
||||
// RoomPitBean bean = new RoomPitBean();
|
||||
// bean.setUser_id(item.getUser_id());
|
||||
// bean.setRoom_id(roomInfoResp.getRoom_info().getRoom_id());
|
||||
// bean.setNickname(item.getNickname());
|
||||
// bean.setAvatar(item.getAvatar());
|
||||
// bean.setDress(item.getDress());
|
||||
// bean.setCharm(item.getCharm());
|
||||
// bean.setPit_number("0");
|
||||
RoomDefaultWheatView mu_rank = helper.getView(R.id.mu_rank);
|
||||
mu_rank.setData(bean);
|
||||
mu_rank.setData(item);
|
||||
mu_rank.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -258,6 +257,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
}
|
||||
};
|
||||
mBinding.recyclerView.setAdapter(adapter);
|
||||
if (roomInfoResp.getSong_pit_list() != null && roomInfoResp.getSong_pit_list().size() > 0){
|
||||
adapter.setNewData(roomInfoResp.getSong_pit_list());
|
||||
}
|
||||
AgoraManager.getInstance(getActivity()).selectAudioTrack(0);
|
||||
isRotate = true;
|
||||
RoomDefaultWheatView muYc = mBinding.muYc;
|
||||
@@ -520,6 +522,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
// }
|
||||
}
|
||||
} else if (messageEvent.getMsgType() == 1003) {
|
||||
|
||||
if (messageEvent.getText().getPit_number().equals("9") || messageEvent.getText().getPit_number().equals("10")) {
|
||||
|
||||
RoomPitBean pitBean = new RoomPitBean();
|
||||
@@ -537,9 +540,21 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
RoomDefaultWheatView roomDefaultWheatView = mBinding.muJb;
|
||||
roomDefaultWheatView.setData(pitBean);
|
||||
}
|
||||
}else {
|
||||
RoomPitBean pitBean = new RoomPitBean();
|
||||
pitBean.setPit_number(messageEvent.getText().getPit_number());
|
||||
pitBean.setUser_id(messageEvent.getText().getFromUserInfo().getUser_id() + "");
|
||||
pitBean.setAvatar(messageEvent.getText().getFromUserInfo().getAvatar());
|
||||
pitBean.setNickname(messageEvent.getText().getFromUserInfo().getNickname());
|
||||
pitBean.setSex(messageEvent.getText().getFromUserInfo().getSex() + "");
|
||||
pitBean.setCharm(messageEvent.getText().getFromUserInfo().getCharm());
|
||||
|
||||
roomInfoResp.getSong_pit_list().add(pitBean);
|
||||
}
|
||||
adapter.setNewData(roomInfoResp.getSong_pit_list());
|
||||
sv();
|
||||
} else if (messageEvent.getMsgType() == 1004) {
|
||||
|
||||
if (messageEvent.getText().getPit_number().equals("9") || messageEvent.getText().getPit_number().equals("10")) {
|
||||
RoomPitBean pitBean = new RoomPitBean();
|
||||
pitBean.setPit_number(messageEvent.getText().getPit_number());
|
||||
@@ -555,6 +570,14 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
RoomDefaultWheatView roomDefaultWheatView = mBinding.muJb;
|
||||
roomDefaultWheatView.setData(pitBean);
|
||||
}
|
||||
}else {
|
||||
for (int i = 0; i < roomInfoResp.getSong_pit_list().size(); i++){
|
||||
if (roomInfoResp.getSong_pit_list().get(i).getUser_id().equals(messageEvent.getText().getFromUserInfo().getUser_id() + "")){
|
||||
roomInfoResp.getSong_pit_list().remove(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
adapter.setNewData(roomInfoResp.getSong_pit_list());
|
||||
}
|
||||
sv();
|
||||
} else if (messageEvent.getMsgType() == 1019) {
|
||||
@@ -611,7 +634,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
|
||||
@Override
|
||||
public void getCharmRank(List<RoomCharmRankBean> list) {
|
||||
adapter.setNewData(list);
|
||||
// adapter.setNewData(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -13,6 +13,6 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:room_wheat_number="0"/>
|
||||
app:room_wheat_number="9999"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
Reference in New Issue
Block a user