diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7f8a67ecc..06e7cbf67 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1123,10 +1123,7 @@ android:name=".ui.webview.DialogWebViewActivity" android:theme="@style/dialog_web_view_activity" android:windowSoftInputMode="adjustPan" /> - + @@ -1293,6 +1290,10 @@ android:name=".treasurefairy.HomeFairyActivity" android:theme="@style/dialog_web_view_activity" /> + + \ No newline at end of file diff --git a/app/src/main/assets/vap/test_fairy_anim_legend.mp4 b/app/src/main/assets/vap/test_fairy_anim_legend.mp4 index 8a6d080b7..f6d4b245f 100644 Binary files a/app/src/main/assets/vap/test_fairy_anim_legend.mp4 and b/app/src/main/assets/vap/test_fairy_anim_legend.mp4 differ diff --git a/app/src/main/java/com/mango/moshen/avroom/widget/MessageView.java b/app/src/main/java/com/mango/moshen/avroom/widget/MessageView.java index 11326048e..fe2fa6268 100644 --- a/app/src/main/java/com/mango/moshen/avroom/widget/MessageView.java +++ b/app/src/main/java/com/mango/moshen/avroom/widget/MessageView.java @@ -57,12 +57,14 @@ import androidx.recyclerview.widget.SimpleItemAnimator; import com.mango.core.im.custom.bean.FairyMsgAttachment; import com.mango.core.im.custom.bean.RoomKitchenAttachment; import com.mango.core.im.custom.bean.WishListAttachment; +import com.mango.core.room.anotherroompk.ShowUserInfoDialogEvent; import com.mango.core.room.wishlist.WishListModel; import com.mango.core.treasurefairy.FairyMsgInfo; import com.mango.core.utils.StringExtensionKt; import com.mango.moshen.treasure_box.widget.GoldBoxHelper; import com.mango.moshen.treasurefairy.HomeFairyActivity; import com.mango.moshen.utils.MsgBuilder; +import com.mango.xchat_android_library.rxbus.RxBus; import com.netease.nim.uikit.business.uinfo.UserInfoHelper; import com.netease.nim.uikit.common.ui.span.RadiusBackgroundSpan; import com.netease.nim.uikit.common.util.log.LogUtil; @@ -1051,13 +1053,12 @@ public class MessageView extends FrameLayout { builder.append(" 去参加!", new OriginalDrawStatusClickSpan(Color.parseColor("#FFBC51")) { @Override public void onClick(@NonNull View widget) { - + HomeFairyActivity.start(mContext); } }); - tvContent.setOnClickListener(v -> HomeFairyActivity.start(mContext)); - } else { - tvContent.setOnClickListener(null); } + tvContent.setOnClickListener(null); + tvContent.setMovementMethod(new LinkMovementMethod()); tvContent.setText(builder.build()); } } @@ -1067,7 +1068,13 @@ public class MessageView extends FrameLayout { private SpannableBuilder builderConvertMsg(TextView textView, @NonNull FairyMsgInfo fairyMsgInfo, String type) { return new SpannableBuilder(textView) .append("厉害了!", new ForegroundColorSpan(whiteColor)) - .append(StringExtensionKt.subAndReplaceDot(fairyMsgInfo.getNick(), 7), new ForegroundColorSpan(roomTipNickColor)) + .append(StringExtensionKt.subAndReplaceDot(fairyMsgInfo.getNick(), 7), new OriginalDrawStatusClickSpan(roomTipNickColor, false) { + + @Override + public void onClick(@NonNull View widget) { + RxBus.get().post(new ShowUserInfoDialogEvent(String.valueOf(fairyMsgInfo.getUid()))); + } + }) .append("在夺宝精灵中 " + type, new ForegroundColorSpan(whiteColor)) .append(fairyMsgInfo.getRewardShowValue() + "钻" + fairyMsgInfo.getRewardName(), new ForegroundColorSpan(roomTipColor)); } @@ -1075,7 +1082,13 @@ public class MessageView extends FrameLayout { private SpannableBuilder builderDrawMsg(TextView textView, @NonNull FairyMsgInfo fairyMsgInfo, String desc) { SpannableBuilder builder = new SpannableBuilder(textView) .append(desc, new ForegroundColorSpan(whiteColor)) - .append(StringExtensionKt.subAndReplaceDot(fairyMsgInfo.getNick(), 7), new ForegroundColorSpan(roomTipNickColor)) + .append(StringExtensionKt.subAndReplaceDot(fairyMsgInfo.getNick(), 7), new OriginalDrawStatusClickSpan(roomTipNickColor, false) { + + @Override + public void onClick(@NonNull View widget) { + RxBus.get().post(new ShowUserInfoDialogEvent(String.valueOf(fairyMsgInfo.getUid()))); + } + }) .append(" 在夺宝精灵中获得 ", new ForegroundColorSpan(whiteColor)) .append(fairyMsgInfo.getRewardName(), new ForegroundColorSpan(Color.WHITE)); if (fairyMsgInfo.getRewardNum() > 1) { diff --git a/app/src/main/java/com/mango/moshen/common/widget/OriginalDrawStatusClickSpan.java b/app/src/main/java/com/mango/moshen/common/widget/OriginalDrawStatusClickSpan.java index 64a83ab53..5e429efe0 100644 --- a/app/src/main/java/com/mango/moshen/common/widget/OriginalDrawStatusClickSpan.java +++ b/app/src/main/java/com/mango/moshen/common/widget/OriginalDrawStatusClickSpan.java @@ -2,12 +2,14 @@ package com.mango.moshen.common.widget; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; + import android.text.TextPaint; import android.text.style.ClickableSpan; public abstract class OriginalDrawStatusClickSpan extends ClickableSpan { private final Integer mColor; + private final boolean underlineText; public OriginalDrawStatusClickSpan() { this(null); @@ -15,13 +17,19 @@ public abstract class OriginalDrawStatusClickSpan extends ClickableSpan { public OriginalDrawStatusClickSpan(@ColorInt Integer color) { this.mColor = color; + this.underlineText = true; + } + + public OriginalDrawStatusClickSpan(@ColorInt Integer color, boolean underlineText) { + this.mColor = color; + this.underlineText = false; } @Override public void updateDrawState(@NonNull TextPaint ds) { if (mColor != null) { ds.setColor(mColor); - ds.setUnderlineText(true); + ds.setUnderlineText(underlineText); } } diff --git a/app/src/main/java/com/mango/moshen/treasurefairy/HomeFairyActivity.kt b/app/src/main/java/com/mango/moshen/treasurefairy/HomeFairyActivity.kt index 681082703..8d0c3bd78 100644 --- a/app/src/main/java/com/mango/moshen/treasurefairy/HomeFairyActivity.kt +++ b/app/src/main/java/com/mango/moshen/treasurefairy/HomeFairyActivity.kt @@ -187,7 +187,7 @@ class HomeFairyActivity : BaseViewBindingActivity num) { + if (keyNum >= num) { return true } DialogManager(context).showOkCancelDialog("购买限时装扮活动夺宝券", "去参与", "取消") { diff --git a/app/src/main/java/com/mango/moshen/treasurefairy/dialog/ForestFairyDialog.kt b/app/src/main/java/com/mango/moshen/treasurefairy/dialog/ForestFairyDialog.kt index c41358ada..227a730c7 100644 --- a/app/src/main/java/com/mango/moshen/treasurefairy/dialog/ForestFairyDialog.kt +++ b/app/src/main/java/com/mango/moshen/treasurefairy/dialog/ForestFairyDialog.kt @@ -7,6 +7,8 @@ import android.view.WindowManager import androidx.core.view.isInvisible import androidx.fragment.app.activityViewModels import com.mango.core.utils.subAndReplaceDot +import com.mango.core.utils.toIntOrDef +import com.mango.core.utils.toast import com.mango.moshen.R import com.mango.moshen.base.BaseDialog import com.mango.moshen.databinding.TreasureFairyDialogForestBinding @@ -73,17 +75,21 @@ class ForestFairyDialog : BaseDialog() { switchType() } binding.viewBgGrab1.setOnClickListener { - enabledOpenBtn(false) - binding.animView.startPlay(requireContext().assets, "vap/fairy_anim_once.mp4") - binding.animView.postDelayed(showResultRunnable,1900) - viewModel.drawForestFairy(1, currentType) + if (checkBallNum(1)) { + enabledOpenBtn(false) + binding.animView.startPlay(requireContext().assets, "vap/fairy_anim_once.mp4") + binding.animView.postDelayed(showResultRunnable, 1900) + viewModel.drawForestFairy(1, currentType) + } } binding.viewBgGrab10.setOnClickListener { - enabledOpenBtn(false) - binding.animView.startPlay(requireContext().assets, "vap/fairy_anim_ten.mp4") - binding.animView.postDelayed(showResultRunnable,1900) - viewModel.drawForestFairy(10, currentType) + if (checkBallNum(10)) { + enabledOpenBtn(false) + binding.animView.startPlay(requireContext().assets, "vap/fairy_anim_ten.mp4") + binding.animView.postDelayed(showResultRunnable, 1900) + viewModel.drawForestFairy(10, currentType) + } } binding.animView.setOnClickListener { @@ -99,7 +105,7 @@ class ForestFairyDialog : BaseDialog() { if (resultNotShowed) { showResultRunnable.run() } - }?:run{ + } ?: run { enabledOpenBtn(true) } } @@ -118,6 +124,22 @@ class ForestFairyDialog : BaseDialog() { } + private fun checkBallNum(openNum: Int): Boolean { + val ballNum = viewModel.forestInfoLiveData.value?.let { + when (currentType) { + BASE -> it.lowBallNum.toIntOrDef(0) + EPIC -> it.middleBallNum.toIntOrDef(0) + else -> it.highBallNum.toIntOrDef(0) + } + } ?: 0 + return if (ballNum >= openNum) { + true + } else { + "精灵球数量不足".toast() + false + } + } + private fun enabledOpenBtn(enable: Boolean) { binding.viewBgGrab1.isEnabled = enable binding.viewBgGrab10.isEnabled = enable diff --git a/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairyDialog.kt b/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairyDialog.kt index 2268ab978..9f57ab0d2 100644 --- a/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairyDialog.kt +++ b/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairyDialog.kt @@ -6,6 +6,7 @@ import android.view.Gravity import android.view.WindowManager import androidx.fragment.app.activityViewModels import androidx.viewpager.widget.ViewPager +import com.mango.core.DemoCache import com.mango.moshen.R import com.mango.moshen.avroom.adapter.RoomVPAdapter import com.mango.moshen.base.BaseDialog @@ -52,9 +53,9 @@ class MyFairyDialog : BaseDialog() { 1 -> binding.rg.check(R.id.rb_epic) 2 -> binding.rg.check(R.id.rb_legend) } + DemoCache.saveMyFairyIndex(position) } }) - binding.viewPager.adapter = RoomVPAdapter( childFragmentManager, listOf( @@ -63,6 +64,9 @@ class MyFairyDialog : BaseDialog() { MyFairyFragment.newInstance(MyFairyItemView.LEGEND) ) ) + + binding.viewPager.setCurrentItem(DemoCache.readMyFairyIndex(), false) + viewModel.getMyFairyInfo() } diff --git a/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairyRecordDialog.kt b/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairyRecordDialog.kt index b6e283f08..b471a2dc1 100644 --- a/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairyRecordDialog.kt +++ b/app/src/main/java/com/mango/moshen/treasurefairy/dialog/MyFairyRecordDialog.kt @@ -8,6 +8,7 @@ import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.LinearLayoutManager import com.mango.core.treasurefairy.SendFairyInfo import com.mango.moshen.base.BaseDialog +import com.mango.moshen.common.EmptyViewHelper import com.mango.moshen.databinding.TreasureFairyDialogMyFairyRecordBinding import com.mango.moshen.treasurefairy.FairyViewModel import com.mango.moshen.treasurefairy.adapter.MyFairyRecordAdapter @@ -40,6 +41,7 @@ class MyFairyRecordDialog : BaseDialog( rvDelegate = RVDelegate.Builder() .setAdapter(recordAdapter) .setRecyclerView(binding.recyclerView) + .setEmptyView(EmptyViewHelper.createEmptyTextView(context,"暂无记录")) .setLayoutManager(LinearLayoutManager(context)) .build() diff --git a/app/src/main/java/com/mango/moshen/ui/webview/FairyDialogWebViewActivity.java b/app/src/main/java/com/mango/moshen/ui/webview/FairyDialogWebViewActivity.java index a25749bfb..5bf7e3839 100644 --- a/app/src/main/java/com/mango/moshen/ui/webview/FairyDialogWebViewActivity.java +++ b/app/src/main/java/com/mango/moshen/ui/webview/FairyDialogWebViewActivity.java @@ -6,6 +6,7 @@ import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.WindowManager; +import android.widget.FrameLayout; import com.mango.moshen.R; import com.netease.nim.uikit.common.util.sys.ScreenUtil; @@ -22,8 +23,13 @@ public class FairyDialogWebViewActivity extends CommonWebViewActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.screenWidth * 1100 / 750); + getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.screenHeight - ScreenUtil.getStatusBarHeight(this)); getWindow().setGravity(Gravity.BOTTOM); + View layoutRoot = findViewById(R.id.ll_root); + FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) layoutRoot.getLayoutParams(); + layoutParams.height = ScreenUtil.screenWidth * 1100 / 750; + layoutParams.width = FrameLayout.LayoutParams.MATCH_PARENT; + layoutRoot.setLayoutParams(layoutParams); layoutTitleBar.setVisibility(View.GONE); webView.setBackgroundColor(0); webView.getBackground().setAlpha(0); diff --git a/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy_anim_legend.png b/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy_anim_legend.png index 852719e71..562230b26 100644 Binary files a/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy_anim_legend.png and b/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy_anim_legend.png differ diff --git a/app/src/main/res/drawable-xhdpi/treasure_fairy_ic_exchange_next.png b/app/src/main/res/drawable-xhdpi/treasure_fairy_ic_exchange_next.png new file mode 100644 index 000000000..dc18108db Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/treasure_fairy_ic_exchange_next.png differ diff --git a/app/src/main/res/drawable/shape_00a69d_8dp_round.xml b/app/src/main/res/drawable/shape_00a69d_8dp_round.xml index a219e628e..35146ef77 100644 --- a/app/src/main/res/drawable/shape_00a69d_8dp_round.xml +++ b/app/src/main/res/drawable/shape_00a69d_8dp_round.xml @@ -2,7 +2,11 @@ - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_elf_dialog_web_view.xml b/app/src/main/res/layout/activity_elf_dialog_web_view.xml index 1f7e233dc..972c12844 100644 --- a/app/src/main/res/layout/activity_elf_dialog_web_view.xml +++ b/app/src/main/res/layout/activity_elf_dialog_web_view.xml @@ -6,8 +6,10 @@ android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/dialog_gift_all_service_level_one.xml b/app/src/main/res/layout/dialog_gift_all_service_level_one.xml index 8b6953bd8..cb5dfbc24 100644 --- a/app/src/main/res/layout/dialog_gift_all_service_level_one.xml +++ b/app/src/main/res/layout/dialog_gift_all_service_level_one.xml @@ -13,12 +13,12 @@ diff --git a/app/src/main/res/layout/dialog_gift_all_service_level_three.xml b/app/src/main/res/layout/dialog_gift_all_service_level_three.xml index c1ff19708..90b10d4fc 100644 --- a/app/src/main/res/layout/dialog_gift_all_service_level_three.xml +++ b/app/src/main/res/layout/dialog_gift_all_service_level_three.xml @@ -10,180 +10,186 @@ type="com.mango.core.noble.AllServiceGiftProtocol.DataBean" /> - + android:layout_height="wrap_content"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_marginTop="60dp" + tools:background="@color/black"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_gift_all_service_level_two.xml b/app/src/main/res/layout/dialog_gift_all_service_level_two.xml index e4f521119..897f5fa02 100644 --- a/app/src/main/res/layout/dialog_gift_all_service_level_two.xml +++ b/app/src/main/res/layout/dialog_gift_all_service_level_two.xml @@ -13,12 +13,12 @@ diff --git a/app/src/main/res/layout/treasure_fairy_dialog_forest.xml b/app/src/main/res/layout/treasure_fairy_dialog_forest.xml index 4012aa17b..c549630e8 100644 --- a/app/src/main/res/layout/treasure_fairy_dialog_forest.xml +++ b/app/src/main/res/layout/treasure_fairy_dialog_forest.xml @@ -235,12 +235,13 @@ android:id="@+id/tv_nickname" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="用户昵称~" - android:textColor="#ffffffff" + android:layout_marginStart="5dp" + android:textColor="@color/white" android:textSize="13sp" app:layout_constraintBottom_toBottomOf="@id/iv_avatar" app:layout_constraintStart_toEndOf="@id/iv_avatar" - app:layout_constraintTop_toTopOf="@id/iv_avatar" /> + app:layout_constraintTop_toTopOf="@id/iv_avatar" + tools:text="用户昵称~" /> + tools:text="幸运值达到X后,下次夺宝获赠精灵球" /> diff --git a/app/src/main/res/layout/treasure_fairy_fragment_exchange_record_debris.xml b/app/src/main/res/layout/treasure_fairy_fragment_exchange_record_debris.xml index 72f6ce576..956041f62 100644 --- a/app/src/main/res/layout/treasure_fairy_fragment_exchange_record_debris.xml +++ b/app/src/main/res/layout/treasure_fairy_fragment_exchange_record_debris.xml @@ -33,7 +33,7 @@ diff --git a/app/src/main/res/layout/treasure_fairy_fragment_exchange_record_fairy.xml b/app/src/main/res/layout/treasure_fairy_fragment_exchange_record_fairy.xml index 94125dfa7..6c3cc0b60 100644 --- a/app/src/main/res/layout/treasure_fairy_fragment_exchange_record_fairy.xml +++ b/app/src/main/res/layout/treasure_fairy_fragment_exchange_record_fairy.xml @@ -41,7 +41,7 @@ diff --git a/app/src/main/res/layout/treasure_fairy_fragment_test_fairy.xml b/app/src/main/res/layout/treasure_fairy_fragment_test_fairy.xml index a65da53ff..f1a2c8cac 100644 --- a/app/src/main/res/layout/treasure_fairy_fragment_test_fairy.xml +++ b/app/src/main/res/layout/treasure_fairy_fragment_test_fairy.xml @@ -135,12 +135,11 @@ android:id="@+id/recycler_view" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="13dp" android:layout_marginTop="26dp" - android:layout_marginEnd="13dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="@id/view_bg_bottom" /> + app:layout_constraintTop_toTopOf="@id/view_bg_bottom" + app:layout_constraintWidth_percent="0.95" /> diff --git a/app/src/main/res/layout/treasure_fairy_item_forest_prize.xml b/app/src/main/res/layout/treasure_fairy_item_forest_prize.xml index 96cb6da8c..79d0969a1 100644 --- a/app/src/main/res/layout/treasure_fairy_item_forest_prize.xml +++ b/app/src/main/res/layout/treasure_fairy_item_forest_prize.xml @@ -1,5 +1,5 @@ - + android:id="@+id/fl_prize" + android:layout_width="0dp" + android:layout_height="0dp" + android:background="@drawable/shape_006e7c_to_00b9af" + app:layout_constraintDimensionRatio="1:1" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/treasure_fairy_item_test_fairy.xml b/app/src/main/res/layout/treasure_fairy_item_test_fairy.xml index d9f07004a..827de37be 100644 --- a/app/src/main/res/layout/treasure_fairy_item_test_fairy.xml +++ b/app/src/main/res/layout/treasure_fairy_item_test_fairy.xml @@ -11,7 +11,7 @@ android:background="@drawable/treasure_fairy_bg_test_fairy_item_unselect" tools:layout_width="65dp"> - + app:layout_constraintTop_toTopOf="parent" /> - + - + - - - + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index f665dbe57..18ffee693 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -194,9 +194,9 @@ 32dp 6dp - 242dp - 230dp - 150dp + 292dp + 280dp + 200dp 53dp 21sp diff --git a/core/src/main/java/com/mango/core/DemoCache.java b/core/src/main/java/com/mango/core/DemoCache.java index 4d8b7f92f..1adf80636 100644 --- a/core/src/main/java/com/mango/core/DemoCache.java +++ b/core/src/main/java/com/mango/core/DemoCache.java @@ -65,6 +65,7 @@ public class DemoCache { private static final String KEY_SHOW_FAIRY_TIP = "key_show_fairy_tip"; private static final String KEY_NEW_GIFT_TYPE_TIP = "key_new_gift_type_tip"; private static final String KEY_NEW_GIFT_TYPE_TIP_INDICATOR = "key_new_gift_type_tip_indicator"; + private static final String KEY_MY_FAIRY_INDEX = "key_my_fairy_index"; private static StatusBarNotificationConfig notificationConfig; @@ -393,4 +394,12 @@ public class DemoCache { return SettingsPref.instance().getBoolean(KEY_NEW_GIFT_TYPE_TIP_INDICATOR, true); } + public static void saveMyFairyIndex(int index) { + SettingsPref.instance().putInt(KEY_MY_FAIRY_INDEX, index); + } + + public static int readMyFairyIndex() { + return SettingsPref.instance().getInt(KEY_MY_FAIRY_INDEX, 0); + } + }