diff --git a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java index 83872a477..82804884c 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java @@ -23,6 +23,8 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; import androidx.viewpager.widget.ViewPager; import com.alibaba.fastjson.JSON; @@ -262,55 +264,18 @@ public class AVRoomActivity extends BaseMvpActivity list = AvRoomDataManager.get().getRoomUidList(); - if (list.size() > 0) { - AvRoomDataManager.get().setIsParty(true); - roomUid = list.get(0).getUid(); - if (mCurrentFragment != null) { - mCurrentFragment = null; - } - if (roomUid != AuthModel.get().getCurrentUid()) { - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_ENTERROOM, "进入别人房间"); - } - updateRoomInfo(); - return; - } else { - AvRoomDataManager.get().setIsParty(false); - } - } else { - AvRoomDataManager.get().setIsParty(false); - } - } - if (newRoomUid != 0 && newRoomUid == roomUid) { updateRoomInfo(); //updateRoomInfo之后进入云信进房逻辑后直接return了,不会再次调用addRoomFragment() showRedPackage(AvRoomDataManager.get().mCurrentRoomInfo); return; } - // 师徒任务三判定 - if (AvRoomDataManager.get().isFromMentoring() && Objects.equals(AvRoomDataManager.get().getMasterUid(), - AvRoomDataManager.get().mCurrentRoomInfo.getUid())) { - // 只有从任务三分享房间链接进来的时候才开始倒计时 - EventBus.getDefault().post(new MentoringStartCountingEvent()); - } else { - EventBus.getDefault().post(new MentoringStopCountingEvent()); - } roomUid = newRoomUid; - if (roomUid != AuthModel.get().getCurrentUid()) { - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_ENTERROOM, "进入别人房间"); - } - - if (mCurrentFragment != null) { getSupportFragmentManager().beginTransaction() .remove(mCurrentFragment).commitAllowingStateLoss(); @@ -629,7 +594,9 @@ public class AVRoomActivity extends BaseMvpActivity roomUidList = AvRoomDataManager.get().getRoomUidList(); diff --git a/app/src/main/java/com/yizhuan/erban/avroom/dialog/RoomOperationDialog.java b/app/src/main/java/com/yizhuan/erban/avroom/dialog/RoomOperationDialog.java index c875d73d1..fe5103289 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/dialog/RoomOperationDialog.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/dialog/RoomOperationDialog.java @@ -1,5 +1,6 @@ package com.yizhuan.erban.avroom.dialog; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Color; import android.os.Bundle; @@ -12,12 +13,15 @@ import com.google.android.material.bottomsheet.BottomSheetDialog; import androidx.recyclerview.widget.RecyclerView; import android.util.DisplayMetrics; +import android.util.Log; import android.view.Display; import android.view.View; import android.view.WindowManager; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; +import com.netease.nim.uikit.common.util.log.LogUtil; +import com.yinyuan.xchat_android_core.redpackage.RedPackageModel; import com.yizhuan.erban.R; import com.yizhuan.erban.module_hall.HallDataManager; import com.yizhuan.erban.ui.widget.marqueeview.Utils; @@ -34,6 +38,8 @@ import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; +import io.reactivex.SingleObserver; +import io.reactivex.disposables.Disposable; /** @@ -91,11 +97,39 @@ public class RoomOperationDialog extends BottomSheetDialog { addOpenOrClosePublicScreenAction(optAdapter); addGiftValueAction(optAdapter); addRoomSettingAction(optAdapter); + addRedPackageSwitch(); //addRoomModuleHallAction(optAdapter); //addRoomManagerAction(optAdapter); addSuperAdminAction(optAdapter); rvOPtList.setAdapter(optAdapter); + } + @SuppressLint("CheckResult") + private void addRedPackageSwitch(){ + if (!AvRoomDataManager.get().isManager()) { + return; + } +// boolean b; + RedPackageModel.INSTANCE.getRedPackageSwitch(AvRoomDataManager.get().getRoomUid()).subscribe(s -> { + LogUtil.e("addRedPackageSwitch"+s); + boolean redPackage = Boolean.parseBoolean(s); + String text = redPackage ? + context.getResources().getString(R.string.close_redpackage_notice) : + context.getResources().getString(R.string.open_redpackage_notice); + + int icon = redPackage ? + R.drawable.ic_room_open_redpackage : + R.drawable.ic_room_close_redpackage; + optAdapter.addData(new OptAction(icon, text, + new OptAction.OnAction() { + @Override + public void onAction() { + if (onActionListener != null) { + RedPackageModel.INSTANCE.setRedPackageSwitch(AvRoomDataManager.get().getRoomUid()).subscribe(); + } + } + })); + }); } private void addGameAction(OptAdapter optAdapter) { @@ -415,6 +449,7 @@ public class RoomOperationDialog extends BottomSheetDialog { void onGiftValue(); void onSuperAdmin(); + } public void setOnActionListener(OnActionListener onActionListener) { diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java index d6b8a39d7..bc5de8de2 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyRoomFragment.java @@ -51,6 +51,7 @@ import com.orhanobut.logger.Logger; import com.tbruyelle.rxpermissions2.RxPermissions; import com.tongdaxing.erban.sadmin.RoomSAdminManagerActivity; import com.trello.rxlifecycle3.android.FragmentEvent; +import com.yinyuan.xchat_android_core.redpackage.RedPackageModel; import com.yizhuan.erban.R; import com.yizhuan.erban.avroom.BottomViewListenerWrapper; import com.yizhuan.erban.avroom.ButtonItemFactory; @@ -211,6 +212,8 @@ import java.util.ListIterator; import java.util.Objects; import java.util.concurrent.TimeUnit; +import io.reactivex.Observable; +import io.reactivex.Single; import io.reactivex.SingleObserver; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; @@ -2203,6 +2206,7 @@ public class HomePartyRoomFragment extends BaseMvpFragment() { if (mObjectAnimator?.isRunning == false) { openRedPackage() } - }, { + } + , { binding.ivOpen.isEnabled = true mObjectAnimator?.cancel() SingleToastUtil.showToast(it.message) }) + mObjectAnimator = ObjectAnimator.ofFloat(v, "rotationY", 0f, 360f) mObjectAnimator?.let { it.duration = 1500 @@ -147,7 +149,7 @@ class RedPackageOpenDialog : BaseDialog() { } } TIME_OUT, REMAIN_ZERO, TIME_OUT_BACK -> { - binding.clOpened.setBackgroundResource(R.drawable.room_red_package_no_get_bg) + binding.clOpened.setBackgroundResource(R.drawable.room_red_package_get_bg) binding.tvDiamondNum.visibility = View.GONE binding.tvTips.visibility = View.GONE binding.tvNoGet.visibility = View.VISIBLE diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java index db231f44e..fd3a89391 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java @@ -772,6 +772,7 @@ public class MessageView extends FrameLayout { } } else if (first == CustomAttachment.CUSTOM_MSG_HEADER_TYPE_FOLLOW_ROOM){ if (second == CustomAttachment.CUSTOM_MSG_SUB_TYPE_FOLLOW_ROOM_SUCCESS) { + clearBackground(tvContent); //收藏了房间 setFollowRoomTip(tvContent, (RoomTipAttachment) attachment, chatRoomMessage); } diff --git a/app/src/main/java/com/yizhuan/erban/base/BaseMvpActivity.java b/app/src/main/java/com/yizhuan/erban/base/BaseMvpActivity.java index ba7926d68..b7fca7922 100644 --- a/app/src/main/java/com/yizhuan/erban/base/BaseMvpActivity.java +++ b/app/src/main/java/com/yizhuan/erban/base/BaseMvpActivity.java @@ -25,6 +25,7 @@ import android.widget.Toast; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.google.gson.Gson; import com.netease.nim.uikit.common.util.log.LogUtil; import com.netease.nimlib.sdk.NIMSDK; import com.netease.nimlib.sdk.Observer; @@ -35,6 +36,9 @@ import com.tbruyelle.rxpermissions2.RxPermissions; import com.trello.rxlifecycle3.android.ActivityEvent; import com.yizhuan.erban.R; import com.yizhuan.erban.application.XChatApplication; +import com.yizhuan.erban.avroom.activity.AVRoomActivity; +import com.yizhuan.erban.avroom.redpackage.RedPackageGoRoomDialog; +import com.yizhuan.erban.avroom.redpackage.RedPackageOpenDialog; import com.yizhuan.erban.common.LoadingFragment; import com.yizhuan.erban.common.NetworkErrorFragment; import com.yizhuan.erban.common.NoDataFragment; @@ -44,18 +48,24 @@ import com.yizhuan.erban.common.widget.StatusLayout; import com.yizhuan.erban.common.widget.dialog.DialogManager; import com.yizhuan.erban.common.widget.dialog.DialogUiHelper; import com.yizhuan.erban.reciever.ConnectiveChangedReceiver; +import com.yizhuan.erban.ui.login.AddUserInfoActivity; +import com.yizhuan.erban.ui.login.LoginActivity; import com.yizhuan.erban.ui.pay.ChargeActivity; import com.yizhuan.erban.ui.widget.DefaultToolBar; import com.yizhuan.erban.ui.widget.dialog.OpenNobleGlobalNoticeDialog; +import com.yizhuan.erban.utils.UserUtils; import com.yizhuan.tutu.mentoring_relationship.dialog.GrabApprenticesNoticeDialog; import com.yizhuan.xchat_android_constants.XChatConstants; import com.yizhuan.xchat_android_core.bean.BaseProtocol; +import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; import com.yizhuan.xchat_android_core.manager.RoomEvent; import com.yizhuan.xchat_android_core.mentoring_relationship.event.GrabApprenticesEvent; import com.yizhuan.xchat_android_core.noble.AllServiceGiftProtocol; import com.yizhuan.xchat_android_core.noble.NobleInfo; import com.yizhuan.xchat_android_core.noble.NobleProtocol; +import com.yizhuan.xchat_android_core.redpackage.RedPackageNotifyInfo; +import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.statistic.StatisticManager; import com.yizhuan.xchat_android_library.base.AbstractMvpActivity; import com.yizhuan.xchat_android_library.base.AbstractMvpPresenter; @@ -82,6 +92,9 @@ 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_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_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_GIFT; /** @@ -948,6 +961,22 @@ public abstract class BaseMvpActivity @@ -141,7 +143,7 @@ android:layout_width="0dp" android:layout_height="0dp" android:orientation="horizontal" - app:layout_constraintGuide_percent="0.465" /> + app:layout_constraintGuide_percent="0.459" /> - + + + + - { + return api.getRedPackageSwitch(roomUid) + .io2main() + .handleStringData() + } + + fun setRedPackageSwitch(roomUid: Long):Single { + return api.setRedPackageSwitch(roomUid) + .io2main() + .handleStringData() + } + private interface Api { /** @@ -76,6 +88,12 @@ object RedPackageModel { */ @GET("/room/red-envelop") fun getRedPackage(@Query("uid") uid: Long): Single>> + + @GET("/red-envelope/{roomUid}") + fun getRedPackageSwitch(@Path("roomUid") uid: Long): Single> + + @POST("/red-envelope/switch/{roomUid}") + fun setRedPackageSwitch(@Path("roomUid") uid: Long): Single> } diff --git a/nim_uikit/res/values/strings.xml b/nim_uikit/res/values/strings.xml index 2187e67c8..a5b9593f9 100644 --- a/nim_uikit/res/values/strings.xml +++ b/nim_uikit/res/values/strings.xml @@ -113,6 +113,8 @@ 移出本群 成员信息 管理员 + 开启全服红包 + 关闭全服红包 群主 群成员 保存成功