银行账号数据结构 绑定dialog UI

This commit is contained in:
renhaoting 2025-11-27 16:30:33 +08:00
parent 1b35da0a4e
commit 2b66b84e3e
22 changed files with 198 additions and 120 deletions

View File

@ -8,4 +8,11 @@ data class Account(
val createdAt: Long, val createdAt: Long,
var goldCount: Long = 0L, var goldCount: Long = 0L,
var cashCount: Float = 0F, var cashCount: Float = 0F,
var bankInfo: BankInfo? = null,
)
data class BankInfo(
val bankName: String = "Pix2",
var bankAccount: String,
) )

View File

@ -5,10 +5,10 @@ import android.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import androidx.activity.viewModels import androidx.activity.viewModels
import com.ama.core.architecture.appBase.AppViewsActivity import com.ama.core.architecture.appBase.AppViewsActivity
import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.util.setOnClickBatch
import com.gamedog.vididin.R import com.gamedog.vididin.R
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.Account
import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.features.withdraw.widget.WithDrawItemView import com.gamedog.vididin.features.withdraw.widget.WithDrawItemView
import com.gamedog.vididin.main.interfaces.OnTabStyleListener import com.gamedog.vididin.main.interfaces.OnTabStyleListener
@ -36,7 +36,13 @@ class WithDrawActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), On
} }
override fun ViewBinding.initViews() { override fun ViewBinding.initViews() {
with(binding) { mItemViewList.add(withdraw01)
mItemViewList.add(withdraw10)
mItemViewList.add(withdraw20)
mItemViewList.add(withdraw50)
mItemViewList.add(withdraw100)
mItemViewList.add(withdraw300)
withdraw01.setNumAndAction(0, 0.1F, withdraw01.setNumAndAction(0, 0.1F,
{ itemIndex-> { itemIndex->
updateUIItemSelectStates(itemIndex) updateUIItemSelectStates(itemIndex)
@ -72,26 +78,23 @@ class WithDrawActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), On
}) })
withdrawPix2.setSelectedState(true)
updateUIItemSelectStates(0) updateUIItemSelectStates(0)
setOnClickBatch(tvSacar, withdrawRecord) { setOnClickBatch(tvSacar, withdrawRecord) {
when(this) { when(this) {
tvSacar -> { tvSacar -> {
val hasBindBank = AccountManager.hasValidBankInfo()
if (!hasBindBank) {
WithdrawBindBankDialog(this@WithDrawActivity).show()
} }
}
withdrawRecord -> { withdrawRecord -> {
Router.WithdrawRecord.startActivity(this@WithDrawActivity) Router.WithdrawRecord.startActivity(this@WithDrawActivity)
} }
} }
} }
}
mItemViewList.add(withdraw01)
mItemViewList.add(withdraw10)
mItemViewList.add(withdraw20)
mItemViewList.add(withdraw50)
mItemViewList.add(withdraw100)
mItemViewList.add(withdraw300)
updateUICashTotal() updateUICashTotal()
} }

View File

