Merge branch 'develop_new' into develop_home
This commit is contained in:
@@ -3101,4 +3101,11 @@ public class HomePartyRoomFragment extends BaseMvpFragment<IHomePartyView, HomeP
|
|||||||
setActTimerVisibility(View.GONE);
|
setActTimerVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateMicView() {
|
||||||
|
gameBinding.microView.getAdapter().notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,12 +1,11 @@
|
|||||||
package com.yizhuan.erban.avroom.presenter;
|
package com.yizhuan.erban.avroom.presenter;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
import com.netease.nimlib.sdk.NIMClient;
|
import com.netease.nimlib.sdk.NIMClient;
|
||||||
@@ -31,7 +30,6 @@ import com.yizhuan.xchat_android_core.im.custom.bean.RoomInfoAttachment;
|
|||||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||||
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
||||||
import com.yizhuan.xchat_android_core.manager.RoomEvent;
|
import com.yizhuan.xchat_android_core.manager.RoomEvent;
|
||||||
import com.yizhuan.xchat_android_core.manager.event.HistoryMessageEvent;
|
|
||||||
import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel;
|
import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel;
|
||||||
import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldInWorldInfo;
|
import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldInWorldInfo;
|
||||||
import com.yizhuan.xchat_android_core.miniworld.model.MiniWorldModel;
|
import com.yizhuan.xchat_android_core.miniworld.model.MiniWorldModel;
|
||||||
@@ -46,6 +44,7 @@ import com.yizhuan.xchat_android_core.room.game.AiPlayEndEvent;
|
|||||||
import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueMrg;
|
import com.yizhuan.xchat_android_core.room.giftvalue.helper.GiftValueMrg;
|
||||||
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
|
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
|
||||||
import com.yizhuan.xchat_android_core.room.model.HomePartyModel;
|
import com.yizhuan.xchat_android_core.room.model.HomePartyModel;
|
||||||
|
import com.yizhuan.xchat_android_core.room.model.RoomBaseModel;
|
||||||
import com.yizhuan.xchat_android_core.room.model.RoomSettingModel;
|
import com.yizhuan.xchat_android_core.room.model.RoomSettingModel;
|
||||||
import com.yizhuan.xchat_android_core.super_admin.model.SuperAdminModel;
|
import com.yizhuan.xchat_android_core.super_admin.model.SuperAdminModel;
|
||||||
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
|
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
|
||||||
@@ -57,7 +56,6 @@ import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
|
|||||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||||
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
|
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
|
||||||
import com.yizhuan.xchat_android_library.rxbus.RxBus;
|
|
||||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||||
@@ -71,14 +69,12 @@ import java.util.Objects;
|
|||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
import io.reactivex.ObservableSource;
|
|
||||||
import io.reactivex.Single;
|
import io.reactivex.Single;
|
||||||
import io.reactivex.SingleSource;
|
import io.reactivex.SingleSource;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.functions.BiConsumer;
|
import io.reactivex.functions.BiConsumer;
|
||||||
import io.reactivex.functions.Consumer;
|
import io.reactivex.functions.Consumer;
|
||||||
import io.reactivex.functions.Function;
|
import io.reactivex.functions.Function;
|
||||||
import io.reactivex.functions.Predicate;
|
|
||||||
|
|
||||||
import static com.yizhuan.xchat_android_core.manager.RoomEvent.DRAGON_BAR_CANCEL;
|
import static com.yizhuan.xchat_android_core.manager.RoomEvent.DRAGON_BAR_CANCEL;
|
||||||
import static com.yizhuan.xchat_android_core.manager.RoomEvent.DRAGON_BAR_END;
|
import static com.yizhuan.xchat_android_core.manager.RoomEvent.DRAGON_BAR_END;
|
||||||
@@ -306,6 +302,11 @@ public class HomePartyPresenter extends BaseMvpPresenter<IHomePartyView> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFail(int code, String error) {
|
public void onFail(int code, String error) {
|
||||||
|
if (code == RoomBaseModel.CODE_UPDATE_MIC) {
|
||||||
|
if (getMvpView() != null) {
|
||||||
|
getMvpView().updateMicView();
|
||||||
|
}
|
||||||
|
}
|
||||||
Logger.i("用户%1$s上麦失败:%2$s----", uId, error);
|
Logger.i("用户%1$s上麦失败:%2$s----", uId, error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -59,7 +59,7 @@ public class RoomSettingPresenter extends BaseMvpPresenter<IRoomSettingView> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void requestRoomInfo(long uid) {
|
public void requestRoomInfo(long uid) {
|
||||||
model.requestRoomInfoFromService(uid+"", new CallBack<RoomInfo>() {
|
model.requestRoomInfoFromService(uid + "", new CallBack<RoomInfo>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(RoomInfo data) {
|
public void onSuccess(RoomInfo data) {
|
||||||
if (getMvpView() != null) {
|
if (getMvpView() != null) {
|
||||||
@@ -75,9 +75,9 @@ public class RoomSettingPresenter extends BaseMvpPresenter<IRoomSettingView> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("CheckResult")
|
@SuppressLint("CheckResult")
|
||||||
public void updateGiftEffect(RoomInfo roomInfo){
|
public void updateGiftEffect(RoomInfo roomInfo) {
|
||||||
IMNetEaseManager.get().updateGiftEffect(roomInfo.getRoomId())
|
IMNetEaseManager.get().updateGiftEffect(roomInfo.getRoomId())
|
||||||
.subscribe((chatRoomMessage,throwable) -> {
|
.subscribe((chatRoomMessage, throwable) -> {
|
||||||
if (!AvRoomDataManager.get().haveSelfChange) {
|
if (!AvRoomDataManager.get().haveSelfChange) {
|
||||||
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent()
|
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent()
|
||||||
.setEvent(RoomEvent.RECEIVE_MSG)
|
.setEvent(RoomEvent.RECEIVE_MSG)
|
||||||
@@ -87,9 +87,9 @@ public class RoomSettingPresenter extends BaseMvpPresenter<IRoomSettingView> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("CheckResult")
|
@SuppressLint("CheckResult")
|
||||||
public void updateAudiouality(RoomInfo roomInfo){
|
public void updateAudiouality(RoomInfo roomInfo) {
|
||||||
IMNetEaseManager.get().updateAudiouality(roomInfo.getRoomId())
|
IMNetEaseManager.get().updateAudiouality(roomInfo.getRoomId())
|
||||||
.subscribe((chatRoomMessage,throwable) -> {
|
.subscribe((chatRoomMessage, throwable) -> {
|
||||||
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent()
|
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent()
|
||||||
.setEvent(RoomEvent.RECEIVE_MSG)
|
.setEvent(RoomEvent.RECEIVE_MSG)
|
||||||
.setChatRoomMessage(chatRoomMessage));
|
.setChatRoomMessage(chatRoomMessage));
|
||||||
@@ -226,9 +226,7 @@ public class RoomSettingPresenter extends BaseMvpPresenter<IRoomSettingView> {
|
|||||||
if (userInfo != null)
|
if (userInfo != null)
|
||||||
IMNetEaseManager.get().leaveModeMessage(roomInfo1.getRoomId(), userInfo.getNick(), userInfo.getGender(), userInfo.getAvatar()).subscribe();
|
IMNetEaseManager.get().leaveModeMessage(roomInfo1.getRoomId(), userInfo.getNick(), userInfo.getGender(), userInfo.getAvatar()).subscribe();
|
||||||
});
|
});
|
||||||
|
GiftValueModel.get().upMic(AuthModel.get().getCurrentUid(), -1).subscribe();
|
||||||
if (roomInfo1.isShowGiftValue())
|
|
||||||
GiftValueModel.get().upMic(AuthModel.get().getCurrentUid(), -1).subscribe();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -113,4 +113,5 @@ public interface IHomePartyView extends IMvpBaseView {
|
|||||||
*/
|
*/
|
||||||
void onFollowFail(String msg);
|
void onFollowFail(String msg);
|
||||||
|
|
||||||
|
void updateMicView();
|
||||||
}
|
}
|
||||||
|
@@ -17,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||||
import com.chad.library.adapter.base.BaseViewHolder;
|
import com.chad.library.adapter.base.BaseViewHolder;
|
||||||
|
import com.coorchice.library.utils.LogUtils;
|
||||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||||
import com.yizhuan.erban.R;
|
import com.yizhuan.erban.R;
|
||||||
|
@@ -6,11 +6,13 @@ import android.content.Intent;
|
|||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
@@ -25,6 +27,7 @@ import android.widget.PopupWindow;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||||
|
import com.coorchice.library.utils.LogUtils;
|
||||||
import com.netease.nim.uikit.StatusBarUtil;
|
import com.netease.nim.uikit.StatusBarUtil;
|
||||||
import com.netease.nim.uikit.business.session.emoji.EmoticonPickerView;
|
import com.netease.nim.uikit.business.session.emoji.EmoticonPickerView;
|
||||||
import com.netease.nim.uikit.business.session.emoji.IEmoticonSelectedListener;
|
import com.netease.nim.uikit.business.session.emoji.IEmoticonSelectedListener;
|
||||||
@@ -124,11 +127,11 @@ public class DynamicDetailActivity extends BaseActivity implements IEmoticonSele
|
|||||||
ImageView ivSharePic;
|
ImageView ivSharePic;
|
||||||
TextView tvCommentCountOption;
|
TextView tvCommentCountOption;
|
||||||
|
|
||||||
// @BindView(R.id.tv_flag_mini_world)
|
// @BindView(R.id.tv_flag_mini_world)
|
||||||
TextView tvFlagMiniWorld;
|
TextView tvFlagMiniWorld;
|
||||||
// @BindView(R.id.layout_root_mini_world)
|
// @BindView(R.id.layout_root_mini_world)
|
||||||
ConstraintLayout layoutRootMiniWorld;
|
ConstraintLayout layoutRootMiniWorld;
|
||||||
// @BindView(R.id.tv_mini_world_name)
|
// @BindView(R.id.tv_mini_world_name)
|
||||||
TextView tvMiniWorldName;
|
TextView tvMiniWorldName;
|
||||||
|
|
||||||
private View viewLineDetailHeader;
|
private View viewLineDetailHeader;
|
||||||
@@ -198,6 +201,10 @@ public class DynamicDetailActivity extends BaseActivity implements IEmoticonSele
|
|||||||
*/
|
*/
|
||||||
public static void start(Context context, long dynamicId, long worldId, int listPosition,
|
public static void start(Context context, long dynamicId, long worldId, int listPosition,
|
||||||
boolean needKeyboard, int event) {
|
boolean needKeyboard, int event) {
|
||||||
|
if (dynamicId == 0) {
|
||||||
|
LogUtils.e("-------------------------动态id为0------------------");
|
||||||
|
return;
|
||||||
|
}
|
||||||
String label = "其他";
|
String label = "其他";
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case 1:
|
case 1:
|
||||||
@@ -810,7 +817,7 @@ public class DynamicDetailActivity extends BaseActivity implements IEmoticonSele
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*header - 更多
|
* header - 更多
|
||||||
*/
|
*/
|
||||||
private void header_more() {
|
private void header_more() {
|
||||||
List<ButtonItem> list = new ArrayList<>();
|
List<ButtonItem> list = new ArrayList<>();
|
||||||
@@ -832,9 +839,9 @@ public class DynamicDetailActivity extends BaseActivity implements IEmoticonSele
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*header - 点赞
|
* header - 点赞
|
||||||
*/
|
*/
|
||||||
private void header_like(){
|
private void header_like() {
|
||||||
ivLikePic.setEnabled(false);
|
ivLikePic.setEnabled(false);
|
||||||
int status = bean.isLike() ? 0 : 1;
|
int status = bean.isLike() ? 0 : 1;
|
||||||
DynamicModel.get().like(worldId, dynamicId, bean.getUid(), status, 3)
|
DynamicModel.get().like(worldId, dynamicId, bean.getUid(), status, 3)
|
||||||
@@ -960,7 +967,7 @@ public class DynamicDetailActivity extends BaseActivity implements IEmoticonSele
|
|||||||
// drawable.stop();
|
// drawable.stop();
|
||||||
// drawable.start();
|
// drawable.start();
|
||||||
// } else {
|
// } else {
|
||||||
ivLikePic.setImageResource(R.drawable.icon_dy_list_like);
|
ivLikePic.setImageResource(R.drawable.icon_dy_list_like);
|
||||||
// }
|
// }
|
||||||
} else {
|
} else {
|
||||||
ivLikePic.setImageResource(R.drawable.icon_dy_list_like_false);
|
ivLikePic.setImageResource(R.drawable.icon_dy_list_like_false);
|
||||||
@@ -983,7 +990,7 @@ public class DynamicDetailActivity extends BaseActivity implements IEmoticonSele
|
|||||||
// .append(commentCountStr,
|
// .append(commentCountStr,
|
||||||
// new ForegroundColorSpan(getResources().getColor(R.color.color_333333)))
|
// new ForegroundColorSpan(getResources().getColor(R.color.color_333333)))
|
||||||
// .append(")");
|
// .append(")");
|
||||||
String comment = "所有评论("+commentCountStr+")";
|
String comment = "所有评论(" + commentCountStr + ")";
|
||||||
tvCommentCount.setText(comment);
|
tvCommentCount.setText(comment);
|
||||||
tvCommentCountOption.setText(commentCountStr);
|
tvCommentCountOption.setText(commentCountStr);
|
||||||
}
|
}
|
||||||
|
@@ -63,7 +63,7 @@ public class GiftValueModel extends BaseModel implements IGiftValueModel {
|
|||||||
@Override
|
@Override
|
||||||
public Single<String> upMic(long micUid, int position) {
|
public Single<String> upMic(long micUid, int position) {
|
||||||
return api.upMic(AvRoomDataManager.get().getRoomUid(),
|
return api.upMic(AvRoomDataManager.get().getRoomUid(),
|
||||||
micUid, position)
|
micUid, position,AvRoomDataManager.get().isShowGiftValue())
|
||||||
.compose(RxHelper.handleIgnoreData());
|
.compose(RxHelper.handleIgnoreData());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,7 +119,8 @@ public class GiftValueModel extends BaseModel implements IGiftValueModel {
|
|||||||
@POST("/room/gift/value/up/mic")
|
@POST("/room/gift/value/up/mic")
|
||||||
Single<ServiceResult<JsonElement>> upMic(@Field("roomUid") long roomUid,
|
Single<ServiceResult<JsonElement>> upMic(@Field("roomUid") long roomUid,
|
||||||
@Field("micUid") long micUid,
|
@Field("micUid") long micUid,
|
||||||
@Field("position") int position);
|
@Field("position") int position,
|
||||||
|
@Field("showGiftValue") boolean showGiftValue);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下麦,通知缓存变更
|
* 下麦,通知缓存变更
|
||||||
|
@@ -244,9 +244,6 @@ public class GiftValueMrg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void requestUpMic(int micPosition, String upMicUid) {
|
public void requestUpMic(int micPosition, String upMicUid) {
|
||||||
if (!AvRoomDataManager.get().isShowGiftValue()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!TextUtils.isEmpty(upMicUid)) {
|
if (!TextUtils.isEmpty(upMicUid)) {
|
||||||
GiftValueModel.get().upMic(JavaUtil.str2long(upMicUid), micPosition).subscribe();
|
GiftValueModel.get().upMic(JavaUtil.str2long(upMicUid), micPosition).subscribe();
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,13 @@
|
|||||||
package com.yizhuan.xchat_android_core.room.model;
|
package com.yizhuan.xchat_android_core.room.model;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.SparseArray;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import com.google.gson.JsonParser;
|
||||||
import com.netease.nimlib.sdk.NIMChatRoomSDK;
|
import com.netease.nimlib.sdk.NIMChatRoomSDK;
|
||||||
import com.netease.nimlib.sdk.NIMClient;
|
import com.netease.nimlib.sdk.NIMClient;
|
||||||
import com.netease.nimlib.sdk.RequestCallback;
|
import com.netease.nimlib.sdk.RequestCallback;
|
||||||
@@ -45,6 +49,7 @@ import com.yizhuan.xchat_android_library.net.rxnet.RxNet;
|
|||||||
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
|
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
|
||||||
import com.yizhuan.xchat_android_library.utils.JavaUtil;
|
import com.yizhuan.xchat_android_library.utils.JavaUtil;
|
||||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||||
|
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -80,6 +85,8 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
*/
|
*/
|
||||||
protected static final int ROOM_MEMBER_SIZE = 50;
|
protected static final int ROOM_MEMBER_SIZE = 50;
|
||||||
|
|
||||||
|
public static final int CODE_UPDATE_MIC = 110;
|
||||||
|
|
||||||
protected final Api mRoomService;
|
protected final Api mRoomService;
|
||||||
|
|
||||||
public RoomBaseModel() {
|
public RoomBaseModel() {
|
||||||
@@ -292,7 +299,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
/**
|
/**
|
||||||
* 邀请上麦
|
* 邀请上麦
|
||||||
*
|
*
|
||||||
* @param micInfo 上麦用户基础信息,至少需要uid
|
* @param micInfo 上麦用户基础信息,至少需要uid
|
||||||
* @param position position
|
* @param position position
|
||||||
* @return Single<ChatRoomMessage>
|
* @return Single<ChatRoomMessage>
|
||||||
*/
|
*/
|
||||||
@@ -302,8 +309,8 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 如果需要上麦用户昵称相关的操作,使用{@link #inviteMicroPhone(BaseInfo, int)}
|
* 如果需要上麦用户昵称相关的操作,使用{@link #inviteMicroPhone(BaseInfo, int)}
|
||||||
* 此方法昵称是空串
|
* 此方法昵称是空串
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Single<ChatRoomMessage> inviteMicroPhone(long micUid, int position) {
|
public Single<ChatRoomMessage> inviteMicroPhone(long micUid, int position) {
|
||||||
@@ -321,65 +328,140 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
* @param callBack
|
* @param callBack
|
||||||
* @param teamId
|
* @param teamId
|
||||||
*/
|
*/
|
||||||
|
@SuppressLint("CheckResult")
|
||||||
@Override
|
@Override
|
||||||
public void upMicroPhone(final int micPosition, final String uId, final String roomId,
|
public void upMicroPhone(final int micPosition, final String uId, final String roomId,
|
||||||
boolean isInviteUpMic, final CallBack<String> callBack, int teamId) {
|
boolean isInviteUpMic, final CallBack<String> callBack, int teamId) {
|
||||||
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.get(micPosition);
|
|
||||||
if (roomQueueInfo == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ChatRoomMember chatRoomMember = roomQueueInfo.mChatRoomMember;
|
|
||||||
final RoomMicInfo roomMicInfo = roomQueueInfo.mRoomMicInfo;
|
|
||||||
|
|
||||||
//坑上没人且没锁
|
queryRoomMicInfo(roomId)
|
||||||
if (roomMicInfo != null
|
.map(this::dealMicMemberFromIMNet)
|
||||||
&& ((!roomMicInfo.isMicLock() || AvRoomDataManager.get().isRoomOwner(uId)
|
.flatMap(this::dealMicChatRoomMemberFromIMNet)
|
||||||
|| AvRoomDataManager.get().isRoomAdmin(uId))
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|| isInviteUpMic)
|
.subscribe(roomQueueInfoSparseArray -> {
|
||||||
&& chatRoomMember == null) {
|
RoomQueueInfo roomQueueInfo = roomQueueInfoSparseArray.get(micPosition);
|
||||||
final UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
|
if (roomQueueInfo == null) {
|
||||||
if (userInfo != null) {
|
return;
|
||||||
userInfo.setGroupType(teamId);
|
|
||||||
CallBack<String> callBackTmp = new CallBack<String>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(String data) {
|
|
||||||
callBack.onSuccess(data);
|
|
||||||
}
|
}
|
||||||
|
ChatRoomMember chatRoomMember = roomQueueInfo.mChatRoomMember;
|
||||||
@Override
|
final RoomMicInfo roomMicInfo = roomQueueInfo.mRoomMicInfo;
|
||||||
public void onFail(int code, String error) {
|
if (chatRoomMember != null) {
|
||||||
callBack.onFail(code, error);
|
SingleToastUtil.showToast("该麦位已经有人了哦~");
|
||||||
|
callBack.onFail(CODE_UPDATE_MIC,"该麦位已经有人了");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
};
|
//坑上没人且没锁
|
||||||
|
if (roomMicInfo != null &&
|
||||||
|
(!roomMicInfo.isMicLock() || AvRoomDataManager.get().isRoomOwner(uId) ||
|
||||||
|
AvRoomDataManager.get().isRoomAdmin(uId) || isInviteUpMic)) {
|
||||||
|
final UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
|
||||||
|
if (userInfo != null) {
|
||||||
|
userInfo.setGroupType(teamId);
|
||||||
|
CallBack<String> callBackTmp = new CallBack<String>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(String data) {
|
||||||
|
callBack.onSuccess(data);
|
||||||
|
}
|
||||||
|
|
||||||
//先看下这个用户是否在麦上
|
@Override
|
||||||
if (AvRoomDataManager.get().isOnMic(userInfo.getUid())) {
|
public void onFail(int code, String error) {
|
||||||
int position = AvRoomDataManager.get().getMicPosition(userInfo.getUid());
|
callBack.onFail(code, error);
|
||||||
//下麦
|
}
|
||||||
downMicroPhone(position, new CallBack<String>() {
|
};
|
||||||
@Override
|
|
||||||
public void onSuccess(String data) {
|
|
||||||
updateQueueEx(micPosition, roomId, callBackTmp, userInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onFail(int code, String error) {
|
//先看下这个用户是否在麦上
|
||||||
callBackTmp.onFail(-1, "上麦导致下麦失败");
|
if (AvRoomDataManager.get().isOnMic(userInfo.getUid())) {
|
||||||
|
int position = AvRoomDataManager.get().getMicPosition(userInfo.getUid());
|
||||||
|
//下麦
|
||||||
|
downMicroPhone(position, new CallBack<String>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(String data) {
|
||||||
|
updateQueueEx(micPosition, roomId, callBackTmp, userInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onFail(int code, String error) {
|
||||||
|
callBackTmp.onFail(-1, "上麦导致下麦失败");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
updateQueueEx(micPosition, roomId, callBackTmp, userInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
} else {
|
});
|
||||||
updateQueueEx(micPosition, roomId, callBackTmp, userInfo);
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理网易云信坑位信息
|
||||||
|
* 这里只有在这个坑位原来没人但是云信队列信息有人,才更新这个坑位,防止挤麦
|
||||||
|
*/
|
||||||
|
private List<String> dealMicMemberFromIMNet(List<Entry<String, String>> entries) {
|
||||||
|
List<String> accounts = new ArrayList<>();
|
||||||
|
if (!ListUtils.isListEmpty(entries)) {
|
||||||
|
JsonParser jsonParser = new JsonParser();
|
||||||
|
ChatRoomMember chatRoomMember;
|
||||||
|
for (Entry<String, String> entry : entries) {
|
||||||
|
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.get(Integer.parseInt(entry.key));
|
||||||
|
//当前坑上有人就不要去管了
|
||||||
|
if (roomQueueInfo != null && roomQueueInfo.mChatRoomMember == null) {
|
||||||
|
JsonObject valueJsonObj = jsonParser.parse(entry.value).getAsJsonObject();
|
||||||
|
if (valueJsonObj != null) {
|
||||||
|
chatRoomMember = new ChatRoomMember();
|
||||||
|
if (valueJsonObj.has("uid")) {
|
||||||
|
int uid = valueJsonObj.get("uid").getAsInt();
|
||||||
|
accounts.add(String.valueOf(uid));
|
||||||
|
chatRoomMember.setAccount(String.valueOf(uid));
|
||||||
|
}
|
||||||
|
if (valueJsonObj.has("nick")) {
|
||||||
|
chatRoomMember.setNick(valueJsonObj.get("nick").getAsString());
|
||||||
|
}
|
||||||
|
if (valueJsonObj.has("avatar")) {
|
||||||
|
chatRoomMember.setAvatar(valueJsonObj.get("avatar").getAsString());
|
||||||
|
}
|
||||||
|
if (valueJsonObj.has("gender")) {
|
||||||
|
roomQueueInfo.gender = valueJsonObj.get("gender").getAsInt();
|
||||||
|
}
|
||||||
|
if (valueJsonObj.has("groupType")) {
|
||||||
|
roomQueueInfo.groupType = valueJsonObj.get("groupType").getAsInt();
|
||||||
|
}
|
||||||
|
roomQueueInfo.mChatRoomMember = chatRoomMember;
|
||||||
|
}
|
||||||
|
AvRoomDataManager.get().mMicQueueMemberMap.put(Integer.parseInt(entry.key), roomQueueInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return accounts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理网易云信队列上人员的信息
|
||||||
|
*/
|
||||||
|
private Observable<SparseArray<RoomQueueInfo>> dealMicChatRoomMemberFromIMNet(List<String> accounts) {
|
||||||
|
if (ListUtils.isListEmpty(accounts))
|
||||||
|
return Observable.just(AvRoomDataManager.get().mMicQueueMemberMap);
|
||||||
|
return IMNetEaseManager.get().fetchRoomMembersByIds(accounts)
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.flatMap(chatRoomMembers -> {
|
||||||
|
for (ChatRoomMember chatRoomMember : chatRoomMembers) {
|
||||||
|
AvRoomDataManager.get().updateQueueChatRoomMemberExtension(chatRoomMember);
|
||||||
|
}
|
||||||
|
//accounts不为空则表示出现了本地队列信息和云信队列信息不一致的情况,更新队列信息后更新下相应的坑位信息
|
||||||
|
|
||||||
|
//updateMicView();
|
||||||
|
|
||||||
|
return Single.just(AvRoomDataManager.get().mMicQueueMemberMap);
|
||||||
|
}).toObservable();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上麦
|
* 上麦
|
||||||
*
|
*
|
||||||
* @param micPosition
|
* @param micPosition
|
||||||
* @param uId 要上麦的用户id
|
* @param uId 要上麦的用户id
|
||||||
* @param roomId
|
* @param roomId
|
||||||
* @param callBack
|
* @param callBack
|
||||||
*/
|
*/
|
||||||
|
@SuppressLint("CheckResult")
|
||||||
public void upAiMicroPhone(final int micPosition, final String uId, final String roomId, final CallBack<String> callBack) {
|
public void upAiMicroPhone(final int micPosition, final String uId, final String roomId, final CallBack<String> callBack) {
|
||||||
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.get(micPosition);
|
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.get(micPosition);
|
||||||
if (roomQueueInfo == null) {
|
if (roomQueueInfo == null) {
|
||||||
@@ -391,7 +473,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
//坑上没人且没锁
|
//坑上没人且没锁
|
||||||
if (roomMicInfo != null
|
if (roomMicInfo != null
|
||||||
&& chatRoomMember == null) {
|
&& chatRoomMember == null) {
|
||||||
UserModel.get().getUserInfo(JavaUtil.str2long(uId))
|
UserModel.get().getUserInfo(JavaUtil.str2long(uId))
|
||||||
.subscribe(userInfo -> {
|
.subscribe(userInfo -> {
|
||||||
if (userInfo != null) {
|
if (userInfo != null) {
|
||||||
//先看下这个用户是否在麦上
|
//先看下这个用户是否在麦上
|
||||||
@@ -651,7 +733,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
public SingleSource<RoomResult> apply(UserInfo userInfo) throws Exception {
|
public SingleSource<RoomResult> apply(UserInfo userInfo) throws Exception {
|
||||||
String tmpTitle = userInfo.getNick() + "的房间";
|
String tmpTitle = userInfo.getNick() + "的房间";
|
||||||
return mRoomService.openRoom(userInfo.getUid(), AuthModel.get().getTicket(),
|
return mRoomService.openRoom(userInfo.getUid(), AuthModel.get().getTicket(),
|
||||||
type, tmpTitle, roomDesc, backPic, rewardId)
|
type, tmpTitle, roomDesc, backPic, rewardId)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.unsubscribeOn(Schedulers.io())
|
.unsubscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread());
|
.observeOn(AndroidSchedulers.mainThread());
|
||||||
@@ -659,7 +741,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
return mRoomService.openRoom(uid, AuthModel.get().getTicket(),
|
return mRoomService.openRoom(uid, AuthModel.get().getTicket(),
|
||||||
type, title, roomDesc, backPic, rewardId)
|
type, title, roomDesc, backPic, rewardId)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.unsubscribeOn(Schedulers.io())
|
.unsubscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread());
|
.observeOn(AndroidSchedulers.mainThread());
|
||||||
@@ -702,16 +784,18 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
*/
|
*/
|
||||||
@GET("/room/get")
|
@GET("/room/get")
|
||||||
Single<RoomResult> getRoomInfo(@Query("uid") String uid, @Query("intoUid") long intoUid);
|
Single<RoomResult> getRoomInfo(@Query("uid") String uid, @Query("intoUid") long intoUid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param key
|
* @param key
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GET("/search/room")
|
@GET("/search/room")
|
||||||
Single<ServiceResult<List<SearchRoomInfo>>> roomSearch(@Query("key") String key ,@Query("type") int type);
|
Single<ServiceResult<List<SearchRoomInfo>>> roomSearch(@Query("key") String key, @Query("type") int type);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取该Uid 所在的房间信息,如果不在房间 返回的房间实体uid==0,或者roomId == 0
|
* 获取该Uid 所在的房间信息,如果不在房间 返回的房间实体uid==0,或者roomId == 0
|
||||||
|
*
|
||||||
* @param uid
|
* @param uid
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -865,9 +949,10 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
@Field("audioQuality") int audioQuality);
|
@Field("audioQuality") int audioQuality);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*关闭公屏
|
* 关闭公屏
|
||||||
* true是关闭公屏
|
* true是关闭公屏
|
||||||
* @param uid -
|
*
|
||||||
|
* @param uid -
|
||||||
* @return -
|
* @return -
|
||||||
*/
|
*/
|
||||||
@POST("room/setCloseScreen")
|
@POST("room/setCloseScreen")
|
||||||
@@ -906,6 +991,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询是否限制进房
|
* 查询是否限制进房
|
||||||
|
*
|
||||||
* @param uid -
|
* @param uid -
|
||||||
* @return -
|
* @return -
|
||||||
*/
|
*/
|
||||||
@@ -916,9 +1002,10 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
* 设置聊天室角色,
|
* 设置聊天室角色,
|
||||||
* 用于拉黑用户
|
* 用于拉黑用户
|
||||||
* 设置管理员
|
* 设置管理员
|
||||||
* @param roomUid -
|
*
|
||||||
|
* @param roomUid -
|
||||||
* @param targetUid -
|
* @param targetUid -
|
||||||
* @param opt 1: 设置为管理员;2:设置普通等级用户;-1:设为黑名单用户;-2:设为禁言用户
|
* @param opt 1: 设置为管理员;2:设置普通等级用户;-1:设为黑名单用户;-2:设为禁言用户
|
||||||
* @return -
|
* @return -
|
||||||
*/
|
*/
|
||||||
@POST("super/set/chatroom/role")
|
@POST("super/set/chatroom/role")
|
||||||
@@ -929,6 +1016,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取嗨聊房间列表
|
* 获取嗨聊房间列表
|
||||||
|
*
|
||||||
* @param uid
|
* @param uid
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -937,6 +1025,7 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取房间倒计时
|
* 获取房间倒计时
|
||||||
|
*
|
||||||
* @param roomUid 房主Uid
|
* @param roomUid 房主Uid
|
||||||
*/
|
*/
|
||||||
@GET("/activities/draw/getRoomRunawayTime")
|
@GET("/activities/draw/getRoomRunawayTime")
|
||||||
|
@@ -502,13 +502,7 @@ public class UserInfo implements Serializable {
|
|||||||
this.remainDay = remainDay;
|
this.remainDay = remainDay;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserLevelVo getUserLevelVo() {
|
|
||||||
return userLevelVo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserLevelVo(UserLevelVo userLevelVo) {
|
|
||||||
this.userLevelVo = userLevelVo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CarInfo getCarInfo() {
|
public CarInfo getCarInfo() {
|
||||||
return mCarInfo;
|
return mCarInfo;
|
||||||
|
@@ -11,7 +11,7 @@ import com.yizhuan.xchat_android_core.music.db.dao.LocalMusicDao;
|
|||||||
import com.yizhuan.xchat_android_core.music.db.dao.SongDao;
|
import com.yizhuan.xchat_android_core.music.db.dao.SongDao;
|
||||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||||
|
|
||||||
@Database(entities = {LocalMusicBean.class, SongBean.class}, version = 1, exportSchema = true)
|
@Database(entities = {LocalMusicBean.class, SongBean.class}, version = 1, exportSchema = false)
|
||||||
public abstract class AppDataBase extends RoomDatabase {
|
public abstract class AppDataBase extends RoomDatabase {
|
||||||
|
|
||||||
private static volatile AppDataBase mInstance;
|
private static volatile AppDataBase mInstance;
|
||||||
|
Reference in New Issue
Block a user