修改送礼物不能选择背包后再选择盲盒

修改在房间里面点击返回键不会退出的问题
This commit is contained in:
2025-08-21 00:35:41 +08:00
parent 8712d366d2
commit 39020885e8
5 changed files with 93 additions and 7 deletions

View File

@@ -12,6 +12,7 @@
android:name=".activity.MainActivity"
android:launchMode="singleTask"
android:exported="true"
android:taskAffinity="com.qxcm.modulemain.main"
>
</activity>
</application>

View File

@@ -9,6 +9,7 @@ import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
@@ -27,6 +28,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.BuildConfig;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.FragmentUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ServiceUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.bumptech.glide.Glide;
@@ -155,6 +157,64 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
selectShow(tab);
}
}
private boolean isExit = false; // 标记是否准备退出
private Handler mHandler = new Handler();
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
LogUtils.d("MainActivity", "onKeyDown called, keyCode: " + keyCode);
if (keyCode == KeyEvent.KEYCODE_BACK) {
// 检查是否有正在播放的房间
if (CommonAppContext.getInstance().isPlaying) {
// 如果有正在播放的房间,直接退出应用
finish();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
return true;
}
// 如果没有正在播放的房间,使用原来的逻辑
if (!isExit) {
isExit = true;
ToastUtils.showShort("再按一次退出应用");
// 延迟2秒重置标记
mHandler.postDelayed(() -> isExit = false, 2000);
} else {
// 退出应用
finish();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}
return true; // 消费事件
}
return super.onKeyDown(keyCode, event);
}
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// if (keyCode == KeyEvent.KEYCODE_BACK) {
// if (!isExit) {
// isExit = true;
// ToastUtils.showShort("再按一次退出应用");
// // 延迟2秒重置标记
// mHandler.postDelayed(new Runnable() {
// @Override
// public void run() {
// isExit = false;
// }
// }, 2000);
// } else {
// // 退出应用
// finish();
// // 彻底退出程序
// android.os.Process.killProcess(android.os.Process.myPid());
// System.exit(0);
// }
// return true; // 消费事件
// }
// return super.onKeyDown(keyCode, event);
// }
@Override
protected void initView() {

View File

@@ -190,13 +190,32 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
// 自定义处理逻辑
return true; // 表示已消费事件
if (event.getAction() == KeyEvent.ACTION_UP) {
// 自定义处理逻辑 - 直接返回主页
CommonAppContext.getInstance().isShow = false;
ARouter.getInstance()
.build(ARouteConstants.ME)
.withFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP)
.navigation();
return true; // 表示已消费事件
}
// 按下事件也消费掉,避免触发系统默认行为
return true;
}
return super.dispatchKeyEvent(event);
}
private void handleBackPressed() {
// 自定义处理逻辑
CommonAppContext.getInstance().isShow = false;
ARouter.getInstance()
.build(ARouteConstants.ME)
.withFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP)
.navigation();
}
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// if (keyCode == KeyEvent.KEYCODE_BACK) {
@@ -1275,7 +1294,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
@Override
public void userOnlineStatus(List<UserOnlineStatusBean> list) {
// SpUtil.setUserOnline(GsonUtils.toJson(list));
if(!list.isEmpty()){
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
UserOnlineStatusBean userOnlineStatusBean = list.get(i);
EventBus.getDefault().post(userOnlineStatusBean);
@@ -1476,6 +1495,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
LogUtils.e("releaseAllAvatarFrameViews error: " + e.getMessage());
}
}
private void releaseLayoutAvatarFrameViews() {
try {
// 遍历视图层次结构,查找并释放所有 AvatarFrameView 实例
@@ -1503,6 +1523,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
LogUtils.e("releaseViewGroupAvatarFrameViews error: " + e.getMessage());
}
}
/**
* 销毁所有子Fragment
*/

View File

@@ -385,14 +385,18 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
private int getSelectedGift() {
int currentItem = mBinding.viewPager.getCurrentItem();
if (currentItem < 1) { //比2小是才是礼物
if (currentItem < 1) { //比1小的是背包
GiftTwoDetailsFragment fragment = (GiftTwoDetailsFragment) fragmentList.get(currentItem);
// roonGiftModel = fragment.getGiftList();
giftModel = fragment.mGiftList();
if (giftModel == null) {
giftModel = fragment.mGiftList();
}
} else {
GiftTwoDetailsFragment fragment = (GiftTwoDetailsFragment) fragmentList.get(currentItem);
// giftModel = fragment.mGiftList();
roonGiftModel = fragment.getGiftList();
if (roonGiftModel == null) {
roonGiftModel = fragment.getGiftList();
}
}
return currentItem;
}

View File

@@ -265,7 +265,7 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
@Override
public void onResume() {
super.onResume();
onEvent(null);
onEvent(new MqttBean());
}
@Override