1:修改家族展示续签按钮位置
2:修改购买爵位前,先请求一次接口 3:修改所有CP更改为心动 4:修改挚友,初始获取数据变更成40条 5:未实名认证不能进行歌手认证 6: 点唱房换麦出现页面展示不对
This commit is contained in:
@@ -32,13 +32,10 @@ import android.view.KeyEvent
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.view.View.GONE
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import android.view.animation.AccelerateInterpolator
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.DecelerateInterpolator
|
||||
import android.view.animation.TranslateAnimation
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import android.widget.Button
|
||||
import android.widget.EditText
|
||||
@@ -55,7 +52,6 @@ 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.ActivityUtils
|
||||
import com.blankj.utilcode.util.FileUtils
|
||||
import com.blankj.utilcode.util.GsonUtils
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import com.blankj.utilcode.util.ThreadUtils
|
||||
@@ -71,9 +67,6 @@ import com.tencent.imsdk.v2.V2TIMManager
|
||||
import com.tencent.imsdk.v2.V2TIMSDKListener
|
||||
import com.tencent.imsdk.v2.V2TIMUserFullInfo
|
||||
import com.tencent.imsdk.v2.V2TIMValueCallback
|
||||
import com.tencent.qgame.animplayer.AnimConfig
|
||||
import com.tencent.qgame.animplayer.AnimView
|
||||
import com.tencent.qgame.animplayer.inter.IAnimListener
|
||||
import com.xscm.modulemain.BaseMvpActivity
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.modulemain.activity.main.activity.MainActivity
|
||||
@@ -112,7 +105,6 @@ import com.xscm.moduleutil.adapter.LikeUserAdapter
|
||||
import com.xscm.moduleutil.base.AppStateListener
|
||||
import com.xscm.moduleutil.base.AppStateManager
|
||||
import com.xscm.moduleutil.base.CommonAppContext
|
||||
import com.xscm.moduleutil.base.CommonAppContext.post
|
||||
import com.xscm.moduleutil.bean.GiftBean
|
||||
import com.xscm.moduleutil.bean.HeadlineBean
|
||||
import com.xscm.moduleutil.bean.MqttXlhEnd
|
||||
@@ -177,7 +169,6 @@ import com.xscm.moduleutil.utils.SystemUtils
|
||||
import com.xscm.moduleutil.utils.roomview.GiftDisplayManager
|
||||
import com.xscm.moduleutil.widget.CircularProgressView
|
||||
import com.xscm.moduleutil.widget.CustomMusicFloatingView
|
||||
import com.xscm.moduleutil.widget.GiftAnimView
|
||||
import com.xscm.moduleutil.widget.QXGiftPlayerManager
|
||||
import com.xscm.moduleutil.widget.RoomKtvWheatView
|
||||
import com.xscm.moduleutil.widget.SilentCountDownTimer
|
||||
@@ -189,20 +180,12 @@ import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import okhttp3.Call
|
||||
import okhttp3.Callback
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import okhttp3.Response
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
import pub.devrel.easypermissions.AppSettingsDialog
|
||||
import pub.devrel.easypermissions.EasyPermissions
|
||||
import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.IOException
|
||||
import java.lang.ref.WeakReference
|
||||
import java.nio.charset.StandardCharsets
|
||||
import java.util.Arrays
|
||||
@@ -1500,10 +1483,11 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
qxRedPacketManager!!.addRedPacket(messageEvent.text.redpacketInfo)
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeQXRoomMessageRedRemove) {
|
||||
qxRedPacketManager!!.removeRedPacket(messageEvent.text.redpacket_id)
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeSongerNum //房间点歌数量变化
|
||||
|| msgType == EMMessageInfo.QXRoomMessageTypeSingerRoomCurrentSongDidChanged //点歌房当前歌曲发生变化
|
||||
|| msgType == EMMessageInfo.QXRoomMessageTypeSingerRoomNextSongDidChanged
|
||||
) { //点歌房下一首歌曲发生变化
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeSongerNum|| //房间点歌数量变化
|
||||
msgType == EMMessageInfo.QXRoomMessageTypeSingerRoomNextSongDidChanged) //点歌房下一首歌曲发生变化
|
||||
{
|
||||
roomFragment!!.handleRoomMessage(messageEvent)
|
||||
}else if( msgType == EMMessageInfo.QXRoomMessageTypeSingerRoomCurrentSongDidChanged){ //点歌房当前歌曲发生变化)
|
||||
if (mRoomInfoResp != null && mRoomInfoResp!!.room_info != null) {
|
||||
if(messageEvent?.text?.song_info!=null){
|
||||
mRoomInfoResp?.singer_info?.song_info = messageEvent.text.song_info
|
||||
@@ -1513,7 +1497,8 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
roomFragment?.upRoomInfo(mRoomInfoResp)
|
||||
roomFragment!!.handleRoomMessage(messageEvent)
|
||||
}
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeCPText) {
|
||||
}
|
||||
else if (msgType == EMMessageInfo.QXRoomMessageTypeCPText) {
|
||||
LogUtils.e("CPText", messageEvent.text.rights_icon)
|
||||
if (messageEvent.text.rights_icon.isNotEmpty()) {
|
||||
QXGiftPlayerManager.getInstance(this).displayCPView(
|
||||
|
||||
@@ -28,7 +28,7 @@ public class RoomJukeboxAdapter extends BaseQuickAdapter<RoomPitBean, BaseViewHo
|
||||
RoomJukeboxWheatView roomJukeboxWheatView= helper.getView(R.id.wheatView);
|
||||
// 确保pitNumber与数据匹配,而不是使用位置
|
||||
roomJukeboxWheatView.setRoomWheatNumber(item.getPit_number());
|
||||
roomJukeboxWheatView.isMentorShip(false);
|
||||
roomJukeboxWheatView.isMentorShip(true);
|
||||
roomJukeboxWheatView.setImageType(item.isImageType());
|
||||
roomJukeboxWheatView.setData(item);
|
||||
|
||||
|
||||
@@ -34,6 +34,18 @@ public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void addSongList(List<SongPlaylist.SongPlaylistBean> songList) {
|
||||
if (songList != null) {
|
||||
this.songList.addAll(songList);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public void clearSongList() {
|
||||
this.songList.clear();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void setOnSongClickListener(OnSongClickListener listener) {
|
||||
this.onSongClickListener = listener;
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ import com.xscm.moduleutil.utils.SpUtil;
|
||||
import com.xscm.moduleutil.widget.RoomFriendshipWheatView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -60,6 +61,8 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
||||
private RoomFragment parentFragment;
|
||||
private int songId;//歌曲id,当前歌曲的
|
||||
|
||||
List<RoomPitBean> roomPitBeans = new ArrayList<>();
|
||||
|
||||
public RoomJukeboxFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
@@ -370,11 +373,11 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
||||
this.roomInfoResp = roomInfoResp;
|
||||
roomId = roomInfoResp == null ? "" : roomInfoResp.getRoom_info().getRoom_id();
|
||||
|
||||
setView();
|
||||
// setView();
|
||||
}
|
||||
|
||||
public void setView() {
|
||||
List<RoomPitBean> roomPitBeans = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < roomInfoResp.getRoom_info().getPit_list().size(); i++) {
|
||||
RoomPitBean roomPitBean = roomInfoResp.getRoom_info().getPit_list().get(i);
|
||||
|
||||
@@ -497,6 +500,11 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
||||
pitBean.setCharm(fromUserInfo.getCharm());
|
||||
pitBean.setDress(fromUserInfo.getDress());
|
||||
pitBean.setIs_online(fromUserInfo.getIs_online());
|
||||
if (roomInfoResp.getSinger_info().getSong_info().getSinger_user_id() == userId) {
|
||||
pitBean.setImageType(true);
|
||||
} else {
|
||||
pitBean.setImageType(false);
|
||||
}
|
||||
// 使用set方法更新数据,然后通知适配器
|
||||
dataList.set(position, pitBean);
|
||||
adapter.notifyItemChanged(position);
|
||||
@@ -532,7 +540,6 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
||||
pitBean.setNickname("");
|
||||
pitBean.setSex("");
|
||||
pitBean.setCharm("");
|
||||
|
||||
if (pitNumber.equals("9")) {
|
||||
RoomJukeboxWheatView roomDefaultWheatView = mBinding.wvZc;
|
||||
roomDefaultWheatView.setRoomWheatNumber("9");
|
||||
@@ -568,7 +575,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
||||
pitBean.setSex("");
|
||||
pitBean.setCharm("");
|
||||
pitBean.setDress("");
|
||||
|
||||
pitBean.setImageType(false);
|
||||
// 使用set方法更新数据,然后通知适配器
|
||||
dataList.set(position, pitBean);
|
||||
adapter.setNewData(dataList);
|
||||
@@ -586,79 +593,44 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
||||
String fromPit = event.getText().getFrom_pit_number();
|
||||
String toPit = event.getText().getTo_pit_number();
|
||||
if (fromPit == null || toPit == null) return;
|
||||
List<RoomPitBean> dataList = new ArrayList<>(adapter.getData());
|
||||
|
||||
int fromIndex = Integer.parseInt(fromPit) - 1;
|
||||
int toIndex = Integer.parseInt(toPit) - 1;
|
||||
if (toIndex > adapter.getData().size() - 1) {
|
||||
UserInfo fromUserInfo = event.getText().getFromUserInfo();
|
||||
pitNumber = toPit;
|
||||
RoomPitBean pitBean = new RoomPitBean();
|
||||
pitBean.setPit_number(pitNumber);
|
||||
pitBean.setUser_id(fromUserInfo.getUser_id() + "");
|
||||
pitBean.setAvatar(fromUserInfo.getAvatar());
|
||||
pitBean.setNickname(fromUserInfo.getNickname());
|
||||
pitBean.setSex(fromUserInfo.getSex() + "");
|
||||
pitBean.setCharm(fromUserInfo.getCharm());
|
||||
pitBean.setDress(fromUserInfo.getDress());
|
||||
pitBean.setIs_online(fromUserInfo.getIs_online());
|
||||
// 确保视图的pitNumber与数据的pit_number匹配
|
||||
if (pitNumber.equals("9")) {
|
||||
mBinding.wvZc.setRoomWheatNumber("9");
|
||||
mBinding.wvZc.setData(pitBean);
|
||||
roomInfoResp.getRoom_info().getPit_list().set(8, pitBean);
|
||||
|
||||
if (fromUserInfo.getUser_id() == SpUtil.getUserId()) {
|
||||
myPitNumber = Integer.parseInt(pitNumber);
|
||||
if (pitNumber.equals("9")) {
|
||||
if (toPit.equals("9")) {
|
||||
RoomPitBean fromBean = adapter.getData().get(fromIndex);
|
||||
fromBean.setPit_number(toPit);
|
||||
mBinding.wvZc.setRoomWheatNumber("9");
|
||||
mBinding.wvZc.setData(fromBean);
|
||||
roomInfoResp.getRoom_info().getPit_list().set(8, fromBean);
|
||||
|
||||
if (fromBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||
myPitNumber = 9;
|
||||
configGameOptionBtn();
|
||||
}
|
||||
}
|
||||
}
|
||||
RoomPitBean temp = dataList.get(fromIndex);
|
||||
|
||||
RoomPitBean temp = adapter.getData().get(fromIndex);
|
||||
temp.setUser_id("");
|
||||
temp.setAvatar("");
|
||||
temp.setNickname("");
|
||||
temp.setSex("");
|
||||
temp.setCharm("");
|
||||
temp.setDress("");
|
||||
dataList.set(fromIndex, temp);
|
||||
temp.setImageType(false);
|
||||
|
||||
roomInfoResp.getRoom_info().getPit_list().set(fromIndex, temp);
|
||||
adapter.getData().set(fromIndex, temp);
|
||||
adapter.notifyItemChanged(fromIndex);
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取当前数据列表
|
||||
|
||||
|
||||
// 保存原始pit_number
|
||||
String fromPitNumber = dataList.get(fromIndex).getPit_number();
|
||||
String toPitNumber = dataList.get(toIndex).getPit_number();
|
||||
|
||||
// 交换两个位置的对象
|
||||
RoomPitBean temp = dataList.get(fromIndex);
|
||||
dataList.set(fromIndex, dataList.get(toIndex));
|
||||
dataList.set(toIndex, temp);
|
||||
|
||||
// 确保pit_number正确
|
||||
dataList.get(fromIndex).setPit_number(fromPitNumber);
|
||||
dataList.get(toIndex).setPit_number(toPitNumber);
|
||||
|
||||
// 更新数据并通知适配器
|
||||
adapter.getData().clear();
|
||||
adapter.getData().addAll(dataList);
|
||||
adapter.notifyItemChanged(fromIndex);
|
||||
adapter.notifyItemChanged(toIndex);
|
||||
|
||||
List<RoomPitBean> pitList = roomInfoResp.getRoom_info().getPit_list();
|
||||
if (pitList != null && dataList != null) {
|
||||
for (int i = 0; i < Math.min(pitList.size(), dataList.size()); i++) {
|
||||
pitList.set(i, dataList.get(i));
|
||||
}
|
||||
}
|
||||
if (parentFragment != null) {
|
||||
parentFragment.upRoomInfo(roomInfoResp);
|
||||
}
|
||||
if (getActivity() instanceof RoomActivity) {
|
||||
((RoomActivity) getActivity()).upRoomInfoFragment(roomInfoResp);
|
||||
} else {
|
||||
RoomPitBean fromBean = adapter.getData().get(fromIndex);
|
||||
fromBean.setPit_number(toPit);
|
||||
RoomPitBean toBean = adapter.getData().get(toIndex);
|
||||
toBean.setPit_number(fromPit);
|
||||
roomInfoResp.getRoom_info().getPit_list().set(fromIndex, toBean);
|
||||
roomInfoResp.getRoom_info().getPit_list().set(toIndex, fromBean);
|
||||
roomPitBeans.set(fromIndex, toBean);
|
||||
roomPitBeans.set(toIndex, fromBean);
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,9 @@ import com.xscm.moduleutil.http.RetrofitClient;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@@ -45,6 +47,8 @@ public class SongRequestFragment extends BaseMvpFragment<RequestSongPresenter, F
|
||||
private int selectedWheatPosition = 0; // 默认选中第一个麦位
|
||||
private String roomId;
|
||||
private int page = 0;
|
||||
// 使用Map存储每个麦位的页码,key为麦位位置,value为页码
|
||||
private Map<Integer, Integer> pageMap = new HashMap<>();
|
||||
|
||||
private SongAdapter adapter;
|
||||
|
||||
@@ -122,15 +126,37 @@ public class SongRequestFragment extends BaseMvpFragment<RequestSongPresenter, F
|
||||
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
|
||||
page++;
|
||||
// 获取当前麦位的页码并递增
|
||||
int currentPage = pageMap.getOrDefault(selectedWheatPosition, 1);
|
||||
currentPage++;
|
||||
pageMap.put(selectedWheatPosition, currentPage);
|
||||
page = currentPage;
|
||||
|
||||
// 根据当前麦位调用不同的接口
|
||||
if (selectedWheatPosition == 0) {
|
||||
// 第一个麦位不传用户id,传roomId
|
||||
MvpPre.getSong("", roomId, page + "", "10");
|
||||
} else {
|
||||
// 其他麦位传用户id,不传roomId
|
||||
MvpPre.getSong(selectedWheatPosition + "", "", page + "", "10");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
||||
// EventBus.getDefault().post(new BannerRefreshEvent());
|
||||
// 重置当前麦位的页码为1
|
||||
pageMap.put(selectedWheatPosition, 1);
|
||||
page = 1;
|
||||
|
||||
// 根据当前麦位调用不同的接口
|
||||
if (selectedWheatPosition == 0) {
|
||||
// 第一个麦位不传用户id,传roomId
|
||||
MvpPre.getSong("", roomId, page + "", "10");
|
||||
} else {
|
||||
// 其他麦位传用户id,不传roomId
|
||||
MvpPre.getSong(selectedWheatPosition + "", "", page + "", "10");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -163,10 +189,21 @@ public class SongRequestFragment extends BaseMvpFragment<RequestSongPresenter, F
|
||||
|
||||
private void updateSongList(int wheatPosition) {
|
||||
// 根据选中的麦位更新歌曲列表
|
||||
// 可以在这里调用接口获取对应麦位的歌曲列表
|
||||
// 先清空适配器,避免显示上一个tab的数据
|
||||
adapter.clearSongList();
|
||||
|
||||
// 获取当前麦位的页码,如果没有则初始化为1
|
||||
int currentPage = pageMap.getOrDefault(wheatPosition, 1);
|
||||
// 重置当前麦位的页码为1
|
||||
pageMap.put(wheatPosition, 1);
|
||||
page = currentPage;
|
||||
|
||||
// 调用接口获取对应麦位的歌曲列表
|
||||
if (wheatPosition==0){
|
||||
// 第一个麦位不传用户id,传roomId
|
||||
MvpPre.getSong( "", roomId, "1", "10");
|
||||
}else {
|
||||
// 其他麦位传用户id,不传roomId
|
||||
MvpPre.getSong(wheatPosition + "", "", "1", "10");
|
||||
}
|
||||
|
||||
@@ -179,13 +216,34 @@ public class SongRequestFragment extends BaseMvpFragment<RequestSongPresenter, F
|
||||
|
||||
@Override
|
||||
public void getSong(SongPlaylist s) {
|
||||
// 获取当前麦位的页码,判断是否为刷新操作(page=1)还是加载更多操作(page>1)
|
||||
int currentPage = pageMap.getOrDefault(selectedWheatPosition, 1);
|
||||
boolean isRefresh = currentPage == 1;
|
||||
|
||||
if (s != null && s.getLists() != null && s.getLists().size() > 0) {
|
||||
// 有数据的情况
|
||||
if (isRefresh) {
|
||||
// 刷新操作,替换所有数据
|
||||
adapter.setSongList(s.getLists());
|
||||
} else {
|
||||
// 加载更多操作,添加新数据
|
||||
adapter.addSongList(s.getLists());
|
||||
}
|
||||
mBinding.smartRefreshLayout.finishRefresh();
|
||||
mBinding.smartRefreshLayout.finishLoadMore();
|
||||
} else {
|
||||
// 没有数据的情况
|
||||
// 如果是第一页且没有数据,确保适配器为空(已经在updateSongList中清空)
|
||||
// 这里不需要再次清空,因为已经在切换tab时清空了
|
||||
mBinding.smartRefreshLayout.finishRefresh();
|
||||
mBinding.smartRefreshLayout.finishLoadMore();
|
||||
// 如果没有更多数据,设置没有更多数据的状态
|
||||
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData();
|
||||
|
||||
// 如果是第一页且没有数据,需要重置页码为1,以便下次刷新能正常工作
|
||||
if (isRefresh) {
|
||||
pageMap.put(selectedWheatPosition, 1);
|
||||
page = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +76,6 @@ public class RoomJukeboxWheatView extends BaseWheatView {
|
||||
handleOffState(bean);
|
||||
}
|
||||
|
||||
// iv_tag_type.setVisibility(bean.isImageType()?VISIBLE:GONE);
|
||||
iv_tag_type.setImageResource(com.xscm.moduleutil.R.mipmap.mu_yc);
|
||||
}
|
||||
|
||||
@@ -106,6 +105,7 @@ public class RoomJukeboxWheatView extends BaseWheatView {
|
||||
mIvFrame.setSource(bean.getDress(), 3);
|
||||
}
|
||||
|
||||
|
||||
// if(pitNumber.equals("9")){
|
||||
// iv_tag_type.setVisibility(GONE);
|
||||
// mTvName.setBackgroundColor(com.xscm.moduleutil.R.color.transparent);
|
||||
@@ -132,7 +132,6 @@ public class RoomJukeboxWheatView extends BaseWheatView {
|
||||
mRiv.setVisibility(VISIBLE);
|
||||
mRiv.setImageResource(R.mipmap.jukebox_room_mask);
|
||||
mIvShutup.setVisibility( GONE);
|
||||
iv_tag_type.setVisibility(GONE);
|
||||
// ImageUtils.loadRes(com.xscm.moduleutil.R.mipmap.room_microphone_off, mIvShutup);
|
||||
mIvFrame.stopAll();
|
||||
mIvFrame.setVisibility(GONE);
|
||||
|
||||
Reference in New Issue
Block a user