From de0ee12e06b16894a8b3e0a88794313c91526c5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=B0=8F=E6=B1=9F?= <461355754@qq.com> Date: Thu, 21 Aug 2025 16:13:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=80=E6=9C=89=E7=9A=84?= =?UTF-8?q?=E4=B8=8D=E8=AE=A9=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=BB=99=E8=85=BE=E8=AE=AFim=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=89=80=E6=9C=89=E8=BF=9B=E5=85=A5=E6=88=BF=E9=97=B4=EF=BC=8C?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=90=8C=E4=B8=80=E4=B8=AA=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E4=B8=8D=E5=9C=A8=E9=87=8D=E5=A4=8D=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/release/output-metadata.json | 10 ++--- gradle.properties | 4 +- .../moduleutil/activity/WebViewActivity.java | 9 ++-- .../activity/news/OfficialNoticeActivity.java | 3 +- .../moduleutil/bean/room/EMMessageInfo.java | 5 ++- .../qxcm/moduleutil/dialog/WebViewDialog.java | 2 +- .../moduleutil/widget/AvatarFrameView.java | 22 +++++----- .../qxcm/moduleutil/widget/BaseWheatView.java | 5 ++- .../activity/DynamicDetailActivity.java | 3 +- .../activity/DynamicListActivity.java | 2 +- .../fragment/CircleCategoryFragment.java | 2 +- .../fragment/ExpandColumnFragment.java | 3 +- .../modulemain/activity/MainActivity.java | 22 +++++----- .../moduleroom/activity/RoomActivity.java | 22 ++++++---- .../dialog/RoomGiftDialogFragment.java | 42 ++++++++++++++----- .../dialog/RoomSettingFragment.java | 28 +++++++++++-- .../moduleroom/presenter/RoomPresenter.java | 10 ----- .../activity/DailyTasksActivity.java | 10 ++--- .../modulevocal/activity/MyRoomActivity.java | 2 +- .../activity/PersonalityActivity.java | 4 +- .../modulevocal/adapter/MyCreateAdapter.java | 6 +-- .../fragment/CirleListFragment.java | 2 +- .../fragment/MyFollowFragment.java | 3 +- .../fragment/MyManageFragment.java | 3 +- .../fragment/UserHomepageFragment.java | 2 +- .../fragment/VocalRangeFragment.java | 7 +++- .../modulevoice/activity/SearchActivity.java | 3 +- .../modulevoice/adapter/HotAdapter.java | 3 +- .../adapter/SearchRoomResultAdapter.java | 3 +- .../modulevoice/fragment/HotListFragment.java | 3 +- .../fragment/VoiceCategoryFragment.java | 3 ++ 31 files changed, 153 insertions(+), 95 deletions(-) diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 10f49206..433d70a8 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,9 +11,9 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 32, - "versionName": "1.0.4", - "outputFile": "羽声_1.0.4_32.apk" + "versionCode": 33, + "versionName": "1.0.4.1", + "outputFile": "羽声_1.0.4.1_33.apk" } ], "elementType": "File", @@ -22,14 +22,14 @@ "minApi": 28, "maxApi": 30, "baselineProfiles": [ - "baselineProfiles/1/羽声_1.0.4_32.dm" + "baselineProfiles/1/羽声_1.0.4.1_33.dm" ] }, { "minApi": 31, "maxApi": 2147483647, "baselineProfiles": [ - "baselineProfiles/0/羽声_1.0.4_32.dm" + "baselineProfiles/0/羽声_1.0.4.1_33.dm" ] } ], diff --git a/gradle.properties b/gradle.properties index 2ddc31a7..68be8c4d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -30,8 +30,8 @@ isBuildModule=false #org.gradle.deamon=false android.injected.testOnly=false -APP_VERSION_NAME=1.0.4 -APP_VERSION_CODE=32 +APP_VERSION_NAME=1.0.4.1 +APP_VERSION_CODE=33 org.gradle.jvm.toolchain.useLegacyAdapters=false #org.gradle.java.home=C\:\\Users\\qx\\.jdks\\ms-17.0.15 diff --git a/moduleUtil/src/main/java/com/qxcm/moduleutil/activity/WebViewActivity.java b/moduleUtil/src/main/java/com/qxcm/moduleutil/activity/WebViewActivity.java index 8effb6f7..917f2bd6 100644 --- a/moduleUtil/src/main/java/com/qxcm/moduleutil/activity/WebViewActivity.java +++ b/moduleUtil/src/main/java/com/qxcm/moduleutil/activity/WebViewActivity.java @@ -79,7 +79,7 @@ public class WebViewActivity extends BaseAppCompatActivity0){ - ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("room_id", item.getRoom_id() + "").navigation(); + ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("room_id", item.getRoom_id() + "").withFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP).navigation(); }else if (item.getRoom_id() == 0 && item.getUrl() != null && !item.getUrl().isEmpty()){ ARouter.getInstance().build(ARouteConstants.H5).withString("url", item.getUrl()).navigation(); } diff --git a/moduleUtil/src/main/java/com/qxcm/moduleutil/bean/room/EMMessageInfo.java b/moduleUtil/src/main/java/com/qxcm/moduleutil/bean/room/EMMessageInfo.java index 9a43c9f6..877dd529 100644 --- a/moduleUtil/src/main/java/com/qxcm/moduleutil/bean/room/EMMessageInfo.java +++ b/moduleUtil/src/main/java/com/qxcm/moduleutil/bean/room/EMMessageInfo.java @@ -77,7 +77,7 @@ public class EMMessageInfo implements MultiItemEntity { public static final int QXRoomMessageTypeRoomDress = 1035;//动态修改用户头像信息 public static final int QXRoomMessageTypeRoomOnline = 1036;// public static final int QXRoomMessageTypeRoomOPK = 1037; - public static final int QXRoomMessageTypeRoomOMh = 1038; + public static final int QXRoomMessageTypeRoomOMh = 1038;//盲盒礼物文字消息 ///关闭对方麦克风 public static final int QXRoomMessageTypeMuteRemoteAudio = 125; public static final int QXRoomMessageTypeMuteLocalAudio = 126; @@ -132,9 +132,10 @@ public class EMMessageInfo implements MultiItemEntity { case QXRoomMessageTypeRoomDress: case QXRoomMessageTypeRoomOnline: case QXRoomMessageTypeRoomOPK: - case QXRoomMessageTypeRoomOMh: + return 1; case QXRoomMessageTypeGift: + case QXRoomMessageTypeRoomOMh: return 3; case 1: return 2; diff --git a/moduleUtil/src/main/java/com/qxcm/moduleutil/dialog/WebViewDialog.java b/moduleUtil/src/main/java/com/qxcm/moduleutil/dialog/WebViewDialog.java index 9b99c9f6..16a91a37 100644 --- a/moduleUtil/src/main/java/com/qxcm/moduleutil/dialog/WebViewDialog.java +++ b/moduleUtil/src/main/java/com/qxcm/moduleutil/dialog/WebViewDialog.java @@ -128,7 +128,7 @@ public class WebViewDialog extends BaseDialog { @JavascriptInterface public void jumpRoomPage(String room_id) { - ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", room_id).navigation(); + ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", room_id) .withFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP).navigation(); } @JavascriptInterface public void jumpWebPage(String objects) { diff --git a/moduleUtil/src/main/java/com/qxcm/moduleutil/widget/AvatarFrameView.java b/moduleUtil/src/main/java/com/qxcm/moduleutil/widget/AvatarFrameView.java index 1904b51f..b50813e4 100644 --- a/moduleUtil/src/main/java/com/qxcm/moduleutil/widget/AvatarFrameView.java +++ b/moduleUtil/src/main/java/com/qxcm/moduleutil/widget/AvatarFrameView.java @@ -207,11 +207,11 @@ public class AvatarFrameView extends FrameLayout implements IAnimListener { return; } // 再次检查内存状态 - if (isMemoryLow()) { - LogUtils.w(TAG, "Low memory, clearing queue"); - clearQueue(); - return; - } +// if (isMemoryLow()) { +// LogUtils.w(TAG, "Low memory, clearing queue"); +// clearQueue(); +// return; +// } // 检查特效是否开启 if (SpUtil.getOpenEffect() != 1) { clearQueue(); @@ -263,12 +263,12 @@ public class AvatarFrameView extends FrameLayout implements IAnimListener { mainHandler.post(() -> setSource(url, type2)); return; } - // 检查内存状态 - if (isMemoryLow()) { - LogUtils.w(TAG, "Low memory, skipping animation"); - clearQueue(); - return; - } +// // 检查内存状态 +// if (isMemoryLow()) { +// LogUtils.w(TAG, "Low memory, skipping animation"); +// clearQueue(); +// return; +// } // 检查特效是否开启 if (SpUtil.getOpenEffect() != 1) { // 特效关闭时清空队列并停止播放 diff --git a/moduleUtil/src/main/java/com/qxcm/moduleutil/widget/BaseWheatView.java b/moduleUtil/src/main/java/com/qxcm/moduleutil/widget/BaseWheatView.java index 2403e39f..e9b78665 100644 --- a/moduleUtil/src/main/java/com/qxcm/moduleutil/widget/BaseWheatView.java +++ b/moduleUtil/src/main/java/com/qxcm/moduleutil/widget/BaseWheatView.java @@ -34,8 +34,6 @@ import com.qxcm.moduleutil.event.RoomFaceEvent; import com.qxcm.moduleutil.interfaces.IBaseWheat; import com.qxcm.moduleutil.interfaces.SoundLevelUpdateListener; import com.qxcm.moduleutil.rtc.AgoraManager; -import com.qxcm.moduleutil.rtc.RtcCore; -import com.qxcm.moduleutil.rtc.RtcManager; import com.qxcm.moduleutil.utils.SpUtil; import com.qxcm.moduleutil.utils.logger.Logger; import com.tencent.liteav.base.Log; @@ -166,6 +164,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe setCardiac(pitBean.getCharm(), getTzbl()); setPitData(bean); + // if (bean.getIs_online() == 0 &&bean.getUser_id() != null && !bean.getUser_id().equals("0") && !bean.getUser_id().isEmpty()) { // iv_on_line.setVisibility(VISIBLE); // } else { @@ -246,6 +245,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe mIvRipple.setVisibility(VISIBLE); mIvRipple.post(() -> { mIvRipple.startAnimation(); + iv_on_line.setVisibility(GONE); // mIvRipple.setSource(getResources().getResourceName(R.raw.ripple3695), 2); }); @@ -274,6 +274,7 @@ public abstract class BaseWheatView extends ConstraintLayout implements IBaseWhe mIvRipple.setVisibility(VISIBLE); mIvRipple.post(() -> { mIvRipple.startAnimation(); + iv_on_line.setVisibility(GONE); // mIvRipple.setSource(getResources().getResourceName(R.raw.ripple3695), 2); }); diff --git a/modulecircle/src/main/java/com/example/modulecircle/activity/DynamicDetailActivity.java b/modulecircle/src/main/java/com/example/modulecircle/activity/DynamicDetailActivity.java index 83265055..d47201c0 100644 --- a/modulecircle/src/main/java/com/example/modulecircle/activity/DynamicDetailActivity.java +++ b/modulecircle/src/main/java/com/example/modulecircle/activity/DynamicDetailActivity.java @@ -3,6 +3,7 @@ package com.example.modulecircle.activity; import android.app.AlertDialog; import android.content.ClipData; import android.content.ClipboardManager; +import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -150,7 +151,7 @@ public class DynamicDetailActivity extends BaseMvpActivity() { @@ -541,9 +544,9 @@ public class MainActivity extends BaseMvpActivity colorMap = new HashMap<>(); colorMap.put("theme_color", themeBean.getTheme_color()); @@ -573,7 +576,7 @@ public class MainActivity extends BaseMvpActivity= fragmentList.size()) { + return currentItem; + } + if (currentItem < 1) { //比1小的是背包 GiftTwoDetailsFragment fragment = (GiftTwoDetailsFragment) fragmentList.get(currentItem); -// roonGiftModel = fragment.getGiftList(); - if (giftModel == null) { + if (fragment != null && giftModel == null) { giftModel = fragment.mGiftList(); } } else { GiftTwoDetailsFragment fragment = (GiftTwoDetailsFragment) fragmentList.get(currentItem); -// giftModel = fragment.mGiftList(); - if (roonGiftModel == null) { + if (fragment != null && roonGiftModel == null) { roonGiftModel = fragment.getGiftList(); } } return currentItem; } + private void giveGift(String num) { getSelectedGift(); int currentItem = mBinding.viewPager.getCurrentItem(); @@ -565,25 +571,41 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment list, List fragmentList) { super(fm); this.list = list; - this.fragmentList = fragmentList; +// this.fragmentList = fragmentList; + // 确保 fragmentList 初始化为正确大小,所有位置初始为 null + this.fragmentList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + this.fragmentList.add(null); + } } @Override public Fragment getItem(int position) { - GiftLabelBean model = list.get(position); - Fragment fragment = GiftTwoDetailsFragment.newInstance(model.getId(), 1); - fragmentList.add(fragment); // 保存 Fragment 实例 - return fragment; + // 确保 position 在有效范围内 + if (position < 0 || position >= list.size()) { + return null; + } + // 检查该位置是否已经有 Fragment 实例 + if (fragmentList.get(position) == null) { + GiftLabelBean model = list.get(position); + Fragment fragment = GiftTwoDetailsFragment.newInstance(model.getId(), 1); + // 在指定位置设置 Fragment 实例 + fragmentList.set(position, fragment); + } + return fragmentList.get(position); } @Override public int getCount() { - return list.size(); + return list != null ? list.size() : 0; } @Nullable @Override public CharSequence getPageTitle(int position) { + if (list == null || position < 0 || position >= list.size()) { + return null; + } GiftLabelBean model = list.get(position); return model.getName(); } diff --git a/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomSettingFragment.java b/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomSettingFragment.java index 7eb11810..d43fce09 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomSettingFragment.java +++ b/moduleroom/src/main/java/com/example/moduleroom/dialog/RoomSettingFragment.java @@ -25,6 +25,7 @@ import com.example.moduleroom.databinding.DialogRoomSettingFragmentBinding; import com.example.moduleroom.fragment.RoomBackgroundDialogFragment; import com.hjq.toast.ToastUtils; import com.qxcm.moduleutil.base.CommonAppContext; +import com.qxcm.moduleutil.dialog.ConfirmDialog; import com.qxcm.moduleutil.event.EffectEvent; import com.qxcm.moduleutil.event.MusicEvent; import com.qxcm.moduleutil.event.RoomOutEvent; @@ -247,13 +248,17 @@ public class RoomSettingFragment extends BaseMvpDialogFragment { + // 点击“确认”按钮时执行删除操作 + MvpPre.changeRoomType(roomId, type); + }, + v -> { + // 点击“取消”按钮时什么都不做 + }, false, 0).show(); + } private void upAdapter() { adapter.notifyDataSetChanged(); diff --git a/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomPresenter.java b/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomPresenter.java index e8481559..ef5b37f7 100644 --- a/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomPresenter.java +++ b/moduleroom/src/main/java/com/example/moduleroom/presenter/RoomPresenter.java @@ -9,22 +9,12 @@ import com.qxcm.moduleutil.base.CommonAppContext; import com.qxcm.moduleutil.bean.RoomCharmRankBean; import com.qxcm.moduleutil.bean.RoomResultResp; import com.qxcm.moduleutil.bean.UserOnlineStatusBean; -import com.qxcm.moduleutil.bean.room.Config; -import com.qxcm.moduleutil.bean.room.RoomBean; import com.qxcm.moduleutil.bean.room.RoomInfoResp; import com.qxcm.moduleutil.bean.room.RoomOnline; -import com.qxcm.moduleutil.bean.room.RoomOnlineBean; -import com.qxcm.moduleutil.bean.room.RoomPitBean; -import com.qxcm.moduleutil.bean.room.RoomUserBean; import com.qxcm.moduleutil.http.APIException; import com.qxcm.moduleutil.http.BaseObserver; import com.qxcm.moduleutil.presenter.BasePresenter; import com.qxcm.moduleutil.rtc.AgoraManager; -import com.qxcm.moduleutil.rtc.RtcConstants; -import com.qxcm.moduleutil.rtc.RtcCore; -import com.qxcm.moduleutil.rtc.RtcDestroyCallback; -import com.qxcm.moduleutil.rtc.RtcManager; -import com.qxcm.moduleutil.utils.GsonUtils; import com.qxcm.moduleutil.utils.SpUtil; import java.lang.ref.WeakReference; diff --git a/modulevocal/src/main/java/com/example/modulevocal/activity/DailyTasksActivity.java b/modulevocal/src/main/java/com/example/modulevocal/activity/DailyTasksActivity.java index a9b49499..6ac19a7a 100644 --- a/modulevocal/src/main/java/com/example/modulevocal/activity/DailyTasksActivity.java +++ b/modulevocal/src/main/java/com/example/modulevocal/activity/DailyTasksActivity.java @@ -140,17 +140,17 @@ public class DailyTasksActivity extends BaseMvpActivity { Intent intent=new Intent(this, WebViewActivity.class); - intent.putExtra("url", "https://vespa.qxmier.com/web/index.html#/pages/prop/propMall?id="+SpUtil.getToken()); + intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+"/web/index.html#/pages/prop/propMall?id="+SpUtil.getToken()); +// intent.putExtra("url", "https://vespa.qxmier.com/web/index.html#/pages/prop/propMall?id="+SpUtil.getToken()); intent.putExtra("title", "道具商城"); startActivity(intent); }); diff --git a/modulevocal/src/main/java/com/example/modulevocal/adapter/MyCreateAdapter.java b/modulevocal/src/main/java/com/example/modulevocal/adapter/MyCreateAdapter.java index c67125cc..bd3b33d6 100644 --- a/modulevocal/src/main/java/com/example/modulevocal/adapter/MyCreateAdapter.java +++ b/modulevocal/src/main/java/com/example/modulevocal/adapter/MyCreateAdapter.java @@ -314,7 +314,7 @@ public class MyCreateAdapter extends RecyclerView.Adapter