dialog中传递activity

This commit is contained in:
renhaoting 2025-11-28 11:03:45 +08:00
parent cb1e475a83
commit 9efe53bf0d
18 changed files with 64 additions and 35 deletions

View File

@ -88,7 +88,7 @@ class WithDrawActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), On
if (!hasBindBank) {
WithdrawBindBankDialog(this@WithDrawActivity).setWithDrawCashNum(cashNum).show()
} else {
WithdrawInfoConfirmDialog(context).setWithDrawCashNum(cashNum).show()
WithdrawInfoConfirmDialog(this@WithDrawActivity).setWithDrawCashNum(cashNum).show()
}
}

View File

@ -2,11 +2,11 @@ package com.gamedog.vididin.features.withdraw
import android.app.Activity
import android.content.Context
import android.text.Editable
import android.text.TextWatcher
import androidx.core.view.isVisible
import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
import com.gamedog.vididin.R
@ -14,7 +14,7 @@ import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.databinding.DialogWithdrawBindingBankBinding as ViewBinding
class WithdrawBindBankDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class WithdrawBindBankDialog(activity: Activity) : BindingDialog<ViewBinding>(activity, ViewBinding::inflate) {
private var mWithdrawCashNum: Float = 0F
@ -38,7 +38,7 @@ class WithdrawBindBankDialog(context: Context) : BindingDialog<ViewBinding>(cont
tvConfirm -> {
saveBankAccount(mBinding.tvCpfEdit.text.toString().trim())
WithdrawInfoConfirmDialog(context).setWithDrawCashNum(mWithdrawCashNum).show()
WithdrawInfoConfirmDialog(mActivity).setWithDrawCashNum(mWithdrawCashNum).show()
dismiss()
}
}

View File

@ -1,14 +1,14 @@
package com.gamedog.vididin.features.withdraw
import android.content.Context
import android.app.Activity
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
import com.gamedog.vididin.databinding.DialogWithdrawFailBinding as ViewBinding
import com.gamedog.vididin.router.Router
class WithdrawFailDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class WithdrawFailDialog(context: Activity) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
init {
build()
@ -42,7 +42,7 @@ class WithdrawFailDialog(context: Context) : BindingDialog<ViewBinding>(context,
private fun gotoFeedback() {
ownerActivity?.let { Router.Feedback.startActivity(it) }
Router.Feedback.startActivity(mActivity)
}

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.features.withdraw
import android.app.Activity
import android.content.Context
import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.setOnClickBatch
@ -11,7 +12,7 @@ import com.gamedog.vididin.databinding.DialogWithdrawInfoConfirmBinding as ViewB
import com.gamedog.vididin.router.Router
class WithdrawInfoConfirmDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class WithdrawInfoConfirmDialog(context: Activity) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
private var mWithdrawCashNum: Float = 0F
@ -38,7 +39,7 @@ class WithdrawInfoConfirmDialog(context: Context) : BindingDialog<ViewBinding>(c
}
tvActionApply -> {
WithdrawWatchAdDialog(context).show()
WithdrawWatchAdDialog(mActivity).show()
dismiss()
}
}

View File

@ -1,13 +1,14 @@
package com.gamedog.vididin.features.withdraw
import android.app.Activity
import android.content.Context
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
import com.gamedog.vididin.databinding.DialogWithdrawSuccessBinding as ViewBinding
class WithdrawSuccessDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class WithdrawSuccessDialog(context: Activity) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
init {
build()

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.features.withdraw
import android.app.Activity
import android.content.Context
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
@ -10,7 +11,7 @@ import com.gamedog.vididin.router.Router
import kotlin.random.Random
class WithdrawWatchAdDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class WithdrawWatchAdDialog(context: Activity) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
private var mWithdrawCashNum: Float = 0F
@ -48,8 +49,8 @@ class WithdrawWatchAdDialog(context: Context) : BindingDialog<ViewBinding>(conte
// TODO -
//ownerActivity?.let { Router.Withdraw.startActivity(it) }
WithdrawFailDialog(context).show()
WithdrawSuccessDialog(context).show()
WithdrawFailDialog(mActivity).show()
WithdrawSuccessDialog(mActivity).show()
}

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.features.zero
import android.app.Activity
import android.content.Context
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
@ -8,7 +9,7 @@ import com.gamedog.vididin.databinding.DialogZeroBuyFailBinding as ViewBinding
import com.gamedog.vididin.router.Router
class ZeroBuyFailDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class ZeroBuyFailDialog(context: Activity) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
init {
build()

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.features.zero
import android.app.Activity
import android.content.Context
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
@ -8,7 +9,7 @@ import com.gamedog.vididin.databinding.DialogZeroBuyNotWinBinding as ViewBinding
import com.gamedog.vididin.router.Router
class ZeroBuyNotWinDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class ZeroBuyNotWinDialog(context: Activity) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
init {
build()

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.features.zero
import android.app.Activity
import android.content.Context
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
@ -8,7 +9,7 @@ import com.gamedog.vididin.databinding.DialogZeroBuyRuleBinding as ViewBinding
import com.gamedog.vididin.router.Router
class ZeroBuyRulesDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class ZeroBuyRulesDialog(context: Activity) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
init {
build()

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.features.zero
import android.app.Activity
import android.content.Context
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
@ -8,7 +9,7 @@ import com.gamedog.vididin.databinding.DialogZeroBuyWinBinding as ViewBinding
import com.gamedog.vididin.router.Router
class ZeroBuyWinDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class ZeroBuyWinDialog(context: Activity) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
init {
build()

View File

@ -8,7 +8,7 @@ import com.gamedog.vididin.databinding.DialogBeginnerGiftBinding
import com.gamedog.vididin.router.Router
class BeginnerGiftDialog(context: Context) : BindingDialog<DialogBeginnerGiftBinding>(context, DialogBeginnerGiftBinding::inflate) {
class BeginnerGiftDialog(activity: Activity) : BindingDialog<DialogBeginnerGiftBinding>(activity, DialogBeginnerGiftBinding::inflate) {
init {
build()

View File

@ -1,5 +1,6 @@
package com.gamedog.vididin.main
import android.app.Activity
import android.content.Context
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
@ -7,7 +8,7 @@ import com.gamedog.vididin.databinding.DialogWatchVideoBinding
import com.gamedog.vididin.main.fragments.task.RewardDetail
class WatchVideoDialog(context: Context) : BindingDialog<DialogWatchVideoBinding>(context, DialogWatchVideoBinding::inflate) {
class WatchVideoDialog(context: Activity) : BindingDialog<DialogWatchVideoBinding>(context, DialogWatchVideoBinding::inflate) {
private lateinit var mDataList: List<RewardDetail>
init {

View File

@ -59,7 +59,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
setOnClickBatch(ivGotoDailySign, llTaskBenefit, llTaskWatchVideo, llTaskGame, llTaskZerobuy, tvWatchVideo, tvWithdraw) {
when(this) {
ivGotoDailySign->{
DailySignDialog(context).show()
DailySignDialog(requireActivity()).show()
}
llTaskBenefit->{
@ -67,7 +67,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}
llTaskWatchVideo->{
WatchVideoDialog(requireContext()).show()
WatchVideoDialog(requireActivity()).show()
}
llTaskGame->{
@ -79,7 +79,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}
tvWatchVideo->{
WatchVideoDialog(requireContext()).show()
WatchVideoDialog(requireActivity()).show()
}
tvWithdraw->{

View File

@ -60,7 +60,7 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
Router.Benefit.startActivity(requireActivity())
},
PopMenuIconView.MenuItem(R.mipmap.home_menu_2) {
WatchVideoDialog(requireContext()).show()
WatchVideoDialog(requireActivity()).show()
},
PopMenuIconView.MenuItem(R.mipmap.home_menu_3) {

View File

@ -1,5 +1,6 @@
package com.gamedog.vididin.main.fragments.task
import android.app.Activity
import android.content.Context
import androidx.core.view.isVisible
import com.ama.core.architecture.util.setOnClickBatch
@ -9,7 +10,7 @@ import com.gamedog.vididin.manager.TaskManager
import com.gamedog.vididin.widget.DailySignItemView
class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(context, DialogDailySignBinding::inflate) {
class DailySignDialog(context: Activity) : BindingDialog<DialogDailySignBinding>(context, DialogDailySignBinding::inflate) {
private var mCurDayIndex: Int = 0
private var mConfigList: List<RewardDetail>? = emptyList()
private var mSignItemViewList: MutableList<DailySignItemView> = mutableListOf()
@ -57,7 +58,7 @@ class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(
private fun clickedNormalSign() {
if (TaskManager.instance().executeDailySign(mCurDayIndex, false, false)) {
DailySignSuccessDialog(context).initData(mConfigList?.get(mCurDayIndex)?.value, true).show()
DailySignSuccessDialog(mActivity).initData(mConfigList?.get(mCurDayIndex)?.value, true).show()
updateUI(mCurDayIndex)
}
}
@ -65,7 +66,7 @@ class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(
private fun clickedAdSingleBut() {
startAdTask("signalAd", {
if (TaskManager.instance().executeDailySign(mCurDayIndex, false, true)) {
DailySignSuccessDialog(context).initData(mConfigList?.get(mCurDayIndex)?.value, false).show()
DailySignSuccessDialog(mActivity).initData(mConfigList?.get(mCurDayIndex)?.value, false).show()
updateUI(mCurDayIndex)
}
})
@ -74,7 +75,7 @@ class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(
private fun clickedAdDoubleBut() {
startAdTask("doubleAd", {
if (TaskManager.instance().executeDailySign(mCurDayIndex, true, true)) {
DailySignSuccessDialog(context).initData((mConfigList?.get(mCurDayIndex)?.value)?.times(
DailySignSuccessDialog(mActivity).initData((mConfigList?.get(mCurDayIndex)?.value)?.times(
2
), false).show()
updateUI(mCurDayIndex)
@ -87,7 +88,7 @@ class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(
if (firstForgotSignDayIndex > 0) {
startAdTask("complementAd", {
if (TaskManager.instance().executeDailySign(firstForgotSignDayIndex, false, false)){
DailySignSuccessDialog(context).initData(mConfigList?.get(firstForgotSignDayIndex)?.value, false).show()
DailySignSuccessDialog(mActivity).initData(mConfigList?.get(firstForgotSignDayIndex)?.value, false).show()
updateUI(firstForgotSignDayIndex)
}
})

View File

@ -1,5 +1,6 @@
package com.gamedog.vididin.main.fragments.task
import android.app.Activity
import android.content.Context
import androidx.core.view.isVisible
import com.ama.core.architecture.util.setOnClickBatch
@ -7,7 +8,7 @@ import com.ama.core.architecture.widget.BindingDialog
import com.gamedog.vididin.databinding.DialogDailySignSuccessBinding as ViewBinding
class DailySignSuccessDialog(context: Context) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
class DailySignSuccessDialog(context: Activity) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
init {
build()

View File

@ -0,0 +1,19 @@
package com.ama.core.architecture.util
import android.app.Activity
import android.content.Intent
import com.ama.core.architecture.BaseApp
class AndroidUtil private constructor() {
companion object {
}
}

View File

@ -1,7 +1,7 @@
package com.ama.core.architecture.widget
import android.app.Activity
import android.app.Dialog
import android.content.Context
import android.content.DialogInterface
import android.graphics.Bitmap
import android.graphics.Color
@ -31,9 +31,9 @@ import com.ama.core.architecture.util.ScreenUtils
import com.ama.core.common.util.dp
open class BindingDialog<VB : ViewBinding>(private val context: Context,
open class BindingDialog<VB : ViewBinding>(protected val mActivity: Activity,
private val inflate: (LayoutInflater) -> VB,
themeResId: Int = R.style.LDialog) : Dialog(context, themeResId), LifecycleEventObserver {
themeResId: Int = R.style.LDialog) : Dialog(mActivity, themeResId), LifecycleEventObserver {
private val views = SparseArray<View>()
private var width = 0
private var height = 0
@ -89,8 +89,8 @@ open class BindingDialog<VB : ViewBinding>(private val context: Context,
}
fun init() {
if (context is ComponentActivity) {
context.lifecycle.addObserver(this)
if (mActivity is ComponentActivity) {
mActivity.lifecycle.addObserver(this)
}
setCanceledOnTouchOutside(true)
window?.setBackgroundDrawableResource(R.color.transparent)
@ -193,7 +193,7 @@ open class BindingDialog<VB : ViewBinding>(private val context: Context,
}
fun setBgColorRes(colorRes: Int): BindingDialog<VB> {
bgColor = ContextCompat.getColor(context, colorRes)
bgColor = ContextCompat.getColor(mActivity, colorRes)
return setBg()
}