feat :app/src/module_bank_card
@@ -0,0 +1,7 @@
|
||||
package com.chwl.app.bank_card;
|
||||
|
||||
/**
|
||||
* Created by MadisonRong on 2019-08-16
|
||||
*/
|
||||
public class TEMP {
|
||||
}
|
@@ -0,0 +1,178 @@
|
||||
package com.chwl.app.bank_card.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.bank_card.presenter.AddBankCardAgreementPresenter;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.app.common.widget.OriginalDrawStatusClickSpan;
|
||||
import com.chwl.app.ui.login.BindPhoneActivity;
|
||||
import com.chwl.app.ui.setting.ModifyPwdActivity;
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity;
|
||||
import com.chwl.app.ui.widget.password.PassWordFragment;
|
||||
import com.chwl.app.ui.widget.password.PasswordEvent;
|
||||
import com.chwl.core.UriProvider;
|
||||
import com.chwl.core.bank_card.view.IAddBankCardAgreementView;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Created by MadisonRong on 2019-08-19
|
||||
*/
|
||||
@CreatePresenter(AddBankCardAgreementPresenter.class)
|
||||
public class AddBankCardAgreementActivity extends BaseMvpActivity<IAddBankCardAgreementView, AddBankCardAgreementPresenter>
|
||||
implements IAddBankCardAgreementView, View.OnClickListener {
|
||||
|
||||
private static final String TAG = "AddBankCardAgreementAct";
|
||||
|
||||
private TextView content;
|
||||
private TextView disagree;
|
||||
private TextView agree;
|
||||
|
||||
public static void start(Context context) {
|
||||
context.startActivity(new Intent(context, AddBankCardAgreementActivity.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_add_bank_card_agreement);
|
||||
findView();
|
||||
initTitleBar(getString(R.string.title_add_bank_card_agreement));
|
||||
setupAgreement();
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
private void findView() {
|
||||
content = findViewById(R.id.tv_add_bank_card_agreement_content);
|
||||
disagree = findViewById(R.id.tv_disagree);
|
||||
agree = findViewById(R.id.tv_agree);
|
||||
|
||||
disagree.setOnClickListener(this);
|
||||
agree.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
private void setupAgreement() {
|
||||
String appName = getString(R.string.app_name);
|
||||
String privacyAgreementTip = getString(R.string.tip_privacy_agreement);
|
||||
String userAgreementTip = getString(R.string.tip_user_agreement);
|
||||
String agreementText = getString(R.string.text_add_bank_card_agreement, appName, appName,
|
||||
appName, appName, privacyAgreementTip, userAgreementTip);
|
||||
SpannableString ss = new SpannableString(agreementText);
|
||||
int privacyAgreementTipIndex = agreementText.indexOf(privacyAgreementTip);
|
||||
int userAgreementTipIndex = agreementText.indexOf(userAgreementTip);
|
||||
ss.setSpan(new ForegroundColorSpan(ContextCompat.getColor(this, R.color.color_FE4C62)), privacyAgreementTipIndex, privacyAgreementTipIndex + privacyAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new OriginalDrawStatusClickSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
CommonWebViewActivity.start(AddBankCardAgreementActivity.this, UriProvider.getPrivacyAgreement());
|
||||
}
|
||||
}, privacyAgreementTipIndex, privacyAgreementTipIndex + privacyAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new ForegroundColorSpan(ContextCompat.getColor(this, R.color.color_FE4C62)), userAgreementTipIndex, userAgreementTipIndex + userAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
ss.setSpan(new OriginalDrawStatusClickSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
CommonWebViewActivity.start(AddBankCardAgreementActivity.this, UriProvider.getUserProtocolUrl());
|
||||
}
|
||||
}, userAgreementTipIndex, userAgreementTipIndex + privacyAgreementTip.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
content.setText(ss);
|
||||
content.setMovementMethod(new LinkMovementMethod());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean needSteepStateBar() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setStatusBar() {
|
||||
super.setStatusBar();
|
||||
StatusBarUtil.transparencyBar(this);
|
||||
StatusBarUtil.StatusBarLightMode(this);
|
||||
StatusBarUtil.StatusBarLightMode(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.tv_disagree:
|
||||
finish();
|
||||
break;
|
||||
|
||||
case R.id.tv_agree:
|
||||
getDialogManager().showProgressDialog(this);
|
||||
getMvpPresenter().agree();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onGetPaymentPassword(PasswordEvent event) {
|
||||
getDialogManager().showProgressDialog(this);
|
||||
getMvpPresenter().verifyPaymentPassword(event.getPassword());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void displayError(String error) {
|
||||
getDialogManager().dismissDialog();
|
||||
toast(error);
|
||||
LogUtil.e(TAG, String.format(Locale.getDefault(),
|
||||
"on bank card list page error, msg: %s", error));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToRealNamePage() {
|
||||
getDialogManager().dismissDialog();
|
||||
CommonWebViewActivity.start(this, UriProvider.getTutuRealNamePage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openPaymentPasswordPage() {
|
||||
getDialogManager().dismissDialog();
|
||||
PassWordFragment.newInstance().show(getSupportFragmentManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToSetPasswordActivity() {
|
||||
getDialogManager().dismissDialog();
|
||||
ModifyPwdActivity.start(this, ModifyPwdActivity.PAY_PWD);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToBindPhoneActivity() {
|
||||
getDialogManager().dismissDialog();
|
||||
BindPhoneActivity.start(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToAddBankCardPage() {
|
||||
getDialogManager().dismissDialog();
|
||||
BankCardBindActivity.start(this);
|
||||
finish();
|
||||
}
|
||||
}
|
@@ -0,0 +1,153 @@
|
||||
package com.chwl.app.bank_card.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.bank_card.presenter.BankCardPresenter;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.app.ui.login.CodeDownTimer;
|
||||
import com.chwl.core.bank_card.view.IBankCardView;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Created by MadisonRong on 2019-08-19
|
||||
*/
|
||||
@CreatePresenter(BankCardPresenter.class)
|
||||
public class BankCardBindActivity extends BaseMvpActivity<IBankCardView, BankCardPresenter>
|
||||
implements IBankCardView, View.OnClickListener {
|
||||
|
||||
private static final String TAG = "BankCardBindActivity";
|
||||
|
||||
private TextView cancel;
|
||||
private TextView bindView;
|
||||
private EditText etBankCardUserNumber;
|
||||
private EditText etBankCardUserMobile;
|
||||
private EditText etBankCardBindSmsCode;
|
||||
private Button btnGetSmsCode;
|
||||
|
||||
private CodeDownTimer timer;
|
||||
|
||||
public static void start(Context context) {
|
||||
context.startActivity(new Intent(context, BankCardBindActivity.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_bank_card_bind);
|
||||
findView();
|
||||
initListener();
|
||||
}
|
||||
|
||||
private void findView() {
|
||||
cancel = findViewById(R.id.tv_cancel);
|
||||
bindView = findViewById(R.id.tv_bind_bank_card);
|
||||
etBankCardUserNumber = findViewById(R.id.et_bank_card_number);
|
||||
etBankCardUserMobile = findViewById(R.id.et_bank_card_user_mobile);
|
||||
etBankCardBindSmsCode = findViewById(R.id.et_bank_card_bind_sms_code);
|
||||
btnGetSmsCode = findViewById(R.id.btn_get_code);
|
||||
}
|
||||
|
||||
private void initListener() {
|
||||
cancel.setOnClickListener(this);
|
||||
bindView.setOnClickListener(this);
|
||||
btnGetSmsCode.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
stopCountDownTimer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.tv_cancel:
|
||||
finish();
|
||||
break;
|
||||
|
||||
case R.id.btn_get_code:
|
||||
// 银行卡号
|
||||
String bankCardNumber = etBankCardUserNumber.getText().toString();
|
||||
if (TextUtils.isEmpty(bankCardNumber)) return;
|
||||
// 预留手机号
|
||||
String bankCardUserMobile = etBankCardUserMobile.getText().toString();
|
||||
if (TextUtils.isEmpty(bankCardUserMobile)) return;
|
||||
getMvpPresenter().getBindBankCardSmsCode(bankCardNumber, bankCardUserMobile);
|
||||
break;
|
||||
|
||||
case R.id.tv_bind_bank_card:
|
||||
// 银行卡号
|
||||
String bankCardNumberForBinding = etBankCardUserNumber.getText().toString();
|
||||
if (TextUtils.isEmpty(bankCardNumberForBinding)) return;
|
||||
// 预留手机号
|
||||
String bankCardUserMobileForBinding = etBankCardUserMobile.getText().toString();
|
||||
if (TextUtils.isEmpty(bankCardUserMobileForBinding)) return;
|
||||
// 验证码
|
||||
String bankCardBindSmsCode = etBankCardBindSmsCode.getText().toString();
|
||||
if (TextUtils.isEmpty(bankCardBindSmsCode)) return;
|
||||
getDialogManager().showProgressDialog(this);
|
||||
getMvpPresenter().bindBankCard(bankCardNumberForBinding, bankCardUserMobileForBinding,
|
||||
bankCardBindSmsCode);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean needSteepStateBar() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setStatusBar() {
|
||||
super.setStatusBar();
|
||||
StatusBarUtil.transparencyBar(this);
|
||||
StatusBarUtil.StatusBarLightMode(this);
|
||||
StatusBarUtil.StatusBarLightMode(this);
|
||||
}
|
||||
|
||||
private void startCountDownTimer() {
|
||||
stopCountDownTimer();
|
||||
timer = new CodeDownTimer(btnGetSmsCode, 60000, 1000);
|
||||
timer.start();
|
||||
}
|
||||
|
||||
private void stopCountDownTimer() {
|
||||
if (timer != null) {
|
||||
timer.cancel();
|
||||
timer = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindBankCardSuccess() {
|
||||
getDialogManager().dismissDialog();
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetSmsCodeSuccess() {
|
||||
startCountDownTimer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(int code, String error) {
|
||||
getDialogManager().dismissDialog();
|
||||
SingleToastUtil.showToast(error);
|
||||
LogUtil.e(TAG, String.format(Locale.getDefault(),
|
||||
"onError: bind bank card failed: code: %s, msg: %s", code, error));
|
||||
}
|
||||
}
|
@@ -0,0 +1,214 @@
|
||||
package com.chwl.app.bank_card.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.OrientationHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.bank_card.adapter.BankCardListAdapter;
|
||||
import com.chwl.app.bank_card.presenter.BankCardPresenter;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.app.base.TitleBar;
|
||||
import com.chwl.app.common.widget.dialog.DialogManager;
|
||||
import com.chwl.app.ui.widget.ButtonItem;
|
||||
import com.chwl.app.ui.widget.LinearLayoutManagerWrapper;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.chwl.core.bank_card.bean.BankCardBean;
|
||||
import com.chwl.core.bank_card.bean.BankCardListResp;
|
||||
import com.chwl.core.bank_card.view.IBankCardView;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Created by MadisonRong on 2019-08-16
|
||||
*/
|
||||
@CreatePresenter(BankCardPresenter.class)
|
||||
public class BankCardListActivity extends BaseMvpActivity<IBankCardView, BankCardPresenter>
|
||||
implements IBankCardView, View.OnClickListener {
|
||||
|
||||
private static final String TAG = "BankCardListActivity";
|
||||
|
||||
private BankCardListAdapter adapter;
|
||||
|
||||
private RecyclerView recyclerView;
|
||||
private View addBankCardBackground;
|
||||
private ImageView addBankCardIcon;
|
||||
private ImageView addBankCardArrow;
|
||||
private TextView addBankCardTextView;
|
||||
|
||||
public static void start(Context context) {
|
||||
context.startActivity(new Intent(context, BankCardListActivity.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_bank_card_list);
|
||||
findView();
|
||||
TitleBar.Action action = new TitleBar.ImageAction(R.mipmap.common_ic_more) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
showMoreActionDialog();
|
||||
}
|
||||
};
|
||||
initTitleBar(getString(R.string.text_bank_card), action);
|
||||
adapter = new BankCardListAdapter();
|
||||
adapter.setOperation(BankCardListAdapter.OP_SET_DEFAULT);
|
||||
adapter.setOnItemChildClickListener((adapter1, view, position) -> {
|
||||
BankCardBean item = (BankCardBean) adapter1.getItem(position);
|
||||
if (item == null) return;
|
||||
switch (view.getId()) {
|
||||
case R.id.iv_bank_card_set_default:
|
||||
case R.id.tv_bank_card_set_default:
|
||||
if (!item.isDefaultPaymentCard()) {
|
||||
getDialogManager().showTipsDialog(getString(R.string.tips_bind_bank_card), () -> {
|
||||
// set default payment card
|
||||
getDialogManager().showProgressDialog(this);
|
||||
getMvpPresenter().setDefaultBankCard(String.valueOf(item.getRecordId()), position);
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
recyclerView.setLayoutManager(new LinearLayoutManagerWrapper(this,
|
||||
OrientationHelper.VERTICAL, false));
|
||||
recyclerView.setAdapter(adapter);
|
||||
recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
|
||||
@Override
|
||||
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
|
||||
super.getItemOffsets(outRect, view, parent, state);
|
||||
if (parent.getChildAdapterPosition(view) != (adapter.getData().size() - 1)) {
|
||||
outRect.bottom = -UIUtil.dip2px(BankCardListActivity.this, 50);
|
||||
}
|
||||
}
|
||||
});
|
||||
addBankCardBackground.setOnClickListener(this);
|
||||
addBankCardIcon.setOnClickListener(this);
|
||||
addBankCardArrow.setOnClickListener(this);
|
||||
// 默认隐藏「添加银行卡」按钮,避免因为网络问题导致的添加流程出现
|
||||
showAddBankCardLayout(false);
|
||||
}
|
||||
|
||||
private void findView() {
|
||||
recyclerView = findViewById(R.id.rv_bank_card_list);
|
||||
addBankCardBackground = findViewById(R.id.view_add_bank_card);
|
||||
addBankCardIcon = findViewById(R.id.iv_add_bank_card);
|
||||
addBankCardArrow = findViewById(R.id.iv_add_bank_card_arrow);
|
||||
addBankCardTextView = findViewById(R.id.tv_add_bank_card);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
if (getDialogManager().isDialogShowing()) {
|
||||
getDialogManager().dismissDialog();
|
||||
}
|
||||
getDialogManager().showProgressDialog(this);
|
||||
getMvpPresenter().loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean needSteepStateBar() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setStatusBar() {
|
||||
super.setStatusBar();
|
||||
StatusBarUtil.transparencyBar(this);
|
||||
StatusBarUtil.StatusBarLightMode(this);
|
||||
StatusBarUtil.StatusBarLightMode(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.view_add_bank_card:
|
||||
case R.id.iv_add_bank_card:
|
||||
case R.id.iv_add_bank_card_arrow:
|
||||
AddBankCardAgreementActivity.start(this);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void showMoreActionDialog() {
|
||||
ButtonItem deleteBankCardBtn = new ButtonItem(getString(R.string.text_unbind_bank_card),
|
||||
() -> {
|
||||
// 跳去删除页
|
||||
BankCardListUnbindActivity.start(this);
|
||||
});
|
||||
List<ButtonItem> buttonItems = new ArrayList<>();
|
||||
buttonItems.add(deleteBankCardBtn);
|
||||
DialogManager dialogManager = getDialogManager();
|
||||
if (dialogManager != null) {
|
||||
dialogManager.showCommonPopupDialog(buttonItems, ResUtil.getString(R.string.bank_card_activity_bankcardlistactivity_01));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetBankCardSuccess(BankCardListResp bankCardListResp) {
|
||||
getDialogManager().dismissDialog();
|
||||
if (bankCardListResp == null) return;
|
||||
List<BankCardBean> list = bankCardListResp.getList();
|
||||
if (!ListUtils.isListEmpty(list)) {
|
||||
adapter.setNewData(list);
|
||||
} else {
|
||||
adapter.setNewData(null);
|
||||
}
|
||||
int maxBindNum = bankCardListResp.getMaxBindNum();
|
||||
showAddBankCardLayout(maxBindNum > list.size());
|
||||
}
|
||||
|
||||
private void showAddBankCardLayout(boolean show) {
|
||||
addBankCardBackground.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
addBankCardIcon.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
addBankCardArrow.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
addBankCardTextView.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(int code, String error) {
|
||||
getDialogManager().dismissDialog();
|
||||
toast(error);
|
||||
LogUtil.e(TAG, String.format(Locale.getDefault(),
|
||||
"on bank card list page error, code: %s, msg: %s", code, error));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetDefaultSuccess(int position) {
|
||||
getDialogManager().dismissDialog();
|
||||
SingleToastUtil.showToast(this, R.string.toast_set_default_bank_card_success);
|
||||
List<BankCardBean> data = adapter.getData();
|
||||
BankCardBean bankCardBean = data.get(position);
|
||||
for (BankCardBean bean : data) {
|
||||
if (bean.isDefaultPaymentCard()) {
|
||||
bean.setDefaultFlag(BankCardBean.CARD_NOT_DEFAULT_PAY);
|
||||
continue;
|
||||
}
|
||||
if (Objects.equals(bean.getRecordId(), bankCardBean.getRecordId())) {
|
||||
bean.setDefaultFlag(BankCardBean.CARD_DEFAULT_PAY);
|
||||
}
|
||||
}
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
@@ -0,0 +1,165 @@
|
||||
package com.chwl.app.bank_card.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.OrientationHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.bank_card.adapter.BankCardListAdapter;
|
||||
import com.chwl.app.bank_card.presenter.BankCardPresenter;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.app.ui.widget.LinearLayoutManagerWrapper;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.chwl.app.ui.widget.password.PassWordFragment;
|
||||
import com.chwl.app.ui.widget.password.PasswordEvent;
|
||||
import com.chwl.core.bank_card.bean.BankCardBean;
|
||||
import com.chwl.core.bank_card.bean.BankCardListResp;
|
||||
import com.chwl.core.bank_card.view.IBankCardView;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Created by MadisonRong on 2019-08-18
|
||||
*/
|
||||
@CreatePresenter(BankCardPresenter.class)
|
||||
public class BankCardListUnbindActivity extends BaseMvpActivity<IBankCardView, BankCardPresenter>
|
||||
implements IBankCardView {
|
||||
|
||||
private final String TAG = this.getClass().getSimpleName();
|
||||
|
||||
private ImageView addBankCardIcon;
|
||||
private View addBankCardBackground;
|
||||
private TextView addBankCardTextView;
|
||||
private ImageView addBankCardArrow;
|
||||
private RecyclerView recyclerView;
|
||||
|
||||
public BankCardListAdapter adapter;
|
||||
public int recordId;
|
||||
|
||||
public static void start(Context context) {
|
||||
context.startActivity(new Intent(context, BankCardListUnbindActivity.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_bank_card_list);
|
||||
findView();
|
||||
initTitleBar(getString(R.string.text_bank_card));
|
||||
hideAddBankCardLayout();
|
||||
adapter = new BankCardListAdapter();
|
||||
adapter.setOperation(BankCardListAdapter.OP_UNBIND);
|
||||
adapter.setOnItemChildClickListener((adapter1, view, position) -> {
|
||||
BankCardBean item = (BankCardBean) adapter1.getItem(position);
|
||||
if (item == null) return;
|
||||
if (view.getId() == R.id.tv_bank_card_unbind) {
|
||||
recordId = item.getRecordId();
|
||||
// 跳转到解绑银行卡页面,输入支付密码验证身份
|
||||
PassWordFragment.newInstance().show(getSupportFragmentManager());
|
||||
}
|
||||
});
|
||||
recyclerView.setLayoutManager(new LinearLayoutManagerWrapper(this,
|
||||
OrientationHelper.VERTICAL, false));
|
||||
recyclerView.setAdapter(adapter);
|
||||
recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
|
||||
@Override
|
||||
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
|
||||
super.getItemOffsets(outRect, view, parent, state);
|
||||
if (parent.getChildAdapterPosition(view) != (adapter.getData().size() - 1)) {
|
||||
outRect.bottom = -UIUtil.dip2px(BankCardListUnbindActivity.this, 50);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
EventBus.getDefault().register(this);
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void findView() {
|
||||
addBankCardIcon = findViewById(R.id.iv_add_bank_card);
|
||||
addBankCardBackground = findViewById(R.id.view_add_bank_card);
|
||||
addBankCardTextView = findViewById(R.id.tv_add_bank_card);
|
||||
addBankCardArrow = findViewById(R.id.iv_add_bank_card_arrow);
|
||||
recyclerView = findViewById(R.id.rv_bank_card_list);
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
getDialogManager().showProgressDialog(this);
|
||||
getMvpPresenter().loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean needSteepStateBar() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setStatusBar() {
|
||||
super.setStatusBar();
|
||||
StatusBarUtil.transparencyBar(this);
|
||||
StatusBarUtil.StatusBarLightMode(this);
|
||||
}
|
||||
|
||||
private void hideAddBankCardLayout() {
|
||||
addBankCardIcon.setVisibility(View.GONE);
|
||||
addBankCardBackground.setVisibility(View.GONE);
|
||||
addBankCardArrow.setVisibility(View.GONE);
|
||||
addBankCardTextView.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetBankCardSuccess(BankCardListResp bankCardListResp) {
|
||||
getDialogManager().dismissDialog();
|
||||
if (bankCardListResp == null) return;
|
||||
List<BankCardBean> list = bankCardListResp.getList();
|
||||
if (!ListUtils.isListEmpty(list)) {
|
||||
adapter.setNewData(list);
|
||||
} else {
|
||||
adapter.setNewData(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUnbindBankCardSuccess() {
|
||||
getDialogManager().dismissDialog();
|
||||
SingleToastUtil.showToast(this, R.string.toast_unbind_bank_card_success);
|
||||
loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(int code, String error) {
|
||||
getDialogManager().dismissDialog();
|
||||
toast(error);
|
||||
LogUtil.e(TAG, String.format(Locale.getDefault(),
|
||||
"on bank card list page error, code: %s, msg: %s", code, error));
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onGetPaymentPassword(PasswordEvent event) {
|
||||
getDialogManager().showProgressDialog(this);
|
||||
getMvpPresenter().unbindBankCard(String.valueOf(recordId), event.getPassword());
|
||||
}
|
||||
}
|
@@ -0,0 +1,152 @@
|
||||
package com.chwl.app.bank_card.adapter;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||
import com.chwl.core.bank_card.bean.BankCardBean;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* Created by MadisonRong on 2019-08-18
|
||||
*/
|
||||
public class BankCardListAdapter extends BaseQuickAdapter<BankCardBean, BankCardListAdapter.ViewHolder> {
|
||||
|
||||
/**
|
||||
* 设置默认支付
|
||||
*/
|
||||
public static final int OP_SET_DEFAULT = 1;
|
||||
|
||||
/**
|
||||
* 解除绑定
|
||||
*/
|
||||
public static final int OP_UNBIND = 2;
|
||||
|
||||
public static final int PIC_ONE = 0;
|
||||
public static final int PIC_TWO = 1;
|
||||
public static final int PIC_THREE = 2;
|
||||
public static final int MAX_BACKGROUND = 3;
|
||||
|
||||
/**
|
||||
* 银行卡后四位
|
||||
*/
|
||||
public static final int BANK_CARD_LAST_NUM = 4;
|
||||
|
||||
private int operation = 0;
|
||||
|
||||
public BankCardListAdapter() {
|
||||
this(R.layout.item_bank_card);
|
||||
}
|
||||
|
||||
private BankCardListAdapter(int layoutResId) {
|
||||
super(layoutResId);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(ViewHolder helper, BankCardBean item) {
|
||||
// background
|
||||
int background = getBackground(helper.getAdapterPosition());
|
||||
helper.layout.setBackgroundResource(background);
|
||||
// icon
|
||||
ImageLoadUtils.loadCircleImage(mContext, item.getBankLogo(),
|
||||
helper.icon, R.drawable.icon_bank_card_default);
|
||||
// name
|
||||
helper.name.setText(item.getBankName());
|
||||
// number
|
||||
helper.number.setText(getBankCardNumberLast4Num(item.getBankCardNo()));
|
||||
switch (operation) {
|
||||
case OP_SET_DEFAULT:
|
||||
helper.setDefaultView.setVisibility(View.VISIBLE);
|
||||
helper.setDefaultTextView.setVisibility(View.VISIBLE);
|
||||
helper.unbindView.setVisibility(View.GONE);
|
||||
// isDefault
|
||||
helper.setDefaultView.setSelected(isDefault(item.getDefaultFlag()));
|
||||
// bind click listener
|
||||
helper.addOnClickListener(helper.setDefaultTextView.getId());
|
||||
helper.addOnClickListener(helper.setDefaultView.getId());
|
||||
break;
|
||||
|
||||
case OP_UNBIND:
|
||||
helper.setDefaultView.setVisibility(View.GONE);
|
||||
helper.setDefaultTextView.setVisibility(View.GONE);
|
||||
helper.unbindView.setVisibility(View.VISIBLE);
|
||||
// bind click listener
|
||||
helper.addOnClickListener(helper.unbindView.getId());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isDefault(int defaultFlag) {
|
||||
return defaultFlag == 1;
|
||||
}
|
||||
|
||||
public void setOperation(int operation) {
|
||||
this.operation = operation;
|
||||
}
|
||||
|
||||
public int getBackground(int position) {
|
||||
int num = position % MAX_BACKGROUND;
|
||||
switch (num) {
|
||||
default:
|
||||
case PIC_ONE:
|
||||
return R.drawable.background_bank_card_one;
|
||||
|
||||
case PIC_TWO:
|
||||
return R.drawable.background_bank_card_two;
|
||||
|
||||
case PIC_THREE:
|
||||
return R.drawable.background_bank_card_three;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 截取银行卡号后四位
|
||||
* @param bankCardNo
|
||||
* @return
|
||||
*/
|
||||
public String getBankCardNumberLast4Num(String bankCardNo) {
|
||||
if (TextUtils.isEmpty(bankCardNo)) return "";
|
||||
// 根据空格切割
|
||||
String[] split = bankCardNo.split(" ");
|
||||
if (ListUtils.isListEmpty(Arrays.asList(split))) {
|
||||
if (bankCardNo.length() >= BANK_CARD_LAST_NUM) {
|
||||
// 取后四位
|
||||
return bankCardNo.substring(bankCardNo.length() - BANK_CARD_LAST_NUM);
|
||||
} else {
|
||||
return bankCardNo;
|
||||
}
|
||||
} else {
|
||||
// 取最后一个
|
||||
return split[split.length - 1];
|
||||
}
|
||||
}
|
||||
|
||||
public class ViewHolder extends BaseViewHolder {
|
||||
|
||||
private ImageView icon;
|
||||
private TextView name;
|
||||
private ImageView setDefaultView;
|
||||
private TextView setDefaultTextView;
|
||||
private TextView number;
|
||||
private TextView unbindView;
|
||||
private View layout;
|
||||
|
||||
public ViewHolder(View view) {
|
||||
super(view);
|
||||
icon = view.findViewById(R.id.iv_bank_card_icon);
|
||||
name = view.findViewById(R.id.tv_bank_card_name);
|
||||
setDefaultView = view.findViewById(R.id.iv_bank_card_set_default);
|
||||
setDefaultTextView = view.findViewById(R.id.tv_bank_card_set_default);
|
||||
number = view.findViewById(R.id.tv_bank_card_number);
|
||||
unbindView = view.findViewById(R.id.tv_bank_card_unbind);
|
||||
layout = view.findViewById(R.id.cl_bank_card_background);
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,41 @@
|
||||
package com.chwl.app.bank_card.presenter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
||||
import com.chwl.app.base.BaseMvpPresenter;
|
||||
import com.chwl.core.bank_card.view.IAddBankCardAgreementView;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.base.PresenterEvent;
|
||||
|
||||
/**
|
||||
* Created by MadisonRong on 2019-08-19
|
||||
*/
|
||||
public class AddBankCardAgreementPresenter extends BaseMvpPresenter<IAddBankCardAgreementView> {
|
||||
|
||||
public void agree() {
|
||||
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
|
||||
if (userInfo == null) return;
|
||||
if (!userInfo.isCertified()) {
|
||||
getMvpView().goToRealNamePage();
|
||||
} else if (!userInfo.isBindPaymentPwd()) {
|
||||
getMvpView().goToSetPasswordActivity();
|
||||
} else {
|
||||
getMvpView().openPaymentPasswordPage();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void verifyPaymentPassword(String password) {
|
||||
UserModel.get()
|
||||
.verifyPaymentPassword(password)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe((s, throwable) -> {
|
||||
if (throwable != null) {
|
||||
getMvpView().displayError(throwable.getMessage());
|
||||
} else {
|
||||
getMvpView().goToAddBankCardPage();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -0,0 +1,126 @@
|
||||
package com.chwl.app.bank_card.presenter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
||||
import com.chwl.app.base.BaseMvpPresenter;
|
||||
import com.chwl.core.bank_card.model.BankCardModel;
|
||||
import com.chwl.core.bank_card.view.IBankCardView;
|
||||
import com.chwl.core.exception.FailReasonException;
|
||||
import com.chwl.library.base.PresenterEvent;
|
||||
|
||||
/**
|
||||
* Created by MadisonRong on 2019-08-16
|
||||
*/
|
||||
public class BankCardPresenter extends BaseMvpPresenter<IBankCardView> {
|
||||
|
||||
/**
|
||||
* 加载银行卡列表
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void loadData() {
|
||||
BankCardModel.getInstance()
|
||||
.getBankCardList()
|
||||
.compose(bindUntilEvent(PresenterEvent.PAUSE))
|
||||
.subscribe((bankCardListResp, throwable) -> {
|
||||
if (throwable == null) {
|
||||
getMvpView().onGetBankCardSuccess(bankCardListResp);
|
||||
} else {
|
||||
displayError(throwable);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 统一处理错误信息,toast 出来
|
||||
*
|
||||
* @param throwable
|
||||
*/
|
||||
public void displayError(Throwable throwable) {
|
||||
if (throwable instanceof FailReasonException) {
|
||||
FailReasonException exception = (FailReasonException) throwable;
|
||||
getMvpView().onError(exception.getCode(), exception.getMessage());
|
||||
} else {
|
||||
getMvpView().onError(FailReasonException.CODE_UNKNOW, throwable.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 绑定银行卡
|
||||
*
|
||||
* @param cardBank 银行卡号
|
||||
* @param cardMobile 银行预留手机号
|
||||
* @param smsCode 短信验证码
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void bindBankCard(String cardBank, String cardMobile, String smsCode) {
|
||||
BankCardModel.getInstance()
|
||||
.bindBankCard(cardBank, cardMobile, smsCode)
|
||||
.compose(bindUntilEvent(PresenterEvent.PAUSE))
|
||||
.subscribe((s, throwable) -> {
|
||||
if (throwable == null) {
|
||||
getMvpView().onBindBankCardSuccess();
|
||||
} else {
|
||||
displayError(throwable);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 解绑银行卡
|
||||
*
|
||||
* @param recordId 签约记录id
|
||||
* @param paymentPwd 支付密码
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void unbindBankCard(String recordId, String paymentPwd) {
|
||||
BankCardModel.getInstance()
|
||||
.unbindBankCard(recordId, paymentPwd)
|
||||
.compose(bindUntilEvent(PresenterEvent.PAUSE))
|
||||
.subscribe((s, throwable) -> {
|
||||
if (throwable == null) {
|
||||
getMvpView().onUnbindBankCardSuccess();
|
||||
} else {
|
||||
displayError(throwable);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置默认银行卡
|
||||
*
|
||||
* @param recordId 签约记录id
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void setDefaultBankCard(String recordId, int position) {
|
||||
BankCardModel.getInstance()
|
||||
.setDefaultBankCard(recordId)
|
||||
.compose(bindUntilEvent(PresenterEvent.PAUSE))
|
||||
.subscribe((s, throwable) -> {
|
||||
if (throwable == null) {
|
||||
getMvpView().onSetDefaultSuccess(position);
|
||||
} else {
|
||||
displayError(throwable);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取短信验证码
|
||||
*
|
||||
* @param cardBank 银行卡号
|
||||
* @param cardMobile 银行预留手机号
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void getBindBankCardSmsCode(String cardBank, String cardMobile) {
|
||||
BankCardModel.getInstance()
|
||||
.getBindBankCardSmsCode(cardBank, cardMobile)
|
||||
.compose(bindUntilEvent(PresenterEvent.PAUSE))
|
||||
.subscribe((s, throwable) -> {
|
||||
if (throwable != null) {
|
||||
displayError(throwable);
|
||||
} else {
|
||||
getMvpView().onGetSmsCodeSuccess();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 14 KiB |
BIN
app/src/module_bank_card/res/drawable-xhdpi/ic_add.webp
Normal file
After Width: | Height: | Size: 457 B |
After Width: | Height: | Size: 511 B |
After Width: | Height: | Size: 185 B |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 30 KiB |
BIN
app/src/module_bank_card/res/drawable-xxhdpi/ic_add.webp
Normal file
After Width: | Height: | Size: 699 B |
After Width: | Height: | Size: 861 B |
After Width: | Height: | Size: 263 B |
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/white_transparent_15" />
|
||||
<corners android:radius="@dimen/dp_13" />
|
||||
</shape>
|
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="@color/white" />
|
||||
|
||||
<corners android:radius="@dimen/dp_23" />
|
||||
</shape>
|
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.chwl.app.base.TitleBar
|
||||
android:id="@+id/title_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_add_bank_card_agreement_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:text="@string/text_add_bank_card_agreement"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_15"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/title_bar"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_disagree"
|
||||
android:layout_width="135dp"
|
||||
android:layout_height="43dp"
|
||||
android:layout_marginStart="@dimen/dp_22"
|
||||
android:layout_marginEnd="@dimen/dp_18"
|
||||
android:layout_marginBottom="@dimen/dp_33"
|
||||
android:background="@drawable/base_shape_negative_30dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/text_disagree"
|
||||
android:textColor="@color/base_color_negative_text"
|
||||
android:textSize="@dimen/dp_15"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_agree"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_agree"
|
||||
android:layout_width="180dp"
|
||||
android:layout_height="43dp"
|
||||
android:layout_marginEnd="@dimen/dp_21"
|
||||
android:layout_marginBottom="@dimen/dp_33"
|
||||
android:background="@drawable/base_shape_positive_30dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/text_agree"
|
||||
android:textColor="@color/base_color_positive_text"
|
||||
android:textSize="@dimen/dp_15"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
148
app/src/module_bank_card/res/layout/activity_bank_card_bind.xml
Normal file
@@ -0,0 +1,148 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_cancel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_25"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:layout_marginTop="@dimen/dp_18"
|
||||
android:gravity="center"
|
||||
android:text="@string/cancel"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_15"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_bind_bank_card_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_25"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:layout_marginTop="@dimen/dp_18"
|
||||
android:gravity="center"
|
||||
android:text="@string/title_add_bank_card"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_18"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/et_bank_card_number"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:layout_marginTop="@dimen/dp_35"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:gravity="start|center_vertical"
|
||||
android:hint="@string/hint_bank_card_number"
|
||||
android:inputType="number"
|
||||
android:paddingBottom="15dp"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textColorHint="@color/color_b3b3b3"
|
||||
android:textSize="@dimen/dp_15"
|
||||
android:theme="@style/common_edittext_style"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_bind_bank_card_title"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/et_bank_card_user_mobile"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:layout_marginTop="@dimen/dp_35"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:gravity="start|center_vertical"
|
||||
android:hint="@string/hint_bank_card_user_mobile"
|
||||
android:inputType="number"
|
||||
android:maxLength="11"
|
||||
android:paddingBottom="15dp"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textColorHint="@color/color_b3b3b3"
|
||||
android:textSize="@dimen/dp_15"
|
||||
android:theme="@style/common_edittext_style"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/et_bank_card_number"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/et_bank_card_bind_sms_code"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:layout_marginTop="@dimen/dp_35"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:gravity="start|center_vertical"
|
||||
android:hint="@string/hint_bank_card_bind_sms_code"
|
||||
android:inputType="number"
|
||||
android:paddingBottom="15dp"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textColorHint="@color/color_b3b3b3"
|
||||
android:textSize="@dimen/dp_15"
|
||||
android:theme="@style/common_edittext_style"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/et_bank_card_user_mobile"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_get_code"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="29dp"
|
||||
android:layout_marginStart="@dimen/space_normal"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:background="@color/transparent"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:text="@string/text_request_code"
|
||||
android:textColor="@color/design_color"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/et_bank_card_bind_sms_code"
|
||||
app:layout_constraintEnd_toEndOf="@id/et_bank_card_bind_sms_code"
|
||||
app:layout_constraintTop_toTopOf="@id/et_bank_card_bind_sms_code"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_bind_bank_card"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="43dp"
|
||||
android:layout_marginStart="@dimen/dp_38"
|
||||
android:layout_marginEnd="@dimen/dp_38"
|
||||
android:layout_marginBottom="@dimen/dp_14"
|
||||
android:background="@drawable/shape_semi_round_gray_solid"
|
||||
android:gravity="center"
|
||||
android:text="@string/text_bind_bank_card"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_15"
|
||||
app:layout_constraintBottom_toTopOf="@+id/tv_bind_your_bank_card"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_bind_your_bank_card"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/dp_40"
|
||||
android:gravity="center"
|
||||
android:text="@string/tips_bind_your_bank_card"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_13"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.chwl.app.base.TitleBar
|
||||
android:id="@+id/title_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_bank_card_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxHeight="310dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/title_bar" />
|
||||
|
||||
<View
|
||||
android:id="@+id/view_add_bank_card"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="65dp"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/rv_bank_card_list" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_add_bank_card"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:src="@drawable/ic_add"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/view_add_bank_card"
|
||||
app:layout_constraintStart_toStartOf="@+id/view_add_bank_card"
|
||||
app:layout_constraintTop_toTopOf="@+id/view_add_bank_card" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_add_bank_card"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:text="@string/text_add_bank_card"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_14"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/view_add_bank_card"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_add_bank_card"
|
||||
app:layout_constraintTop_toTopOf="@+id/view_add_bank_card"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_add_bank_card_arrow"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:src="@drawable/arrow_right"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/view_add_bank_card"
|
||||
app:layout_constraintEnd_toEndOf="@+id/view_add_bank_card"
|
||||
app:layout_constraintTop_toTopOf="@+id/view_add_bank_card" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.chwl.app.common.widget.StatusLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/status_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</androidx.recyclerview.widget.RecyclerView>
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
</com.chwl.app.common.widget.StatusLayout>
|
81
app/src/module_bank_card/res/layout/item_association.xml
Normal file
@@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/cl_root"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_18"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="22dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_10">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_guild"
|
||||
android:layout_width="@dimen/dp_22"
|
||||
android:layout_height="@dimen/dp_22"
|
||||
android:background="@drawable/guild_one"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_guild"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/color_1F1A4E"
|
||||
android:textSize="@dimen/sp_16"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="1" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<com.chwl.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_guild_icon"
|
||||
android:layout_width="@dimen/dp_40"
|
||||
android:layout_height="@dimen/dp_40"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:src="@drawable/default_avatar" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:textColor="@color/color_1F1A4E"
|
||||
android:textSize="@dimen/sp_15"
|
||||
android:textStyle="bold"
|
||||
tools:text="公會名稱" />
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_guild_image"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginEnd="@dimen/dp_6" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvApply"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="25dp"
|
||||
android:background="@drawable/bg_common_select"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/color_selector_6d6b89_false_ffffff"
|
||||
android:textSize="@dimen/sp_12"
|
||||
tools:text="@string/have_apply" />
|
||||
|
||||
</LinearLayout>
|
@@ -0,0 +1,94 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/cl_root"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_18"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="22dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_10">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_guild"
|
||||
android:layout_width="@dimen/dp_22"
|
||||
android:layout_height="@dimen/dp_22"
|
||||
android:background="@drawable/guild_one"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_guild"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/color_1F1A4E"
|
||||
android:textSize="@dimen/sp_16"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="1" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<com.chwl.app.common.widget.CircleImageView
|
||||
android:id="@+id/iv_guild_icon"
|
||||
android:layout_width="@dimen/dp_40"
|
||||
android:layout_height="@dimen/dp_40"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:src="@drawable/default_avatar" />
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/color_1F1A4E"
|
||||
android:textSize="@dimen/sp_15"
|
||||
android:textStyle="bold"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:maxEms="8"
|
||||
android:maxLines="1"
|
||||
tools:text="公會名稱" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_room_id"
|
||||
android:text="@string/association_room_id"
|
||||
android:textSize="@dimen/sp_12"
|
||||
android:textColor="@color/color_B3B3C3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvApply"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="25dp"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
android:background="@drawable/base_shape_theme_15dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/base_color_theme_text"
|
||||
android:textSize="@dimen/sp_12"
|
||||
tools:text="@string/have_apply" />
|
||||
|
||||
</LinearLayout>
|
236
app/src/module_bank_card/res/layout/item_bank_card.xml
Normal file
@@ -0,0 +1,236 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/cl_bank_card_background"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="142dp"
|
||||
android:background="@drawable/background_bank_card_one">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_bank_card_icon"
|
||||
android:layout_width="@dimen/dp_23"
|
||||
android:layout_height="@dimen/dp_23"
|
||||
android:layout_marginStart="34dp"
|
||||
android:layout_marginTop="@dimen/dp_22"
|
||||
android:background="@drawable/shape_white_round_23dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/icon_bank_card_default"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_bank_card_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_16"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/iv_bank_card_icon"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_bank_card_icon"
|
||||
app:layout_constraintTop_toTopOf="@+id/iv_bank_card_icon"
|
||||
tools:ignore="SpUsage"
|
||||
tools:text="@string/layout_item_bank_card_01" />
|
||||
|
||||
<!-- 设置默认支付 -->
|
||||
<ImageView
|
||||
android:id="@+id/iv_bank_card_set_default"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/selector_check_box_pic_check_white"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/iv_bank_card_icon"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_bank_card_set_default"
|
||||
app:layout_constraintTop_toTopOf="@+id/iv_bank_card_icon"
|
||||
tools:ignore="SpUsage"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_bank_card_set_default"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_35"
|
||||
android:gravity="center"
|
||||
android:text="@string/text_default_bank_card"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_11"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/iv_bank_card_icon"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/iv_bank_card_icon"
|
||||
tools:ignore="SpUsage"
|
||||
tools:visibility="visible" />
|
||||
<!-- 设置默认支付 -->
|
||||
|
||||
<!-- 解除绑定 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_bank_card_unbind"
|
||||
android:layout_width="65dp"
|
||||
android:layout_height="@dimen/dp_25"
|
||||
android:layout_marginEnd="@dimen/dp_35"
|
||||
android:background="@drawable/shape_white_opacity_15_round_13dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/text_unbind_bank_card"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_11"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/iv_bank_card_icon"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/iv_bank_card_icon"
|
||||
tools:ignore="SpUsage"
|
||||
tools:visibility="gone" />
|
||||
<!-- 解除绑定 -->
|
||||
|
||||
<!-- 点点点 -->
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_1"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_3"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_bank_card_icon"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_2"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_1"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_3"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_2"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_4"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_3"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_5"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_36"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toStartOf="@+id/tv_bank_card_number_4"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_6"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_5"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_7"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_6"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_8"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_7"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_9"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_36"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_8"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_10"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_9"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_11"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_10"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
|
||||
<View
|
||||
android:id="@+id/tv_bank_card_number_12"
|
||||
android:layout_width="@dimen/dp_7"
|
||||
android:layout_height="@dimen/dp_7"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:alpha="0.65"
|
||||
android:background="@drawable/shape_white_corner_8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tv_bank_card_number"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_bank_card_number_11"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_bank_card_number" />
|
||||
<!-- 点点点 -->
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_bank_card_number"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_32"
|
||||
android:layout_marginTop="@dimen/dp_14"
|
||||
android:layout_marginEnd="@dimen/dp_35"
|
||||
android:fontFamily="@font/din_bold"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_25"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_weight="1"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_bank_card_icon"
|
||||
tools:ignore="SpUsage"
|
||||
tools:text="1234" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="64dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:background="@color/bg_normal_1c1b22">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/ll_nameplate_cover"
|
||||
android:layout_width="136dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginStart="15dp"
|
||||
android:background="@drawable/bg_secondary_radius_10"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_nameplate_cover"
|
||||
android:layout_width="90dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center"
|
||||
android:scaleType="fitCenter" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_tag"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="5dp"
|
||||
tools:src="@drawable/ic_mark_limit" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_nameplate_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_toStartOf="@id/tv_used"
|
||||
android:layout_toEndOf="@+id/ll_nameplate_cover"
|
||||
android:layout_alignTop="@id/ll_nameplate_cover"
|
||||
android:drawablePadding="5dp"
|
||||
android:gravity="start"
|
||||
android:layout_marginTop="8dp"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/text_title_color"
|
||||
android:textSize="14sp"
|
||||
tools:text="@string/layout_item_nameplate_normal_01" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_used"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="11sp"
|
||||
android:visibility="gone"
|
||||
tools:background="@drawable/bg_my_head_buy"
|
||||
tools:text="@string/label_can_use"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_counters"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_below="@id/tv_nameplate_name"
|
||||
android:layout_toEndOf="@id/ll_nameplate_cover"
|
||||
android:gravity="center"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/color_666666"
|
||||
android:textSize="12sp"
|
||||
tools:text="@string/layout_item_nameplate_normal_02" />
|
||||
|
||||
</RelativeLayout>
|
90
app/src/module_bank_card/res/layout/item_room_collection.xml
Normal file
@@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/cl_root"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:background="@color/bg_normal_1c1b22">
|
||||
|
||||
<com.chwl.app.common.widget.CircleImageView
|
||||
android:id="@+id/rriv_room_img"
|
||||
android:layout_width="@dimen/dp_45"
|
||||
android:layout_height="@dimen/dp_45"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:src="@drawable/default_avatar" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_room_info"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_13"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/rriv_room_img"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_room_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/text_title_color"
|
||||
android:textSize="@dimen/sp_15"
|
||||
tools:text="@string/layout_item_room_collection_01"
|
||||
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_room_id"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_4"
|
||||
android:textColor="@color/text_normal_c6c6e9"
|
||||
android:textSize="@dimen/sp_13"
|
||||
tools:text="ID:8695" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_room_online_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_5"
|
||||
android:textColor="@color/app_248cfe"
|
||||
android:textSize="@dimen/sp_15"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_play"
|
||||
app:layout_constraintEnd_toStartOf="@id/tv_play"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_play"
|
||||
tools:text="75" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_play"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:text="@string/layout_item_room_collection_02"
|
||||
android:textColor="@color/text_secondary_4f516a"
|
||||
android:textSize="@dimen/sp_12"
|
||||
app:layout_constraintBottom_toBottomOf="@id/ll_room_info"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
||||
/>
|
||||
|
||||
|
||||
<View
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginTop="@dimen/dp_11"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:background="@color/line_353548"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/ll_room_info"
|
||||
app:layout_constraintTop_toBottomOf="@id/rriv_room_img" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
32
app/src/module_bank_card/res/values-ar/strings.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
|
||||
<string name="tips_need_bind_bank_card_first">الرجاء ربط بطاقتك البنكية أولاً</string>
|
||||
<string name="text_bank_card">بطاقة بنكية</string>
|
||||
<string name="setting_text_bank_card">إدارة شحن البطاقة البنكية</string>
|
||||
<string name="text_add_bank_card">إضافة بطاقة بنكية</string>
|
||||
<string name="text_unbind_bank_card">إلغاء ربط البطاقة</string>
|
||||
<string name="text_default_bank_card">الدفع الافتراضي</string>
|
||||
<string name="tips_bind_bank_card">بعد تعيينها كوسيلة دفع افتراضية، \nسيتم استخدام هذه البطاقة البنكية افتراضيًا عند اختيار الدفع، \nهل أنت متأكد من تعيينها كوسيلة دفع افتراضية؟</string>
|
||||
<string name="toast_set_default_bank_card_success">تم تعيين بطاقة الدفع الافتراضية بنجاح</string>
|
||||
<string name="toast_unbind_bank_card_success">تم إلغاء ربط البطاقة البنكية بنجاح</string>
|
||||
<string name="title_add_bank_card_agreement">اتفاقية خدمة المستخدم وسياسة الخصوصية</string>
|
||||
<string name="text_add_bank_card_agreement">
|
||||
عزيزي مستخدم MoliStar:\n\u3000\u3000من أجل حماية حقوقك ومصالحك الشرعية بشكل أفضل،
|
||||
والسماح لك باستخدام خدمات %s بشكل طبيعي، تلتزم %s بتنفيذ إدارة الهوية الحقيقية لحسابات الدفع وفقًا للقوانين والتشريعات الوطنية،
|
||||
وتنفيذ مسؤوليات منع غسيل الأموال، واتخاذ تدابير الوقاية من المخاطر. تحتاج إلى تقديم معلومات هوية ومعلومات الاتصال ومعلومات المعاملات إلى %s وشركات الشراكة (Converge Pay).
|
||||
%s ستقوم الشركة بجمع وتخزين واستخدام معلوماتك الشخصية بصرامة وفقًا للقوانين والتشريعات الوطنية لضمان أمان المعلومات.
|
||||
يرجى قراءة %s و %s بعناية.\n\u3000\u3000إذا كنت توافق على قبول الاتفاقية أعلاه، يرجى النقر فوق "موافق" ومتابعة عملية التسجيل. خلاف ذلك،
|
||||
يرجى النقر فوق "غير موافق" لإنهاء عملية التسجيل.
|
||||
</string>
|
||||
<string name="title_add_bank_card">إضافة بطاقة بنكية</string>
|
||||
<string name="hint_bank_card_user_name">اسم حامل البطاقة</string>
|
||||
<string name="hint_bank_card_number">رقم البطاقة البنكية</string>
|
||||
<string name="hint_bank_card_user_id">رقم الهوية</string>
|
||||
<string name="hint_bank_card_user_mobile">رقم الجوال المرتبط بالبنك</string>
|
||||
<string name="hint_bank_card_bind_sms_code">رمز التحقق</string>
|
||||
<string name="text_bind_bank_card">ربط</string>
|
||||
<string name="tips_bind_your_bank_card">يرجى ربط بطاقتك البنكية الخاصة بك مع التحقق من الهوية الحقيقية</string>
|
||||
|
||||
</resources>
|
29
app/src/module_bank_card/res/values-zh-rTW/strings.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tips_need_bind_bank_card_first">請先綁定銀行卡</string>
|
||||
<string name="text_bank_card">銀行卡</string>
|
||||
<string name="setting_text_bank_card">銀行卡充值管理</string>
|
||||
<string name="text_add_bank_card">添加銀行卡</string>
|
||||
<string name="text_unbind_bank_card">解除綁定</string>
|
||||
<string name="text_default_bank_card">默認支付</string>
|
||||
<string name="tips_bind_bank_card">設為默認支付後,\n選擇付款將默認使用該銀行卡,\n確定設為默認支付嗎?</string>
|
||||
<string name="toast_set_default_bank_card_success">設置默認支付銀行卡成功</string>
|
||||
<string name="toast_unbind_bank_card_success">解除綁定銀行卡成功</string>
|
||||
<string name="title_add_bank_card_agreement">用戶服務協議及隱私政策</string>
|
||||
<string name="text_add_bank_card_agreement">
|
||||
尊敬的MoliStar用戶:\n\u3000\u3000為了更好地保障你的合法權益,
|
||||
讓你正常使用%s服務,%s公司依照國家法律法規,對支付賬戶進行實名製管理、
|
||||
履行反洗錢職責並采取風險防控措施。你需要向%s公司以及合作公司(匯聚支付)提交身份信息、
|
||||
聯系方式、交易信息。\n\u3000\u3000%s公司將嚴格依據國家法律法規收集、存儲、使用你的個人信息,確保信息安全。
|
||||
請你務必審慎閱讀並充分理解%s和%s\n\u3000\u3000若你同意接受前述協議,請點擊「同意」並繼續註冊操作,否則,
|
||||
請點擊「不同意」,中止註冊操作。
|
||||
</string>
|
||||
<string name="title_add_bank_card">添加銀行卡</string>
|
||||
<string name="hint_bank_card_user_name">持卡人</string>
|
||||
<string name="hint_bank_card_number">銀行卡號</string>
|
||||
<string name="hint_bank_card_user_id">身份證號</string>
|
||||
<string name="hint_bank_card_user_mobile">銀行預留手機號</string>
|
||||
<string name="hint_bank_card_bind_sms_code">驗證碼</string>
|
||||
<string name="text_bind_bank_card">綁定</string>
|
||||
<string name="tips_bind_your_bank_card">請綁定實名認證本人銀行卡</string>
|
||||
</resources>
|
28
app/src/module_bank_card/res/values/strings.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tips_need_bind_bank_card_first">Please bind your bank card first</string>
|
||||
<string name="text_bank_card">Bank Card</string>
|
||||
<string name="setting_text_bank_card">Bank Card Recharge Management</string>
|
||||
<string name="text_add_bank_card">Add Bank Card</string>
|
||||
<string name="text_unbind_bank_card">Unbind Card</string>
|
||||
<string name="text_default_bank_card">Default Payment</string>
|
||||
<string name="tips_bind_bank_card">After setting as default payment, \nselecting payment will default to using this bank card, \nare you sure to set as default payment?</string>
|
||||
<string name="toast_set_default_bank_card_success">Successfully set default payment bank card</string>
|
||||
<string name="toast_unbind_bank_card_success">Successfully unbound bank card</string>
|
||||
<string name="title_add_bank_card_agreement">User Service Agreement and Privacy Policy</string>
|
||||
<string name="text_add_bank_card_agreement">
|
||||
Dear MoliStar User:\n\u3000\u3000In order to better protect your legitimate rights and interests,
|
||||
and allow you to use %s services normally, %s company complies with national laws and regulations to implement real-name system management for payment accounts,
|
||||
fulfill anti-money laundering responsibilities, and take risk prevention measures. You need to submit identity information, contact information, and transaction information to %s company and cooperative companies (Converge Pay).\n\u3000\u3000%s company will strictly collect, store, and use your personal information in accordance with national laws and regulations to ensure information security.
|
||||
Please read and fully understand %s and %s carefully.\n\u3000\u3000If you agree to accept the above agreement, please click "Agree" and continue the registration process. Otherwise,
|
||||
please click "Disagree" to terminate the registration process.
|
||||
</string>
|
||||
<string name="title_add_bank_card">Add Bank Card</string>
|
||||
<string name="hint_bank_card_user_name">Cardholder</string>
|
||||
<string name="hint_bank_card_number">Bank Card Number</string>
|
||||
<string name="hint_bank_card_user_id">ID Number</string>
|
||||
<string name="hint_bank_card_user_mobile">Mobile Number Associated with Bank</string>
|
||||
<string name="hint_bank_card_bind_sms_code">Verification Code</string>
|
||||
<string name="text_bind_bank_card">Bind</string>
|
||||
<string name="tips_bind_your_bank_card">Please bind your own bank card with real-name authentication</string>
|
||||
</resources>
|