@ -17,8 +17,8 @@ class WithdrawBindBankDialog(context: Context) : BindingDialog<ViewBinding>(cont
private fun build() { private fun build() {
with() with()
setCenter() setBottom()
setMaskValue(0.8f) setMaskValue(0.9f)
setCanCancel(false) setCanCancel(false)
mBinding.run { mBinding.run {

View File

@ -6,7 +6,7 @@ import com.ama.core.architecture.util.SpUtil
import com.ama.core.architecture.util.eventbus.NotifyMan import com.ama.core.architecture.util.eventbus.NotifyMan
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.Account import com.gamedog.vididin.beans.Account
import com.gamedog.vididin.beans.BankInfo
object AccountManager { object AccountManager {
@ -51,6 +51,14 @@ object AccountManager {
NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Cash_Changed, null) NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Cash_Changed, null)
} }
fun getBankInfo(): BankInfo? {
return mAccount?.bankInfo
}
fun hasValidBankInfo(): Boolean {
val backInfo = getBankInfo()
return !backInfo?.bankName.isNullOrEmpty() && !backInfo.bankAccount.isNullOrEmpty()
}
} }

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffffff" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" />
</shape>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffeeeeee" />
<corners android:topLeftRadius="25dp" android:topRightRadius="25dp" android:bottomLeftRadius="25dp" android:bottomRightRadius="25dp" />
</shape>

View File

@ -334,7 +334,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="end" android:layout_gravity="end"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close_with_circle"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
/> />

View File

@ -89,7 +89,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="64dp" android:layout_marginTop="64dp"
android:src="@mipmap/icon_close"/> android:src="@mipmap/icon_close_with_circle"/>
</LinearLayout> </LinearLayout>

View File

@ -12,7 +12,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="right" android:layout_gravity="right"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close_with_circle"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
/> />

View File

@ -1,9 +1,31 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout <FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="20dp"
android:paddingHorizontal="15dp"
android:background="@drawable/bg_binding_bank_dialog"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="500dp"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" > android:layout_height="wrap_content" >
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textSize="16sp"
android:textStyle="bold"
android:textColor="@color/gray3"
android:text="@string/bind_bank_title"
/>
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_close" android:id="@+id/iv_close"
@ -12,65 +34,81 @@
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="end" android:layout_gravity="end"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close"
android:tint="@color/black"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
android:layout_alignParentEnd="true"
/>
</RelativeLayout>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textSize="14sp"
android:textStyle="bold"
android:textColor="@color/gray9"
android:text="@string/bind_bank_desc"
/> />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="horizontal"
android:padding="15dp" android:layout_marginTop="20dp"
android:layout_marginTop="60dp" android:gravity="center_vertical"
android:clipChildren="false" android:paddingVertical="16dp"
android:gravity="center_horizontal" android:paddingHorizontal="20dp"
android:background="@drawable/bg_benefit_top_white" android:background="@drawable/bg_binding_bank_edit">
>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_title" android:id="@+id/tv_cpf_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:textSize="15sp"
android:textSize="18sp" android:textStyle="bold"
android:textColor="@color/black_28" android:textColor="@color/gray3"
android:text="@string/zero_buy_rule_dialog_title" android:text="@string/bind_bank_cpf_title"
/> />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatEditText
android:id="@+id/tv_desc" android:id="@+id/tv_cpf_edit"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="15dp" android:layout_weight="1"
android:layout_marginHorizontal="10dp"
android:textSize="14sp" android:textSize="14sp"
android:textStyle="bold"
android:background="@null"
android:textColor="@color/gray6" android:textColor="@color/gray6"
android:text="@string/zero_buy_rule_dialog_descript" android:hint="Please Input you CPF number"
/> />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/tv_rules_1" android:id="@+id/iv_state"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:orientation="vertical"
android:textSize="14sp" android:layout_gravity="end"
android:textColor="@color/gray9" android:src="@mipmap/icon_success"
android:text="@string/zero_buy_rule_dialog_rule" android:layout_alignParentEnd="true"
/> />
</LinearLayout>
</LinearLayout>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_confirm" android:id="@+id/tv_confirm"
android:layout_width="240dp" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="46dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:background="@drawable/bg_but_zero_buy_dialog" android:background="@drawable/bg_but_zero_buy_dialog"
android:textSize="18sp" android:textSize="18sp"
android:textColor="@color/white" android:textColor="@color/white"
android:text="@string/understood" android:text="@string/continue1"
android:gravity="center" android:gravity="center"
android:layout_gravity="bottom"
/> />
</LinearLayout>
</FrameLayout> </FrameLayout>

View File

@ -11,7 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="end" android:layout_gravity="end"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close_with_circle"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
/> />

View File

@ -11,7 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="end" android:layout_gravity="end"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close_with_circle"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
/> />

View File

@ -11,7 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="end" android:layout_gravity="end"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close_with_circle"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
/> />

View File

@ -11,7 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="end" android:layout_gravity="end"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close_with_circle"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
/> />

View File

@ -11,7 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="end" android:layout_gravity="end"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close_with_circle"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
/> />

View File

@ -11,7 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="end" android:layout_gravity="end"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close_with_circle"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
/> />

View File

@ -11,7 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_gravity="end" android:layout_gravity="end"
android:src="@mipmap/icon_close" android:src="@mipmap/icon_close_with_circle"
android:layout_marginEnd="30dp" android:layout_marginEnd="30dp"
/> />

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -70,6 +70,11 @@
<string name="daily_sign_but_text_1">Fazer Login Agora</string> <string name="daily_sign_but_text_1">Fazer Login Agora</string>
<string name="daily_sign_but_text_2">Recuperar Login</string> <string name="daily_sign_but_text_2">Recuperar Login</string>
<string name="daily_sign_but_text_3">Disponível amanhã</string> <string name="daily_sign_but_text_3">Disponível amanhã</string>
<string name="bind_bank_title">Informações de retirada</string>
<string name="bind_bank_desc">*Atenção: Para garantir que seu saque seja processado sem problemas, preencha os dados corretamente.</string>
<string name="bind_bank_cpf_title">#CPF</string>
<string name="continue1">Continuar</string>
</resources> </resources>