diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0052510a1..4f8691d90 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1124,7 +1124,7 @@
android:theme="@style/dialog_web_view_activity"
android:windowSoftInputMode="adjustPan" />
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/mango/moshen/avroom/dialog/RoomPlayDialog.java b/app/src/main/java/com/mango/moshen/avroom/dialog/RoomPlayDialog.java
index 217791296..f08ed446d 100644
--- a/app/src/main/java/com/mango/moshen/avroom/dialog/RoomPlayDialog.java
+++ b/app/src/main/java/com/mango/moshen/avroom/dialog/RoomPlayDialog.java
@@ -15,7 +15,7 @@ import com.mango.moshen.R;
import com.mango.moshen.databinding.DialogRoomPlayBinding;
import com.mango.moshen.shipantics.PullRadishActivity;
import com.mango.moshen.treasure_box.widget.GoldBoxHelper;
-import com.netease.nim.uikit.support.glide.GlideApp;
+import com.mango.moshen.treasurefairy.HomeDialog;
/**
@@ -53,6 +53,7 @@ public class RoomPlayDialog extends BottomSheetDialog {
private void init() {
binding.llRadish.setVisibility(GoldBoxHelper.isShowRadish() ? View.VISIBLE : View.GONE);
binding.llRadish.setOnClickListener(v -> PullRadishActivity.start(context));
+ binding.llFairy.setOnClickListener(v -> HomeDialog.start(context));
}
}
diff --git a/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt b/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt
index 65da0ec47..f0987e94a 100644
--- a/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt
+++ b/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt
@@ -55,7 +55,6 @@ import com.mango.moshen.home.helper.OpenRoomHelper
import com.mango.moshen.module_hall.HallDataManager
import com.mango.moshen.skill.activity.SkillHomeActivity
import com.mango.moshen.skill.activity.SkillHomeActivity.Companion.start
-import com.mango.moshen.treasurefairy.HomeDialog
import com.mango.moshen.ui.patriarch.PatriarchModeActivity
import com.mango.moshen.ui.pay.ChargeActivity
import com.mango.moshen.ui.relation.AttentionListActivity
@@ -519,10 +518,6 @@ class MeFragment : BaseFragment(), View.OnClickListener {
)
R.id.me_item_setting -> UIHelper.showSettingAct(mContext)
R.id.me_item_vip -> {
- if (BuildConfig.DEBUG) {
- HomeDialog().show(mContext)
- return
- }
VipMainActivity.start(mContext)
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_VIP_ENTRANCE_ME_CLICK, "贵族我的入口点击事件")
diff --git a/app/src/main/java/com/mango/moshen/treasurefairy/HomeDialog.kt b/app/src/main/java/com/mango/moshen/treasurefairy/HomeDialog.kt
index 3658a6992..9ad9af126 100644
--- a/app/src/main/java/com/mango/moshen/treasurefairy/HomeDialog.kt
+++ b/app/src/main/java/com/mango/moshen/treasurefairy/HomeDialog.kt
@@ -2,18 +2,22 @@ package com.mango.moshen.treasurefairy
import android.animation.ObjectAnimator
import android.annotation.SuppressLint
+import android.content.Context
+import android.content.Intent
import android.graphics.Path
+import android.os.Bundle
import android.view.*
import android.widget.LinearLayout
import android.widget.TextView
-import androidx.fragment.app.activityViewModels
+import androidx.activity.viewModels
import com.mango.core.UriProvider
import com.mango.core.treasurefairy.PrizeInfo
import com.mango.moshen.R
-import com.mango.moshen.base.BaseDialog
+import com.mango.moshen.base.BaseViewBindingActivity
import com.mango.moshen.common.widget.dialog.DialogManager
import com.mango.moshen.databinding.TreasureFairyDialogHomeBinding
-import com.mango.moshen.ui.webview.ElfDialogWebViewActivity
+import com.mango.moshen.ui.webview.FairyDialogWebViewActivity
+import com.netease.nim.uikit.common.ui.dialog.CustomPopupWindow
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -21,17 +25,23 @@ import io.reactivex.disposables.Disposable
import java.util.concurrent.TimeUnit
-class HomeDialog : BaseDialog() {
+class HomeDialog : BaseViewBindingActivity() {
private var selectIndex = 0
private var targetIndex: Int = -1
private val removeRunnable = Runnable { binding.llPrizeHint.removeAllViews() }
private val hintPrizeCacheList = ArrayList()
- override var width = WindowManager.LayoutParams.MATCH_PARENT
- override var gravity = Gravity.BOTTOM
private var disposable: Disposable? = null
- private val viewModel: FairyViewModel by activityViewModels()
+ private val viewModel: FairyViewModel by viewModels()
+
+ companion object {
+ @JvmStatic
+ fun start(context: Context) {
+ val starter = Intent(context, HomeDialog::class.java)
+ context.startActivity(starter)
+ }
+ }
private val fairyItems by lazy {
listOf(
@@ -41,11 +51,22 @@ class HomeDialog : BaseDialog() {
)
}
+ override fun onCreate(savedInstanceState: Bundle?) {
+
+ super.onCreate(savedInstanceState)
+ }
+
@SuppressLint("SetTextI18n")
override fun init() {
+ //这里的height用MATCH_PARENT状态栏会被顶上去,不知道什么鬼
+ window.setLayout(
+ WindowManager.LayoutParams.MATCH_PARENT,
+ ScreenUtil.screenHeight - ScreenUtil.getStatusBarHeight(context)
+ )
+ window.setGravity(Gravity.BOTTOM)
looperHintPrize()
binding.tvKeyNum.setOnClickListener {
- ElfDialogWebViewActivity.start(context, UriProvider.getFairyKey())
+ FairyDialogWebViewActivity.start(context, UriProvider.getFairyKey())
}
binding.ivMyFairy.setOnClickListener {
MyFairyDialog.newInstance().show(context)
@@ -62,6 +83,24 @@ class HomeDialog : BaseDialog() {
rotatePrize()
viewModel.drawFairy(100)
}
+ binding.rootView.setOnClickListener { finish() }
+ binding.viewBg.setOnClickListener {
+ //do nothing
+ }
+
+ binding.ivMore.setOnClickListener {
+ val popupWindow = CustomPopupWindow(context, LinearLayout.VERTICAL)
+ popupWindow.addItem("规则说明") {
+ FairyDialogWebViewActivity.start(context, UriProvider.getFairyRule())
+ }
+ popupWindow.addItem("获奖记录") {
+ FairyDialogWebViewActivity.start(context, UriProvider.getFairyRecord())
+ }
+ popupWindow.addItem("夺宝达人") {
+ FairyDialogWebViewActivity.start(context, UriProvider.getFairySuperior())
+ }
+ popupWindow.show(binding.ivMore, Gravity.BOTTOM or Gravity.CENTER_HORIZONTAL)
+ }
binding.viewPrizeClick.setOnClickListener {
if (disposable?.isDisposed == false && targetIndex != -1) {
@@ -74,7 +113,7 @@ class HomeDialog : BaseDialog() {
}
}
- viewModel.resultLiveData.observe(viewLifecycleOwner) { event ->
+ viewModel.resultLiveData.observe(this) { event ->
event?.getContentIfNotHandled()?.let {
targetIndex = viewModel.prizeInfoListLiveData.value?.indexOf(it[0]) ?: -1
hintPrizeCacheList.addAll(it.filter { prizeInfo -> prizeInfo.rewardLevel >= 3 })
@@ -84,13 +123,13 @@ class HomeDialog : BaseDialog() {
}
}
- viewModel.prizeInfoListLiveData.observe(viewLifecycleOwner) {
+ viewModel.prizeInfoListLiveData.observe(this) {
it?.forEachIndexed { index, prizeInfo ->
fairyItems[index].setPrizeInfo(prizeInfo)
}
}
- viewModel.drawInfoLiveData.observe(viewLifecycleOwner) {
+ viewModel.drawInfoLiveData.observe(this) {
it?.let {
binding.tvKeyNum.text = it.drawTicketNum.toString()
binding.tvCurrentLuckyValue.text = it.luckyNum.toString()
@@ -112,10 +151,10 @@ class HomeDialog : BaseDialog() {
}
}
- viewModel.showGetKeyLiveData.observe(viewLifecycleOwner) {
+ viewModel.showGetKeyLiveData.observe(this) {
it.getContentIfNotHandled()?.let {
DialogManager(context).showOkCancelDialog("购买限时装扮活动夺宝券", "去参与", "取消") {
- ElfDialogWebViewActivity.start(context, UriProvider.getFairyKey())
+ FairyDialogWebViewActivity.start(context, UriProvider.getFairyKey())
}
}
}
diff --git a/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java b/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java
index 36f129cd3..2471be029 100644
--- a/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java
+++ b/app/src/main/java/com/mango/moshen/ui/im/MessageListPanelEx.java
@@ -9,6 +9,7 @@ import android.os.CountDownTimer;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Pair;
+import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -1032,7 +1033,7 @@ public class MessageListPanelEx {
CustomPopupWindow alertDialog = new CustomPopupWindow(container.activity, LinearLayout.HORIZONTAL);
prepareDialogItems(item, alertDialog);
- alertDialog.show(clickView, 0, ScreenUtil.dip2px(5));
+ alertDialog.show(clickView, Gravity.TOP | Gravity.CENTER_HORIZONTAL);
}
// 长按消息item的菜单项准备。如果消息item的MsgViewHolder处理长按事件(MsgViewHolderBase#onItemLongClick),且返回为true,
diff --git a/app/src/main/java/com/mango/moshen/ui/im/recent/RecentContactsFragment.java b/app/src/main/java/com/mango/moshen/ui/im/recent/RecentContactsFragment.java
index 3e565dc0c..541b6b2d5 100644
--- a/app/src/main/java/com/mango/moshen/ui/im/recent/RecentContactsFragment.java
+++ b/app/src/main/java/com/mango/moshen/ui/im/recent/RecentContactsFragment.java
@@ -3,6 +3,7 @@ package com.mango.moshen.ui.im.recent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Pair;
+import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -425,7 +426,7 @@ public class RecentContactsFragment extends TFragment {
refreshMessages(false);
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_CHAT_LIST_TOP_CLICK,"聊天列表长按置顶聊天点击");
});
- alertDialog.show(view, view.getMeasuredWidth() / 2, 0);
+ alertDialog.show(view, Gravity.TOP | Gravity.CENTER_HORIZONTAL);
}
private void addTag(RecentContact recent, long tag) {
diff --git a/app/src/main/java/com/mango/moshen/ui/setting/LabActivity.java b/app/src/main/java/com/mango/moshen/ui/setting/LabActivity.java
index b61e23e6c..89e800789 100644
--- a/app/src/main/java/com/mango/moshen/ui/setting/LabActivity.java
+++ b/app/src/main/java/com/mango/moshen/ui/setting/LabActivity.java
@@ -10,7 +10,7 @@ import com.mango.moshen.base.BaseActivity;
import com.mango.moshen.ui.utils.ImageLoadKt;
import com.mango.core.Env;
import com.mango.core.auth.AuthModel;
-import com.mango.moshen.ui.webview.ElfDialogWebViewActivity;
+import com.mango.moshen.ui.webview.FairyDialogWebViewActivity;
/**
@@ -29,7 +29,7 @@ public class LabActivity extends BaseActivity {
);
findViewById(R.id.rb_flutter_test).setOnClickListener(v ->
- ElfDialogWebViewActivity.start(this, "http://192.168.9.200:5500/view/yinyou/modules/act-treasureSnatching/index.html")
+ FairyDialogWebViewActivity.start(this, "http://192.168.9.200:5500/view/yinyou/modules/act-treasureSnatching/index.html")
);
//根据ID找到RadioGroup实例
diff --git a/app/src/main/java/com/mango/moshen/ui/webview/ElfDialogWebViewActivity.java b/app/src/main/java/com/mango/moshen/ui/webview/FairyDialogWebViewActivity.java
similarity index 86%
rename from app/src/main/java/com/mango/moshen/ui/webview/ElfDialogWebViewActivity.java
rename to app/src/main/java/com/mango/moshen/ui/webview/FairyDialogWebViewActivity.java
index 9dfc14d0c..a25749bfb 100644
--- a/app/src/main/java/com/mango/moshen/ui/webview/ElfDialogWebViewActivity.java
+++ b/app/src/main/java/com/mango/moshen/ui/webview/FairyDialogWebViewActivity.java
@@ -10,11 +10,11 @@ import android.view.WindowManager;
import com.mango.moshen.R;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
-public class ElfDialogWebViewActivity extends CommonWebViewActivity {
+public class FairyDialogWebViewActivity extends CommonWebViewActivity {
public static void start(Context context, String url) {
- Intent intent = new Intent(context, ElfDialogWebViewActivity.class);
+ Intent intent = new Intent(context, FairyDialogWebViewActivity.class);
intent.putExtra("url", url);
context.startActivity(intent);
}
diff --git a/app/src/main/res/layout/dialog_room_play.xml b/app/src/main/res/layout/dialog_room_play.xml
index b9bf68ef9..45c7594fd 100644
--- a/app/src/main/res/layout/dialog_room_play.xml
+++ b/app/src/main/res/layout/dialog_room_play.xml
@@ -33,6 +33,32 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
+
+
+
+
+
+
+
+
(itemText, listener));
}
- public void show(View anchor, int xoff, int yoff) {
+ public void show(View anchor, int popupGravity) {
for (Pair pair : itemTextList) {
llRoot.addView(
createTextView(pair.first, pair.second),
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, ScreenUtil.dip2px(30))
);
}
- setPopupGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
+ setPopupGravity(popupGravity);
showPopupWindow(anchor);
}