拆分 取现sub页面
This commit is contained in:
parent
b09e9718a0
commit
968c5354a1
|
|
@ -41,6 +41,7 @@
|
||||||
<activity android:name="com.gamedog.vididin.features.zero.ZeroBuyActivity" android:exported="false" />
|
<activity android:name="com.gamedog.vididin.features.zero.ZeroBuyActivity" android:exported="false" />
|
||||||
<activity android:name="com.gamedog.vididin.features.winrecords.WinRecordsActivity" android:exported="false" />
|
<activity android:name="com.gamedog.vididin.features.winrecords.WinRecordsActivity" android:exported="false" />
|
||||||
<activity android:name="com.gamedog.vididin.features.withdraw.WithDrawActivity" android:exported="false" />
|
<activity android:name="com.gamedog.vididin.features.withdraw.WithDrawActivity" android:exported="false" />
|
||||||
|
<activity android:name="com.gamedog.vididin.features.withdraw.WithDrawSubActivity" android:exported="false" />
|
||||||
<activity android:name="com.gamedog.vididin.features.splash.SplashActivity" android:exported="false" />
|
<activity android:name="com.gamedog.vididin.features.splash.SplashActivity" android:exported="false" />
|
||||||
<activity android:name="com.gamedog.vididin.features.version.VersionActivity" android:exported="false" />
|
<activity android:name="com.gamedog.vididin.features.version.VersionActivity" android:exported="false" />
|
||||||
<activity android:name="com.gamedog.vididin.features.feedback.FeedbackActivity" android:exported="false" />
|
<activity android:name="com.gamedog.vididin.features.feedback.FeedbackActivity" android:exported="false" />
|
||||||
|
|
@ -50,6 +51,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="androidx.startup.InitializationProvider"
|
android:name="androidx.startup.InitializationProvider"
|
||||||
android:authorities="${applicationId}.androidx-startup"
|
android:authorities="${applicationId}.androidx-startup"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,395 @@
|
||||||
|
package com.gamedog.vididin.features.withdraw
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import android.content.Intent
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import androidx.activity.viewModels
|
||||||
|
import androidx.lifecycle.Lifecycle
|
||||||
|
import androidx.lifecycle.lifecycleScope
|
||||||
|
import androidx.lifecycle.repeatOnLifecycle
|
||||||
|
import com.ama.core.architecture.appBase.AppViewsEmptyViewModelActivity
|
||||||
|
import com.ama.core.architecture.util.SpUtil
|
||||||
|
import com.ama.core.architecture.util.setOnClickBatch
|
||||||
|
import com.gamedog.vididin.VidiConst
|
||||||
|
import com.vididin.real.money.game.R
|
||||||
|
import com.gamedog.vididin.VididinEvents
|
||||||
|
import com.gamedog.vididin.beans.resp.PayoutCheck
|
||||||
|
import com.gamedog.vididin.beans.resp.PayoutReply
|
||||||
|
import com.gamedog.vididin.beans.resp.WithdrawRecord
|
||||||
|
import com.gamedog.vididin.core.login.login.AccountManager
|
||||||
|
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawBindBankDialog
|
||||||
|
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawFailDialog
|
||||||
|
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawInfoConfirmDialog
|
||||||
|
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawSuccessDialog
|
||||||
|
import com.gamedog.vididin.features.withdraw.widget.WithDrawItemView
|
||||||
|
import com.gamedog.vididin.main.interfaces.OnTabStyleListener
|
||||||
|
import com.gamedog.vididin.netbase.Result
|
||||||
|
import com.gamedog.vididin.router.Router
|
||||||
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlin.getValue
|
||||||
|
import com.vididin.real.money.game.databinding.ActivityWithdrawSubBinding as ViewBinding
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@AndroidEntryPoint
|
||||||
|
class WithDrawSubActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyleListener {
|
||||||
|
|
||||||
|
private val viewModel: WithdrawViewModel by viewModels()
|
||||||
|
private val mItemViewList: MutableList<WithDrawItemView> = mutableListOf()
|
||||||
|
private var mCurSelectedIndex: Int = 0
|
||||||
|
private val mRecordList: MutableList<WithdrawRecord> by lazy {
|
||||||
|
SpUtil.instance().getList<WithdrawRecord>(SpUtil.KEY_WITHDRAW_HISTORY_LIST).toMutableList()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater)
|
||||||
|
|
||||||
|
override fun ViewBinding.initWindowInsets() {
|
||||||
|
setImmerseRootView(contentRoot)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun ViewBinding.initViews() {
|
||||||
|
titlebar.setTitleText(R.string.sacar)
|
||||||
|
|
||||||
|
mItemViewList.add(withdraw01)
|
||||||
|
mItemViewList.add(withdraw10)
|
||||||
|
mItemViewList.add(withdraw20)
|
||||||
|
mItemViewList.add(withdraw50)
|
||||||
|
mItemViewList.add(withdraw100)
|
||||||
|
mItemViewList.add(withdraw300)
|
||||||
|
|
||||||
|
withdraw01.setNumAndAction(0, 0.1F,
|
||||||
|
{ itemIndex->
|
||||||
|
updateUIItemSelectStates(itemIndex)
|
||||||
|
})
|
||||||
|
|
||||||
|
withdraw10.setNumAndAction(1, 10F,
|
||||||
|
{ itemIndex->
|
||||||
|
updateUIItemSelectStates(itemIndex)
|
||||||
|
})
|
||||||
|
|
||||||
|
withdraw20.setNumAndAction(2, 20F,
|
||||||
|
{ itemIndex->
|
||||||
|
updateUIItemSelectStates(itemIndex)
|
||||||
|
})
|
||||||
|
|
||||||
|
withdraw50.setNumAndAction(3, 50F,
|
||||||
|
{ itemIndex->
|
||||||
|
updateUIItemSelectStates(itemIndex)
|
||||||
|
})
|
||||||
|
|
||||||
|
withdraw100.setNumAndAction(4, 100F,
|
||||||
|
{ itemIndex->
|
||||||
|
updateUIItemSelectStates(itemIndex)
|
||||||
|
})
|
||||||
|
|
||||||
|
withdraw300.setNumAndAction(5, 300F,
|
||||||
|
{ itemIndex->
|
||||||
|
updateUIItemSelectStates(itemIndex)
|
||||||
|
})
|
||||||
|
|
||||||
|
withdrawPix2.setIconAndText(R.mipmap.pix2_big, R.string.pix2, {
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
withdrawPix2.setSelectedState(true)
|
||||||
|
updateUIItemSelectStates(0)
|
||||||
|
|
||||||
|
setOnClickBatch(tvSacar, withdrawRecord) {
|
||||||
|
when(this) {
|
||||||
|
tvSacar -> {
|
||||||
|
val hasBindBank = AccountManager.hasValidBankInfo()
|
||||||
|
val cashNum = mItemViewList.get(mCurSelectedIndex).getCashNum()
|
||||||
|
if (!hasBindBank) {
|
||||||
|
WithdrawBindBankDialog(this@WithDrawSubActivity).setWithDrawCashNum(cashNum).show()
|
||||||
|
} else {
|
||||||
|
WithdrawInfoConfirmDialog(this@WithDrawSubActivity).setWithDrawCashNum(cashNum).show()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
withdrawRecord -> {
|
||||||
|
Router.WithdrawRecord.startActivity(this@WithDrawSubActivity)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
updateUICashTotal()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun updateUIItemSelectStates(itemIndex: Int) {
|
||||||
|
mCurSelectedIndex = itemIndex
|
||||||
|
mItemViewList.forEachIndexed { index, view ->
|
||||||
|
view.setSelectedState(index == mCurSelectedIndex)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun updateUICashTotal() {
|
||||||
|
binding.tvCashTotal.text = AccountManager.getCash().toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun ViewBinding.initListeners() {
|
||||||
|
registerEvents({ data->
|
||||||
|
when (data?.mEventType) {
|
||||||
|
VididinEvents.Event_Account_Cash_Changed -> {
|
||||||
|
updateUICashTotal()
|
||||||
|
}
|
||||||
|
|
||||||
|
VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW -> {
|
||||||
|
var withdrawNum: Float = (data.mData as Double).toFloat()
|
||||||
|
requestInit(withdrawNum)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}, VididinEvents.Event_Account_Cash_Changed, VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW)
|
||||||
|
|
||||||
|
|
||||||
|
checkTransactionState()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override fun ViewBinding.initObservers() {
|
||||||
|
//TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onTabIsDarkFont(isDarkFont: Boolean) {
|
||||||
|
//TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun requestInit(withdrawNum: Float) {
|
||||||
|
lifecycleScope.launch {
|
||||||
|
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
|
viewModel.InitData.collect { result ->
|
||||||
|
when (result) {
|
||||||
|
is Result.Loading -> {
|
||||||
|
|
||||||
|
}
|
||||||
|
is Result.Success -> {
|
||||||
|
val reqInitBean = result.data.data
|
||||||
|
|
||||||
|
reqInitBean?.let {
|
||||||
|
var errorHintRes = 0
|
||||||
|
|
||||||
|
if (it.error == 0 && !it.uuid.isNullOrEmpty() && !it.items.isNullOrEmpty()) {
|
||||||
|
val itemId = if (withdrawNum <= VidiConst.WITHDRAW_SMALL_NUM) 0 else 1
|
||||||
|
val withDrawItem = it.items?.get(itemId)!!
|
||||||
|
if (withDrawItem.status == INIT_ACTIVE) {
|
||||||
|
requestPayout(it.uuid!!, withDrawItem.id, withdrawNum)
|
||||||
|
} else {
|
||||||
|
errorHintRes = R.string.withdraw_fail_reach_day_limit
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// 0成功,1失败,2签名验证失败,3客户端版本过低,4 ts长度错误
|
||||||
|
when (it.error) {
|
||||||
|
3-> errorHintRes = R.string.withdraw_fail_version_toolow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errorHintRes > 0) {
|
||||||
|
showFailDialog(errorHintRes)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
is Result.Error -> {
|
||||||
|
showFailDialog(R.string.withdraw_fail_unkown_error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel.withdrawInit()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun requestPayout(initUUID: String, payItemId: Int, payCashNum: Float) {
|
||||||
|
val currentTimeMs = System.currentTimeMillis()
|
||||||
|
|
||||||
|
lifecycleScope.launch {
|
||||||
|
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
|
viewModel.PayoutResult.collect { result ->
|
||||||
|
when (result) {
|
||||||
|
is Result.Loading -> {
|
||||||
|
}
|
||||||
|
is Result.Success -> {
|
||||||
|
var errHintRes = 0
|
||||||
|
|
||||||
|
when (result.data?.data?.error) {
|
||||||
|
/* 错误码,
|
||||||
|
0成功,1失败,2签名验证失败,3客户端版本过低,4uuid错误,5所在地国家或地区不在提现限制内,6提现金额不符对应的产品id,7提现产品id不对,8达到提现金额限制,9提现次数超过限制,10今日没有提现机会,11提现账号达到次数限制,12身份审核条件不满足,不能提现,13巴西提现参数 document_type 错误,
|
||||||
|
14巴西提现参数 document_id 错误,15 巴西提现参数 AccountType 错误,16 巴西提现参数 Name 错误,17巴西提现参数 Account 和 DocumentId 不同,18巴西提现参数account_type为CPF时 对应的 account 错误,19巴西提现参数account_type为CNPJ时 对应的 account 错误,20巴西提现参数 account_type 错误,
|
||||||
|
21巴西提现参数 document_type 错误,22巴西提现参数account_type为CPF时 对应的 document_id 错误,23巴西提现参数account_type为CNPJ时 对应的 document_id 错误,24 ts长度错误,25 没提0.1就提现其它的
|
||||||
|
*/
|
||||||
|
0 -> {
|
||||||
|
saveNewRecord(result.data.data!!, payCashNum, currentTimeMs)
|
||||||
|
}
|
||||||
|
5-> {
|
||||||
|
errHintRes = R.string.withdraw_fail_region_restricit
|
||||||
|
}
|
||||||
|
8-> {
|
||||||
|
errHintRes = R.string.withdraw_fail_amount_limit
|
||||||
|
}
|
||||||
|
9-> {
|
||||||
|
errHintRes = R.string.withdraw_fail_amount_limit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errHintRes > 0) {
|
||||||
|
showFailDialog(errHintRes)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
is Result.Error -> {
|
||||||
|
showFailDialog(R.string.withdraw_fail_unkown_error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
viewModel.withdrawPayout(initUUID, payItemId, payCashNum)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun requestCheck(recordNo: String, cashNum: Float) {
|
||||||
|
lifecycleScope.launch {
|
||||||
|
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
|
viewModel.CheckResult.collect { result ->
|
||||||
|
when (result) {
|
||||||
|
is Result.Loading -> {
|
||||||
|
|
||||||
|
}
|
||||||
|
is Result.Success -> {
|
||||||
|
val checkResult = result.data?.data
|
||||||
|
var errHintRes = 0
|
||||||
|
|
||||||
|
when (checkResult?.error) {
|
||||||
|
0 -> {
|
||||||
|
when (checkResult.status) {
|
||||||
|
// 提现状态 1:提现中,2:提现成功,3:提现失败
|
||||||
|
1 -> {
|
||||||
|
|
||||||
|
}
|
||||||
|
2 -> {
|
||||||
|
showSuccessDialog(cashNum)
|
||||||
|
updateRecord(recordNo, checkResult)
|
||||||
|
}
|
||||||
|
3 -> {
|
||||||
|
errHintRes = R.string.withdraw_normal_fail
|
||||||
|
updateRecord(recordNo, checkResult)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
1 -> {
|
||||||
|
errHintRes = R.string.withdraw_normal_fail
|
||||||
|
}
|
||||||
|
|
||||||
|
2 -> {
|
||||||
|
errHintRes = R.string.withdraw_fail_version_toolow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errHintRes > 0) {
|
||||||
|
showFailDialog(errHintRes)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
is Result.Error -> {
|
||||||
|
showFailDialog(R.string.withdraw_fail_unkown_error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel.withdrawCheck(recordNo)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun showSuccessDialog(cashNum: Float) {
|
||||||
|
WithdrawSuccessDialog(this@WithDrawSubActivity, cashNum).show()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun showFailDialog(errorHintRes: Int) {
|
||||||
|
WithdrawFailDialog(this@WithDrawSubActivity, errorHintRes).show()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------------ new added -------------------------//
|
||||||
|
// WithdrawRecord
|
||||||
|
|
||||||
|
@Synchronized
|
||||||
|
private fun saveNewRecord(payoutReply: PayoutReply, payCashNum: Float, timeMs: Long) {
|
||||||
|
val newRecord = WithdrawRecord().apply {
|
||||||
|
id = payoutReply.id!!
|
||||||
|
recordNo = payoutReply.record_no
|
||||||
|
cashNum = payCashNum
|
||||||
|
operateMs = timeMs
|
||||||
|
state = 1
|
||||||
|
failReason = 0
|
||||||
|
}
|
||||||
|
mRecordList.add(newRecord)
|
||||||
|
|
||||||
|
SpUtil.instance().putList(SpUtil.KEY_WITHDRAW_HISTORY_LIST, mRecordList)
|
||||||
|
|
||||||
|
checkTransactionState()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Synchronized
|
||||||
|
private fun updateRecord(recordNo: String, payCheck: PayoutCheck) {
|
||||||
|
var needSaveSp = false
|
||||||
|
mRecordList.forEachIndexed { index, record ->
|
||||||
|
if (record.recordNo == recordNo) {
|
||||||
|
if (record.state != payCheck.status) {
|
||||||
|
needSaveSp =true
|
||||||
|
record.state = payCheck.status
|
||||||
|
}
|
||||||
|
return@forEachIndexed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needSaveSp) {
|
||||||
|
SpUtil.instance().putList(SpUtil.KEY_WITHDRAW_HISTORY_LIST, mRecordList)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Synchronized
|
||||||
|
private fun checkTransactionState() {
|
||||||
|
var unCheckCount = 0
|
||||||
|
mRecordList.forEach { record ->
|
||||||
|
if (record.state == FINAL_STATE_ONGING) {
|
||||||
|
unCheckCount++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (unCheckCount > 0) {
|
||||||
|
mRecordList.forEachIndexed { index, record ->
|
||||||
|
if (record.state == FINAL_STATE_ONGING) {
|
||||||
|
requestCheck(record.recordNo, record.cashNum)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.root.postDelayed(object : Runnable {
|
||||||
|
override fun run() {
|
||||||
|
checkTransactionState()
|
||||||
|
}
|
||||||
|
}, CHECK_DURATION)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val INIT_ACTIVE = 1
|
||||||
|
const val FINAL_STATE_ONGING = 1
|
||||||
|
const val CHECK_DURATION = 10*1000L
|
||||||
|
|
||||||
|
internal fun startActivity(activity: Activity) {
|
||||||
|
activity.startActivity(Intent(activity.applicationContext, WithDrawSubActivity::class.java))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?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>
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape android:shape="rectangle"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="@color/white" />
|
||||||
|
<corners android:topLeftRadius="25dp" android:topRightRadius="25dp" />
|
||||||
|
</shape>
|
||||||
|
|
@ -0,0 +1,187 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="300dp"
|
||||||
|
android:src="@mipmap/bg_record_win_rgiht"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/content_root"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.ama.core.architecture.widget.CustomTitleBar
|
||||||
|
android:id="@+id/titlebar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:paddingTop="30dp" >
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
>
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="17.5dp"
|
||||||
|
android:layout_height="22dp"
|
||||||
|
android:src="@mipmap/icon_cash"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="30sp"
|
||||||
|
android:textColor="@color/yellow_e0"
|
||||||
|
android:text="@string/cash"
|
||||||
|
android:layout_marginStart="5dp"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_cash_total"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="30sp"
|
||||||
|
android:textColor="@color/yellow_e0"
|
||||||
|
android:text="0"
|
||||||
|
android:layout_marginStart="5dp"
|
||||||
|
/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="20sp"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:text="@string/withdraw_sub_top_hint"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginTop="30dp"
|
||||||
|
android:paddingVertical="23dp"
|
||||||
|
android:paddingHorizontal="15dp"
|
||||||
|
android:background="@drawable/bg_round_white_25_top">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
>
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="50dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textSize="21sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textColor="@color/gray3"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:text="@string/withdraw_sub_top_hint_2"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<com.ama.core.architecture.widget.CustomProgressBar
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="12dp"
|
||||||
|
android:layout_marginHorizontal="50dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="90dp"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_marginTop="15dp"
|
||||||
|
android:padding="15dp"
|
||||||
|
android:background="@drawable/bg_round_eee_25">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textColor="@color/gray3"
|
||||||
|
android:text="@string/regras"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:textColor="@color/gray9"
|
||||||
|
android:text="@string/with_draw_sub_hint"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/fl_action"
|
||||||
|
android:layout_width="300dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@mipmap/bg_but_green"
|
||||||
|
android:layout_gravity="bottom|center_horizontal"
|
||||||
|
android:padding="12dp">
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="20sp"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:text="@string/saque"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:drawableStart="@mipmap/task_video"
|
||||||
|
android:drawablePadding="10dp"
|
||||||
|
/>
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -98,5 +98,6 @@
|
||||||
<color name="yellow_0b">#FFFF740B</color>
|
<color name="yellow_0b">#FFFF740B</color>
|
||||||
<color name="red_e0">#ffffe9e0</color>
|
<color name="red_e0">#ffffe9e0</color>
|
||||||
<color name="red_7f">#FFFF7F00</color>
|
<color name="red_7f">#FFFF7F00</color>
|
||||||
|
<color name="yellow_e0">#FFFEE000</color>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -137,5 +137,10 @@
|
||||||
<string name="withdraw_normal_fail">0utros Erro</string>
|
<string name="withdraw_normal_fail">0utros Erro</string>
|
||||||
<string name="withdraw_fail_reach_day_limit">Your have reached the times limit.</string>
|
<string name="withdraw_fail_reach_day_limit">Your have reached the times limit.</string>
|
||||||
<string name="withdraw_fail_unkown_error">0utros Erro</string>
|
<string name="withdraw_fail_unkown_error">0utros Erro</string>
|
||||||
|
<string name="withdraw_sub_top_hint">Valor do saque</string>
|
||||||
|
<string name="saque">Saque Já</string>
|
||||||
|
<string name="withdraw_sub_top_hint_2">100%! Pix lmediato na Sua Contal!</string>
|
||||||
|
<string name="regras">Regras</string>
|
||||||
|
<string name="with_draw_sub_hint">1. Grandes quantias em dinheiro sro distribuidas em vários dias;todas asrecompensas sao reais e válidas.\n2. Assistir a videos na p¡gina atual pode aumentar o progresso datarefa. Quando oprogresso atingir 100%, a recompensa diária emdinheiro pode ser reivindicada.\n3. Após reivindicar uma recompensa com sucesso, vocé podereceber a proximarecompensa em dinheiro no dia sequinte.4. Se a reivindicacao falhar, verifique se as informac\'es da contaestaopreenchidas corretamente e tente reivindicar a recompensaem dinheironovamente.\n5.Se houver comportamento de fraude, o sistema banirá a contae a colocara na</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
Loading…
Reference in New Issue