From 98f8928bc801087c7f818c5a60493d590f968198 Mon Sep 17 00:00:00 2001 From: lzl <1239365383@qq.com> Date: Fri, 12 Dec 2025 21:46:35 +0800 Subject: [PATCH] fix bugs. --- .../room/fragment/RoomMentorShipFragment.kt | 52 ++++++++++++++----- .../user/activity/DailyTasksActivity.java | 7 ++- .../dialog/RoomUserInfoFragment.java | 1 + gradle.properties | 4 +- 4 files changed, 47 insertions(+), 17 deletions(-) diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomMentorShipFragment.kt b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomMentorShipFragment.kt index 0a32181c..23303c62 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomMentorShipFragment.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomMentorShipFragment.kt @@ -13,6 +13,7 @@ import com.blankj.utilcode.util.ActivityUtils import com.blankj.utilcode.util.LogUtils import com.xscm.modulemain.R import com.xscm.modulemain.TransparentActivity +import com.xscm.modulemain.activity.room.activity.RoomActivity import com.xscm.modulemain.activity.room.contacts.MentorShipContacts import com.xscm.modulemain.activity.room.presenter.MentorShipPresenter import com.xscm.modulemain.databinding.FragmentMentorShipBinding @@ -36,6 +37,7 @@ import com.xscm.moduleutil.dialog.ConfirmDialog import com.xscm.moduleutil.utils.ClickUtils import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob @@ -86,6 +88,9 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) : private var signTypeDialog: DialogSignType? = null + private var disposable:Disposable? = null + + private val ivForMai = arrayOf( com.xscm.moduleutil.R.mipmap.icon_apply_for_mai, com.xscm.moduleutil.R.mipmap.icon_show_alent, @@ -126,7 +131,10 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) : view.setHostTv(mBinding.tvHostName) } else if (idx == 1) { mSignPitBean = bean - if (bean.user_id != "0" && mUserInfo?.user_id != null && viewList[0].pitBean?.user_id.equals(mUserInfo?.user_id.toString())) { + if (bean.user_id != "0" && mUserInfo?.user_id != null && viewList[0].pitBean?.user_id.equals( + mUserInfo?.user_id.toString() + ) + ) { mBinding.tvTimeLeft.visibility = View.VISIBLE } } @@ -274,7 +282,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) : mBinding.groupLeftPrice.visibility = View.VISIBLE if (getHostUser() < 4) { mBinding.tvTimeRight.visibility = View.VISIBLE - }else{ + } else { mBinding.tvTimeRight.visibility = View.GONE } } else { @@ -296,20 +304,32 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) : setIvForMai(0) } - if (viewList[0].pitBean.user_id.equals(mUserInfo?.user_id.toString()) && !mSignPitBean?.user_id.equals("0")) { + if (viewList[0].pitBean.user_id.equals(mUserInfo?.user_id.toString()) && !mSignPitBean?.user_id.equals( + "0" + ) + ) { mBinding.tvTimeLeft.visibility = View.VISIBLE } else { mBinding.tvTimeLeft.visibility = View.GONE } - Observable.timer(200, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()) - .subscribe { aLong: Long? -> - startActivity( - Intent( - ActivityUtils.getTopActivity(), - TransparentActivity::class.java - ) - ) + + if (ActivityUtils.getTopActivity() is RoomActivity) { + if (disposable != null && disposable?.isDisposed == false) { + disposable?.dispose() } + + disposable = Observable.timer(20, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()) + .subscribe { aLong: Long? -> + if (checkFragmentAttached()) { + startActivity( + Intent( + ActivityUtils.getTopActivity(), + TransparentActivity::class.java + ) + ) + } + } + } LogUtils.e( "showBtn", "showBtn: $isSignUser isStart: $isStart \n viewList[0].pitBean.user_id: ${viewList[0].pitBean.user_id} " + @@ -317,11 +337,15 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) : "\n mRoomInfo?.user_info?.user_id: ${mRoomInfo?.user_info?.user_id} " + "\n mUserInfo?.user_id: ${mUserInfo?.user_id}" + "\n mBinding.tvTimeRight: ${mBinding.tvTimeRight.visibility == View.VISIBLE}" + - "\n mBinding.tvTime: ${mBinding.tvTime.visibility == View.VISIBLE}" + + "\n mBinding.tvTime: ${mBinding.tvTime.visibility == View.VISIBLE}" + "\n mBinding.tvTimeLeft: ${mBinding.tvTimeLeft.visibility == View.VISIBLE}" ) } - + // 核心工具方法:检查 Fragment 是否和 Activity 有效绑定 + private fun checkFragmentAttached(): Boolean { + // 依次检查:Fragment 是否附加到 Activity、是否已销毁、是否处于正常状态 + return isAdded && !isDetached && !requireActivity().isFinishing && !requireActivity().isDestroyed + } fun roomInfoUpdate(mRoomInfoResp: RoomInfoResp) { mRoomInfo = mRoomInfoResp @@ -497,7 +521,7 @@ class RoomMentorShipFragment(var mRoomInfo: RoomInfoResp?) : private fun updateTimerDisplay(time: String) { // 在这里更新你的UI,比如: mBinding.tvTime.text = "倒计时 ${time}" - LogUtils.e("updateTimerDisplay:"+mBinding.tvTime.text.toString() +"\n"+(mBinding.tvTime.visibility == View.VISIBLE)) + LogUtils.e("updateTimerDisplay:" + mBinding.tvTime.text.toString() + "\n" + (mBinding.tvTime.visibility == View.VISIBLE)) } // 延迟后重新开始计时 diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java b/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java index 869dd564..8ad3c90d 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/user/activity/DailyTasksActivity.java @@ -63,6 +63,8 @@ public class DailyTasksActivity extends BaseMvpActivity taskList = new ArrayList<>(); + private boolean isJoinRoom = false; + @Override protected DailyTasksPresenter bindPresenter() { return new DailyTasksPresenter(this, this); @@ -134,6 +136,7 @@ public class DailyTasksActivity extends BaseMvpActivity { mBinding.coolWaitView.setVisibility(View.GONE); - if (!isFinishing()){ + if (!isFinishing() && isJoinRoom) { finish(); } }); @@ -272,6 +276,7 @@ public class DailyTasksActivity extends BaseMvpActivity