1:修改BUG
This commit is contained in:
@@ -6,7 +6,7 @@ import java.io.Serializable;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class RoomPitBean implements Serializable {
|
public class RoomPitBean implements Serializable ,Cloneable{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -81,4 +81,13 @@ public class RoomPitBean implements Serializable {
|
|||||||
private boolean occupied;
|
private boolean occupied;
|
||||||
private boolean imageType;//是否是演唱者
|
private boolean imageType;//是否是演唱者
|
||||||
|
|
||||||
|
public RoomPitBean clone(){
|
||||||
|
try {
|
||||||
|
return (RoomPitBean)super.clone();
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.xscm.moduleutil.rtc;
|
package com.xscm.moduleutil.rtc;
|
||||||
|
|
||||||
|
|
||||||
import static com.blankj.utilcode.util.SnackbarUtils.getView;
|
|
||||||
import static io.agora.rtc2.Constants.NETWORK_TYPE_DISCONNECTED;
|
import static io.agora.rtc2.Constants.NETWORK_TYPE_DISCONNECTED;
|
||||||
import static io.agora.rtc2.Constants.NETWORK_TYPE_LAN;
|
import static io.agora.rtc2.Constants.NETWORK_TYPE_LAN;
|
||||||
import static io.agora.rtc2.Constants.NETWORK_TYPE_MOBILE_2G;
|
import static io.agora.rtc2.Constants.NETWORK_TYPE_MOBILE_2G;
|
||||||
@@ -12,28 +11,20 @@ import static io.agora.rtc2.Constants.NETWORK_TYPE_UNKNOWN;
|
|||||||
import static io.agora.rtc2.Constants.NETWORK_TYPE_WIFI;
|
import static io.agora.rtc2.Constants.NETWORK_TYPE_WIFI;
|
||||||
import static io.agora.rtc2.video.VideoEncoderConfiguration.*;
|
import static io.agora.rtc2.video.VideoEncoderConfiguration.*;
|
||||||
import static io.agora.rtc2.video.VideoEncoderConfiguration.FRAME_RATE.FRAME_RATE_FPS_15;
|
import static io.agora.rtc2.video.VideoEncoderConfiguration.FRAME_RATE.FRAME_RATE_FPS_15;
|
||||||
import static io.agora.rtc2.video.VideoEncoderConfiguration.FRAME_RATE.FRAME_RATE_FPS_30;
|
|
||||||
import static io.agora.rtc2.video.VideoEncoderConfiguration.ORIENTATION_MODE.*;
|
import static io.agora.rtc2.video.VideoEncoderConfiguration.ORIENTATION_MODE.*;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Application;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
|
||||||
import android.hardware.SensorManager;
|
|
||||||
import android.media.projection.MediaProjection;
|
import android.media.projection.MediaProjection;
|
||||||
import android.media.projection.MediaProjectionManager;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
import android.view.OrientationEventListener;
|
|
||||||
import android.view.SurfaceView;
|
import android.view.SurfaceView;
|
||||||
|
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import androidx.activity.result.ActivityResultLauncher;
|
|
||||||
import androidx.activity.result.contract.ActivityResultContracts;
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
@@ -60,7 +51,6 @@ import org.greenrobot.eventbus.EventBus;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -386,6 +376,13 @@ public class AgoraManager {
|
|||||||
private IRtcEngineEventHandler getDefaultEventHandler() {
|
private IRtcEngineEventHandler getDefaultEventHandler() {
|
||||||
return new IRtcEngineEventHandler() {
|
return new IRtcEngineEventHandler() {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAudioEffectFinished(int soundId) {
|
||||||
|
super.onAudioEffectFinished(soundId);
|
||||||
|
LogUtils.e("onAudioEffectFinished", "soundId------>" + soundId);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRemoteAudioStateChanged(int uid, int state, int reason, int elapsed) {
|
public void onRemoteAudioStateChanged(int uid, int state, int reason, int elapsed) {
|
||||||
super.onRemoteAudioStateChanged(uid, state, reason, elapsed);
|
super.onRemoteAudioStateChanged(uid, state, reason, elapsed);
|
||||||
@@ -471,6 +468,7 @@ public class AgoraManager {
|
|||||||
public void onSongSimpleInfoResult(String requestId, long songCode, String simpleInfo, int reason) {
|
public void onSongSimpleInfoResult(String requestId, long songCode, String simpleInfo, int reason) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -258,4 +258,43 @@ public class TimeUtils {
|
|||||||
return "1天"; // 或者 return "0天";
|
return "1天"; // 或者 return "0天";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据生日字符串计算年龄
|
||||||
|
* @param birthDay 生日字符串,格式为 "yyyy-MM-dd"
|
||||||
|
* @return 年龄
|
||||||
|
*/
|
||||||
|
public static int getAgeByBirthDay(String birthDay) {
|
||||||
|
if (birthDay == null || birthDay.isEmpty()) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
Date birthDate = sdf.parse(birthDay);
|
||||||
|
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
int currentYear = cal.get(Calendar.YEAR);
|
||||||
|
int currentMonth = cal.get(Calendar.MONTH);
|
||||||
|
int currentDay = cal.get(Calendar.DAY_OF_MONTH);
|
||||||
|
|
||||||
|
cal.setTime(birthDate);
|
||||||
|
int birthYear = cal.get(Calendar.YEAR);
|
||||||
|
int birthMonth = cal.get(Calendar.MONTH);
|
||||||
|
int birthDayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
|
||||||
|
|
||||||
|
int age = currentYear - birthYear;
|
||||||
|
|
||||||
|
// 如果当前月份小于生日月份,或者月份相同但当前日期小于生日日期,则年龄减1
|
||||||
|
if (currentMonth < birthMonth ||
|
||||||
|
(currentMonth == birthMonth && currentDay < birthDayOfMonth)) {
|
||||||
|
age--;
|
||||||
|
}
|
||||||
|
|
||||||
|
return age < 0 ? 0 : age;
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3337,6 +3337,18 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
mBinding!!.headName.text = mRoomInfoResp?.room_info?.head_line?.nickname
|
mBinding!!.headName.text = mRoomInfoResp?.room_info?.head_line?.nickname
|
||||||
mBinding!!.headCone.text = mRoomInfoResp?.room_info?.head_line?.content
|
mBinding!!.headCone.text = mRoomInfoResp?.room_info?.head_line?.content
|
||||||
|
|
||||||
|
mBinding!!.headAvate.setOnClickListener { view ->
|
||||||
|
RoomUserInfoFragment.show(
|
||||||
|
roomId,
|
||||||
|
mRoomInfoResp?.room_info?.head_line?.user_id,
|
||||||
|
"",
|
||||||
|
getHostUser(),
|
||||||
|
false,
|
||||||
|
2,
|
||||||
|
isNumberWhether(),
|
||||||
|
supportFragmentManager)
|
||||||
|
}
|
||||||
|
|
||||||
mBinding!!.ivQuanQiang.setOnClickListener { v: View? ->
|
mBinding!!.ivQuanQiang.setOnClickListener { v: View? ->
|
||||||
val fragment = PublishCommentDialogFragment.show(
|
val fragment = PublishCommentDialogFragment.show(
|
||||||
roomId,
|
roomId,
|
||||||
|
|||||||
@@ -15,9 +15,11 @@ import com.xscm.modulemain.activity.room.fragment.SongRequestFragment;
|
|||||||
public class RequestSongPagerAdapter extends FragmentStateAdapter {
|
public class RequestSongPagerAdapter extends FragmentStateAdapter {
|
||||||
|
|
||||||
private static final int TAB_COUNT = 3; // 三个标签页
|
private static final int TAB_COUNT = 3; // 三个标签页
|
||||||
|
private String zcUserId;
|
||||||
|
|
||||||
public RequestSongPagerAdapter(@NonNull FragmentActivity fragmentActivity) {
|
public RequestSongPagerAdapter(String zcUserId,@NonNull FragmentActivity fragmentActivity) {
|
||||||
super(fragmentActivity);
|
super(fragmentActivity);
|
||||||
|
this.zcUserId = zcUserId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@@ -27,7 +29,7 @@ public class RequestSongPagerAdapter extends FragmentStateAdapter {
|
|||||||
case 0:
|
case 0:
|
||||||
return new SongRequestFragment(); // 点歌页面
|
return new SongRequestFragment(); // 点歌页面
|
||||||
case 1:
|
case 1:
|
||||||
return new RequestedSongsFragment(); // 已点歌曲页面
|
return RequestedSongsFragment.newInstance(zcUserId); // 已点歌曲页面
|
||||||
case 2:
|
case 2:
|
||||||
return new SongHistoryFragment(); // 历史记录页面
|
return new SongHistoryFragment(); // 历史记录页面
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -30,15 +30,14 @@ public class RequestedSongsAdapter extends BaseQuickAdapter<SongPlaylist.SongPla
|
|||||||
|
|
||||||
private OnItemClickListener onItemClickListener;
|
private OnItemClickListener onItemClickListener;
|
||||||
|
|
||||||
public RequestedSongsAdapter() {
|
|
||||||
|
public RequestedSongsAdapter(String zcUserId) {
|
||||||
super(R.layout.item_requested_song);
|
super(R.layout.item_requested_song);
|
||||||
|
this.zcUserId=zcUserId;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String zcUserId="";
|
private String zcUserId="";
|
||||||
|
|
||||||
public void setZcUserId(String zcUserId) {
|
|
||||||
this.zcUserId=zcUserId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface OnItemClickListener {
|
public interface OnItemClickListener {
|
||||||
void onPlayClick(SongPlaylist.SongPlaylistBean song, int position);
|
void onPlayClick(SongPlaylist.SongPlaylistBean song, int position);
|
||||||
@@ -68,19 +67,31 @@ public class RequestedSongsAdapter extends BaseQuickAdapter<SongPlaylist.SongPla
|
|||||||
helper.setText(R.id.tv_request_status, "置顶");
|
helper.setText(R.id.tv_request_status, "置顶");
|
||||||
helper.setTextColor(R.id.tv_request_status, 0xFFFFFFFF);
|
helper.setTextColor(R.id.tv_request_status, 0xFFFFFFFF);
|
||||||
helper.setBackgroundRes(R.id.tv_request_status, com.xscm.moduleutil.R.drawable.bg_r34_3abc6d);
|
helper.setBackgroundRes(R.id.tv_request_status, com.xscm.moduleutil.R.drawable.bg_r34_3abc6d);
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (zcUserId.equals(SpUtil.getUserId()+"")){
|
||||||
|
helper.getView(R.id.tv_request_status).setVisibility(View.VISIBLE);
|
||||||
|
}else {
|
||||||
|
helper.getView(R.id.tv_request_status).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
helper.getView(R.id.tv_request_status).setVisibility(View.GONE);
|
||||||
|
LogUtils.e("RequestedSongsAdapter",e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
|
||||||
if (((RoomActivity)ActivityUtils.getTopActivity()).getMRoomInfoResp().getRoom_info().getPit_list().get(8).getUser_id()
|
// try {
|
||||||
.equals(SpUtil.getUserId()+"")){
|
// if (((RoomActivity)ActivityUtils.getTopActivity()).getMRoomInfoResp().getRoom_info().getPit_list().get(8).getUser_id()
|
||||||
helper.getView(R.id.tv_request_status).setVisibility(View.VISIBLE);
|
// .equals(SpUtil.getUserId()+"")){
|
||||||
}else {
|
// helper.getView(R.id.tv_request_status).setVisibility(View.VISIBLE);
|
||||||
helper.getView(R.id.tv_request_status).setVisibility(View.GONE);
|
// }else {
|
||||||
}
|
// helper.getView(R.id.tv_request_status).setVisibility(View.GONE);
|
||||||
}catch (Exception e){
|
// }
|
||||||
helper.getView(R.id.tv_request_status).setVisibility(View.GONE);
|
// }catch (Exception e){
|
||||||
LogUtils.e("RequestedSongsAdapter",e.getMessage());
|
// helper.getView(R.id.tv_request_status).setVisibility(View.GONE);
|
||||||
}
|
// LogUtils.e("RequestedSongsAdapter",e.getMessage());
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
// 设置tvRequestStatus的点击事件,只有置顶状态才能点击
|
// 设置tvRequestStatus的点击事件,只有置顶状态才能点击
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ public class RequestSongFragment extends BaseMvpDialogFragment<RequestSongPresen
|
|||||||
private int historySongsCount = 0; // 历史记录数量
|
private int historySongsCount = 0; // 历史记录数量
|
||||||
private String roomId;
|
private String roomId;
|
||||||
|
|
||||||
|
private String zcUserId;
|
||||||
|
|
||||||
public RequestSongFragment() {
|
public RequestSongFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
@@ -40,9 +41,11 @@ public class RequestSongFragment extends BaseMvpDialogFragment<RequestSongPresen
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
// TODO: Rename and change types and number of parameters
|
// TODO: Rename and change types and number of parameters
|
||||||
public static RequestSongFragment show(FragmentManager fragmentManager) {
|
public static RequestSongFragment show(String zcUserId,FragmentManager fragmentManager) {
|
||||||
RequestSongFragment fragment = new RequestSongFragment();
|
RequestSongFragment fragment = new RequestSongFragment();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
|
args.putString("zcUserId", zcUserId);
|
||||||
|
fragment.setArguments(args);
|
||||||
fragment.show(fragmentManager, "RequestSongFragment");
|
fragment.show(fragmentManager, "RequestSongFragment");
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
@@ -64,8 +67,9 @@ public class RequestSongFragment extends BaseMvpDialogFragment<RequestSongPresen
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initViewPager() {
|
private void initViewPager() {
|
||||||
|
zcUserId= getArguments().getString("zcUserId");
|
||||||
// 创建适配器
|
// 创建适配器
|
||||||
pagerAdapter = new RequestSongPagerAdapter(getActivity());
|
pagerAdapter = new RequestSongPagerAdapter(zcUserId,getActivity());
|
||||||
|
|
||||||
// 设置适配器
|
// 设置适配器
|
||||||
mBinding.viewPager.setAdapter(pagerAdapter);
|
mBinding.viewPager.setAdapter(pagerAdapter);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.xscm.modulemain.activity.room.fragment;
|
package com.xscm.modulemain.activity.room.fragment;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -19,6 +20,7 @@ import com.xscm.modulemain.activity.room.adapter.RequestedSongsAdapter;
|
|||||||
import com.xscm.modulemain.activity.room.contacts.RequestSongContacts;
|
import com.xscm.modulemain.activity.room.contacts.RequestSongContacts;
|
||||||
import com.xscm.modulemain.activity.room.presenter.RequestSongPresenter;
|
import com.xscm.modulemain.activity.room.presenter.RequestSongPresenter;
|
||||||
import com.xscm.modulemain.databinding.FragmentRequestedSongsBinding;
|
import com.xscm.modulemain.databinding.FragmentRequestedSongsBinding;
|
||||||
|
import com.xscm.moduleutil.adapter.GiftTwoDetailsFragment;
|
||||||
import com.xscm.moduleutil.base.BaseMvpFragment;
|
import com.xscm.moduleutil.base.BaseMvpFragment;
|
||||||
import com.xscm.moduleutil.bean.SingerSongCount;
|
import com.xscm.moduleutil.bean.SingerSongCount;
|
||||||
import com.xscm.moduleutil.bean.SongPlaylist;
|
import com.xscm.moduleutil.bean.SongPlaylist;
|
||||||
@@ -37,6 +39,26 @@ public class RequestedSongsFragment extends BaseMvpFragment<RequestSongPresenter
|
|||||||
private int page = 1;
|
private int page = 1;
|
||||||
private RequestedSongsAdapter adapter;
|
private RequestedSongsAdapter adapter;
|
||||||
private List<SongPlaylist.SongPlaylistBean> songList = new ArrayList<>();
|
private List<SongPlaylist.SongPlaylistBean> songList = new ArrayList<>();
|
||||||
|
private String zcUserId;
|
||||||
|
|
||||||
|
public RequestedSongsFragment(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static RequestedSongsFragment newInstance(String zcUserId) {
|
||||||
|
|
||||||
|
Bundle args = new Bundle();
|
||||||
|
args.putString("zcUserId", zcUserId);
|
||||||
|
RequestedSongsFragment fragment = new RequestedSongsFragment();
|
||||||
|
fragment.setArguments(args);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAttach(@NonNull Context context) {
|
||||||
|
super.onAttach(context);
|
||||||
|
zcUserId= getArguments().getString("zcUserId");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected RequestSongPresenter bindPresenter() {
|
protected RequestSongPresenter bindPresenter() {
|
||||||
@@ -68,7 +90,7 @@ public class RequestedSongsFragment extends BaseMvpFragment<RequestSongPresenter
|
|||||||
|
|
||||||
private void initRecyclerView() {
|
private void initRecyclerView() {
|
||||||
// 初始化RecyclerView
|
// 初始化RecyclerView
|
||||||
adapter = new RequestedSongsAdapter();
|
adapter = new RequestedSongsAdapter(zcUserId);
|
||||||
mBinding.rvMyRequestedSongs.setLayoutManager(new LinearLayoutManager(getContext()));
|
mBinding.rvMyRequestedSongs.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||||
mBinding.rvMyRequestedSongs.setAdapter(adapter);
|
mBinding.rvMyRequestedSongs.setAdapter(adapter);
|
||||||
|
|
||||||
|
|||||||
@@ -166,8 +166,11 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
if (ClickUtils.isFastDoubleClick(v)) {
|
if (ClickUtils.isFastDoubleClick(v)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
LogUtils.e("cc",mBinding.wvZc.getUserId());
|
||||||
|
RoomPitBean roomPitBean1=mBinding.wvZc.pitBean;
|
||||||
|
LogUtils.e("roomPitBean1",roomPitBean1);
|
||||||
// 保存RequestSongFragment的引用,以便后续调用其方法
|
// 保存RequestSongFragment的引用,以便后续调用其方法
|
||||||
requestSongFragment = RequestSongFragment.show(getChildFragmentManager());
|
requestSongFragment = RequestSongFragment.show(roomPitBean1.getUser_id(),getChildFragmentManager());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -211,6 +214,20 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mBinding.ciGsAva.setOnClickListener(new View.OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (ClickUtils.isFastDoubleClick(v)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (roomInfoResp.getSinger_info()!=null && roomInfoResp.getSinger_info().getNext_song_info()!=null) {
|
||||||
|
if (roomInfoResp.getSinger_info().getNext_song_info().getSinger_user_id() != 0)
|
||||||
|
RoomUserInfoFragment.show(roomId, roomInfoResp.getSinger_info().getNext_song_info().getSinger_user_id() + "", "0", getHostUser(), false, 1, isNumberWhether(), getChildFragmentManager());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -633,9 +650,13 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
if (toPit.equals("9")) {
|
if (toPit.equals("9")) {
|
||||||
RoomPitBean fromBean = adapter.getData().get(fromIndex);
|
RoomPitBean fromBean = adapter.getData().get(fromIndex);
|
||||||
fromBean.setPit_number(toPit);
|
fromBean.setPit_number(toPit);
|
||||||
mBinding.wvZc.setRoomWheatNumber("9");
|
fromBean.clone();
|
||||||
mBinding.wvZc.setData(fromBean);
|
//这里需要是重新的指向地址,不然会出现,虽然页面展示的是,但是在点击的时候,找不到对应的数据
|
||||||
roomInfoResp.getRoom_info().getPit_list().set(8, fromBean);
|
RoomPitBean pitBean = fromBean.clone();
|
||||||
|
|
||||||
|
mBinding.wvZc.setData(pitBean);
|
||||||
|
roomInfoResp.getRoom_info().getPit_list().set(8, pitBean);
|
||||||
|
|
||||||
|
|
||||||
if (fromBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
if (fromBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||||
myPitNumber = 9;
|
myPitNumber = 9;
|
||||||
@@ -650,7 +671,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
temp.setCharm("");
|
temp.setCharm("");
|
||||||
temp.setDress("");
|
temp.setDress("");
|
||||||
temp.setImageType(false);
|
temp.setImageType(false);
|
||||||
|
temp.setPit_number(fromPit);
|
||||||
roomInfoResp.getRoom_info().getPit_list().set(fromIndex, temp);
|
roomInfoResp.getRoom_info().getPit_list().set(fromIndex, temp);
|
||||||
roomPitBeans.set(fromIndex, temp);
|
roomPitBeans.set(fromIndex, temp);
|
||||||
adapter.notifyItemChanged(fromIndex);
|
adapter.notifyItemChanged(fromIndex);
|
||||||
@@ -666,6 +687,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
|
|||||||
adapter.notifyItemChanged(fromIndex);
|
adapter.notifyItemChanged(fromIndex);
|
||||||
adapter.notifyItemChanged(toIndex);
|
adapter.notifyItemChanged(toIndex);
|
||||||
}
|
}
|
||||||
|
LogUtils.e("huanmai2",mBinding.wvZc.pitBean);
|
||||||
setMike();
|
setMike();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import androidx.core.app.ActivityCompat;
|
|||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
|
|
||||||
import com.blankj.utilcode.util.ActivityUtils;
|
import com.blankj.utilcode.util.ActivityUtils;
|
||||||
|
import com.blankj.utilcode.util.LogUtils;
|
||||||
import com.xscm.modulemain.BaseMvpActivity;
|
import com.xscm.modulemain.BaseMvpActivity;
|
||||||
import com.xscm.modulemain.R;
|
import com.xscm.modulemain.R;
|
||||||
import com.xscm.modulemain.activity.user.conacts.SingerVerificationContract;
|
import com.xscm.modulemain.activity.user.conacts.SingerVerificationContract;
|
||||||
@@ -345,7 +346,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
recordingFile = segmentFile;
|
recordingFile = segmentFile;
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Log.e("SingerVerification", "录音失败: " + e.getMessage());
|
LogUtils.e("SingerVerification", "录音失败: " + e.getMessage());
|
||||||
// 从列表中移除失败的文件
|
// 从列表中移除失败的文件
|
||||||
recordingSegments.remove(segmentFile);
|
recordingSegments.remove(segmentFile);
|
||||||
throw e;
|
throw e;
|
||||||
@@ -394,7 +395,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
}, 1000, 1000);
|
}, 1000, 1000);
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Log.e("SingerVerification", "录音失败: " + e.getMessage());
|
LogUtils.e("SingerVerification", "录音失败: " + e.getMessage());
|
||||||
Toast.makeText(this, "录音失败: 请重试", Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, "录音失败: 请重试", Toast.LENGTH_SHORT).show();
|
||||||
// 重置录音状态,允许重新录制
|
// 重置录音状态,允许重新录制
|
||||||
isRecording = false;
|
isRecording = false;
|
||||||
@@ -447,7 +448,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
updateUI();
|
updateUI();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e("SingerVerification", "停止录音失败: " + e.getMessage());
|
LogUtils.e("SingerVerification", "停止录音失败: " + e.getMessage());
|
||||||
// Toast.makeText(this, "停止录音失败: ", Toast.LENGTH_SHORT).show();
|
// Toast.makeText(this, "停止录音失败: ", Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
// 发生异常时重置状态,允许重新录制
|
// 发生异常时重置状态,允许重新录制
|
||||||
@@ -526,7 +527,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
|
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onError(MediaPlayer mp, int what, int extra) {
|
public boolean onError(MediaPlayer mp, int what, int extra) {
|
||||||
Log.e("SingerVerification", "MediaPlayer错误: what=" + what + ", extra=" + extra);
|
LogUtils.e("SingerVerification", "MediaPlayer错误: what=" + what + ", extra=" + extra);
|
||||||
isPlaying = false;
|
isPlaying = false;
|
||||||
updateUI();
|
updateUI();
|
||||||
return true; // 错误已处理
|
return true; // 错误已处理
|
||||||
@@ -538,7 +539,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
mediaPlayer.start();
|
mediaPlayer.start();
|
||||||
updateUI();
|
updateUI();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Log.e("SingerVerification", "播放失败: " + e.getMessage());
|
LogUtils.e("SingerVerification", "播放失败: " + e.getMessage());
|
||||||
Toast.makeText(this, "播放失败: " + e.getMessage(), Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, "播放失败: " + e.getMessage(), Toast.LENGTH_SHORT).show();
|
||||||
isPlaying = false;
|
isPlaying = false;
|
||||||
updateUI();
|
updateUI();
|
||||||
@@ -558,7 +559,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
mediaPlayer = null;
|
mediaPlayer = null;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e("SingerVerification", "停止播放失败: " + e.getMessage());
|
LogUtils.e("SingerVerification", "停止播放失败: " + e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
// 无论是否出错,都重置状态
|
// 无论是否出错,都重置状态
|
||||||
isPlaying = false;
|
isPlaying = false;
|
||||||
@@ -617,16 +618,16 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
if (recordingSegments.size() > 1) {
|
if (recordingSegments.size() > 1) {
|
||||||
// 如果还没有合并文件,先进行合并
|
// 如果还没有合并文件,先进行合并
|
||||||
if (mergedRecordingFile == null || !mergedRecordingFile.exists()) {
|
if (mergedRecordingFile == null || !mergedRecordingFile.exists()) {
|
||||||
Log.d("SingerVerification", "提交前合并音频片段,共 " + recordingSegments.size() + " 个片段");
|
LogUtils.d("SingerVerification", "提交前合并音频片段,共 " + recordingSegments.size() + " 个片段");
|
||||||
mergeAudioFiles();
|
mergeAudioFiles();
|
||||||
} else {
|
} else {
|
||||||
Log.d("SingerVerification", "使用已合并的音频文件: " + mergedRecordingFile.getAbsolutePath());
|
LogUtils.d("SingerVerification", "使用已合并的音频文件: " + mergedRecordingFile.getAbsolutePath());
|
||||||
recordingFile = mergedRecordingFile;
|
recordingFile = mergedRecordingFile;
|
||||||
}
|
}
|
||||||
} else if (recordingSegments.size() == 1) {
|
} else if (recordingSegments.size() == 1) {
|
||||||
// 只有一个片段,直接使用
|
// 只有一个片段,直接使用
|
||||||
recordingFile = recordingSegments.get(0);
|
recordingFile = recordingSegments.get(0);
|
||||||
Log.d("SingerVerification", "使用单个录音片段: " + recordingFile.getAbsolutePath());
|
LogUtils.d("SingerVerification", "使用单个录音片段: " + recordingFile.getAbsolutePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (recordingFile == null || !recordingFile.exists()) {
|
if (recordingFile == null || !recordingFile.exists()) {
|
||||||
@@ -640,7 +641,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d("SingerVerification", "提交认证,使用文件: " + recordingFile.getAbsolutePath() +
|
LogUtils.d("SingerVerification", "提交认证,使用文件: " + recordingFile.getAbsolutePath() +
|
||||||
", 大小: " + recordingFile.length() + " bytes");
|
", 大小: " + recordingFile.length() + " bytes");
|
||||||
MvpPre.uploadFile(recordingFile, 3);
|
MvpPre.uploadFile(recordingFile, 3);
|
||||||
}
|
}
|
||||||
@@ -720,7 +721,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
int segmentCount = 0;
|
int segmentCount = 0;
|
||||||
|
|
||||||
for (File segment : processedSegments) {
|
for (File segment : processedSegments) {
|
||||||
Log.d("SingerVerification", "开始处理第 " + (segmentCount + 1) + " 个片段: " + segment.getAbsolutePath());
|
LogUtils.d("SingerVerification", "开始处理第 " + (segmentCount + 1) + " 个片段: " + segment.getAbsolutePath());
|
||||||
|
|
||||||
long segmentDuration = processAudioSegment(muxer, segment, audioTrackIndex,
|
long segmentDuration = processAudioSegment(muxer, segment, audioTrackIndex,
|
||||||
buffer, bufferInfo, currentPresentationTimeUs);
|
buffer, bufferInfo, currentPresentationTimeUs);
|
||||||
@@ -728,15 +729,15 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
if (segmentDuration > 0) {
|
if (segmentDuration > 0) {
|
||||||
// 修复:累计当前时间戳,而不是替换
|
// 修复:累计当前时间戳,而不是替换
|
||||||
currentPresentationTimeUs += segmentDuration;
|
currentPresentationTimeUs += segmentDuration;
|
||||||
Log.d("SingerVerification", "片段 " + (segmentCount + 1) + " 处理完成,片段时长: " + segmentDuration + " us, 累计时间: " + currentPresentationTimeUs + " us");
|
LogUtils.d("SingerVerification", "片段 " + (segmentCount + 1) + " 处理完成,片段时长: " + segmentDuration + " us, 累计时间: " + currentPresentationTimeUs + " us");
|
||||||
} else {
|
} else {
|
||||||
Log.w("SingerVerification", "片段 " + (segmentCount + 1) + " 处理失败或为空");
|
LogUtils.w("SingerVerification", "片段 " + (segmentCount + 1) + " 处理失败或为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
segmentCount++;
|
segmentCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d("SingerVerification", "所有片段处理完成,总时长: " + currentPresentationTimeUs + " us,共处理 " + segmentCount + " 个片段");
|
LogUtils.d("SingerVerification", "所有片段处理完成,总时长: " + currentPresentationTimeUs + " us,共处理 " + segmentCount + " 个片段");
|
||||||
|
|
||||||
// 更新最终录音文件
|
// 更新最终录音文件
|
||||||
updateRecordingFile();
|
updateRecordingFile();
|
||||||
@@ -781,14 +782,14 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
extractor.setDataSource(segment.getAbsolutePath());
|
extractor.setDataSource(segment.getAbsolutePath());
|
||||||
int audioTrackIndex = findAudioTrack(extractor);
|
int audioTrackIndex = findAudioTrack(extractor);
|
||||||
if (audioTrackIndex < 0) {
|
if (audioTrackIndex < 0) {
|
||||||
Log.w("SingerVerification", "未找到音频轨道: " + segment.getAbsolutePath());
|
LogUtils.w("SingerVerification", "未找到音频轨道: " + segment.getAbsolutePath());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
extractor.selectTrack(audioTrackIndex);
|
extractor.selectTrack(audioTrackIndex);
|
||||||
MediaFormat format = extractor.getTrackFormat(audioTrackIndex);
|
MediaFormat format = extractor.getTrackFormat(audioTrackIndex);
|
||||||
long estimatedDuration = format.getLong(MediaFormat.KEY_DURATION);
|
long estimatedDuration = format.getLong(MediaFormat.KEY_DURATION);
|
||||||
Log.d("SingerVerification", "处理片段: " + segment.getAbsolutePath() +
|
LogUtils.d("SingerVerification", "处理片段: " + segment.getAbsolutePath() +
|
||||||
", 估计时长: " + estimatedDuration + "us, 基准时间: " + baseTimeUs + "us");
|
", 估计时长: " + estimatedDuration + "us, 基准时间: " + baseTimeUs + "us");
|
||||||
|
|
||||||
int sampleCount = 0;
|
int sampleCount = 0;
|
||||||
@@ -852,7 +853,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
actualDuration = estimatedDuration;
|
actualDuration = estimatedDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d("SingerVerification", "片段处理完成,实际时长: " + actualDuration + "us, 样本数: " + sampleCount);
|
LogUtils.d("SingerVerification", "片段处理完成,实际时长: " + actualDuration + "us, 样本数: " + sampleCount);
|
||||||
return actualDuration;
|
return actualDuration;
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
@@ -875,10 +876,10 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
// 确保合并文件存在且不为空
|
// 确保合并文件存在且不为空
|
||||||
if (mergedRecordingFile != null && mergedRecordingFile.exists() && mergedRecordingFile.length() > 0) {
|
if (mergedRecordingFile != null && mergedRecordingFile.exists() && mergedRecordingFile.length() > 0) {
|
||||||
recordingFile = mergedRecordingFile;
|
recordingFile = mergedRecordingFile;
|
||||||
Log.d("SingerVerification", "音频文件合并完成,文件大小: " + mergedRecordingFile.length() + " bytes");
|
LogUtils.d("SingerVerification", "音频文件合并完成,文件大小: " + mergedRecordingFile.length() + " bytes");
|
||||||
Log.d("SingerVerification", "设置当前播放文件为合并文件: " + mergedRecordingFile.getAbsolutePath());
|
LogUtils.d("SingerVerification", "设置当前播放文件为合并文件: " + mergedRecordingFile.getAbsolutePath());
|
||||||
} else {
|
} else {
|
||||||
Log.e("SingerVerification", "合并文件不存在或为空,使用第一个录音片段");
|
LogUtils.e("SingerVerification", "合并文件不存在或为空,使用第一个录音片段");
|
||||||
if (!recordingSegments.isEmpty()) {
|
if (!recordingSegments.isEmpty()) {
|
||||||
recordingFile = recordingSegments.get(0);
|
recordingFile = recordingSegments.get(0);
|
||||||
}
|
}
|
||||||
@@ -886,12 +887,12 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
|
|
||||||
// 修复:不立即清空录音片段列表,延迟清空以确保合并文件可以被正确使用
|
// 修复:不立即清空录音片段列表,延迟清空以确保合并文件可以被正确使用
|
||||||
// 将在延迟删除片段时清空列表
|
// 将在延迟删除片段时清空列表
|
||||||
Log.d("SingerVerification", "保留录音片段列表,将在延迟删除时清空");
|
LogUtils.d("SingerVerification", "保留录音片段列表,将在延迟删除时清空");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleMergeError(Exception e) {
|
private void handleMergeError(Exception e) {
|
||||||
Log.e("SingerVerification", "处理音频文件失败: " + e.getMessage(), e);
|
LogUtils.e("SingerVerification", "处理音频文件失败: " + e.getMessage(), e);
|
||||||
Toast.makeText(this, "处理音频文件失败,使用第一段录音", Toast.LENGTH_SHORT).show();
|
// Toast.makeText(this, "处理音频文件失败,使用第一段录音", Toast.LENGTH_SHORT).show();
|
||||||
if (!recordingSegments.isEmpty()) {
|
if (!recordingSegments.isEmpty()) {
|
||||||
recordingFile = recordingSegments.get(0);
|
recordingFile = recordingSegments.get(0);
|
||||||
}
|
}
|
||||||
@@ -904,7 +905,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
muxer.release();
|
muxer.release();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e("SingerVerification", "释放MediaMuxer失败", e);
|
LogUtils.e("SingerVerification", "释放MediaMuxer失败", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -916,19 +917,19 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
if (segment.exists()) {
|
if (segment.exists()) {
|
||||||
boolean deleted = segment.delete();
|
boolean deleted = segment.delete();
|
||||||
if (!deleted) {
|
if (!deleted) {
|
||||||
Log.w("SingerVerification", "删除音频片段失败: " + segment.getAbsolutePath());
|
LogUtils.w("SingerVerification", "删除音频片段失败: " + segment.getAbsolutePath());
|
||||||
} else {
|
} else {
|
||||||
Log.d("SingerVerification", "成功删除音频片段: " + segment.getAbsolutePath());
|
LogUtils.d("SingerVerification", "成功删除音频片段: " + segment.getAbsolutePath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e("SingerVerification", "删除音频片段失败: " + segment.getAbsolutePath(), e);
|
LogUtils.e("SingerVerification", "删除音频片段失败: " + segment.getAbsolutePath(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修复:删除所有片段后,清空录音片段列表
|
// 修复:删除所有片段后,清空录音片段列表
|
||||||
recordingSegments.clear();
|
recordingSegments.clear();
|
||||||
Log.d("SingerVerification", "已清空录音片段列表");
|
LogUtils.d("SingerVerification", "已清空录音片段列表");
|
||||||
}, 2000); // 延迟2秒删除,确保合并文件已经完全写入
|
}, 2000); // 延迟2秒删除,确保合并文件已经完全写入
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -938,7 +939,7 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
*/
|
*/
|
||||||
private void updateRecordingDuration() {
|
private void updateRecordingDuration() {
|
||||||
if (recordingFile == null || !recordingFile.exists()) {
|
if (recordingFile == null || !recordingFile.exists()) {
|
||||||
Log.e("SingerVerification", "录音文件不存在,无法更新时长");
|
LogUtils.e("SingerVerification", "录音文件不存在,无法更新时长");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -950,10 +951,10 @@ public class SingerVerificationActivity extends BaseMvpActivity<SingerVerificati
|
|||||||
recordingDuration = mp.getDuration();
|
recordingDuration = mp.getDuration();
|
||||||
mp.release();
|
mp.release();
|
||||||
|
|
||||||
Log.d("SingerVerification", "更新录音时长为: " + recordingDuration + "ms");
|
LogUtils.d("SingerVerification", "更新录音时长为: " + recordingDuration + "ms");
|
||||||
updateUI();
|
updateUI();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e("SingerVerification", "获取录音时长失败: " + e.getMessage());
|
LogUtils.e("SingerVerification", "获取录音时长失败: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ public class MyRoomListFragment extends BaseMvpFragment<MyRoomPresenter, RoomFra
|
|||||||
}
|
}
|
||||||
|
|
||||||
helper.setText(R.id.tv_name, item.getRoom_name());
|
helper.setText(R.id.tv_name, item.getRoom_name());
|
||||||
helper.setText(R.id.tv_sy, item.getToday_income() != null ? item.getToday_income() + "" : "0");
|
helper.setText(R.id.tv_sy, item.getToday_profit() != null ? item.getToday_profit() + "" : "0");
|
||||||
helper.setText(R.id.tv_user_id, "ID: " + item.getRoom_number());
|
helper.setText(R.id.tv_user_id, "ID: " + item.getRoom_number());
|
||||||
if (type == MyRoomListFragment.TYPE_CREATE) {
|
if (type == MyRoomListFragment.TYPE_CREATE) {
|
||||||
helper.setText(R.id.tv_bl, "今日收益");
|
helper.setText(R.id.tv_bl, "今日收益");
|
||||||
|
|||||||
@@ -322,7 +322,14 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
|
|||||||
this.userInfo = data;
|
this.userInfo = data;
|
||||||
mBinding.rivUserHead.setData(data.getAvatar(), data.getDress(), data.getNobility_image());
|
mBinding.rivUserHead.setData(data.getAvatar(), data.getDress(), data.getNobility_image());
|
||||||
mBinding.tvNickName.setText(data.getNickname());
|
mBinding.tvNickName.setText(data.getNickname());
|
||||||
mBinding.tvNickName.setTextColor((data.getNickname_color() != null && !data.getNickname_color().equals("")) ? Color.parseColor(data.getNickname_color()) : Color.parseColor("#ffffff"));
|
if (!userInfo.getNickname_color().isEmpty()) {
|
||||||
|
mBinding.tvNickName.setStartColor(Color.parseColor(data.getNickname_color()));
|
||||||
|
mBinding.tvNickName.setShineColor(Color.parseColor(data.getNickname_color()));
|
||||||
|
mBinding.tvNickName.setEndColor(Color.parseColor(data.getNickname_color()));
|
||||||
|
mBinding.tvNickName.setShine(true);
|
||||||
|
mBinding.tvNickName.setShineType(0);
|
||||||
|
}
|
||||||
|
// mBinding.tvNickName.setTextColor((data.getNickname_color() != null && !data.getNickname_color().equals("")) ? Color.parseColor(data.getNickname_color()) : Color.parseColor("#ffffff"));
|
||||||
String sex = data.getSex() == 1 ? "男" : "女";
|
String sex = data.getSex() == 1 ? "男" : "女";
|
||||||
mBinding.beautifulView.setText(sex + " | ID:" + data.getUser_code());
|
mBinding.beautifulView.setText(sex + " | ID:" + data.getUser_code());
|
||||||
mBinding.tvFollow.setText(data.getFollow_num() + "");
|
mBinding.tvFollow.setText(data.getFollow_num() + "");
|
||||||
|
|||||||
@@ -210,8 +210,8 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
|
|||||||
|
|
||||||
// ImageUtils.loadHead(relation2.avatar1, holder.getView(R.id.user_nav2))
|
// ImageUtils.loadHead(relation2.avatar1, holder.getView(R.id.user_nav2))
|
||||||
// holder.setText(R.id.tv_nickname2, relation2.nickname1)
|
// holder.setText(R.id.tv_nickname2, relation2.nickname1)
|
||||||
holder.setText(R.id.tv_gx_time, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[0].end_time.toLong()))
|
holder.setText(R.id.tv_gx_time, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[0].end_time.toLong()* 1000 - System.currentTimeMillis()))
|
||||||
holder.setText(R.id.tv_gx_time2, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[1].end_time.toLong()))
|
holder.setText(R.id.tv_gx_time2, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[1].end_time.toLong()* 1000 - System.currentTimeMillis()))
|
||||||
|
|
||||||
holder.getView<View>(R.id.user_nav1).setOnClickListener {
|
holder.getView<View>(R.id.user_nav1).setOnClickListener {
|
||||||
if (relation1.user_id1== SpUtil.getUserId()){
|
if (relation1.user_id1== SpUtil.getUserId()){
|
||||||
@@ -286,9 +286,9 @@ class BosomFriendAdapter(data: MutableList<MultiItemEntity>) : BaseMultiItemQuic
|
|||||||
// ImageUtils.loadHead(relation3.avatar1, holder.getView(R.id.user_nav3))
|
// ImageUtils.loadHead(relation3.avatar1, holder.getView(R.id.user_nav3))
|
||||||
// holder.setText(R.id.tv_nickname3, relation3.nickname1)
|
// holder.setText(R.id.tv_nickname3, relation3.nickname1)
|
||||||
|
|
||||||
holder.setText(R.id.tv_gx_time, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[0].end_time.toLong()))
|
holder.setText(R.id.tv_gx_time, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[0].end_time.toLong()* 1000 - System.currentTimeMillis()))
|
||||||
holder.setText(R.id.tv_gx_time2, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[1].end_time.toLong()))
|
holder.setText(R.id.tv_gx_time2, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[1].end_time.toLong()* 1000 - System.currentTimeMillis()))
|
||||||
holder.setText(R.id.tv_gx_time3, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[2].end_time.toLong()))
|
holder.setText(R.id.tv_gx_time3, TimeUtils.formatDurationDaysOnly(noCpBean.relation_list[2].end_time.toLong()* 1000 - System.currentTimeMillis()))
|
||||||
|
|
||||||
holder.getView<View>(R.id.user_nav1).setOnClickListener {
|
holder.getView<View>(R.id.user_nav1).setOnClickListener {
|
||||||
if (relation1.user_id1== SpUtil.getUserId()){
|
if (relation1.user_id1== SpUtil.getUserId()){
|
||||||
|
|||||||
@@ -13,11 +13,13 @@ import com.xscm.moduleutil.bean.ExpandColumnBean;
|
|||||||
import com.xscm.moduleutil.utils.ImageUtils;
|
import com.xscm.moduleutil.utils.ImageUtils;
|
||||||
import com.xscm.moduleutil.utils.MeHeadView;
|
import com.xscm.moduleutil.utils.MeHeadView;
|
||||||
import com.xscm.moduleutil.utils.SpUtil;
|
import com.xscm.moduleutil.utils.SpUtil;
|
||||||
|
import com.xscm.moduleutil.utils.TimeUtils;
|
||||||
import com.xscm.moduleutil.widget.MyGridView;
|
import com.xscm.moduleutil.widget.MyGridView;
|
||||||
import com.xscm.moduleutil.widget.ShineTextView;
|
import com.xscm.moduleutil.widget.ShineTextView;
|
||||||
import com.xscm.moduleutil.widget.img.FullScreenUtil;
|
import com.xscm.moduleutil.widget.img.FullScreenUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, BaseViewHolder> {
|
public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, BaseViewHolder> {
|
||||||
public ExpandColumnAdapter() {
|
public ExpandColumnAdapter() {
|
||||||
@@ -52,7 +54,7 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
|
|||||||
ImageView iv_sex=helper.getView(R.id.iv_user_sex);
|
ImageView iv_sex=helper.getView(R.id.iv_user_sex);
|
||||||
//先让单图,多图,音频的布局显示
|
//先让单图,多图,音频的布局显示
|
||||||
helper.getView(R.id.dy_image_recyc).setVisibility(View.VISIBLE);
|
helper.getView(R.id.dy_image_recyc).setVisibility(View.VISIBLE);
|
||||||
helper.setText(R.id.tv_agree,(item.getAgree()!=null?item.getAgree():"0")+"岁");
|
helper.setText(R.id.tv_agree,TimeUtils.getAgeByBirthDay(item.getBirthday())+"岁");
|
||||||
//昵称
|
//昵称
|
||||||
helper.setText(com.xscm.moduleutil.R.id.dy_name_text, item.getNickname());
|
helper.setText(com.xscm.moduleutil.R.id.dy_name_text, item.getNickname());
|
||||||
ShineTextView tvName = helper.getView(com.xscm.moduleutil.R.id.dy_name_text);
|
ShineTextView tvName = helper.getView(com.xscm.moduleutil.R.id.dy_name_text);
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class RelationshipAdapter extends BaseQuickAdapter<RelationshipBean, com.
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
helper.setText(R.id.tv_cp_num, TimeUtils.formatDuration2(Long.parseLong(item.getEnd_time())));
|
helper.setText(R.id.tv_cp_num, TimeUtils.formatDuration2(Long.parseLong(item.getEnd_time()) * 1000 - System.currentTimeMillis()));
|
||||||
if (item.getUser_id1()== SpUtil.getUserId() || item.getUser_id2() == SpUtil.getUserId()){
|
if (item.getUser_id1()== SpUtil.getUserId() || item.getUser_id2() == SpUtil.getUserId()){
|
||||||
helper.getView(R.id.icon_cp_zd).setVisibility(View.VISIBLE);
|
helper.getView(R.id.icon_cp_zd).setVisibility(View.VISIBLE);
|
||||||
helper.getView(R.id.icon_cp_dele).setVisibility(View.VISIBLE);
|
helper.getView(R.id.icon_cp_dele).setVisibility(View.VISIBLE);
|
||||||
|
|||||||
@@ -151,6 +151,9 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
mBinding.rgXz.check(R.id.bt_pt);
|
||||||
|
redType = 1;
|
||||||
|
mBinding.lKl.setVisibility(GONE);
|
||||||
mBinding.rgXz.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
mBinding.rgXz.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -164,6 +167,8 @@ public class RedBagSendDialog extends BaseDialog<DialogRedBagSendBinding> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
mBinding.rgDjs.check(R.id.rb_lk);
|
||||||
|
redTime = 0;
|
||||||
|
|
||||||
mBinding.rgDjs.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
mBinding.rgDjs.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -83,10 +83,10 @@ public class RoomManager {
|
|||||||
|
|
||||||
// 显示加载提示
|
// 显示加载提示
|
||||||
// 这里可以根据需要添加加载对话框
|
// 这里可以根据需要添加加载对话框
|
||||||
if (CommonAppContext.getInstance().isRoomJoininj) {
|
// if (CommonAppContext.getInstance().isRoomJoininj) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
CommonAppContext.getInstance().isRoomJoininj = true;
|
// CommonAppContext.getInstance().isRoomJoininj = true;
|
||||||
// 检查是否有有效的缓存数据
|
// 检查是否有有效的缓存数据
|
||||||
RoomInfoResp roomInfo = getCachedRoomData(roomId);
|
RoomInfoResp roomInfo = getCachedRoomData(roomId);
|
||||||
//加入房间
|
//加入房间
|
||||||
|
|||||||
@@ -64,6 +64,7 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginTop="@dimen/dp_12"
|
android:layout_marginTop="@dimen/dp_12"
|
||||||
android:paddingStart="@dimen/dp_16"
|
android:paddingStart="@dimen/dp_16"
|
||||||
|
android:paddingBottom="@dimen/dp_100"
|
||||||
android:paddingEnd="@dimen/dp_16" />
|
android:paddingEnd="@dimen/dp_16" />
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,8 @@
|
|||||||
android:layout_height="@dimen/dp_62"
|
android:layout_height="@dimen/dp_62"
|
||||||
android:layout_marginStart="@dimen/dp_16"
|
android:layout_marginStart="@dimen/dp_16"
|
||||||
android:layout_marginTop="@dimen/dp_12"
|
android:layout_marginTop="@dimen/dp_12"
|
||||||
android:layout_marginEnd="@dimen/dp_16">
|
android:layout_marginEnd="@dimen/dp_16"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/im_gg"
|
android:id="@+id/im_gg"
|
||||||
|
|||||||
Reference in New Issue
Block a user