增加福袋横幅,幸运池横幅UI修改
This commit is contained in:
@@ -381,7 +381,6 @@ public class HomePartyFragment extends AbsRoomFragment implements View.OnClickLi
|
|||||||
.compose(bindToLifecycle())
|
.compose(bindToLifecycle())
|
||||||
.filter(roomEvent -> roomEvent.getEvent() == RoomEvent.BOX_NOTIFY)
|
.filter(roomEvent -> roomEvent.getEvent() == RoomEvent.BOX_NOTIFY)
|
||||||
.subscribe(roomEvent -> addBoxNotify(roomEvent.getChatRoomMessage()));
|
.subscribe(roomEvent -> addBoxNotify(roomEvent.getChatRoomMessage()));
|
||||||
//registerKtvBoxListener();
|
|
||||||
|
|
||||||
subscribeGameEvent();
|
subscribeGameEvent();
|
||||||
}
|
}
|
||||||
@@ -957,7 +956,7 @@ public class HomePartyFragment extends AbsRoomFragment implements View.OnClickLi
|
|||||||
|
|
||||||
private void showBoxNotify(ChatRoomMessage chatRoomMessage) {
|
private void showBoxNotify(ChatRoomMessage chatRoomMessage) {
|
||||||
// if (AvRoomDataManager.get().mCurrentRoomInfo == null) return;
|
// if (AvRoomDataManager.get().mCurrentRoomInfo == null) return;
|
||||||
SuperTextView textView = (SuperTextView) LayoutInflater.from(mContext).inflate(R.layout.layout_box_notify, null);
|
SuperTextView textView = (SuperTextView) LayoutInflater.from(mContext).inflate(R.layout.layout_box_notify_pic, null);
|
||||||
RoomBoxPrizeAttachment attachment = (RoomBoxPrizeAttachment) chatRoomMessage.getAttachment();
|
RoomBoxPrizeAttachment attachment = (RoomBoxPrizeAttachment) chatRoomMessage.getAttachment();
|
||||||
// 内容
|
// 内容
|
||||||
MessageView.SpannableBuilder text = new MessageView.SpannableBuilder(textView)
|
MessageView.SpannableBuilder text = new MessageView.SpannableBuilder(textView)
|
||||||
|
@@ -11,13 +11,17 @@ import android.os.Handler;
|
|||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.text.style.ForegroundColorSpan;
|
||||||
import android.text.style.StyleSpan;
|
import android.text.style.StyleSpan;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
import android.view.animation.Animation;
|
||||||
|
import android.view.animation.AnimationUtils;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
@@ -26,16 +30,21 @@ import androidx.fragment.app.FragmentManager;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.coorchice.library.SuperTextView;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||||
import com.netease.nimlib.sdk.NIMSDK;
|
import com.netease.nimlib.sdk.NIMSDK;
|
||||||
import com.netease.nimlib.sdk.Observer;
|
import com.netease.nimlib.sdk.Observer;
|
||||||
|
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||||
import com.netease.nimlib.sdk.msg.model.BroadcastMessage;
|
import com.netease.nimlib.sdk.msg.model.BroadcastMessage;
|
||||||
import com.orhanobut.logger.Logger;
|
import com.orhanobut.logger.Logger;
|
||||||
import com.readystatesoftware.systembartint.SystemBarTintManager;
|
import com.readystatesoftware.systembartint.SystemBarTintManager;
|
||||||
import com.tbruyelle.rxpermissions2.RxPermissions;
|
import com.tbruyelle.rxpermissions2.RxPermissions;
|
||||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||||
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
|
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
|
||||||
|
import com.yizhuan.erban.avroom.widget.MessageView;
|
||||||
|
import com.yizhuan.xchat_android_core.gift.bean.LuckyBagNoticeInfo;
|
||||||
|
import com.yizhuan.xchat_android_core.im.custom.bean.RoomBoxPrizeAttachment;
|
||||||
import com.yizhuan.xchat_android_core.redpackage.RedPackageNotifyInfo;
|
import com.yizhuan.xchat_android_core.redpackage.RedPackageNotifyInfo;
|
||||||
import com.yizhuan.erban.MiddleActivity;
|
import com.yizhuan.erban.MiddleActivity;
|
||||||
import com.yizhuan.erban.NimMiddleActivity;
|
import com.yizhuan.erban.NimMiddleActivity;
|
||||||
@@ -90,15 +99,20 @@ import java.lang.reflect.Field;
|
|||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.disposables.CompositeDisposable;
|
import io.reactivex.disposables.CompositeDisposable;
|
||||||
|
import io.reactivex.disposables.Disposable;
|
||||||
|
|
||||||
import static com.yizhuan.xchat_android_core.Constants.DEBUG_MAX_UID;
|
import static com.yizhuan.xchat_android_core.Constants.DEBUG_MAX_UID;
|
||||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MESS_HEAD_NOBLE;
|
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MESS_HEAD_NOBLE;
|
||||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MESS_SUB_OPENNOBLE;
|
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MESS_SUB_OPENNOBLE;
|
||||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MESS_SUB_RENEWNOBLE;
|
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MESS_SUB_RENEWNOBLE;
|
||||||
|
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT;
|
||||||
|
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_ROOM_NOTIFY;
|
||||||
|
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY;
|
||||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_RED_PACKAGE;
|
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_RED_PACKAGE;
|
||||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ALL_DIAMOND;
|
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ALL_DIAMOND;
|
||||||
|
|
||||||
@@ -929,9 +943,9 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
|||||||
}
|
}
|
||||||
if (baseProtocol == null) return;
|
if (baseProtocol == null) return;
|
||||||
|
|
||||||
|
int second = baseProtocol.getSecond();
|
||||||
switch (baseProtocol.getFirst()) {
|
switch (baseProtocol.getFirst()) {
|
||||||
case CUSTOM_MESS_HEAD_NOBLE:
|
case CUSTOM_MESS_HEAD_NOBLE:
|
||||||
int second = baseProtocol.getSecond();
|
|
||||||
if (second == CUSTOM_MESS_SUB_OPENNOBLE || second == CUSTOM_MESS_SUB_RENEWNOBLE) {
|
if (second == CUSTOM_MESS_SUB_OPENNOBLE || second == CUSTOM_MESS_SUB_RENEWNOBLE) {
|
||||||
NobleProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), NobleProtocol.DataBean.class);
|
NobleProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), NobleProtocol.DataBean.class);
|
||||||
NobleInfo nobleInfo;
|
NobleInfo nobleInfo;
|
||||||
@@ -988,11 +1002,62 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
|||||||
RedPackageGoRoomDialog.Companion.newInstance(notifyInfo).show(this);
|
RedPackageGoRoomDialog.Companion.newInstance(notifyInfo).show(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case CUSTOM_MSG_LUCKY_GIFT:
|
||||||
|
if (second == CUSTOM_MSG_LUCKY_GIFT_ROOM_NOTIFY){
|
||||||
|
if (this instanceof AddUserInfoActivity || this instanceof LoginActivity || UserUtils.getUserInfo() == null)
|
||||||
|
return;
|
||||||
|
LuckyBagNoticeInfo info = new Gson().fromJson(String.valueOf(baseProtocol.getData()),LuckyBagNoticeInfo.class);
|
||||||
|
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||||
|
if (roomInfo != null && roomInfo.getUid() == info.getRoomUid() && context instanceof AVRoomActivity) {
|
||||||
|
//厅内福袋通知
|
||||||
|
LuckBagNotice(info.getFlashMsg());
|
||||||
|
}
|
||||||
|
}else if (second == CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY){
|
||||||
|
if (this instanceof AddUserInfoActivity || this instanceof LoginActivity || UserUtils.getUserInfo() == null)
|
||||||
|
return;
|
||||||
|
//全服福袋通知
|
||||||
|
LuckyBagNoticeInfo info = new Gson().fromJson(String.valueOf(baseProtocol.getData()),LuckyBagNoticeInfo.class);
|
||||||
|
LuckBagNotice(info.getFlashMsg());
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> messages;
|
||||||
|
private Disposable boxDisposable;
|
||||||
|
private boolean isCreate;
|
||||||
|
|
||||||
|
private void addLuckyBagNotify(String flashMsg) {
|
||||||
|
if (messages == null) messages = new ArrayList<>();
|
||||||
|
messages.add(flashMsg);
|
||||||
|
if (boxDisposable == null || messages.size() == 1) {
|
||||||
|
isCreate = true;
|
||||||
|
boxDisposable = Observable.interval(0, 6, TimeUnit.SECONDS)
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.doOnNext(aLong -> {
|
||||||
|
if (messages.size() > 0 && !isCreate)
|
||||||
|
messages.remove(0);//如果不是新创建的Observable发送的数据,需要移除第一个
|
||||||
|
isCreate = false;
|
||||||
|
})
|
||||||
|
.takeWhile(aLong -> messages.size() > 0 && messages.get(0) != null)
|
||||||
|
.subscribe(aLong -> LuckBagNotice(messages.get(0)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LuckBagNotice(String chatRoomMessage) {
|
||||||
|
if (!TextUtils.isEmpty(chatRoomMessage)) {
|
||||||
|
if (!isFinishing()) {
|
||||||
|
if (mNoticeDialog != null && mNoticeDialog.isShowing())
|
||||||
|
mNoticeDialog.dismiss();
|
||||||
|
mNoticeDialog = new OpenNobleGlobalNoticeDialog(this, chatRoomMessage);
|
||||||
|
mNoticeDialog.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private OpenNobleGlobalNoticeDialog mNoticeDialog;
|
private OpenNobleGlobalNoticeDialog mNoticeDialog;
|
||||||
|
|
||||||
private static class BroadcastObserver implements Observer<BroadcastMessage> {
|
private static class BroadcastObserver implements Observer<BroadcastMessage> {
|
||||||
|
@@ -13,22 +13,28 @@ import androidx.fragment.app.FragmentManager;
|
|||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.text.style.ForegroundColorSpan;
|
||||||
import android.text.style.StyleSpan;
|
import android.text.style.StyleSpan;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
import android.view.animation.Animation;
|
||||||
|
import android.view.animation.AnimationUtils;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.coorchice.library.SuperTextView;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||||
import com.netease.nimlib.sdk.NIMSDK;
|
import com.netease.nimlib.sdk.NIMSDK;
|
||||||
import com.netease.nimlib.sdk.Observer;
|
import com.netease.nimlib.sdk.Observer;
|
||||||
|
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||||
import com.netease.nimlib.sdk.msg.model.BroadcastMessage;
|
import com.netease.nimlib.sdk.msg.model.BroadcastMessage;
|
||||||
import com.orhanobut.logger.Logger;
|
import com.orhanobut.logger.Logger;
|
||||||
import com.readystatesoftware.systembartint.SystemBarTintManager;
|
import com.readystatesoftware.systembartint.SystemBarTintManager;
|
||||||
@@ -39,6 +45,7 @@ import com.yizhuan.erban.application.XChatApplication;
|
|||||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||||
import com.yizhuan.erban.avroom.redpackage.RedPackageGoRoomDialog;
|
import com.yizhuan.erban.avroom.redpackage.RedPackageGoRoomDialog;
|
||||||
import com.yizhuan.erban.avroom.redpackage.RedPackageOpenDialog;
|
import com.yizhuan.erban.avroom.redpackage.RedPackageOpenDialog;
|
||||||
|
import com.yizhuan.erban.avroom.widget.MessageView;
|
||||||
import com.yizhuan.erban.common.LoadingFragment;
|
import com.yizhuan.erban.common.LoadingFragment;
|
||||||
import com.yizhuan.erban.common.NetworkErrorFragment;
|
import com.yizhuan.erban.common.NetworkErrorFragment;
|
||||||
import com.yizhuan.erban.common.NoDataFragment;
|
import com.yizhuan.erban.common.NoDataFragment;
|
||||||
@@ -57,6 +64,8 @@ import com.yizhuan.erban.utils.UserUtils;
|
|||||||
import com.yizhuan.tutu.mentoring_relationship.dialog.GrabApprenticesNoticeDialog;
|
import com.yizhuan.tutu.mentoring_relationship.dialog.GrabApprenticesNoticeDialog;
|
||||||
import com.yizhuan.xchat_android_constants.XChatConstants;
|
import com.yizhuan.xchat_android_constants.XChatConstants;
|
||||||
import com.yizhuan.xchat_android_core.bean.BaseProtocol;
|
import com.yizhuan.xchat_android_core.bean.BaseProtocol;
|
||||||
|
import com.yizhuan.xchat_android_core.gift.bean.LuckyBagNoticeInfo;
|
||||||
|
import com.yizhuan.xchat_android_core.im.custom.bean.RoomBoxPrizeAttachment;
|
||||||
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;
|
||||||
@@ -81,12 +90,15 @@ import com.yizhuan.xchat_android_library.utils.log.MLog;
|
|||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.disposables.CompositeDisposable;
|
import io.reactivex.disposables.CompositeDisposable;
|
||||||
|
import io.reactivex.disposables.Disposable;
|
||||||
|
|
||||||
import static com.yizhuan.xchat_android_core.Constants.DEBUG_MAX_UID;
|
import static com.yizhuan.xchat_android_core.Constants.DEBUG_MAX_UID;
|
||||||
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MESS_HEAD_NOBLE;
|
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MESS_HEAD_NOBLE;
|
||||||
@@ -918,9 +930,10 @@ public abstract class BaseMvpActivity<V extends IMvpBaseView, P extends Abstract
|
|||||||
|
|
||||||
if (baseProtocol == null) return;
|
if (baseProtocol == null) return;
|
||||||
|
|
||||||
|
int second = baseProtocol.getSecond();
|
||||||
switch (baseProtocol.getFirst()) {
|
switch (baseProtocol.getFirst()) {
|
||||||
case CUSTOM_MESS_HEAD_NOBLE:
|
case CUSTOM_MESS_HEAD_NOBLE:
|
||||||
int second = baseProtocol.getSecond();
|
|
||||||
if (second == CUSTOM_MESS_SUB_OPENNOBLE || second == CUSTOM_MESS_SUB_RENEWNOBLE) {
|
if (second == CUSTOM_MESS_SUB_OPENNOBLE || second == CUSTOM_MESS_SUB_RENEWNOBLE) {
|
||||||
NobleProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), NobleProtocol.DataBean.class);
|
NobleProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), NobleProtocol.DataBean.class);
|
||||||
NobleInfo nobleInfo;
|
NobleInfo nobleInfo;
|
||||||
@@ -982,20 +995,27 @@ public abstract class BaseMvpActivity<V extends IMvpBaseView, P extends Abstract
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// case CUSTOM_MSG_LUCKY_GIFT:
|
case CUSTOM_MSG_LUCKY_GIFT:
|
||||||
// switch (baseProtocol.getSecond()){
|
if (second == CUSTOM_MSG_LUCKY_GIFT_ROOM_NOTIFY){
|
||||||
// case CUSTOM_MSG_LUCKY_GIFT_ROOM_NOTIFY:
|
if (context instanceof AddUserInfoActivity || context instanceof LoginActivity || UserUtils.getUserInfo() == null)
|
||||||
//
|
return;
|
||||||
// break;
|
LuckyBagNoticeInfo info = new Gson().fromJson(String.valueOf(baseProtocol.getData()),LuckyBagNoticeInfo.class);
|
||||||
//
|
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||||
// case CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY:
|
if (roomInfo != null && roomInfo.getUid() == info.getRoomUid() && context instanceof AVRoomActivity) {
|
||||||
//
|
//厅内福袋通知
|
||||||
// break;
|
LogUtil.e("厅内福袋通知:"+info.getFlashMsg());
|
||||||
//
|
LuckBagNotice(info.getFlashMsg());
|
||||||
// default:
|
}
|
||||||
// break;
|
}else if (second == CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY){
|
||||||
// }
|
if (context instanceof AddUserInfoActivity || context instanceof LoginActivity || UserUtils.getUserInfo() == null)
|
||||||
// break;
|
return;
|
||||||
|
//全服福袋通知
|
||||||
|
LuckyBagNoticeInfo info = new Gson().fromJson(String.valueOf(baseProtocol.getData()),LuckyBagNoticeInfo.class);
|
||||||
|
LogUtil.e("全服福袋通知:"+info.getFlashMsg());
|
||||||
|
LuckBagNotice(info.getFlashMsg());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1003,6 +1023,38 @@ public abstract class BaseMvpActivity<V extends IMvpBaseView, P extends Abstract
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<String> messages;
|
||||||
|
private Disposable boxDisposable;
|
||||||
|
private boolean isCreate;
|
||||||
|
|
||||||
|
private void addLuckyBagNotify(String flashMsg) {
|
||||||
|
if (messages == null) messages = new ArrayList<>();
|
||||||
|
messages.add(flashMsg);
|
||||||
|
if (boxDisposable == null || messages.size() == 1) {
|
||||||
|
isCreate = true;
|
||||||
|
boxDisposable = Observable.interval(0, 6, TimeUnit.SECONDS)
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.doOnNext(aLong -> {
|
||||||
|
if (messages.size() > 0 && !isCreate)
|
||||||
|
messages.remove(0);//如果不是新创建的Observable发送的数据,需要移除第一个
|
||||||
|
isCreate = false;
|
||||||
|
})
|
||||||
|
.takeWhile(aLong -> messages.size() > 0 && messages.get(0) != null)
|
||||||
|
.subscribe(aLong -> LuckBagNotice(messages.get(0)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LuckBagNotice(String chatRoomMessage) {
|
||||||
|
if (!TextUtils.isEmpty(chatRoomMessage)) {
|
||||||
|
if (!isFinishing()) {
|
||||||
|
if (mNoticeDialog != null && mNoticeDialog.isShowing())
|
||||||
|
mNoticeDialog.dismiss();
|
||||||
|
mNoticeDialog = new OpenNobleGlobalNoticeDialog(this, chatRoomMessage);
|
||||||
|
mNoticeDialog.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private OpenNobleGlobalNoticeDialog mNoticeDialog;
|
private OpenNobleGlobalNoticeDialog mNoticeDialog;
|
||||||
|
|
||||||
public static class BroadcastObserver implements Observer<BroadcastMessage> {
|
public static class BroadcastObserver implements Observer<BroadcastMessage> {
|
||||||
|
@@ -54,7 +54,7 @@ public class OpenNobleGlobalNoticeDialog extends AppCompatDialog implements Marq
|
|||||||
windowParams.dimAmount = 0.0f;
|
windowParams.dimAmount = 0.0f;
|
||||||
windowParams.gravity = Gravity.TOP ;
|
windowParams.gravity = Gravity.TOP ;
|
||||||
windowParams.x = 0;
|
windowParams.x = 0;
|
||||||
windowParams.y = SizeUtils.dp2px(getContext(), 62);
|
windowParams.y = SizeUtils.dp2px(getContext(), 100);
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
|
window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
|
||||||
window.setAttributes(windowParams);
|
window.setAttributes(windowParams);
|
||||||
}
|
}
|
||||||
|
BIN
app/src/main/res/drawable-xhdpi/bg_box_notice.webp
Normal file
BIN
app/src/main/res/drawable-xhdpi/bg_box_notice.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.5 KiB |
BIN
app/src/main/res/drawable-xhdpi/bg_lucky_gift_notice.webp
Normal file
BIN
app/src/main/res/drawable-xhdpi/bg_lucky_gift_notice.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
@@ -3,22 +3,20 @@
|
|||||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="30dp"
|
android:layout_height="wrap_content"
|
||||||
android:scrollbars="none">
|
android:scrollbars="none">
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_global_notice_content"
|
android:id="@+id/tv_global_notice_content"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="30dp"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="15dp"
|
android:background="@drawable/bg_lucky_gift_notice"
|
||||||
android:layout_marginRight="15dp"
|
|
||||||
android:background="@drawable/global_broadcast_notice_bg"
|
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:paddingEnd="12dp"
|
android:paddingEnd="60dp"
|
||||||
android:paddingStart="12dp"
|
android:paddingStart="60dp"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="14sp"
|
android:textSize="12sp"
|
||||||
tools:text="恭喜“Tm.八米大雕青木”保皇成功,哈啊啊啊啊啊啊啊啊啊啊啊" />
|
tools:text="恭喜“Tm.八米大雕青木”保皇成功,哈啊啊啊啊啊啊啊啊啊啊啊" />
|
||||||
</merge>
|
</merge>
|
19
app/src/main/res/layout/layout_box_notify_pic.xml
Normal file
19
app/src/main/res/layout/layout_box_notify_pic.xml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<com.coorchice.library.SuperTextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingLeft="@dimen/dp_60"
|
||||||
|
android:paddingRight="@dimen/dp_60"
|
||||||
|
android:layout_marginStart="@dimen/dp_6"
|
||||||
|
android:layout_marginEnd="@dimen/dp_6"
|
||||||
|
android:lines="2"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:paddingTop="@dimen/dp_5"
|
||||||
|
android:paddingBottom="@dimen/dp_5"
|
||||||
|
android:textSize="12sp"
|
||||||
|
tools:text=""
|
||||||
|
android:background="@drawable/bg_box_notice" />
|
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<com.yizhuan.erban.ui.widget.MarqueeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<com.yizhuan.erban.ui.widget.MarqueeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/marquee_view"
|
android:id="@+id/marquee_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="41dp"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
</com.yizhuan.erban.ui.widget.MarqueeLayout>
|
</com.yizhuan.erban.ui.widget.MarqueeLayout>
|
@@ -0,0 +1,11 @@
|
|||||||
|
package com.yizhuan.xchat_android_core.gift.bean;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class LuckyBagNoticeInfo implements Serializable {
|
||||||
|
private String flashMsg;
|
||||||
|
private long roomUid;
|
||||||
|
}
|
@@ -1,19 +0,0 @@
|
|||||||
package com.yizhuan.xchat_android_core.gift.bean;
|
|
||||||
|
|
||||||
import com.yizhuan.xchat_android_core.room.giftvalue.bean.IndexGiftValue;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author jjjj
|
|
||||||
* @date 2017/10/25
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class MultiLuckyGiftReceiveInfo implements Serializable {
|
|
||||||
|
|
||||||
private List<LuckyBagGifts> luckyBagGifts;
|
|
||||||
|
|
||||||
}
|
|
@@ -354,8 +354,8 @@ public class CustomAttachment implements MsgAttachment {
|
|||||||
|
|
||||||
//开福袋飘屏
|
//开福袋飘屏
|
||||||
public static final int CUSTOM_MSG_LUCKY_GIFT = 61;
|
public static final int CUSTOM_MSG_LUCKY_GIFT = 61;
|
||||||
public static final int CUSTOM_MSG_LUCKY_GIFT_ROOM_NOTIFY = 610;
|
public static final int CUSTOM_MSG_LUCKY_GIFT_ROOM_NOTIFY = 610;// 福袋礼物房间飘屏通知
|
||||||
public static final int CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY = 611;
|
public static final int CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY = 611; // 福袋礼物全服飘屏通知
|
||||||
|
|
||||||
//推送消息
|
//推送消息
|
||||||
public static final int CUSTOM_MSG_PUSH_NOTIFIFICATION = 70;
|
public static final int CUSTOM_MSG_PUSH_NOTIFIFICATION = 70;
|
||||||
|
@@ -193,7 +193,7 @@ public class RoomEvent {
|
|||||||
public static final int RECEIVE_ALL_MIC_LUCKY_GIFT = 64;
|
public static final int RECEIVE_ALL_MIC_LUCKY_GIFT = 64;
|
||||||
|
|
||||||
public static final int RECEIVE_RED_PACKAGE = 63;
|
public static final int RECEIVE_RED_PACKAGE = 63;
|
||||||
|
|
||||||
private int event = NONE;
|
private int event = NONE;
|
||||||
private int micPosition = Integer.MIN_VALUE;
|
private int micPosition = Integer.MIN_VALUE;
|
||||||
private int posState = -1;
|
private int posState = -1;
|
||||||
|
Reference in New Issue
Block a user