拆分 取现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.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.WithDrawSubActivity" 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.feedback.FeedbackActivity" android:exported="false" />
|
||||
|
|
@ -50,6 +51,7 @@
|
|||
|
||||
|
||||
|
||||
|
||||
<provider
|
||||
android:name="androidx.startup.InitializationProvider"
|
||||
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="red_e0">#ffffe9e0</color>
|
||||
<color name="red_7f">#FFFF7F00</color>
|
||||
<color name="yellow_e0">#FFFEE000</color>
|
||||
|
||||
</resources>
|
||||
|
|
@ -137,5 +137,10 @@
|
|||
<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_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>
|
||||
Loading…
Reference in New Issue