|
@@ -9,8 +9,6 @@ import android.hardware.Camera;
|
|
|
import android.nfc.NfcAdapter;
|
|
|
import android.nfc.Tag;
|
|
|
import android.nfc.tech.MifareClassic;
|
|
|
-import android.os.Build;
|
|
|
-import android.os.Bundle;
|
|
|
import android.text.Editable;
|
|
|
import android.text.TextWatcher;
|
|
|
import android.view.TextureView;
|
|
@@ -18,8 +16,6 @@ import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
import android.view.ViewTreeObserver;
|
|
|
import android.view.WindowManager;
|
|
|
-import android.widget.Button;
|
|
|
-import android.widget.EditText;
|
|
|
import android.widget.ImageView;
|
|
|
import android.widget.TextView;
|
|
|
|
|
@@ -38,7 +34,7 @@ import com.cloth.clothcashier.adapter.KeyBoardAdapter;
|
|
|
import com.cloth.clothcashier.application.MyApplication;
|
|
|
import com.cloth.clothcashier.base.BaseActivity;
|
|
|
import com.cloth.clothcashier.base.BaseInitAlgorithm;
|
|
|
-import com.cloth.clothcashier.constans.DataConstans;
|
|
|
+import com.cloth.clothcashier.bean.PayStatusBean;
|
|
|
import com.cloth.clothcashier.net.Injection;
|
|
|
import com.cloth.clothcashier.ui.model.PreviewConfig;
|
|
|
import com.cloth.clothcashier.ui.viewmodel.DirectPayViewModel;
|
|
@@ -47,7 +43,6 @@ import com.cloth.clothcashier.util.DeviceHelper;
|
|
|
import com.cloth.clothcashier.util.DialogUtils;
|
|
|
import com.cloth.clothcashier.util.DisplayUtil;
|
|
|
import com.cloth.clothcashier.util.DividerGridItemDecoration;
|
|
|
-import com.cloth.clothcashier.util.SharedPreferencesHelperUtil;
|
|
|
import com.cloth.clothcashier.util.SoundPoolManager;
|
|
|
import com.cloth.clothcashier.util.StringUtil;
|
|
|
import com.cloth.clothcashier.util.ToastUtil;
|
|
@@ -69,8 +64,6 @@ import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import butterknife.BindView;
|
|
|
-import butterknife.ButterKnife;
|
|
|
-import butterknife.OnClick;
|
|
|
|
|
|
/**
|
|
|
* 手动输入支付
|
|
@@ -110,6 +103,7 @@ public class DirectPayActivity extends BaseActivity implements TextWatcher, Came
|
|
|
FaceRectView dualCameraFaceRectView;
|
|
|
private KeyBoardAdapter keyBoardAdapter;
|
|
|
private List<String> keyData = null;
|
|
|
+ private String TAG = "DirectPayActivity";
|
|
|
|
|
|
@Override
|
|
|
protected int getLayoutResId() {
|
|
@@ -430,7 +424,7 @@ public class DirectPayActivity extends BaseActivity implements TextWatcher, Came
|
|
|
soundPoolManager.play(0);
|
|
|
directPayViewModel.restoreDefault();
|
|
|
dissLoadingDialog();
|
|
|
- creatPayFailedDialog(payStatusBean.isStatus(), "");
|
|
|
+ createPayResultDialog(payStatusBean);
|
|
|
etDirectPrice.setText("");
|
|
|
tvDirectPrice.setText("¥0.00");
|
|
|
} else {
|
|
@@ -438,13 +432,13 @@ public class DirectPayActivity extends BaseActivity implements TextWatcher, Came
|
|
|
soundPoolManager.play(1);
|
|
|
directPayViewModel.defaultRepeat();
|
|
|
dissLoadingDialog();
|
|
|
- creatPayFailedDialog(payStatusBean.isStatus(), payStatusBean.getReason());
|
|
|
+ createPayResultDialog(payStatusBean);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private void creatPayFailedDialog(boolean status, String reason) {
|
|
|
+ private void createPayResultDialog(PayStatusBean payStatusBean) {
|
|
|
if (payStatusDialog == null) {
|
|
|
payStatusDialog = new PopDialog(DialogUtils.creatpayStatusDialog(this));
|
|
|
ViewGroup.LayoutParams layoutParams = payStatusDialog.getView(R.id.pay_status_liner).getLayoutParams();
|
|
@@ -455,21 +449,24 @@ public class DirectPayActivity extends BaseActivity implements TextWatcher, Came
|
|
|
ImageView imageView = (ImageView) payStatusDialog.getView(R.id.iv_pay_failed);
|
|
|
TextView textView = (TextView) payStatusDialog.getView(R.id.tv_pay_status);
|
|
|
TextView pay_reason = (TextView) payStatusDialog.getView(R.id.tv_pay_reason);
|
|
|
- if (status) {
|
|
|
+ if (payStatusBean.isStatus()) {
|
|
|
imageView.setImageResource(R.mipmap.pay_success);
|
|
|
textView.setText("支付成功");
|
|
|
pay_reason.setVisibility(View.INVISIBLE);
|
|
|
+ super.showSuccessRes(payStatusBean.getUserName(), payStatusBean.getPrice(), payStatusBean.getPersonalBalance(), payStatusBean.getSubsidyBalance());
|
|
|
} else {
|
|
|
imageView.setImageResource(R.mipmap.pay_failed);
|
|
|
textView.setText("支付失败");
|
|
|
pay_reason.setVisibility(View.VISIBLE);
|
|
|
- pay_reason.setText(reason);
|
|
|
+ pay_reason.setText(payStatusBean.getReason());
|
|
|
+ super.showFailRes(payStatusBean.getReason());
|
|
|
}
|
|
|
payStatusDialog.setOnDismissListener(() -> {
|
|
|
directPayViewModel.restoreDefault();
|
|
|
if (payStatusDialog != null) {
|
|
|
payStatusDialog.dismissPop();
|
|
|
}
|
|
|
+ super.closeResultDisplay();
|
|
|
});
|
|
|
payStatusDialog.showPop();
|
|
|
}
|
|
@@ -653,27 +650,34 @@ public class DirectPayActivity extends BaseActivity implements TextWatcher, Came
|
|
|
keyBoardAdapter.addChildClickViewIds(R.id.tv_keyboard);
|
|
|
keyBoardAdapter.setOnItemChildClickListener((adapter, view, position) -> {
|
|
|
String price = etDirectPrice.getText().toString().trim();
|
|
|
+ String afterPrice = "0";
|
|
|
Logger.i(position + "=" + beforePos + "=" + beforeCount + "=" + beforePrice + "=" + price);
|
|
|
switch (position) {
|
|
|
case 15:
|
|
|
+ //支付
|
|
|
if (!StringUtil.isEmpty(price)) {
|
|
|
DeviceHelper.hideKeyboard(etDirectPrice);
|
|
|
- creatPayDialog();
|
|
|
+ createSelectPayDialog();
|
|
|
+ afterPrice = price;
|
|
|
}
|
|
|
break;
|
|
|
case 3:
|
|
|
+ //删除
|
|
|
if (!StringUtil.isEmpty(price)) {
|
|
|
- etDirectPrice.setText(price.substring(0, price.length() - 1));
|
|
|
- tvDirectPrice.setText(price.substring(0, price.length() - 1));
|
|
|
+ afterPrice = price.substring(0, price.length() - 1);
|
|
|
+ etDirectPrice.setText(afterPrice);
|
|
|
+ tvDirectPrice.setText(afterPrice);
|
|
|
beforePrice = "";
|
|
|
beforeCount = false;
|
|
|
beforePos = -1;
|
|
|
}
|
|
|
break;
|
|
|
case 7:
|
|
|
+ //加
|
|
|
if (beforePos != position && !StringUtil.isEmpty(price) && !beforeCount) {
|
|
|
beforePos = position;
|
|
|
beforePrice = price;
|
|
|
+ afterPrice = beforePrice;
|
|
|
} else {
|
|
|
if (beforeCount) {
|
|
|
if (beforePos == 7) {
|
|
@@ -683,15 +687,18 @@ public class DirectPayActivity extends BaseActivity implements TextWatcher, Came
|
|
|
}
|
|
|
beforePos = position;
|
|
|
beforeCount = false;
|
|
|
- etDirectPrice.setText(beforePrice);
|
|
|
- tvDirectPrice.setText(beforePrice);
|
|
|
+ afterPrice = beforePrice;
|
|
|
+ etDirectPrice.setText(afterPrice);
|
|
|
+ tvDirectPrice.setText(afterPrice);
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case 11:
|
|
|
+ //乘
|
|
|
if (beforePos != position && !StringUtil.isEmpty(price) && !beforeCount) {
|
|
|
beforePos = position;
|
|
|
beforePrice = price;
|
|
|
+ afterPrice = beforePrice;
|
|
|
} else {
|
|
|
if (beforeCount) {
|
|
|
if (beforePos == 7) {
|
|
@@ -701,47 +708,57 @@ public class DirectPayActivity extends BaseActivity implements TextWatcher, Came
|
|
|
}
|
|
|
beforePos = position;
|
|
|
beforeCount = false;
|
|
|
- etDirectPrice.setText(beforePrice);
|
|
|
- tvDirectPrice.setText(beforePrice);
|
|
|
+ afterPrice = beforePrice;
|
|
|
+ etDirectPrice.setText(afterPrice);
|
|
|
+ tvDirectPrice.setText(afterPrice);
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case 14:
|
|
|
+ //等于
|
|
|
if (beforePos != -1 && !StringUtil.isEmpty(price) && !StringUtil.isEmpty(beforePrice) && beforeCount) {
|
|
|
if (beforePos == 7) {
|
|
|
beforePrice = (new BigDecimal(beforePrice).add(new BigDecimal(price))).toString();
|
|
|
} else if (beforePos == 11) {
|
|
|
beforePrice = (new BigDecimal(beforePrice).multiply(new BigDecimal(price))).toString();
|
|
|
}
|
|
|
- etDirectPrice.setText(beforePrice);
|
|
|
- tvDirectPrice.setText(beforePrice);
|
|
|
+ afterPrice = beforePrice;
|
|
|
+ etDirectPrice.setText(afterPrice);
|
|
|
+ tvDirectPrice.setText(afterPrice);
|
|
|
beforePrice = "";
|
|
|
beforeCount = false;
|
|
|
beforePos = -1;
|
|
|
}
|
|
|
break;
|
|
|
case 13:
|
|
|
+ //点
|
|
|
if (!StringUtil.isEmpty(price) && !price.contains(".")) {
|
|
|
- etDirectPrice.setText(price + keyData.get(position));
|
|
|
- tvDirectPrice.setText("¥" + price + keyData.get(position));
|
|
|
+ afterPrice = price + keyData.get(position);
|
|
|
+ etDirectPrice.setText(afterPrice);
|
|
|
+ tvDirectPrice.setText("¥" + afterPrice);
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
if (beforePos == -1) {
|
|
|
- etDirectPrice.setText(price + keyData.get(position));
|
|
|
- tvDirectPrice.setText("¥" + price + keyData.get(position));
|
|
|
+ afterPrice = price + keyData.get(position);
|
|
|
} else {
|
|
|
if (!beforeCount) {
|
|
|
beforeCount = true;
|
|
|
- etDirectPrice.setText(keyData.get(position));
|
|
|
- tvDirectPrice.setText("¥" + keyData.get(position));
|
|
|
+ afterPrice = keyData.get(position);
|
|
|
} else {
|
|
|
- etDirectPrice.setText(price + keyData.get(position));
|
|
|
- tvDirectPrice.setText("¥" + price + keyData.get(position));
|
|
|
+ afterPrice = price + keyData.get(position);
|
|
|
}
|
|
|
}
|
|
|
+ etDirectPrice.setText(afterPrice);
|
|
|
+ tvDirectPrice.setText("¥" + afterPrice);
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
+ //更新副屏展示金额
|
|
|
+ if(StringUtil.isEmpty(afterPrice)){
|
|
|
+ afterPrice = "0";
|
|
|
+ }
|
|
|
+ super.updatePrice(afterPrice);
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -775,10 +792,10 @@ public class DirectPayActivity extends BaseActivity implements TextWatcher, Came
|
|
|
|
|
|
private int type = 1;
|
|
|
|
|
|
- private void creatPayDialog() {
|
|
|
+ private void createSelectPayDialog() {
|
|
|
if (payWayDialog == null) {
|
|
|
payWayDialog = new PopDialog(DialogUtils.creatpayWayDialog(this, v -> {
|
|
|
- seletePay(v.getId());
|
|
|
+ selectPay(v.getId());
|
|
|
}));
|
|
|
payWayDialog.setCancelEnable(true);
|
|
|
ViewGroup.LayoutParams layoutParams = payWayDialog.getView(R.id.pay_liner).getLayoutParams();
|
|
@@ -790,7 +807,7 @@ public class DirectPayActivity extends BaseActivity implements TextWatcher, Came
|
|
|
payWayDialog.showPop();
|
|
|
}
|
|
|
|
|
|
- private void seletePay(int id) {
|
|
|
+ private void selectPay(int id) {
|
|
|
switch (id) {
|
|
|
case R.id.tv_cancel_pay:
|
|
|
payWayDialog.dismissPop();
|