夺宝精灵:主页更多按钮

This commit is contained in:
huangjian
2023-02-20 11:29:15 +08:00
parent 9ddc66b4ae
commit f87d25ad10
12 changed files with 120 additions and 31 deletions

View File

@@ -1124,7 +1124,7 @@
android:theme="@style/dialog_web_view_activity"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.webview.ElfDialogWebViewActivity"
android:name=".ui.webview.FairyDialogWebViewActivity"
android:theme="@style/dialog_web_view_activity"
android:windowSoftInputMode="adjustPan" />
<activity
@@ -1289,6 +1289,10 @@
android:name=".ui.im.avtivity.SayHelloListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".treasurefairy.HomeDialog"
android:theme="@style/dialog_web_view_activity" />
</application>
</manifest>

View File

@@ -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));
}
}

View File

@@ -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, "贵族我的入口点击事件")

View File

@@ -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<TreasureFairyDialogHomeBinding>() {
class HomeDialog : BaseViewBindingActivity<TreasureFairyDialogHomeBinding>() {
private var selectIndex = 0
private var targetIndex: Int = -1
private val removeRunnable = Runnable { binding.llPrizeHint.removeAllViews() }
private val hintPrizeCacheList = ArrayList<PrizeInfo>()
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<TreasureFairyDialogHomeBinding>() {
)
}
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<TreasureFairyDialogHomeBinding>() {
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<TreasureFairyDialogHomeBinding>() {
}
}
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<TreasureFairyDialogHomeBinding>() {
}
}
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<TreasureFairyDialogHomeBinding>() {
}
}
viewModel.showGetKeyLiveData.observe(viewLifecycleOwner) {
viewModel.showGetKeyLiveData.observe(this) {
it.getContentIfNotHandled()?.let {
DialogManager(context).showOkCancelDialog("购买限时装扮活动夺宝券", "去参与", "取消") {
ElfDialogWebViewActivity.start(context, UriProvider.getFairyKey())
FairyDialogWebViewActivity.start(context, UriProvider.getFairyKey())
}
}
}

View File

@@ -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

View File

@@ -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) {

View File

@@ -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实例

View File

@@ -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);
}

View File

@@ -33,6 +33,32 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:id="@+id/ll_fairy"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="30dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_fairy"
android:layout_width="64dp"
android:layout_height="64dp"
android:src="@drawable/ic_radish_entrance" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:text="夺宝精灵"
android:textColor="@color/white"
android:textSize="10sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_radish"