up dependencies version
parent
c3cf63fdbe
commit
49c3cc5b8d
|
|
@ -62,6 +62,9 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
all {
|
||||||
|
buildConfigField ("String[]", "SUPPORTED_DEVICES", collectSupportedDevicesToArray())
|
||||||
|
}
|
||||||
release {
|
release {
|
||||||
signingConfig signingConfigs.release
|
signingConfig signingConfigs.release
|
||||||
}
|
}
|
||||||
|
|
@ -123,3 +126,9 @@ dependencies {
|
||||||
|
|
||||||
implementation deps.websockets // Only for useWebsockets parameter
|
implementation deps.websockets // Only for useWebsockets parameter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def collectSupportedDevicesToArray() {
|
||||||
|
return '{' + rootProject.ext."supportedDevices${getProject().name}".collect {
|
||||||
|
"\"${it}\""
|
||||||
|
}.join(",") + '}'
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.library.external.authorization.ActivationCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.ActivationType;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class ActivationCallbackHandlerImpl implements ActivationCallbackHandler {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public ActivationCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivationTypeAndInfoRequested() {
|
|
||||||
Timber.i("FIRST STEP STARTED");
|
|
||||||
activity.getClientInterface().getAuthorizationManager().sendActivationFirstStepData(ActivationType.EMAIL, "dm@centercorptech.net");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivationCodeRequested(Integer codeLifetime) {
|
|
||||||
Timber.i("FIRST STEP COMPLETED");
|
|
||||||
Timber.i("SECOND STEP STARTED");
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("ADD activation code:");
|
|
||||||
|
|
||||||
EditText editext = new EditText(activity);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface().getAuthorizationManager().sendActivationCode(editext.getText().toString());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(editext);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivationConfirmRequested() {
|
|
||||||
Timber.i("SECOND STEP COMPLETED");
|
|
||||||
Timber.i("LAST STEP STARTED");
|
|
||||||
activity.getClientInterface().getAuthorizationManager().confirmActivation("1234", null);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
Timber.i("COMPLETED WITH RESULT - " + result.getResultType());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
Timber.i("WRONG API CALLED");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,175 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.AlipayPaymentCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.AdditionalTransactionData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.AlipayCodeType;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.IdentityCodeType;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class AlipayPaymentCallbackHandlerImpl implements AlipayPaymentCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public AlipayPaymentCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWorkFlowDataRequested() {
|
|
||||||
Timber.d("WorkFlow requested");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionAmountRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setTransactionAmount(activity.getAmount());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setAdditionalTransactionData(new AdditionalTransactionData.Builder(null).build());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionBarCodeRequested() {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("ADD QRCODE:");
|
|
||||||
|
|
||||||
EditText editext = new EditText(activity);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface().getTransactionManager().setTransactionBarCode(new IdentityCodeType(AlipayCodeType.QRCODE, editext.getText().toString()));
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(editext);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()),
|
|
||||||
Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
activity.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription() == null ? "" : errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.sendTransactionUserData("signature", "phone", "email");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDetailsReceived(Transaction transaction) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction details received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccessStatusTransaction(Transaction transaction) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorStatusTransaction() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult printerResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List printerList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
import ru.m4bank.mpos.library.external.authorization.AuthorizationCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.authorization.network.AuthorizationResponse;
|
|
||||||
|
|
||||||
|
|
||||||
public class AuthorizationCallbackHandlerImpl implements AuthorizationCallbackHandler {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public AuthorizationCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onLoginAndPasswordRequested() {
|
|
||||||
activity.getClientInterface().getAuthorizationManager().sendLoginAndPassword(activity.getLogin(), activity.getPassword());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(ru.m4bank.mpos.service.result.Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()),
|
|
||||||
Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(ru.m4bank.mpos.service.result.Result result, AuthorizationResponse authorizationResponse) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()),
|
|
||||||
Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,465 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import kz.com.aman.kassa.bank.gui.CustomKeyBoardDilalog;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.CardPaymentCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.commons.data.ResultType;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.AdditionalTransactionData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.GoodsData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Reader;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.VendorData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.printer.enums.AccountingSubject;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.printer.enums.TaxRate;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.result.ResultCode;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.AllError;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.ApplicationIdConv;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.enums.TransactionTypeConv;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.enums.VirtualKeyboardStyleTypeConv;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.ButtonKeyboardDto;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.MessageButtonData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.VirtualPinKeyboardData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.dto.OnlineCardDataDto;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class CardPaymentCallbackHandlerImpl implements CardPaymentCallbackHandler<Result> {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
private CustomKeyBoardDilalog customKeyBoardDilalog;
|
|
||||||
private TransactionTypeConv transactionTypeConv;
|
|
||||||
|
|
||||||
public CardPaymentCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
customKeyBoardDilalog = new CustomKeyBoardDilalog();
|
|
||||||
transactionTypeConv = TransactionTypeConv.UNKNOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CardPaymentCallbackHandlerImpl setTransactionTypeConv(TransactionTypeConv transactionTypeConv) {
|
|
||||||
this.transactionTypeConv = transactionTypeConv;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToConnectSelectionRequested(List<String> deviceList) {
|
|
||||||
Timber.d("onDeviceToConnectSelectionRequested");
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, deviceList);
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.selectCardReader(deviceListSpinner.getSelectedItem().toString());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardReaderForTransactionGettingCompleted() {
|
|
||||||
Timber.d("Reader has been received");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedDevicesFound() {
|
|
||||||
Timber.d("No bounded readers");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToUseSelectionRequested(List<Reader> deviceList) {
|
|
||||||
Timber.d("onDeviceToUseSelectionRequested");
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Reader> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(deviceList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.setCardReaderToUse((Reader) deviceListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionAmountRequested() {
|
|
||||||
Timber.d("onTransactionAmountRequested");
|
|
||||||
activity.getClientInterface().getTransactionManager().setTransactionAmount(activity.getAmount());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataRequested() {
|
|
||||||
Timber.d("onTransactionDataRequested");
|
|
||||||
List<GoodsData> goodsDataList = new ArrayList<>();
|
|
||||||
goodsDataList.add(new GoodsData.Builder()
|
|
||||||
.setOriginalPrice(100000L)
|
|
||||||
.setRealPrice(100000L)
|
|
||||||
.setName("Принтер")
|
|
||||||
.setQuantity(1)
|
|
||||||
.setCode("000001")
|
|
||||||
.setUnits("00")
|
|
||||||
.setDiscount(0L)
|
|
||||||
.setTaxRate(TaxRate.Tax_18)
|
|
||||||
.setExponent(2)
|
|
||||||
.setAccountingSubject(AccountingSubject.PRODUCT)
|
|
||||||
.build());
|
|
||||||
goodsDataList.add(new GoodsData.Builder()
|
|
||||||
.setOriginalPrice(30065L)
|
|
||||||
.setRealPrice(30065L)
|
|
||||||
.setName("Услуга")
|
|
||||||
.setQuantity(3)
|
|
||||||
.setCode("000002")
|
|
||||||
.setUnits("00")
|
|
||||||
.setDiscount(0L)
|
|
||||||
.setTaxRate(TaxRate.Tax_18)
|
|
||||||
.setExponent(2)
|
|
||||||
.setAccountingSubject(AccountingSubject.PRODUCT)
|
|
||||||
.build());
|
|
||||||
|
|
||||||
HashMap<String, String> vendorDescription = new HashMap<>();
|
|
||||||
vendorDescription.put("vendor", "description");
|
|
||||||
vendorDescription.put("vendor1", "description1");
|
|
||||||
vendorDescription.put("vendor2", "description2");
|
|
||||||
vendorDescription.put("vendor3", "description3");
|
|
||||||
VendorData vendorData = new VendorData(vendorDescription);
|
|
||||||
|
|
||||||
AdditionalTransactionData additionalTransactionData = new AdditionalTransactionData.Builder(goodsDataList).vendorData(vendorData).build();
|
|
||||||
activity.getClientInterface().getTransactionManager().setAdditionalTransactionData(additionalTransactionData);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWorkFlowDataRequested() {
|
|
||||||
Timber.d("WorkFlow requested");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
Timber.d("onCompleted");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
Timber.d("onWrongApiCalled");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceiveCardData(OnlineCardDataDto data, boolean shouldConfirmBeManuallyCalled) {
|
|
||||||
Timber.d("onReceiveCardData");
|
|
||||||
if (shouldConfirmBeManuallyCalled) {
|
|
||||||
activity.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
//Impossible
|
|
||||||
activity.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
Timber.d("onTransactionExecutionStatusChanged: " + newStatus.name());
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, newStatus.name(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
if (transactionErrorData.getError() != null) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, transactionErrorData.getError().getDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
} else {
|
|
||||||
Timber.d("onError: %s, description: %s", ((AllError) errorHandler).name(), errorHandler.getDescription());
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, String.format("onError: %s, description: %s", ((AllError) errorHandler).name(), errorHandler.getFinalDescription()), Toast.LENGTH_LONG).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
Timber.d("onErrorWithPossibilityToRetry: %s, description: %s", ((AllError) errorHandler).name(), errorHandler.getDescription());
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, String.format("onError: %s, description: %s", ((AllError) errorHandler).name(), errorHandler.getFinalDescription()), Toast.LENGTH_LONG).show());
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
Timber.d("onTransactionDataReceivedError");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
Timber.d("onUserInformationRequested");
|
|
||||||
if (transactionTypeConv != TransactionTypeConv.CANCEL) {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.sendTransactionUserData("signature", "phone", "vsa@centercorptech.net");
|
|
||||||
} else {
|
|
||||||
onTransactionCompleted();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
Timber.d("onTransactionDataReceived");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
Timber.d("onTransactionCompleted");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredHostAddress() {
|
|
||||||
Timber.d("onRequiredHostAddress");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Set Host Address", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
activity.getClientInterface().getTransactionManager().setHostAddress("213.79.122.128", "8011");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisconnectedEventReceivedOrCanNotEstablishConnection(boolean reconnectAvailable, String description) {
|
|
||||||
Timber.d("onDisconnectedEventReceivedOrCanNotEstablishConnection");
|
|
||||||
if (reconnectAvailable) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Connection to cardreader has been lost, try to reconnect and repeat last operation?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().tryToReconnectAndRepeatLast());
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().cancel());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectingProcessStarted(String deviceName) {
|
|
||||||
Timber.d("Connecting process started: %s", deviceName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconnectNeededToProcess() {
|
|
||||||
Timber.d("onReconnectNeededToProcess");
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Connection to cardreader has been lost, try to reconnect and continue?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().getTransactionManager().tryToReconnectToCardReader());
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().cancel());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconciliationRequiredToProcess() {
|
|
||||||
Timber.d("onReconciliationRequiredToProcess");
|
|
||||||
Timber.d("Reconciliation required!!!");
|
|
||||||
activity.getClientInterface().getTransactionManager().makeReconciliationDuringTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconciliationCompleted(Result result) {
|
|
||||||
Timber.d("onReconciliationCompleted");
|
|
||||||
Timber.d("Reconciliation completed!!!");
|
|
||||||
if (result.getResultType() == ResultType.SUCCESSFUL) {
|
|
||||||
activity.getClientInterface().getTransactionManager().continueTransactionAfterReconciliation();
|
|
||||||
} else {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Reconciliation failed " + result.getDescription(), Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
Timber.d("notAuthorized");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "notAuthorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDetailsReceived(Transaction transaction) {
|
|
||||||
Timber.d("onTransactionDetailsReceived");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction details received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccessStatusTransaction(Transaction transaction) {
|
|
||||||
Timber.d("onSuccessStatusTransaction");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorStatusTransaction() {
|
|
||||||
Timber.d("onErrorStatusTransaction");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
Timber.d("onRepeat");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
Timber.d("onRequestedReportZ");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult<PrinterErrorData, PrinterBaseData> printerErrorDataPrinterBaseDataPrinterResult) {
|
|
||||||
Timber.d("onCompletedPrinting");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
Timber.d("onStatusFiscalModule");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
Timber.d("onPrinterForRegistrationGettingCompleted");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
Timber.d("onNoBoundedPrinterFound");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List<String> printerList) {
|
|
||||||
Timber.d("onPrinterToUseSelectionRequested");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredReversal(String description, ResultCode resultCode) {
|
|
||||||
Timber.d("onRequiredReversal: %s, resultCode: %s", description, resultCode.name());
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Revert last of operation?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().getTransactionManager().revertCurrentOperation(new RevertCurrentOperationCallbackHandlerImpl(activity)));
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().getTransactionManager().clearLastTransactionInformation());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredApplicationSelection(List<ApplicationIdConv> list) {
|
|
||||||
Timber.d("onRequiredApplicationSelection");
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose application identifier");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<ApplicationIdConv> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, list);
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.setTransactionApplicationIdentifier((ApplicationIdConv) deviceListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityUpdateUiThread() {
|
|
||||||
Timber.d("onActivityUpdateUiThread");
|
|
||||||
activity.getClientInterface().getTransactionManager().addPinpadClickListener(activity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreatePinPadButtons() {
|
|
||||||
Timber.d("onCreatePinPadButtons");
|
|
||||||
customKeyBoardDilalog.createDialog(activity);
|
|
||||||
customKeyBoardDilalog.show(activity);
|
|
||||||
ButtonKeyboardDto buttonKeyboardDto = new ButtonKeyboardDto.Build(
|
|
||||||
customKeyBoardDilalog.getBtnb1(),
|
|
||||||
customKeyBoardDilalog.getBtnb2(),
|
|
||||||
customKeyBoardDilalog.getBtnb3(),
|
|
||||||
customKeyBoardDilalog.getBtnb4(),
|
|
||||||
customKeyBoardDilalog.getBtnb5(),
|
|
||||||
customKeyBoardDilalog.getBtnb6(),
|
|
||||||
customKeyBoardDilalog.getBtnb7(),
|
|
||||||
customKeyBoardDilalog.getBtnb8(),
|
|
||||||
customKeyBoardDilalog.getBtnb9(),
|
|
||||||
customKeyBoardDilalog.getBtnb0(),
|
|
||||||
customKeyBoardDilalog.getBtncancel(),
|
|
||||||
customKeyBoardDilalog.getBtnconfirm(),
|
|
||||||
customKeyBoardDilalog.getBtnclean(),
|
|
||||||
activity.getWindowManager().getDefaultDisplay().getRotation()
|
|
||||||
).build();
|
|
||||||
activity.getClientInterface().getTransactionManager().addPinPadButtons(buttonKeyboardDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onShowPinPadKeyBoard(MessageButtonData messageButtonData) {
|
|
||||||
Timber.d("onShowPinPadKeyBoard");
|
|
||||||
customKeyBoardDilalog.setText(messageButtonData);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUpdateElementPin(int count) {
|
|
||||||
Timber.d("onUpdateElementPin");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "count = " + count, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCloseKeyboard() {
|
|
||||||
Timber.d("onCloseKeyboard");
|
|
||||||
customKeyBoardDilalog.close(activity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredAdditionalVirtualKeyboardSettings(VirtualKeyboardStyleTypeConv virtualKeyboardStyleTypeConv) {
|
|
||||||
activity.showSelectStyleDialog(additionalData ->
|
|
||||||
activity.getClientInterface().getTransactionManager().addVirtualPinKeyboardData(additionalData));
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface SelectStyleListener {
|
|
||||||
void onSelectStyle(VirtualPinKeyboardData virtualPinKeyboardData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,217 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import kz.com.aman.kassa.bank.gui.CustomKeyBoardDilalog;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.CardReadingCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.commons.utils.ArrayUtils;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Reader;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.ApplicationIdConv;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.SimpleCardTransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class CardReadingCallbackHandlerImpl implements CardReadingCallbackHandler<Result> {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
private CustomKeyBoardDilalog customKeyBoardDilalog;
|
|
||||||
|
|
||||||
public CardReadingCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
customKeyBoardDilalog = new CustomKeyBoardDilalog();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToConnectSelectionRequested(List<String> deviceList) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, deviceList);
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.selectCardReader(deviceListSpinner.getSelectedItem().toString());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardReaderForTransactionGettingCompleted() {
|
|
||||||
Timber.d("Reader has been received");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedDevicesFound() {
|
|
||||||
Timber.d("No bounded readers");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToUseSelectionRequested(List<Reader> deviceList) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Reader> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, ArrayUtils.newArrayList(deviceList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.setCardReaderToUse((Reader) deviceListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + result.getDescription(), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, newStatus.name(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData errorData) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.sendTransactionUserData("signature", "phone", "vsa@centercorptech.net");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisconnectedEventReceivedOrCanNotEstablishConnection(boolean reconnectAvailable, String description) {
|
|
||||||
if (reconnectAvailable) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Connection to cardreader has been lost, try to reconnect and repeat last operation?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().tryToReconnectAndRepeatLast());
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().cancel());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectingProcessStarted(String deviceName) {
|
|
||||||
Timber.d("Connecting process started");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconnectNeededToProcess() {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Connection to cardreader has been lost, try to reconnect and continue?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().getTransactionManager().tryToReconnectToCardReader());
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().cancel());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceiveCommonCardData(SimpleCardTransactionData simpleCardTransactionData) {
|
|
||||||
String pan = simpleCardTransactionData.getCardNumber();
|
|
||||||
String expDate = simpleCardTransactionData.getCardExpiryDate();
|
|
||||||
String cardHolderName = simpleCardTransactionData.getCardHolderName();
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "card data: " + pan + " - " + expDate + " - " + cardHolderName, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredApplicationSelection(List<ApplicationIdConv> applicationOfList) {
|
|
||||||
// activity.runOnUiThread(() -> {
|
|
||||||
// AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
// builder.setTitle("Choose application identifier");
|
|
||||||
//
|
|
||||||
// Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
// ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, applicationOfList);
|
|
||||||
// adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
// deviceListSpinner.setAdapter(adapter);
|
|
||||||
//
|
|
||||||
// builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
// activity.getClientInterface()
|
|
||||||
// .getTransactionManager()
|
|
||||||
// .setTransactionApplicationIdentifier(deviceListSpinner.getSelectedItem().toString());
|
|
||||||
// dialog.dismiss();
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// builder.setView(deviceListSpinner);
|
|
||||||
// builder.create().show();
|
|
||||||
// });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,336 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import kz.com.aman.kassa.bank.gui.CustomKeyBoardDilalog;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.EasyCardRefundCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Reader;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.result.ResultCode;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.transaction.RefundType;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.AllError;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.ApplicationIdConv;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.enums.VirtualKeyboardStyleTypeConv;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.ButtonKeyboardDto;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.MessageButtonData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.dto.OnlineCardDataDto;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class CardRefundCallbackHandlerImpl implements EasyCardRefundCallbackHandler<Result>, GetTransactionsListCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
private Transaction transaction;
|
|
||||||
private CustomKeyBoardDilalog customKeyBoardDilalog;
|
|
||||||
|
|
||||||
public CardRefundCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
customKeyBoardDilalog = new CustomKeyBoardDilalog();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardReaderForTransactionGettingCompleted() {
|
|
||||||
Timber.d("Reader has been received");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedDevicesFound() {
|
|
||||||
Timber.d("No bounded readers");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToUseSelectionRequested(List<Reader> deviceList) {
|
|
||||||
Timber.d("onDeviceToUseSelectionRequested");
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Reader> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(deviceList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface().getTransactionManager().setCardReaderToUse((Reader) deviceListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToConnectSelectionRequested(List<String> deviceList) {
|
|
||||||
Timber.d("onDeviceToConnectSelectionRequested");
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, deviceList);
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface().getTransactionManager().selectCardReader(deviceListSpinner.getSelectedItem().toString());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
Timber.d("onCompleted");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()),
|
|
||||||
Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
Timber.d("onWrongApiCalled");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceiveCardData(OnlineCardDataDto data, boolean shouldConfirmBeManuallyCalled) {
|
|
||||||
Timber.d("onReceiveCardData");
|
|
||||||
if (shouldConfirmBeManuallyCalled) {
|
|
||||||
activity.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredReversal(String description, ResultCode resultCode) {
|
|
||||||
Timber.d("onRequiredReversal: %s, resultCode: %s", description, resultCode.name());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredApplicationSelection(List<ApplicationIdConv> list) {
|
|
||||||
Timber.d("onRequiredApplicationSelection");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
Timber.d("onTransactionExecutionStatusChanged: %s", newStatus.name());
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, newStatus.name(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
Timber.d("onError: %s, description: %s", ((AllError) errorHandler).name(), errorHandler.getDescription());
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
Timber.d("onErrorWithPossibilityToRetry: %s, description: %s", ((AllError) errorHandler).name(), errorHandler.getDescription());
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
Timber.d("onTransactionDataReceivedError");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
Timber.d("onUserInformationRequested");
|
|
||||||
activity.getClientInterface().getTransactionManager().sendTransactionUserData("signature", "phone", "email");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
Timber.d("onTransactionDataReceived");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
Timber.d("onTransactionCompleted");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisconnectedEventReceivedOrCanNotEstablishConnection(boolean reconnectAvailable, String description) {
|
|
||||||
Timber.d("onDisconnectedEventReceivedOrCanNotEstablishConnection");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectingProcessStarted(String name) {
|
|
||||||
Timber.d("onConnectingProcessStarted: %s", name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconnectNeededToProcess() {
|
|
||||||
Timber.d("onReconnectNeededToProcess");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconciliationRequiredToProcess() {
|
|
||||||
Timber.d("onReconciliationRequiredToProcess");
|
|
||||||
Timber.d("Reconciliation required!!!");
|
|
||||||
activity.getClientInterface().getTransactionManager().makeReconciliationDuringTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconciliationCompleted(Result result) {
|
|
||||||
Timber.d("onReconciliationCompleted");
|
|
||||||
Timber.d("Reconciliation completed!!!");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
Timber.d("notAuthorized");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "notAuthorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
Timber.d("onRepeat");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
Timber.d("onRequestedReportZ");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult<PrinterErrorData, PrinterBaseData> printerErrorDataPrinterBaseDataPrinterResult) {
|
|
||||||
Timber.d("onCompletedPrinting");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
Timber.d("onStatusFiscalModule");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
Timber.d("onPrinterForRegistrationGettingCompleted");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
Timber.d("onNoBoundedPrinterFound");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List<String> printerList) {
|
|
||||||
Timber.d("onPrinterToUseSelectionRequested");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRefundDataRequested() {
|
|
||||||
Timber.d("onRefundDataRequested");
|
|
||||||
activity.getClientInterface().getTransactionManager().setRefundData(transaction, transaction.getAmount(), RefundType.General);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
|
||||||
Timber.d("onTransactionsListReceived");
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
transaction = (Transaction) transactionListSpinner.getSelectedItem();
|
|
||||||
activity.getClientInterface().getTransactionManager().makeCardRefund(this);
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityUpdateUiThread() {
|
|
||||||
Timber.d("onActivityUpdateUiThread");
|
|
||||||
activity.getClientInterface().getTransactionManager().addPinpadClickListener(activity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreatePinPadButtons() {
|
|
||||||
Timber.d("onCreatePinPadButtons");
|
|
||||||
customKeyBoardDilalog.createDialog(activity);
|
|
||||||
customKeyBoardDilalog.show(activity);
|
|
||||||
ButtonKeyboardDto buttonKeyboardDto = new ButtonKeyboardDto.Build(
|
|
||||||
customKeyBoardDilalog.getBtnb1(),
|
|
||||||
customKeyBoardDilalog.getBtnb2(),
|
|
||||||
customKeyBoardDilalog.getBtnb3(),
|
|
||||||
customKeyBoardDilalog.getBtnb4(),
|
|
||||||
customKeyBoardDilalog.getBtnb5(),
|
|
||||||
customKeyBoardDilalog.getBtnb6(),
|
|
||||||
customKeyBoardDilalog.getBtnb7(),
|
|
||||||
customKeyBoardDilalog.getBtnb8(),
|
|
||||||
customKeyBoardDilalog.getBtnb9(),
|
|
||||||
customKeyBoardDilalog.getBtnb0(),
|
|
||||||
customKeyBoardDilalog.getBtncancel(),
|
|
||||||
customKeyBoardDilalog.getBtnconfirm(),
|
|
||||||
customKeyBoardDilalog.getBtnclean(),
|
|
||||||
activity.getWindowManager().getDefaultDisplay().getRotation()
|
|
||||||
).build();
|
|
||||||
activity.getClientInterface().getTransactionManager().addPinPadButtons(buttonKeyboardDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onShowPinPadKeyBoard(MessageButtonData messageButtonData) {
|
|
||||||
Timber.d("onShowPinPadKeyBoard");
|
|
||||||
customKeyBoardDilalog.setText(messageButtonData);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUpdateElementPin(int count) {
|
|
||||||
Timber.d("onUpdateElementPin");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "count = " + count, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCloseKeyboard() {
|
|
||||||
Timber.d("onCloseKeyboard");
|
|
||||||
customKeyBoardDilalog.close(activity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredAdditionalVirtualKeyboardSettings(VirtualKeyboardStyleTypeConv virtualKeyboardStyleTypeConv) {
|
|
||||||
activity.showSelectStyleDialog(additionalData ->
|
|
||||||
activity.getClientInterface().getTransactionManager().addVirtualPinKeyboardData(additionalData));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredHostAddress() {
|
|
||||||
Timber.d("onRequiredHostAddress");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Set Host Address", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
activity.getClientInterface().getTransactionManager().setHostAddress("213.79.122.128", "8011");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,187 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.CashPaymentCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.AdditionalTransactionData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.GoodsData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.printer.enums.AccountingSubject;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.printer.enums.TaxRate;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class CashPaymentCallbackHandlerImpl implements CashPaymentCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public CashPaymentCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWorkFlowDataRequested() {
|
|
||||||
Timber.d("WorkFlow requested");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionAmountRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setTransactionAmount(activity.getAmount());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataRequested() {
|
|
||||||
List<GoodsData> goodsDataList = new ArrayList<>();
|
|
||||||
goodsDataList.add(new GoodsData.Builder()
|
|
||||||
.setOriginalPrice(100000L)
|
|
||||||
.setRealPrice(100000L)
|
|
||||||
.setName("Принтер")
|
|
||||||
.setQuantity(1)
|
|
||||||
.setCode("000001")
|
|
||||||
.setUnits("00")
|
|
||||||
.setDiscount(0L)
|
|
||||||
.setTaxRate(TaxRate.Tax_18)
|
|
||||||
.setExponent(2)
|
|
||||||
.setAccountingSubject(AccountingSubject.PRODUCT)
|
|
||||||
.build());
|
|
||||||
goodsDataList.add(new GoodsData.Builder()
|
|
||||||
.setOriginalPrice(30065L)
|
|
||||||
.setRealPrice(30065L)
|
|
||||||
.setName("Услуга")
|
|
||||||
.setQuantity(3)
|
|
||||||
.setCode("000002")
|
|
||||||
.setUnits("00")
|
|
||||||
.setDiscount(0L)
|
|
||||||
.setTaxRate(TaxRate.Tax_18)
|
|
||||||
.setExponent(2)
|
|
||||||
.setAccountingSubject(AccountingSubject.PRODUCT)
|
|
||||||
.build());
|
|
||||||
|
|
||||||
AdditionalTransactionData additionalTransactionData = new AdditionalTransactionData.Builder(goodsDataList).build();
|
|
||||||
activity.getClientInterface().getTransactionManager().setAdditionalTransactionData(additionalTransactionData);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()),
|
|
||||||
Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
Timber.d("onTransactionInit");
|
|
||||||
activity.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.sendTransactionUserData("signature", "phone", "email");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "notAuthorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDetailsReceived(Transaction transaction) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction details received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccessStatusTransaction(Transaction transaction) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorStatusTransaction() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult printerResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List printerList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.configuration.CheckConnectionCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.CheckConnectionExternalResult;
|
|
||||||
|
|
||||||
public class CheckConnectionCallbackHandlerImpl implements CheckConnectionCallbackHandler {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public CheckConnectionCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(CheckConnectionExternalResult result) {
|
|
||||||
activity.runOnUiThread(() ->
|
|
||||||
Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()) + " " + result.isOnlineRegistration(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.CloseDayCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.handling.result.CloseDayResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.network.closeday.CloseDayResponseInfo;
|
|
||||||
|
|
||||||
|
|
||||||
class CloseDayCallbackHandlerImpl implements CloseDayCallbackHandler<Result> {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
CloseDayCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList, List<CloseDayResponseInfo> list1) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onTransactionsListReceived - " + transactionList, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(CloseDayResult closeDayResult) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, closeDayResult.getResultType() + " " + (closeDayResult.getDescription() == null ? "" : closeDayResult.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.Application;
|
|
||||||
|
|
||||||
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class CustomApplication extends Application {
|
|
||||||
@Override
|
|
||||||
public void onCreate() {
|
|
||||||
super.onCreate();
|
|
||||||
Thread.setDefaultUncaughtExceptionHandler((thread, ex) -> {
|
|
||||||
Timber.v(ex.getMessage());
|
|
||||||
for (StackTraceElement element : ex.getStackTrace()) {
|
|
||||||
Timber.v(element.toString());
|
|
||||||
}
|
|
||||||
ex.printStackTrace();
|
|
||||||
System.exit(0);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import org.apache.http.conn.scheme.LayeredSocketFactory;
|
|
||||||
import org.apache.http.params.HttpConnectionParams;
|
|
||||||
import org.apache.http.params.HttpParams;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.InetAddress;
|
|
||||||
import java.net.InetSocketAddress;
|
|
||||||
import java.net.Socket;
|
|
||||||
import java.security.KeyStore;
|
|
||||||
|
|
||||||
import javax.net.ssl.SSLContext;
|
|
||||||
import javax.net.ssl.SSLSocket;
|
|
||||||
import javax.net.ssl.TrustManager;
|
|
||||||
|
|
||||||
public class CustomSSLSocketFactory implements LayeredSocketFactory {
|
|
||||||
private SSLContext sslcontext = null;
|
|
||||||
private KeyStore keyStore = null;
|
|
||||||
|
|
||||||
public CustomSSLSocketFactory() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public CustomSSLSocketFactory(KeyStore keyStore) {
|
|
||||||
this.keyStore = keyStore;
|
|
||||||
}
|
|
||||||
|
|
||||||
private SSLContext createEasySSLContext() throws IOException {
|
|
||||||
try {
|
|
||||||
SSLContext context = SSLContext.getInstance("TLS");
|
|
||||||
context.init(null, new TrustManager[] { new CustomTrustManager(keyStore) }, null);
|
|
||||||
return context;
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new IOException(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private SSLContext getSSLContext() throws IOException {
|
|
||||||
if (this.sslcontext == null) {
|
|
||||||
this.sslcontext = createEasySSLContext();
|
|
||||||
}
|
|
||||||
return this.sslcontext;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Socket connectSocket(Socket sock, String host, int port,
|
|
||||||
InetAddress localAddress, int localPort, HttpParams params)
|
|
||||||
throws IOException {
|
|
||||||
int connTimeout = HttpConnectionParams.getConnectionTimeout(params);
|
|
||||||
int soTimeout = HttpConnectionParams.getSoTimeout(params);
|
|
||||||
|
|
||||||
InetSocketAddress remoteAddress = new InetSocketAddress(host, port);
|
|
||||||
SSLSocket sslSocket = (SSLSocket) ((sock != null) ? sock : createSocket());
|
|
||||||
|
|
||||||
if ((localAddress != null) || (localPort > 0)) {
|
|
||||||
// we need to bind explicitly
|
|
||||||
if (localPort < 0) {
|
|
||||||
localPort = 0; // indicates "any"
|
|
||||||
}
|
|
||||||
InetSocketAddress isa = new InetSocketAddress(localAddress,
|
|
||||||
localPort);
|
|
||||||
sslSocket.bind(isa);
|
|
||||||
}
|
|
||||||
|
|
||||||
sslSocket.connect(remoteAddress, connTimeout);
|
|
||||||
sslSocket.setSoTimeout(soTimeout);
|
|
||||||
return sslSocket;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Socket createSocket() throws IOException {
|
|
||||||
return getSSLContext().getSocketFactory().createSocket();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isSecure(Socket socket) throws IllegalArgumentException {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Socket createSocket(Socket socket, String host, int port,
|
|
||||||
boolean autoClose) throws IOException {
|
|
||||||
return getSSLContext().getSocketFactory().createSocket(socket, host, port, autoClose);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import java.security.KeyStore;
|
|
||||||
import java.security.KeyStoreException;
|
|
||||||
import java.security.NoSuchAlgorithmException;
|
|
||||||
import java.security.cert.CertificateException;
|
|
||||||
import java.security.cert.X509Certificate;
|
|
||||||
|
|
||||||
import javax.net.ssl.TrustManager;
|
|
||||||
import javax.net.ssl.TrustManagerFactory;
|
|
||||||
import javax.net.ssl.X509TrustManager;
|
|
||||||
|
|
||||||
public class CustomTrustManager implements X509TrustManager {
|
|
||||||
private X509TrustManager standardTrustManager;
|
|
||||||
|
|
||||||
public CustomTrustManager(KeyStore keystore) throws NoSuchAlgorithmException, KeyStoreException {
|
|
||||||
super();
|
|
||||||
TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
|
|
||||||
factory.init(keystore);
|
|
||||||
TrustManager[] trustManagers = factory.getTrustManagers();
|
|
||||||
if (trustManagers.length == 0) {
|
|
||||||
throw new NoSuchAlgorithmException("no trust manager found");
|
|
||||||
}
|
|
||||||
standardTrustManager = (X509TrustManager)trustManagers[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkClientTrusted(X509Certificate[] certificates, String authType) throws CertificateException {
|
|
||||||
standardTrustManager.checkClientTrusted(certificates, authType);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkServerTrusted(X509Certificate[] certificates, String authType) throws CertificateException {
|
|
||||||
if ((certificates != null) && (certificates.length == 1)) {
|
|
||||||
certificates[0].checkValidity();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public X509Certificate[] getAcceptedIssuers() {
|
|
||||||
return this.standardTrustManager.getAcceptedIssuers();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,144 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.service.commons.Lists;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.CurrencyEnum;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.ExternalVerificationType;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.GoodsData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.ProductsAndTransactionData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.TransactionStatus;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.printer.enums.AccountingSubject;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.printer.enums.TaxRate;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.printer.enums.TaxSystem;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.enums.CardTransTypeConv;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.enums.TransactionTypeConv;
|
|
||||||
import ru.m4bank.mpos.service.hardware.printer.dto.data.FiscalPrinterMerchantData;
|
|
||||||
import ru.m4bank.mpos.service.hardware.printer.dto.data.PrinterInformationCheck;
|
|
||||||
import ru.m4bank.mpos.service.hardware.printer.dto.data.TransactionSlipData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.AccountingSign;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.CorrectionType;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.external.CurrencyAmount;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.external.ExternalCorrectionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.external.ExternalFiscalData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.external.ExternalSlipData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.external.ExternalStubData;
|
|
||||||
|
|
||||||
public class DataCreatorUtils {
|
|
||||||
public static ExternalCorrectionData makeCorrectionData() {
|
|
||||||
Calendar date = Calendar.getInstance();
|
|
||||||
date.set(2019, 3, 1);
|
|
||||||
return new ExternalCorrectionData.Builder()
|
|
||||||
.currencyAmount(makeCurrencyAmount())
|
|
||||||
.calculationSign(AccountingSign.INCOMING)
|
|
||||||
.correctionType(CorrectionType.INDEPENDENTLY)
|
|
||||||
.taxRate(TaxRate.Tax_20)
|
|
||||||
.cash(true)
|
|
||||||
.docNumber("ПС345454")
|
|
||||||
.docDate(date)
|
|
||||||
.docDescription(" ")
|
|
||||||
.stubData(makeStubData())
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ExternalFiscalData makeFiscalData() {
|
|
||||||
return new ExternalFiscalData.Builder()
|
|
||||||
.cash(false)
|
|
||||||
.currency("643")
|
|
||||||
.phone("12345678")
|
|
||||||
.informationCheckData(makeInformationCheckData())
|
|
||||||
.productsAndTransactionData(makeProductsAndTransactionData())
|
|
||||||
.externalStubData(makeStubData())
|
|
||||||
.transactionTypeConv(TransactionTypeConv.PAYMENT)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ExternalSlipData makeSlipData(boolean newCheck) {
|
|
||||||
return new ExternalSlipData.Builder()
|
|
||||||
.currencyAmount(makeCurrencyAmount())
|
|
||||||
.cash(false)
|
|
||||||
.merchantData(makeMerchantData())
|
|
||||||
.newCheck(newCheck)
|
|
||||||
.transactionData(makeTransactionData())
|
|
||||||
.transactionType(TransactionTypeConv.PAYMENT)
|
|
||||||
.cashierName("Петров В.В.")
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static CurrencyAmount makeCurrencyAmount() {
|
|
||||||
return new CurrencyAmount.Builder().amount(10000).currencyCode(CurrencyEnum.RUS.getStringCurrency()).build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static FiscalPrinterMerchantData makeMerchantData() {
|
|
||||||
return new FiscalPrinterMerchantData.Builder()
|
|
||||||
.merchantAddress("улица Твардовского, Москва Россия")
|
|
||||||
.merchantId("1732056")
|
|
||||||
.merchantInn("123456489123")
|
|
||||||
.merchantName("Center of corporate technologies")
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TransactionSlipData makeTransactionData() {
|
|
||||||
return new TransactionSlipData.Builder()
|
|
||||||
.applicationId("A40000100023056")
|
|
||||||
.authCode("447041")
|
|
||||||
.cardHolderName("IVANOV/I")
|
|
||||||
.currencyCode("643")
|
|
||||||
.hostResultCode("00")
|
|
||||||
.interaction(CardTransTypeConv.MAGNETIC_STRIPE)
|
|
||||||
.originalPan("************8888")
|
|
||||||
.pan("************8176")
|
|
||||||
.rrn("123456789")
|
|
||||||
.terminalNumber("00687879")
|
|
||||||
.terminalVerificationResults("00000")
|
|
||||||
.transactionDate(new Date())
|
|
||||||
.transactionStatus(TransactionStatus.APPROVED)
|
|
||||||
.typeCard("Mastercard")
|
|
||||||
.typeVerification(ExternalVerificationType.PIN)
|
|
||||||
.phone("88008008008562")
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ExternalStubData makeStubData() {
|
|
||||||
return new ExternalStubData.Builder()
|
|
||||||
.shiftNumber("0001")
|
|
||||||
.factoryNumberKKT("0000000000")
|
|
||||||
.registerNumberKKT("00000000000000000")
|
|
||||||
.fiscalDocNumber("2780")
|
|
||||||
.fiscalMemoryNumber("9999078900003063")
|
|
||||||
.fiscalSign("32323933373534383633")
|
|
||||||
.formOfTaxation("УСН")
|
|
||||||
.merchantData(makeMerchantData())
|
|
||||||
.phone("12-12-12")
|
|
||||||
.productsAndTransactionData(makeProductsAndTransactionData())
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static ProductsAndTransactionData makeProductsAndTransactionData() {
|
|
||||||
return new ProductsAndTransactionData(
|
|
||||||
Lists.newArrayList(new GoodsData.Builder()
|
|
||||||
.setOriginalPrice(1500L)
|
|
||||||
.setRealPrice(1400L)
|
|
||||||
.setName("Товар")
|
|
||||||
.setQuantity(1)
|
|
||||||
.setCode("1")
|
|
||||||
.setUnits("00")
|
|
||||||
.setExponent(2)
|
|
||||||
.setDiscount(100L)
|
|
||||||
.setTaxRate(TaxRate.Tax_10)
|
|
||||||
.setAccountingSubject(AccountingSubject.OTHER)
|
|
||||||
.build()),
|
|
||||||
1400L, 100L, 1, CurrencyEnum.RUS, TaxSystem.Common);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PrinterInformationCheck makeInformationCheckData() {
|
|
||||||
return new PrinterInformationCheck.Builder()
|
|
||||||
.setCheckNumber("00")
|
|
||||||
.setDocNumber("1")
|
|
||||||
.setPd("00")
|
|
||||||
.setDateAndTime(new Date())
|
|
||||||
.setInn("7777777777")
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,152 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.EasyAlipayRefundCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.transaction.RefundType;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
|
|
||||||
public class EasyAlipayRefundCallbackHandlerImpl implements EasyAlipayRefundCallbackHandler<Result>, GetTransactionsListCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
private Transaction transaction;
|
|
||||||
|
|
||||||
public EasyAlipayRefundCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, newStatus.name(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
activity.getClientInterface().getTransactionManager().sendTransactionUserData("signature", "phone", "email");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRefundDataRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setRefundData(transaction, transaction.getAmount(), RefundType.General);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
transaction = (Transaction) transactionListSpinner.getSelectedItem();
|
|
||||||
activity.getClientInterface().getTransactionManager().makeAlipayRefund(this);
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult<PrinterErrorData, PrinterBaseData> printerErrorDataPrinterBaseDataPrinterResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List<String> printerList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,363 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.EasyReversalCardCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.commons.data.ResultType;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Reader;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.result.ResultCode;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.ApplicationIdConv;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.enums.VirtualKeyboardStyleTypeConv;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.MessageButtonData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.dto.OnlineCardDataDto;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class EasyCardReversalCallbackHandlerImpl implements EasyReversalCardCallbackHandler<Result>, GetTransactionsListCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
private Transaction transaction;
|
|
||||||
|
|
||||||
public EasyCardReversalCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardReaderForTransactionGettingCompleted() {
|
|
||||||
Timber.d("Reader has been received");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedDevicesFound() {
|
|
||||||
Timber.d("No bounded readers");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectingProcessStarted(String deviceName) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisconnectedEventReceivedOrCanNotEstablishConnection(boolean reconnectAvailable, String description) {
|
|
||||||
if (reconnectAvailable) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Connection to cardreader has been lost, try to reconnect and repeat last operation?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().tryToReconnectAndRepeatLast());
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().cancel());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToConnectSelectionRequested(List deviceList) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, deviceList);
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.selectCardReader(deviceListSpinner.getSelectedItem().toString());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWorkFlowDataRequested() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceiveCardData(OnlineCardDataDto data, boolean shouldConfirmBeManuallyCalled) {
|
|
||||||
if (shouldConfirmBeManuallyCalled) {
|
|
||||||
activity.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredReversal(String description, ResultCode resultCode) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onRequiredReversal", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredApplicationSelection(List<ApplicationIdConv> list) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDetailsReceived(Transaction transaction) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onTransactionDetailsReceived", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccessStatusTransaction(Transaction transaction) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onSuccessStatusTransaction", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorStatusTransaction() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onErrorStatusTransaction", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult<PrinterErrorData, PrinterBaseData> printerErrorDataPrinterBaseDataPrinterResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconciliationRequiredToProcess() {
|
|
||||||
Timber.d("Reconciliation required!!!");
|
|
||||||
activity.getClientInterface().getTransactionManager().makeReconciliationDuringTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconciliationCompleted(Result result) {
|
|
||||||
Timber.d("Reconciliation completed!!!");
|
|
||||||
if (result.getResultType() == ResultType.SUCCESSFUL) {
|
|
||||||
activity.getClientInterface().getTransactionManager().continueTransactionAfterReconciliation();
|
|
||||||
} else {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Reconciliation failed " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionAmountRequested() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataRequested() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToUseSelectionRequested(List deviceList) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Reader> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(deviceList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.setCardReaderToUse((Reader) deviceListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List printerList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, newStatus.name(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
if (errorHandler.getCode() != null && errorHandler.getDescription() != null) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Error Code: " + errorHandler.getCode() + " error Description: "
|
|
||||||
+ errorHandler.getDescription(), Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
} else {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getServerCode() + " "
|
|
||||||
+ errorHandler.getServerDescription(), Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onTransactionDataReceivedError", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconnectNeededToProcess() {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Connection to cardreader has been lost, try to reconnect and continue?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().getTransactionManager().tryToReconnectToCardReader());
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().cancel());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongTerminal() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSelectTransaction() {
|
|
||||||
activity.getClientInterface().getTransactionManager().selectTransaction(transaction);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
transaction = (Transaction) transactionListSpinner.getSelectedItem();
|
|
||||||
activity.getClientInterface().getTransactionManager().makeCardReversal(this);
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionSelectionRequested(List<Transaction> transactionList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityUpdateUiThread() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreatePinPadButtons() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onShowPinPadKeyBoard(MessageButtonData messageButtonData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUpdateElementPin(int i) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCloseKeyboard() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredAdditionalVirtualKeyboardSettings(VirtualKeyboardStyleTypeConv virtualKeyboardStyleTypeConv) {
|
|
||||||
activity.showSelectStyleDialog(additionalData ->
|
|
||||||
activity.getClientInterface().getTransactionManager().addVirtualPinKeyboardData(additionalData));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,153 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.EasyCashRefundCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.transaction.RefundType;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
|
|
||||||
public class EasyCashRefundCallbackHandlerImpl implements EasyCashRefundCallbackHandler<Result>, GetTransactionsListCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
private Transaction transaction;
|
|
||||||
|
|
||||||
public EasyCashRefundCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
activity.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, newStatus.name(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
activity.getClientInterface().getTransactionManager().sendTransactionUserData("signature", "phone", "email");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRefundDataRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setRefundData(transaction, transaction.getAmount(), RefundType.General);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
transaction = (Transaction) transactionListSpinner.getSelectedItem();
|
|
||||||
activity.getClientInterface().getTransactionManager().makeCashRefund(this);
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult<PrinterErrorData, PrinterBaseData> printerErrorDataPrinterBaseDataPrinterResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List<String> printerList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,157 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.EasyEcomRefundCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.transaction.RefundType;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
|
|
||||||
public class EasyEcomRefundCallbackHandlerImpl implements EasyEcomRefundCallbackHandler<Result>, GetTransactionsListCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
private Transaction transaction;
|
|
||||||
|
|
||||||
public EasyEcomRefundCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, newStatus.name(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
activity.getClientInterface().getTransactionManager().sendTransactionUserData("signature", "phone", "email");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRefundDataRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setRefundData(transaction, transaction.getAmount(), RefundType.General);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
transaction = (Transaction) transactionListSpinner.getSelectedItem();
|
|
||||||
activity.getClientInterface().getTransactionManager().makeEcomRefund(this);
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult<PrinterErrorData, PrinterBaseData> printerErrorDataPrinterBaseDataPrinterResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List<String> printerList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPreviewTransactionDataReceived(TransactionData transactionData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,177 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.ReversalCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
|
|
||||||
public class EasyReversalCallbackHandlerImpl implements ReversalCallbackHandler<Result>, GetTransactionsListCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
private Transaction transaction;
|
|
||||||
|
|
||||||
public EasyReversalCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionSelectionRequested(List<Transaction> transactionList) {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface().getTransactionManager().selectTransaction((Transaction) transactionListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardShortPanRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setCardShortPan("0069", 20, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
activity.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, newStatus.name(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
//activity.getClientInterface().getTransactionManager().sendTransactionUserData(null, "phone", "email");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction reversal complete", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSelectTransaction() {
|
|
||||||
activity.getClientInterface().getTransactionManager().selectTransaction(transaction);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
transaction = (Transaction) transactionListSpinner.getSelectedItem();
|
|
||||||
activity.getClientInterface().getTransactionManager().makeEasyReversal(this);
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult<PrinterErrorData, PrinterBaseData> printerErrorDataPrinterBaseDataPrinterResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List<String> list) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,174 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.EcomPaymentCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.AdditionalTransactionData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.EmailStatus;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class EcomPaymentCallbackHandlerImpl implements EcomPaymentCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public EcomPaymentCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWorkFlowDataRequested() {
|
|
||||||
Timber.d("WorkFlow requested");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionAmountRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setTransactionAmount(activity.getAmount());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setAdditionalTransactionData(new AdditionalTransactionData.Builder(null).build());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
activity.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.sendTransactionUserData("signature", "phone", "email");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFormUrlRequested(String formUrl) {
|
|
||||||
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.sendEcomEmail("qrCode", null, "ap@m4bank.com", EmailStatus.SEND);
|
|
||||||
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onFormUrlRequested " + formUrl, Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPreviewTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Preview Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDetailsReceived(Transaction transaction) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction details received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccessStatusTransaction(Transaction transaction) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorStatusTransaction() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult printerResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List printerList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.configuration.GetLicenseCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
|
|
||||||
public class GetLicenseCallbackHandlerImpl implements GetLicenseCallbackHandler<Result> {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public GetLicenseCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onLicenseReceived(String license) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, license, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.authorization.GetMerchantUsersCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.MerchantUser;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
|
|
||||||
public class GetMerchantUsersCallbackHandlerImpl implements GetMerchantUsersCallbackHandler<Result> {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public GetMerchantUsersCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onListOfUsersRequested(List<MerchantUser> userList) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "loaded list of merchant users", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,103 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetSerialNumberCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Reader;
|
|
||||||
import ru.m4bank.mpos.service.result.GetSNResult;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class GetSerialNumberCallbackHandlerImpl implements GetSerialNumberCallbackHandler {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public GetSerialNumberCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardReaderForTransactionGettingCompleted() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedDevicesFound() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onNoBoundedDevicesFound", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectingProcessStarted(String s) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisconnectedEventReceivedOrCanNotEstablishConnection(boolean b, String s) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "notAuthorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToConnectSelectionRequested(List list) {
|
|
||||||
Timber.d("onDeviceToConnectSelectionRequested");
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, list);
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getCardReaderManager()
|
|
||||||
.setCardReaderToUse((Reader) deviceListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToUseSelectionRequested(List list) {
|
|
||||||
Timber.d("onDeviceToUseSelectionRequested");
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Reader> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(list));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getCardReaderManager()
|
|
||||||
.setCardReaderToUse((Reader) deviceListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(GetSNResult result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getSerialNumber(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onWrongApiCalled", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionDetailsCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
|
|
||||||
class GetTransactionDetailsCallbackHandlerImpl implements GetTransactionDetailsCallbackHandler<Result>, GetTransactionsListCallbackHandler<Result> {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
GetTransactionDetailsCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDetailsReceived(Transaction transaction) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction details received: " + transaction, Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccessStatusTransaction(Transaction transaction) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorStatusTransaction() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
Transaction transaction = (Transaction) transactionListSpinner.getSelectedItem();
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.getTransactionDetails(this, transaction.getOperationalDayNumber(), transaction
|
|
||||||
.getTransactionNumber(), transaction.getMobileTerminalId());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionDetailsCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
|
|
||||||
class GetTransactionListForRefundCallbackHandlerImpl implements GetTransactionDetailsCallbackHandler<Result>, GetTransactionsListCallbackHandler<Result> {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
private final CardRefundCallbackHandlerImpl cardRefundCallbackHandler;
|
|
||||||
|
|
||||||
GetTransactionListForRefundCallbackHandlerImpl(M4BankActivity activity, CardRefundCallbackHandlerImpl cardRefundCallbackHandler) {
|
|
||||||
this.cardRefundCallbackHandler = cardRefundCallbackHandler;
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDetailsReceived(Transaction transaction) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction details received: " + transaction, Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccessStatusTransaction(Transaction transaction) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorStatusTransaction() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
|
||||||
cardRefundCallbackHandler.onTransactionsListReceived(transactionList);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,133 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.LoadTerminalKeysCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Reader;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.result.ResultCode;
|
|
||||||
import ru.m4bank.mpos.service.hardware.network.external.TerminalKeyType;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
class LoadTerminalKeysCallbackHandlerImpl implements LoadTerminalKeysCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public LoadTerminalKeysCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
Timber.d("Not authorized");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onKeyLoad(TerminalKeyType terminalKeyType, String description, ResultCode resultCode) {
|
|
||||||
Timber.d("key loaded".concat(terminalKeyType.name()));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onKeyReceived(TerminalKeyType terminalKeyType, String description, ResultCode resultCode) {
|
|
||||||
Timber.d("key loaded".concat(terminalKeyType.name()));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(String description, ResultCode resultCode) {
|
|
||||||
Timber.d("key loaded" + " onError");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardReaderForTransactionGettingCompleted() {
|
|
||||||
Timber.d("Reader has been received");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToConnectSelectionRequested(List<String> deviceList) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, deviceList);
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getCardReaderManager()
|
|
||||||
.selectCardReader(deviceListSpinner.getSelectedItem().toString());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToUseSelectionRequested(List<Reader> deviceList) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Reader> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(deviceList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getCardReaderManager()
|
|
||||||
.setCardReaderToUse((Reader) deviceListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedDevicesFound() {
|
|
||||||
Timber.d("No bounded readers");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectingProcessStarted(String deviceName) {
|
|
||||||
Timber.d("onConnectingProcessStarted");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisconnectedEventReceivedOrCanNotEstablishConnection(boolean reconnectAvailable, String description) {
|
|
||||||
if (reconnectAvailable) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Connection to cardreader has been lost, try to reconnect and repeat last operation?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().tryToReconnectAndRepeatLast());
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().cancel());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.authorization.LogOutCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
|
|
||||||
public class LogOutCallbackHandlerImpl implements LogOutCallbackHandler {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public LogOutCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -14,14 +14,6 @@ import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import kz.com.aman.kassa.R;
|
|
||||||
import kz.com.aman.kassa.bank.builders.SslConfigurationBuilder;
|
|
||||||
import kz.com.aman.kassa.bank.gui.SelectDialogCallback;
|
|
||||||
import kz.com.aman.kassa.bank.gui.SelectElementDialog;
|
|
||||||
import kz.com.aman.kassa.bank.managing.PreferencesManager;
|
|
||||||
import kz.com.aman.kassa.bank.permissions.PermissionsManager;
|
|
||||||
import kz.com.aman.kassa.bank.permissions.PermissionsManagerImpl;
|
|
||||||
|
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
|
@ -36,6 +28,13 @@ import ch.qos.logback.classic.LoggerContext;
|
||||||
import ch.qos.logback.classic.android.LogcatAppender;
|
import ch.qos.logback.classic.android.LogcatAppender;
|
||||||
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
|
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
|
||||||
import io.flutter.app.FlutterActivity;
|
import io.flutter.app.FlutterActivity;
|
||||||
|
import kz.com.aman.kassa.R;
|
||||||
|
import kz.com.aman.kassa.bank.builders.SslConfigurationBuilder;
|
||||||
|
import kz.com.aman.kassa.bank.gui.SelectDialogCallback;
|
||||||
|
import kz.com.aman.kassa.bank.gui.SelectElementDialog;
|
||||||
|
import kz.com.aman.kassa.bank.managing.PreferencesManager;
|
||||||
|
import kz.com.aman.kassa.bank.permissions.PermissionsManager;
|
||||||
|
import kz.com.aman.kassa.bank.permissions.PermissionsManagerImpl;
|
||||||
import ru.m4bank.mpos.library.M4BankMposClient;
|
import ru.m4bank.mpos.library.M4BankMposClient;
|
||||||
import ru.m4bank.mpos.library.M4BankMposClientInterfaceFacade;
|
import ru.m4bank.mpos.library.M4BankMposClientInterfaceFacade;
|
||||||
import ru.m4bank.mpos.library.M4BankMposParameters;
|
import ru.m4bank.mpos.library.M4BankMposParameters;
|
||||||
|
|
@ -49,7 +48,8 @@ import ru.m4bank.mpos.library.external.transactions.CardReadingCallbackHandler;
|
||||||
import ru.m4bank.mpos.library.external.transactions.CashPaymentCallbackHandler;
|
import ru.m4bank.mpos.library.external.transactions.CashPaymentCallbackHandler;
|
||||||
import ru.m4bank.mpos.library.external.transactions.EasyCardRefundCallbackHandler;
|
import ru.m4bank.mpos.library.external.transactions.EasyCardRefundCallbackHandler;
|
||||||
import ru.m4bank.mpos.library.external.transactions.EasyCashRefundCallbackHandler;
|
import ru.m4bank.mpos.library.external.transactions.EasyCashRefundCallbackHandler;
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetSerialNumberCallbackHandler;
|
import ru.m4bank.mpos.library.external.transactions.EasyReversalSavedOperationCallbackHandler;
|
||||||
|
import ru.m4bank.mpos.library.external.transactions.GetCardReaderInformationCallbackHandler;
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionDetailsCallbackHandler;
|
import ru.m4bank.mpos.library.external.transactions.GetTransactionDetailsCallbackHandler;
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
||||||
import ru.m4bank.mpos.library.external.transactions.LastReversalCardPaymentCallbackHandler;
|
import ru.m4bank.mpos.library.external.transactions.LastReversalCardPaymentCallbackHandler;
|
||||||
|
|
@ -113,7 +113,8 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
private PrintingCallbackHandlerImpl printingCallbackHandler;
|
private PrintingCallbackHandlerImpl printingCallbackHandler;
|
||||||
private XReportCallbackHandler xReportCallbackHandler;
|
private XReportCallbackHandler xReportCallbackHandler;
|
||||||
private LastReversalCardPaymentCallbackHandler revertCurrentOperationCallbackHandler;
|
private LastReversalCardPaymentCallbackHandler revertCurrentOperationCallbackHandler;
|
||||||
private GetSerialNumberCallbackHandler getSerialNumberCallbackHandler;
|
private GetCardReaderInformationCallbackHandler getCardReaderInformationCallbackHandler;
|
||||||
|
private EasyReversalSavedOperationCallbackHandler easyReversalSavedOperationCallbackHandler;
|
||||||
|
|
||||||
private GetTransactionListForRefundCallbackHandlerImpl getTransactionListForRefundCallbackHandler;
|
private GetTransactionListForRefundCallbackHandlerImpl getTransactionListForRefundCallbackHandler;
|
||||||
private SendRegisterRequestCallbackHandlerImpl sendRegisterRequestCallbackHandler;
|
private SendRegisterRequestCallbackHandlerImpl sendRegisterRequestCallbackHandler;
|
||||||
|
|
@ -159,7 +160,7 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
public void onPermissionsDeclined() {
|
public void onPermissionsDeclined() {
|
||||||
Toast.makeText(M4BankActivity.this,
|
Toast.makeText(M4BankActivity.this,
|
||||||
"Application can work incorrectly caused by missing permissions", Toast.LENGTH_SHORT)
|
"Application can work incorrectly caused by missing permissions", Toast.LENGTH_SHORT)
|
||||||
.show();
|
.show();
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -170,7 +171,7 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[],
|
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[],
|
||||||
@NonNull int[] grantResults) {
|
@NonNull int[] grantResults) {
|
||||||
permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -223,7 +224,7 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
|
|
||||||
//слушатель для получения списка мерчантов
|
//слушатель для получения списка мерчантов
|
||||||
getMerchantUsersCallbackHandler = new GetMerchantUsersCallbackHandlerImpl(this);
|
getMerchantUsersCallbackHandler = new GetMerchantUsersCallbackHandlerImpl(this);
|
||||||
//слушатель поулчения лицензии
|
//слушатель получения лицензии
|
||||||
getLicenseCallbackHandler = new GetLicenseCallbackHandlerImpl(this);
|
getLicenseCallbackHandler = new GetLicenseCallbackHandlerImpl(this);
|
||||||
//слушатель повторной отправки чека
|
//слушатель повторной отправки чека
|
||||||
resendReceiptCallbackHandler = new ResendReceiptCallbackHandlerImpl(this);
|
resendReceiptCallbackHandler = new ResendReceiptCallbackHandlerImpl(this);
|
||||||
|
|
@ -236,13 +237,15 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
//слушатели печати
|
//слушатели печати
|
||||||
printingCallbackHandler = new PrintingCallbackHandlerImpl(this);
|
printingCallbackHandler = new PrintingCallbackHandlerImpl(this);
|
||||||
//слушатель для получения серийного номера
|
//слушатель для получения серийного номера
|
||||||
getSerialNumberCallbackHandler = new GetSerialNumberCallbackHandlerImpl(this);
|
getCardReaderInformationCallbackHandler = new GetCardReaderInformationCallbackHandlerImpl(this);
|
||||||
//слушатель для считывания barcode
|
//слушатель для считывания barcode
|
||||||
scanBarCodeCallbackHandler = new ScanBarCodeCallbackHandlerImpl(this);
|
scanBarCodeCallbackHandler = new ScanBarCodeCallbackHandlerImpl(this);
|
||||||
|
// слушатель для отмены неуспешной операции, которая сохранена в холдере
|
||||||
|
easyReversalSavedOperationCallbackHandler = new EasyReversalSavedOperationCallbackHandlerImpl(this);
|
||||||
|
|
||||||
initLoginForm();
|
initLoginForm();
|
||||||
|
|
||||||
initButton(R.id.getSerialNumber, v -> getSerialNumber());
|
initButton(R.id.readerInformation, v -> getReaderInformation());
|
||||||
|
|
||||||
initButton(R.id.activate, v -> clientInterface.getAuthorizationManager().activate(activationCallbackHandler));
|
initButton(R.id.activate, v -> clientInterface.getAuthorizationManager().activate(activationCallbackHandler));
|
||||||
|
|
||||||
|
|
@ -250,16 +253,16 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
v -> clientInterface.getAuthorizationManager().logOut(logOutCallbackHandler));
|
v -> clientInterface.getAuthorizationManager().logOut(logOutCallbackHandler));
|
||||||
|
|
||||||
initButton(R.id.checkConnection, v -> clientInterface.getConfigurationManager()
|
initButton(R.id.checkConnection, v -> clientInterface.getConfigurationManager()
|
||||||
.checkConnection(
|
.checkConnection(
|
||||||
checkConnectionCallbackHandler));
|
checkConnectionCallbackHandler));
|
||||||
|
|
||||||
initButton(R.id.checkAccess, v -> {
|
initButton(R.id.checkAccess, v -> {
|
||||||
String result;
|
String result;
|
||||||
if (clientInterface.getConfigurationManager()
|
if (clientInterface.getConfigurationManager()
|
||||||
.isOperationAllowed(
|
.isOperationAllowed(
|
||||||
OperationType.getByCode(((Spinner) findViewById(R.id.checkAccessSpinner))
|
OperationType.getByCode(((Spinner) findViewById(R.id.checkAccessSpinner))
|
||||||
.getSelectedItem()
|
.getSelectedItem()
|
||||||
.toString()))) {
|
.toString()))) {
|
||||||
result = "YES";
|
result = "YES";
|
||||||
} else {
|
} else {
|
||||||
result = "NO";
|
result = "NO";
|
||||||
|
|
@ -270,7 +273,7 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
initButton(R.id.getAccesses, v -> {
|
initButton(R.id.getAccesses, v -> {
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
List<OperationType> availableOperations = clientInterface.getConfigurationManager()
|
List<OperationType> availableOperations = clientInterface.getConfigurationManager()
|
||||||
.getAllowedOperationsList();
|
.getAllowedOperationsList();
|
||||||
if (!availableOperations.isEmpty()) {
|
if (!availableOperations.isEmpty()) {
|
||||||
for (OperationType o : availableOperations) {
|
for (OperationType o : availableOperations) {
|
||||||
result.append(o.getCode()).append("\n");
|
result.append(o.getCode()).append("\n");
|
||||||
|
|
@ -335,63 +338,63 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
|
|
||||||
//////////// вызов отмены текущей транзакции с использованием нового слушателя (только во время транзакции) - хостовые терминалы//////////////
|
//////////// вызов отмены текущей транзакции с использованием нового слушателя (только во время транзакции) - хостовые терминалы//////////////
|
||||||
initButton(R.id.makeReversalLastWithCallback, v -> clientInterface.getTransactionManager()
|
initButton(R.id.makeReversalLastWithCallback, v -> clientInterface.getTransactionManager()
|
||||||
.revertCurrentOperation(
|
.revertCurrentOperation(
|
||||||
revertCurrentOperationCallbackHandler));
|
revertCurrentOperationCallbackHandler));
|
||||||
|
|
||||||
/////////// вызовы отмены по карте//////////////
|
/////////// вызовы отмены по карте//////////////
|
||||||
initButton(R.id.makeEasyCardReversal, v -> {
|
initButton(R.id.makeEasyCardReversal, v -> {
|
||||||
clientInterface.cancel();
|
clientInterface.cancel();
|
||||||
clientInterface.getTransactionManager()
|
clientInterface.getTransactionManager()
|
||||||
.getTransactionsList(easyCardReversalCallbackHandler, 20, 0, GetOperationType.SHOW, null);
|
.getTransactionsList(easyCardReversalCallbackHandler, 20, 0, GetOperationType.SHOW, null);
|
||||||
});
|
});
|
||||||
|
|
||||||
/////////// вызовы отмены на сервере//////////////
|
/////////// вызовы отмены на сервере//////////////
|
||||||
initButton(R.id.makeEasyReversal, v -> clientInterface.getTransactionManager()
|
initButton(R.id.makeEasyReversal, v -> clientInterface.getTransactionManager()
|
||||||
.getTransactionsList(
|
.getTransactionsList(
|
||||||
(GetTransactionsListCallbackHandler) easyReversalCallbackHandler,
|
(GetTransactionsListCallbackHandler) easyReversalCallbackHandler,
|
||||||
20, 0, GetOperationType.SHOW,
|
20, 0, GetOperationType.SHOW,
|
||||||
null));
|
null));
|
||||||
|
|
||||||
//////////// вызовы возвратов //////////////
|
//////////// вызовы возвратов //////////////
|
||||||
initButton(R.id.makeCardRefund, v -> {
|
initButton(R.id.makeCardRefund, v -> {
|
||||||
clientInterface.cancel();
|
clientInterface.cancel();
|
||||||
clientInterface.getTransactionManager()
|
clientInterface.getTransactionManager()
|
||||||
.getTransactionsList(getTransactionListForRefundCallbackHandler, 20, 0,
|
.getTransactionsList(getTransactionListForRefundCallbackHandler, 20, 0,
|
||||||
GetOperationType.SHOW, null);
|
GetOperationType.SHOW, null);
|
||||||
});
|
});
|
||||||
|
|
||||||
initButton(R.id.makeCashRefund, v -> {
|
initButton(R.id.makeCashRefund, v -> {
|
||||||
clientInterface.cancel();
|
clientInterface.cancel();
|
||||||
clientInterface.getTransactionManager()
|
clientInterface.getTransactionManager()
|
||||||
.getTransactionsList((GetTransactionsListCallbackHandler) easyCashRefundCallbackHandler, 20,
|
.getTransactionsList((GetTransactionsListCallbackHandler) easyCashRefundCallbackHandler, 20,
|
||||||
0, GetOperationType.SHOW, null);
|
0, GetOperationType.SHOW, null);
|
||||||
});
|
});
|
||||||
|
|
||||||
initButton(R.id.makeAlipayRefund, v -> clientInterface.getTransactionManager()
|
initButton(R.id.makeAlipayRefund, v -> clientInterface.getTransactionManager()
|
||||||
.getTransactionsList(
|
.getTransactionsList(
|
||||||
(GetTransactionsListCallbackHandler) easyAlipayRefundCallbackHandler,
|
(GetTransactionsListCallbackHandler) easyAlipayRefundCallbackHandler,
|
||||||
20, 0, GetOperationType.SHOW,
|
20, 0, GetOperationType.SHOW,
|
||||||
null));
|
null));
|
||||||
|
|
||||||
//////////// получение списка мерчантов //////////////
|
//////////// получение списка мерчантов //////////////
|
||||||
initButton(R.id.getMerchantUsers, v -> clientInterface.getAuthorizationManager()
|
initButton(R.id.getMerchantUsers, v -> clientInterface.getAuthorizationManager()
|
||||||
.getMerchantUsers(getMerchantUsersCallbackHandler, 1000,
|
.getMerchantUsers(getMerchantUsersCallbackHandler, 1000,
|
||||||
0));
|
0));
|
||||||
|
|
||||||
//////////// повторная отправка чека на почту //////////////
|
//////////// повторная отправка чека на почту //////////////
|
||||||
initButton(R.id.resendReceipt, v -> clientInterface.getTransactionManager()
|
initButton(R.id.resendReceipt, v -> clientInterface.getTransactionManager()
|
||||||
.getTransactionsList(
|
.getTransactionsList(
|
||||||
(GetTransactionsListCallbackHandler) resendReceiptCallbackHandler,
|
(GetTransactionsListCallbackHandler) resendReceiptCallbackHandler,
|
||||||
20, 0, GetOperationType.SHOW,
|
20, 0, GetOperationType.SHOW,
|
||||||
null));
|
null));
|
||||||
|
|
||||||
//////////// получение детальной информации о транзакции //////////////
|
//////////// получение детальной информации о транзакции //////////////
|
||||||
initButton(R.id.getTransactionDetails, v -> clientInterface.getTransactionManager()
|
initButton(R.id.getTransactionDetails, v -> clientInterface.getTransactionManager()
|
||||||
.getTransactionsList(
|
.getTransactionsList(
|
||||||
(GetTransactionsListCallbackHandler) getTransactionDetailsCallbackHandler,
|
(GetTransactionsListCallbackHandler) getTransactionDetailsCallbackHandler,
|
||||||
20, 0,
|
20, 0,
|
||||||
GetOperationType.SHOW,
|
GetOperationType.SHOW,
|
||||||
null));
|
null));
|
||||||
|
|
||||||
//////////// получение детальной информации о текущей транзакции//////////////
|
//////////// получение детальной информации о текущей транзакции//////////////
|
||||||
initButton(R.id.getCurrentTransactionDetails,
|
initButton(R.id.getCurrentTransactionDetails,
|
||||||
|
|
@ -399,18 +402,17 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
|
|
||||||
//////////// получение спика транзакций с использованием фильтра //////////////
|
//////////// получение спика транзакций с использованием фильтра //////////////
|
||||||
initButton(R.id.getTransactionListFilter, v -> clientInterface.getTransactionManager()
|
initButton(R.id.getTransactionListFilter, v -> clientInterface.getTransactionManager()
|
||||||
.getTransactionsList(
|
.getTransactionsList(
|
||||||
(GetTransactionsListCallbackHandler) getTransactionDetailsCallbackHandler,
|
(GetTransactionsListCallbackHandler) getTransactionDetailsCallbackHandler,
|
||||||
20, 0, GetOperationType.SEARCH,
|
20, 0, GetOperationType.SEARCH,
|
||||||
new TransactionFilterData.Builder().setScanerCode(
|
new TransactionFilterData.Builder().setScanerCode(
|
||||||
"6354635635736647656").build()));
|
"6354635635736647656").build()));
|
||||||
|
|
||||||
//////////// отправка данных для регистрации mpos - дополнительный функционал при активации//////////////
|
//////////// отправка данных для регистрации mpos - дополнительный функционал при активации//////////////
|
||||||
findViewById(R.id.sendRegisterRequest).setOnClickListener(v -> {
|
findViewById(R.id.sendRegisterRequest).setOnClickListener(v -> {
|
||||||
String url = "https://test.ponkratenko.ru";
|
String url = "https://test.ponkratenko.ru";
|
||||||
//String savedServerUrl = PreferencesManager.loadStringField(this, PreferencesManager.Field.SERVER_URL, getString(R.string.default_server_address_mpos_5_0_test));
|
|
||||||
clientInterface.getConfigurationManager()
|
clientInterface.getConfigurationManager()
|
||||||
.sendRegisterRequest(sendRegisterRequestCallbackHandler, getRegisterRequestData(), url);
|
.sendRegisterRequest(sendRegisterRequestCallbackHandler, getRegisterRequestData(), url);
|
||||||
});
|
});
|
||||||
|
|
||||||
//запись на терминал ключей tmk, tpk
|
//запись на терминал ключей tmk, tpk
|
||||||
|
|
@ -421,7 +423,7 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
add(TerminalKeyType.Tpk);
|
add(TerminalKeyType.Tpk);
|
||||||
}};
|
}};
|
||||||
clientInterface.getCardReaderManager()
|
clientInterface.getCardReaderManager()
|
||||||
.loadTerminalKeys(new LoadTerminalKeysCallbackHandlerImpl(this), keysForDynamicUpdate);
|
.loadTerminalKeys(new LoadTerminalKeysCallbackHandlerImpl(this), keysForDynamicUpdate);
|
||||||
});
|
});
|
||||||
|
|
||||||
//////////// закрытие смены и сверка с сервером //////////////
|
//////////// закрытие смены и сверка с сервером //////////////
|
||||||
|
|
@ -430,8 +432,8 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
|
|
||||||
//////////// добавление принтера в систему с возможностью печати во время транзакций //////////////
|
//////////// добавление принтера в систему с возможностью печати во время транзакций //////////////
|
||||||
initButton(R.id.addPrinter, v -> clientInterface.getPrinterManager()
|
initButton(R.id.addPrinter, v -> clientInterface.getPrinterManager()
|
||||||
.addNewPrinter(printingCallbackHandler,
|
.addNewPrinter(printingCallbackHandler,
|
||||||
PrinterSeries.NEW_PRINTER));
|
PrinterSeries.NEW_PRINTER));
|
||||||
|
|
||||||
//////////// удаление принтера из системы //////////////
|
//////////// удаление принтера из системы //////////////
|
||||||
initButton(R.id.deletePrinter,
|
initButton(R.id.deletePrinter,
|
||||||
|
|
@ -440,14 +442,14 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
initButton(R.id.printFiscal, v -> {
|
initButton(R.id.printFiscal, v -> {
|
||||||
clientInterface.cancel();
|
clientInterface.cancel();
|
||||||
clientInterface.getPrinterManager()
|
clientInterface.getPrinterManager()
|
||||||
.printFiscalTransactionCheck(printingCallbackHandler, DataCreatorUtils.makeFiscalData());
|
.printFiscalTransactionCheck(printingCallbackHandler, DataCreatorUtils.makeFiscalData());
|
||||||
});
|
});
|
||||||
|
|
||||||
initButton(R.id.printSlipCheck, v -> {
|
initButton(R.id.printSlipCheck, v -> {
|
||||||
clientInterface.cancel();
|
clientInterface.cancel();
|
||||||
clientInterface.getPrinterManager()
|
clientInterface.getPrinterManager()
|
||||||
.printFirstSlipTransactionCheck(printingCallbackHandler, DataCreatorUtils.makeSlipData(true),
|
.printFirstSlipTransactionCheck(printingCallbackHandler, DataCreatorUtils.makeSlipData(true),
|
||||||
SlipType.ERROR);
|
SlipType.ERROR);
|
||||||
});
|
});
|
||||||
|
|
||||||
initButton(R.id.printReportX, v1 -> {
|
initButton(R.id.printReportX, v1 -> {
|
||||||
|
|
@ -479,6 +481,16 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
|
|
||||||
initButton(R.id.readBarCode, v2 -> showDialogScanner());
|
initButton(R.id.readBarCode, v2 -> showDialogScanner());
|
||||||
|
|
||||||
|
findViewById(R.id.versionStore).setOnClickListener(v -> {
|
||||||
|
String result = clientInterface.getExternalApiManager().getExternalStoreVersion();
|
||||||
|
Toast.makeText(this, result + "", Toast.LENGTH_SHORT).show();
|
||||||
|
});
|
||||||
|
|
||||||
|
findViewById(R.id.versionTracker).setOnClickListener(v -> {
|
||||||
|
String result = clientInterface.getExternalApiManager().getExternalTrackerVersion();
|
||||||
|
Toast.makeText(this, result + "", Toast.LENGTH_SHORT).show();
|
||||||
|
});
|
||||||
|
|
||||||
String savedServerUrl = PreferencesManager.loadStringField(this, PreferencesManager.Field.SERVER_URL,
|
String savedServerUrl = PreferencesManager.loadStringField(this, PreferencesManager.Field.SERVER_URL,
|
||||||
getString(R.string.default_server_address_mpos_5_0_test));
|
getString(R.string.default_server_address_mpos_5_0_test));
|
||||||
String serverUrl;
|
String serverUrl;
|
||||||
|
|
@ -583,6 +595,11 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
|
|
||||||
//обновление словаря в библиотеке ридера
|
//обновление словаря в библиотеке ридера
|
||||||
initButton(R.id.updateDictionary, v -> updateDictionary(aisinoDictionary));
|
initButton(R.id.updateDictionary, v -> updateDictionary(aisinoDictionary));
|
||||||
|
|
||||||
|
// отмена неуспешной операции, которая сохранена в холдере
|
||||||
|
initButton(R.id.makeReversalSavedUnsuccessfulOperation, v ->
|
||||||
|
clientInterface.getTransactionManager()
|
||||||
|
.makeReversalSavedUnsuccessfulOperation(easyReversalSavedOperationCallbackHandler));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initButton(int id, View.OnClickListener onClickListener) {
|
private void initButton(int id, View.OnClickListener onClickListener) {
|
||||||
|
|
@ -610,6 +627,7 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
.energySaverModeTime(150)
|
.energySaverModeTime(150)
|
||||||
.pinLengthsArray(new byte[]{4, 6})
|
.pinLengthsArray(new byte[]{4, 6})
|
||||||
.shutDownModeTime(300)
|
.shutDownModeTime(300)
|
||||||
|
.deviceType(new DeviceTypeDefiner().define())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -662,8 +680,8 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
clientInterface.getConfigurationManager().updateDictionary(dictionaryCore);
|
clientInterface.getConfigurationManager().updateDictionary(dictionaryCore);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getSerialNumber() {
|
private void getReaderInformation() {
|
||||||
clientInterface.getCardReaderManager().getCardReaderSerialNumber(getSerialNumberCallbackHandler);
|
clientInterface.getCardReaderManager().getCardReaderInformation(getCardReaderInformationCallbackHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -693,7 +711,7 @@ public class M4BankActivity extends FlutterActivity {
|
||||||
|
|
||||||
private RegisterRequestData getRegisterRequestData() {
|
private RegisterRequestData getRegisterRequestData() {
|
||||||
String code = "1" + (int) (Math.random() * 1000) + "" + (int) (Math.random() * 1000) + "" +
|
String code = "1" + (int) (Math.random() * 1000) + "" + (int) (Math.random() * 1000) + "" +
|
||||||
(int) (Math.random() * 1000);
|
(int) (Math.random() * 1000);
|
||||||
String date = new SimpleDateFormat("yyyy-MM-dd H:m:s").format(new Date());
|
String date = new SimpleDateFormat("yyyy-MM-dd H:m:s").format(new Date());
|
||||||
String acquiringType = "mPOS";
|
String acquiringType = "mPOS";
|
||||||
String ip = "169.254.10.10";
|
String ip = "169.254.10.10";
|
||||||
|
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.PrintingCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
|
||||||
import ru.m4bank.mpos.service.hardware.printer.dto.data.PrintingType;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class PrintingCallbackHandlerImpl implements PrintingCallbackHandler<Result, PrinterResult<PrinterErrorData, PrinterBaseData>> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public PrintingCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
Timber.i("onRequestedReportZ");
|
|
||||||
activity.getClientInterface().getPrinterManager().printReport(this, PrintingType.Z_REPORT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult printerResult) {
|
|
||||||
Timber.i("onCompletedPrinting = " + printerResult);
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "onCompletedPrinting = " + printerResult, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
Timber.i("onPrinterForRegistrationGettingCompleted");
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Saved printer - " + activity.getClientInterface().getPrinterManager().isSavedPrinterName(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
Timber.i("onNoBoundedPrinterFound");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List printerList) {
|
|
||||||
Timber.i("printerList = " + printerList);
|
|
||||||
activity.getClientInterface().getPrinterManager().selectPrinter(printerList.get(0).toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
Timber.i("onCompleted = " + result.getResultType().toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
Timber.i("onWrongApiCalled");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
Timber.i("onRepeat");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.CurrencyEnum;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.hardware.printer.dto.data.ReconciliationData;
|
|
||||||
import ru.m4bank.mpos.service.hardware.printer.dto.data.ReconciliationOperationData;
|
|
||||||
import ru.m4bank.mpos.service.hardware.printer.dto.data.TransactionType;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionMoneyInteractionType;
|
|
||||||
|
|
||||||
|
|
||||||
public class ReconciliationPrinterDataBuilder {
|
|
||||||
|
|
||||||
public ReconciliationData build(List<Transaction> transactionList, boolean closeDay) {
|
|
||||||
ArrayList<ReconciliationOperationData> reconciliationOperationDataList = new ArrayList<ReconciliationOperationData>();
|
|
||||||
if (transactionList == null) return null;
|
|
||||||
for (Transaction transaction : transactionList) {
|
|
||||||
if (!isErrorStatus(transaction)) {
|
|
||||||
reconciliationOperationDataList.add(buildOneElement(transaction));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return new ReconciliationData(reconciliationOperationDataList, closeDay);
|
|
||||||
}
|
|
||||||
|
|
||||||
private ReconciliationOperationData buildOneElement(Transaction transaction) {
|
|
||||||
return new ReconciliationOperationData.Builder(
|
|
||||||
transaction.getAmount(),
|
|
||||||
transaction.getMaskedPan(),
|
|
||||||
CurrencyEnum.getCurrencyEnum(Integer.parseInt(transaction.getCurrency3DigitCode())),
|
|
||||||
getPrinterOperationType(transaction.getTransactionType()),
|
|
||||||
transaction.getExternalTerminalId(), transaction.getPiDataType().getTypePIData().equals(TransactionMoneyInteractionType.CASH.toString()))
|
|
||||||
.cardType(transaction.getCardType())
|
|
||||||
.date(transaction.getTransactionDate())
|
|
||||||
.checkId(transaction.getCheck())
|
|
||||||
.externalMerchantId(transaction.getExternalMerchantId())
|
|
||||||
.externalMerchantName(transaction.getExternalMerchantName())
|
|
||||||
.externalMerchantAdress(transaction.getExternalMerchantAddress())
|
|
||||||
.authorizationCode(transaction.getAuthorizationCode())
|
|
||||||
.refNumber(transaction.getRrn())
|
|
||||||
.time(transaction.getTransactionTime())
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
private TransactionType getPrinterOperationType(String type) {
|
|
||||||
if (type == null) return null;
|
|
||||||
switch (type.toUpperCase()) {
|
|
||||||
case "PAYMENT":
|
|
||||||
return TransactionType.INCOMING;
|
|
||||||
case "REFUND":
|
|
||||||
return TransactionType.INCOMING_REFUND;
|
|
||||||
case "REVERSAL":
|
|
||||||
return TransactionType.REVERSAL;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isErrorStatus(Transaction transaction) {
|
|
||||||
if (transaction == null || transaction.getOperationStatus() == null) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (transaction.getOperationStatus()) {
|
|
||||||
case COMPLETED:
|
|
||||||
case REVERSED:
|
|
||||||
case READER_TIMEOUT:
|
|
||||||
return false;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.ResendReceiptCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
|
|
||||||
class ResendReceiptCallbackHandlerImpl implements ResendReceiptCallbackHandler<Result>,
|
|
||||||
GetTransactionsListCallbackHandler<Result> {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
ResendReceiptCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
Transaction transaction = (Transaction) transactionListSpinner.getSelectedItem();
|
|
||||||
activity.getClientInterface().getTransactionManager().resendReceipt(this, transaction, "vsa@centercorptech.net", null);
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,154 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.ReversalCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
|
||||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
|
|
||||||
public class ReversalCallbackHandlerImpl implements ReversalCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public ReversalCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionSelectionRequested(List<Transaction> transactionList) {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose transaction");
|
|
||||||
|
|
||||||
Spinner transactionListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
transactionListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface().getTransactionManager().selectTransaction((Transaction) transactionListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(transactionListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardShortPanRequested() {
|
|
||||||
activity.getClientInterface().getTransactionManager().setCardShortPan("0069", 20, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, newStatus.name(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
activity.getClientInterface().getTransactionManager().sendTransactionUserData(null, "phone", "email");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Transaction data has been received", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Operation has been successfully completed", Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSelectTransaction() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult<PrinterErrorData, PrinterBaseData> printerErrorDataPrinterBaseDataPrinterResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List<String> list) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,309 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.Spinner;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.LastReversalCardPaymentCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.commons.data.ResultType;
|
|
||||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Reader;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.result.ResultCode;
|
|
||||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
|
||||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.enums.VirtualKeyboardStyleTypeConv;
|
|
||||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.MessageButtonData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
|
||||||
import ru.m4bank.mpos.service.transactions.dto.OnlineCardDataDto;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class RevertCurrentOperationCallbackHandlerImpl implements LastReversalCardPaymentCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public RevertCurrentOperationCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardReaderForTransactionGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedDevicesFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectingProcessStarted(String deviceName) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisconnectedEventReceivedOrCanNotEstablishConnection(boolean reconnectAvailable, String description) {
|
|
||||||
if (reconnectAvailable) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Connection to cardreader has been lost, try to reconnect and repeat last operation?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().tryToReconnectAndRepeatLast());
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().cancel());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToConnectSelectionRequested(List deviceList) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, deviceList);
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.selectCardReader(deviceListSpinner.getSelectedItem().toString());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWorkFlowDataRequested() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceiveCardData(OnlineCardDataDto data, boolean shouldConfirmBeManuallyCalled) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredReversal(String description, ResultCode resultCode) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredApplicationSelection(List applicationOfList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterForRegistrationGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedPrinterFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDetailsReceived(Transaction transaction) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccessStatusTransaction(Transaction transaction) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorStatusTransaction() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestedReportZ() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompletedPrinting(PrinterResult printerResult) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconciliationRequiredToProcess() {
|
|
||||||
Timber.d("Reconciliation required!!!");
|
|
||||||
activity.getClientInterface().getTransactionManager().makeReconciliationDuringTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconciliationCompleted(Result result) {
|
|
||||||
Timber.d("Reconciliation completed!!!");
|
|
||||||
if (result.getResultType() == ResultType.SUCCESSFUL) {
|
|
||||||
activity.getClientInterface().getTransactionManager().continueTransactionAfterReconciliation();
|
|
||||||
} else {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Reconciliation failed " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_LONG)
|
|
||||||
.show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int attemptNumber) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionAmountRequested() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataRequested() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToUseSelectionRequested(List deviceList) {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setTitle("Choose device");
|
|
||||||
|
|
||||||
Spinner deviceListSpinner = new Spinner(activity);
|
|
||||||
ArrayAdapter<Reader> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item, new ArrayList<>(deviceList));
|
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
deviceListSpinner.setAdapter(adapter);
|
|
||||||
|
|
||||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
|
||||||
activity.getClientInterface()
|
|
||||||
.getTransactionManager()
|
|
||||||
.setCardReaderToUse((Reader) deviceListSpinner.getSelectedItem());
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.setView(deviceListSpinner);
|
|
||||||
activity.runOnUiThread(() -> builder.create().show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrinterToUseSelectionRequested(List printerList) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionInit() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUserInformationRequested(boolean signNeeded) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
|
||||||
activity.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceivedError(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionDataReceived(TransactionData data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReconnectNeededToProcess() {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
||||||
builder.setMessage("Connection to cardreader has been lost, try to reconnect and continue?");
|
|
||||||
builder.setCancelable(false);
|
|
||||||
builder.setPositiveButton("Yes", (dialog, which) -> activity.getClientInterface().getTransactionManager().tryToReconnectToCardReader());
|
|
||||||
builder.setNegativeButton("No", (dialog, which) -> activity.getClientInterface().cancel());
|
|
||||||
builder.create().show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongTerminal() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityUpdateUiThread() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreatePinPadButtons() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onShowPinPadKeyBoard(MessageButtonData messageButtonData) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUpdateElementPin(int i) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCloseKeyboard() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequiredAdditionalVirtualKeyboardSettings(VirtualKeyboardStyleTypeConv virtualKeyboardStyleTypeConv) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.ScanBarCodeCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
|
|
||||||
public class ScanBarCodeCallbackHandlerImpl implements ScanBarCodeCallbackHandler {
|
|
||||||
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public ScanBarCodeCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleteBarCode(String result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(String result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result, Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCardReaderForTransactionGettingCompleted() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNoBoundedDevicesFound() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectingProcessStarted(String s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisconnectedEventReceivedOrCanNotEstablishConnection(boolean b, String s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToUseSelectionRequested(List list) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDeviceToConnectSelectionRequested(List list) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.configuration.SendRegisterRequestCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.result.SendRegisterRequestExternalResult;
|
|
||||||
|
|
||||||
public class SendRegisterRequestCallbackHandlerImpl implements SendRegisterRequestCallbackHandler {
|
|
||||||
private final M4BankActivity activity;
|
|
||||||
|
|
||||||
public SendRegisterRequestCallbackHandlerImpl(M4BankActivity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(SendRegisterRequestExternalResult result) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, result.getResultType() + " " + result.getRequestCode() + " " + result.getStatus(), Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.external.SessionExpiringCallbackHandler;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public class SessionExpiringCallbackHandlerImpl implements SessionExpiringCallbackHandler {
|
|
||||||
@Override
|
|
||||||
public void onSessionExpired() {
|
|
||||||
Timber.w("SESSION EXPIRED!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;;
|
|
||||||
|
|
||||||
public enum TerminalKeyTypeMpos {
|
|
||||||
Tmp, Tpk, Tak
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank;
|
|
||||||
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.library.M4BankMposClientInterfaceFacade;
|
|
||||||
import ru.m4bank.mpos.library.external.transactions.XReportCallbackHandler;
|
|
||||||
import ru.m4bank.mpos.service.commons.data.ResultType;
|
|
||||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
|
||||||
import ru.m4bank.mpos.service.hardware.printer.dto.data.PrintingType;
|
|
||||||
import ru.m4bank.mpos.service.result.Result;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.external.ExternalReconciliationData;
|
|
||||||
|
|
||||||
public class XReportCallbackHandlerImpl implements XReportCallbackHandler<Result> {
|
|
||||||
|
|
||||||
private PrintingType reportType;
|
|
||||||
private M4BankActivity activity;
|
|
||||||
private M4BankMposClientInterfaceFacade clientInterface;
|
|
||||||
|
|
||||||
public XReportCallbackHandlerImpl(M4BankMposClientInterfaceFacade clientInterface, PrintingType reportType, M4BankActivity activity) {
|
|
||||||
this.reportType = reportType;
|
|
||||||
this.activity = activity;
|
|
||||||
this.clientInterface = clientInterface;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTransactionsListReceived(List<Transaction> list) {
|
|
||||||
if(list == null || list.isEmpty()) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "list of transaction is empty", Toast.LENGTH_SHORT).show());
|
|
||||||
} else {
|
|
||||||
ExternalReconciliationData data = new ExternalReconciliationData.Builder()
|
|
||||||
.reconciliationData(new ReconciliationPrinterDataBuilder().build(list, false))
|
|
||||||
.build();
|
|
||||||
printReport(clientInterface, reportType, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void notAuthorized() {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Not authorized", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCompleted(Result result) {
|
|
||||||
if(result == null || result.getResultType() != ResultType.SUCCESSFUL) {
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
|
||||||
}else if(result.getResultType() == ResultType.SUCCESSFUL){
|
|
||||||
// if code is successful and list is empty -> reconciliation is already done
|
|
||||||
activity.runOnUiThread(() -> Toast.makeText(activity, "list of transaction is empty", Toast.LENGTH_SHORT).show());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWrongApiCalled() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRepeat(int i) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void printReport(M4BankMposClientInterfaceFacade clientInterface, PrintingType reportType, ExternalReconciliationData data) {
|
|
||||||
clientInterface.cancel();
|
|
||||||
if(reportType == PrintingType.RECONCILIATION_FULL_REPORT) {
|
|
||||||
clientInterface.getPrinterManager().printReconciliationReportFull(new PrintingCallbackHandlerImpl(activity), data);
|
|
||||||
} else {
|
|
||||||
clientInterface.getPrinterManager().printReconciliationReportShort(new PrintingCallbackHandlerImpl(activity), data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank.builders;
|
|
||||||
|
|
||||||
import javax.net.ssl.HostnameVerifier;
|
|
||||||
import javax.net.ssl.SSLContext;
|
|
||||||
import javax.net.ssl.SSLSocketFactory;
|
|
||||||
import javax.net.ssl.X509TrustManager;
|
|
||||||
|
|
||||||
import ru.m4bank.mpos.service.network.retrofit.SSLConfiguration;
|
|
||||||
|
|
||||||
public class SslConfigurationBuilder {
|
|
||||||
public static SSLConfiguration buildAllTrustConfiguration(String serverAddress) {
|
|
||||||
X509TrustManager[] trustManager = getTrustManagers();
|
|
||||||
return new SSLConfiguration.Builder()
|
|
||||||
.trustManager(trustManager[0])
|
|
||||||
.hostnameVerifier(getHostnameVerifier(serverAddress))
|
|
||||||
.socketFactory(getSSLSocketFactory(trustManager))
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static HostnameVerifier getHostnameVerifier(String serverUrl) {
|
|
||||||
return (hostname, session) -> true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static X509TrustManager[] getTrustManagers() {
|
|
||||||
return new X509TrustManager[]{new X509TrustManager() {
|
|
||||||
@Override
|
|
||||||
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
|
|
||||||
return new java.security.cert.X509Certificate[]{};
|
|
||||||
}
|
|
||||||
}};
|
|
||||||
}
|
|
||||||
|
|
||||||
private static SSLSocketFactory getSSLSocketFactory(X509TrustManager[] trustManager) {
|
|
||||||
try {
|
|
||||||
final SSLContext sslContext = SSLContext.getInstance("SSL");
|
|
||||||
sslContext.init(null, trustManager, new java.security.SecureRandom());
|
|
||||||
return sslContext.getSocketFactory();
|
|
||||||
} catch (Exception e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,129 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank.gui;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.view.Gravity;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.Window;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
import android.widget.Button;
|
|
||||||
|
|
||||||
|
|
||||||
import kz.com.aman.kassa.R;
|
|
||||||
import ru.m4bank.mpos.service.transactions.data.MessageButtonData;
|
|
||||||
|
|
||||||
|
|
||||||
public class CustomKeyBoardDilalog {
|
|
||||||
|
|
||||||
Button btnb1, btnb2, btnb3, btnb4, btnb5, btnb6, btnb7, btnb8, btnb9, btnb0,
|
|
||||||
btncancel, btnconfirm, btnclean;
|
|
||||||
View view;
|
|
||||||
Dialog dialog;
|
|
||||||
|
|
||||||
public void createDialog(Context context) {
|
|
||||||
|
|
||||||
dialog = new Dialog(context);
|
|
||||||
view = LayoutInflater.from(context).inflate(R.layout.layout_pin, null);
|
|
||||||
btnb1 = (Button) view.findViewById(R.id.button1);
|
|
||||||
btnb2 = (Button) view.findViewById(R.id.button2);
|
|
||||||
btnb3 = (Button) view.findViewById(R.id.button3);
|
|
||||||
btnb4 = (Button) view.findViewById(R.id.button4);
|
|
||||||
btnb5 = (Button) view.findViewById(R.id.button5);
|
|
||||||
btnb6 = (Button) view.findViewById(R.id.button6);
|
|
||||||
btnb7 = (Button) view.findViewById(R.id.button7);
|
|
||||||
btnb8 = (Button) view.findViewById(R.id.button8);
|
|
||||||
btnb9 = (Button) view.findViewById(R.id.button9);
|
|
||||||
btnb0 = (Button) view.findViewById(R.id.button0);
|
|
||||||
btncancel = (Button) view.findViewById(R.id.buttoncan);
|
|
||||||
btnconfirm = (Button) view.findViewById(R.id.buttonconfirm);
|
|
||||||
btnclean = (Button) view.findViewById(R.id.buttonclean);
|
|
||||||
Window dialogWindow = dialog.getWindow();
|
|
||||||
dialogWindow.setGravity( Gravity.BOTTOM);
|
|
||||||
|
|
||||||
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
|
|
||||||
lp.x = 0;
|
|
||||||
lp.y = 0;
|
|
||||||
view.measure(0, 0);
|
|
||||||
lp.height = view.getMeasuredHeight();
|
|
||||||
lp.alpha = 9f;
|
|
||||||
dialogWindow.setAttributes(lp);
|
|
||||||
dialog.setContentView(view);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void show(Activity activity) {
|
|
||||||
if (!activity.isFinishing())
|
|
||||||
dialog.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void close(Activity activity) {
|
|
||||||
if (!activity.isFinishing() && dialog != null && dialog.isShowing())
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setText(MessageButtonData messageButtonData) {
|
|
||||||
btnb1.setText("" + messageButtonData.getBtnb1());
|
|
||||||
btnb2.setText("" + messageButtonData.getBtnb2());
|
|
||||||
btnb3.setText("" + messageButtonData.getBtnb3());
|
|
||||||
btnb4.setText("" + messageButtonData.getBtnb4());
|
|
||||||
btnb5.setText("" + messageButtonData.getBtnb5());
|
|
||||||
btnb6.setText("" + messageButtonData.getBtnb6());
|
|
||||||
btnb7.setText("" + messageButtonData.getBtnb7());
|
|
||||||
btnb8.setText("" + messageButtonData.getBtnb8());
|
|
||||||
btnb9.setText("" + messageButtonData.getBtnb9());
|
|
||||||
btnb0.setText("" + messageButtonData.getBtnb0());
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb1() {
|
|
||||||
return btnb1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb2() {
|
|
||||||
return btnb2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb3() {
|
|
||||||
return btnb3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb4() {
|
|
||||||
return btnb4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb5() {
|
|
||||||
return btnb5;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb6() {
|
|
||||||
return btnb6;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb7() {
|
|
||||||
return btnb7;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb8() {
|
|
||||||
return btnb8;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb9() {
|
|
||||||
return btnb9;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnb0() {
|
|
||||||
return btnb0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtncancel() {
|
|
||||||
return btncancel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnconfirm() {
|
|
||||||
return btnconfirm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Button getBtnclean() {
|
|
||||||
return btnclean;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank.gui;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by pppoo on 27.02.2018.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public interface SelectDialogCallback<ElementType> {
|
|
||||||
void onElementSelected(ElementType element);
|
|
||||||
void onCancelSelection();
|
|
||||||
}
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank.gui;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.view.ViewGroup.LayoutParams;
|
|
||||||
import android.widget.ArrayAdapter;
|
|
||||||
import android.widget.ListView;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import kz.com.aman.kassa.R;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class SelectElementDialog<ElementType> extends Dialog {
|
|
||||||
private Context context;
|
|
||||||
ArrayAdapter<ElementType> listAdapter;
|
|
||||||
private TextView labelTitle;
|
|
||||||
private ListView list;
|
|
||||||
private SelectDialogCallback<ElementType> selectDialogCallback;
|
|
||||||
|
|
||||||
public SelectElementDialog(final Context context, List<ElementType> elements, SelectDialogCallback<ElementType> selectDialogCallback) {
|
|
||||||
super(context);
|
|
||||||
this.context = context;
|
|
||||||
this.selectDialogCallback = selectDialogCallback;
|
|
||||||
setCancelable(false);
|
|
||||||
setCanceledOnTouchOutside(false);
|
|
||||||
init(elements);
|
|
||||||
list.setAdapter(listAdapter);
|
|
||||||
getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
|
|
||||||
|
|
||||||
list.setOnItemClickListener((arg0, arg1, arg2, arg3) -> {
|
|
||||||
ElementType element = (ElementType) arg0.getItemAtPosition(arg2);
|
|
||||||
selectDialogCallback.onElementSelected(element);
|
|
||||||
((Activity) context).runOnUiThread(this::dismiss);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void init(List<ElementType> elements) {
|
|
||||||
setContentView(R.layout.custom_dialog_list);
|
|
||||||
labelTitle = findViewById(R.id.labelMessage);
|
|
||||||
list = findViewById(R.id.list);
|
|
||||||
listAdapter = new ArrayAdapter<ElementType>(context, R.layout.list_item, R.id.itemView, elements);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBackPressed() {
|
|
||||||
super.onBackPressed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTitle(String text) {
|
|
||||||
if (null != labelTitle)
|
|
||||||
labelTitle.setText(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void showError(Context context, String message) {
|
|
||||||
try {
|
|
||||||
Dialog dialog = new Dialog(context);
|
|
||||||
dialog.setTitle(message);
|
|
||||||
dialog.show();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank.managing;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
|
|
||||||
import static android.content.Context.MODE_PRIVATE;
|
|
||||||
|
|
||||||
public class PreferencesManager {
|
|
||||||
public enum Field {
|
|
||||||
LOGIN("Login"), PASSWORD("Password"), SERVER_URL("ServerUrl");
|
|
||||||
|
|
||||||
private String code;
|
|
||||||
|
|
||||||
Field(String code) {
|
|
||||||
this.code = code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCode() {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void saveStringField(Context context, Field field, String value) {
|
|
||||||
SharedPreferences preferences = context.getSharedPreferences("preferences", MODE_PRIVATE);
|
|
||||||
SharedPreferences.Editor editor = preferences.edit();
|
|
||||||
editor.putString(field.getCode(), value).apply();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String loadStringField(Context context, Field field) {
|
|
||||||
return loadStringField(context, field, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String loadStringField(Context context, Field field, String defaultValue) {
|
|
||||||
SharedPreferences preferences = context.getSharedPreferences("preferences", MODE_PRIVATE);
|
|
||||||
return preferences.getString(field.getCode(), defaultValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank.permissions;
|
|
||||||
|
|
||||||
public interface PermissionsManager {
|
|
||||||
void checkPermissions(PermissionsCheckResultHandler handler);
|
|
||||||
void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults);
|
|
||||||
|
|
||||||
interface PermissionsCheckResultHandler {
|
|
||||||
void onPermissionsGranted();
|
|
||||||
void onPermissionsDeclined();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
package kz.com.aman.kassa.bank.permissions;
|
|
||||||
|
|
||||||
import android.Manifest;
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
|
|
||||||
import androidx.core.app.ActivityCompat;
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
|
|
||||||
public class PermissionsManagerImpl implements PermissionsManager {
|
|
||||||
private static final int MY_PERMISSIONS_REQUEST = 107;
|
|
||||||
private static final String[] PERMISSIONS_LIST = new String[]{
|
|
||||||
Manifest.permission.READ_PHONE_STATE,
|
|
||||||
Manifest.permission.ACCESS_FINE_LOCATION,
|
|
||||||
Manifest.permission.ACCESS_COARSE_LOCATION,
|
|
||||||
Manifest.permission.CAMERA,
|
|
||||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
|
||||||
};
|
|
||||||
|
|
||||||
private final Activity activity;
|
|
||||||
private PermissionsCheckResultHandler permissionsCheckResultHandler;
|
|
||||||
|
|
||||||
public PermissionsManagerImpl(Activity activity) {
|
|
||||||
this.activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void checkPermissions(PermissionsCheckResultHandler permissionsCheckResultHandler) {
|
|
||||||
for (String permission : PERMISSIONS_LIST) {
|
|
||||||
if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
|
|
||||||
this.permissionsCheckResultHandler = permissionsCheckResultHandler;
|
|
||||||
ActivityCompat.requestPermissions(activity, PERMISSIONS_LIST, MY_PERMISSIONS_REQUEST);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
permissionsCheckResultHandler.onPermissionsGranted();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestPermissionsResult(int requestCode,
|
|
||||||
String permissions[], int[] grantResults) {
|
|
||||||
switch (requestCode) {
|
|
||||||
case MY_PERMISSIONS_REQUEST: {
|
|
||||||
if (grantResults.length == PERMISSIONS_LIST.length) {
|
|
||||||
if (arePermissionsGranted(grantResults)) {
|
|
||||||
permissionsCheckResultHandler.onPermissionsGranted();
|
|
||||||
} else {
|
|
||||||
permissionsCheckResultHandler.onPermissionsDeclined();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean arePermissionsGranted(int[] grantResults) {
|
|
||||||
boolean access = true;
|
|
||||||
for (int grantResult : grantResults) {
|
|
||||||
if (grantResult != PackageManager.PERMISSION_GRANTED)
|
|
||||||
access = false;
|
|
||||||
}
|
|
||||||
return access;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -65,11 +65,11 @@
|
||||||
android:text="@string/logout_button" />
|
android:text="@string/logout_button" />
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/changePassword"-->
|
<!--android:id="@+id/changePassword"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="wrap_content"-->
|
<!--android:layout_height="wrap_content"-->
|
||||||
<!--android:layout_gravity="center_horizontal"-->
|
<!--android:layout_gravity="center_horizontal"-->
|
||||||
<!--android:text="@string/change_password_button" />-->
|
<!--android:text="@string/change_password_button" />-->
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -78,48 +78,48 @@
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<!--<EditText-->
|
<!--<EditText-->
|
||||||
<!--android:id="@+id/oldPassword"-->
|
<!--android:id="@+id/oldPassword"-->
|
||||||
<!--android:layout_width="0dp"-->
|
<!--android:layout_width="0dp"-->
|
||||||
<!--android:layout_height="wrap_content"-->
|
<!--android:layout_height="wrap_content"-->
|
||||||
<!--android:layout_weight="1"-->
|
<!--android:layout_weight="1"-->
|
||||||
<!--android:hint="@string/old_password_hint"-->
|
<!--android:hint="@string/old_password_hint"-->
|
||||||
<!--android:inputType="textPassword" />-->
|
<!--android:inputType="textPassword" />-->
|
||||||
|
|
||||||
<!--<EditText-->
|
<!--<EditText-->
|
||||||
<!--android:id="@+id/newPassword"-->
|
<!--android:id="@+id/newPassword"-->
|
||||||
<!--android:layout_width="0dp"-->
|
<!--android:layout_width="0dp"-->
|
||||||
<!--android:layout_height="wrap_content"-->
|
<!--android:layout_height="wrap_content"-->
|
||||||
<!--android:layout_weight="1"-->
|
<!--android:layout_weight="1"-->
|
||||||
<!--android:hint="@string/new_password_hint"-->
|
<!--android:hint="@string/new_password_hint"-->
|
||||||
<!--android:inputType="textPassword" />-->
|
<!--android:inputType="textPassword" />-->
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/register"-->
|
<!--android:id="@+id/register"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="wrap_content"-->
|
<!--android:layout_height="wrap_content"-->
|
||||||
<!--android:text="@string/register_button" />-->
|
<!--android:text="@string/register_button" />-->
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<!--<EditText-->
|
<!--<EditText-->
|
||||||
<!--android:id="@+id/code"-->
|
<!--android:id="@+id/code"-->
|
||||||
<!--android:layout_width="0dp"-->
|
<!--android:layout_width="0dp"-->
|
||||||
<!--android:layout_height="wrap_content"-->
|
<!--android:layout_height="wrap_content"-->
|
||||||
<!--android:layout_weight="1"-->
|
<!--android:layout_weight="1"-->
|
||||||
<!--android:hint="@string/code_hint"-->
|
<!--android:hint="@string/code_hint"-->
|
||||||
<!--android:inputType="number" />-->
|
<!--android:inputType="number" />-->
|
||||||
|
|
||||||
<!--<EditText-->
|
<!--<EditText-->
|
||||||
<!--android:id="@+id/pin"-->
|
<!--android:id="@+id/pin"-->
|
||||||
<!--android:layout_width="0dp"-->
|
<!--android:layout_width="0dp"-->
|
||||||
<!--android:layout_height="wrap_content"-->
|
<!--android:layout_height="wrap_content"-->
|
||||||
<!--android:layout_weight="1"-->
|
<!--android:layout_weight="1"-->
|
||||||
<!--android:hint="@string/pin_hint"-->
|
<!--android:hint="@string/pin_hint"-->
|
||||||
<!--android:inputType="number" />-->
|
<!--android:inputType="number" />-->
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -153,16 +153,16 @@
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/setLanguage"-->
|
<!--android:id="@+id/setLanguage"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="match_parent"-->
|
<!--android:layout_height="match_parent"-->
|
||||||
<!--android:text="@string/set_language" />-->
|
<!--android:text="@string/set_language" />-->
|
||||||
|
|
||||||
<!--<Spinner-->
|
<!--<Spinner-->
|
||||||
<!--android:id="@+id/setLanguageSpinner"-->
|
<!--android:id="@+id/setLanguageSpinner"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="wrap_content"-->
|
<!--android:layout_height="wrap_content"-->
|
||||||
<!--android:entries="@array/languages" />-->
|
<!--android:entries="@array/languages" />-->
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -184,25 +184,25 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/makeCardPayment"
|
android:id="@+id/makeCardPayment"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="@string/make_card_payment" />
|
android:text="@string/make_card_payment" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/getCommonCardData"
|
android:id="@+id/getCommonCardData"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="@string/get_common_card_data" />
|
android:text="@string/get_common_card_data" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
@ -232,10 +232,22 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/getSerialNumber"
|
android:id="@+id/readerInformation"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:text="@string/getSerialNumber" />
|
android:text="@string/reader_information" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/versionStore"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/version_store" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/versionTracker"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/version_tracker" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/makeReversalLastWithCallback"
|
android:id="@+id/makeReversalLastWithCallback"
|
||||||
|
|
@ -262,10 +274,10 @@
|
||||||
android:text="@string/make_card_refund" />
|
android:text="@string/make_card_refund" />
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/makeCardRefundWithD200"-->
|
<!--android:id="@+id/makeCardRefundWithD200"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="match_parent"-->
|
<!--android:layout_height="match_parent"-->
|
||||||
<!--android:text="@string/make_card_refund_with_d200" />-->
|
<!--android:text="@string/make_card_refund_with_d200" />-->
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/makeCashRefund"
|
android:id="@+id/makeCashRefund"
|
||||||
|
|
@ -274,10 +286,10 @@
|
||||||
android:text="@string/make_cash_refund" />
|
android:text="@string/make_cash_refund" />
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/makeCashRefundWithD200"-->
|
<!--android:id="@+id/makeCashRefundWithD200"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="match_parent"-->
|
<!--android:layout_height="match_parent"-->
|
||||||
<!--android:text="@string/make_cash_refund_with_d200" />-->
|
<!--android:text="@string/make_cash_refund_with_d200" />-->
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/makeAlipayRefund"
|
android:id="@+id/makeAlipayRefund"
|
||||||
|
|
@ -286,10 +298,10 @@
|
||||||
android:text="@string/make_alipay_refund" />
|
android:text="@string/make_alipay_refund" />
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/makeReversal"-->
|
<!--android:id="@+id/makeReversal"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="match_parent"-->
|
<!--android:layout_height="match_parent"-->
|
||||||
<!--android:text="@string/make_reversal" />-->
|
<!--android:text="@string/make_reversal" />-->
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/makeEasyReversal"
|
android:id="@+id/makeEasyReversal"
|
||||||
|
|
@ -303,35 +315,41 @@
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:text="@string/make_easy_card_reversal" />
|
android:text="@string/make_easy_card_reversal" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/makeReversalSavedUnsuccessfulOperation"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="@string/makeReversalSavedUnsuccessfulOperation" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/makeReconciliation"-->
|
<!--android:id="@+id/makeReconciliation"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="match_parent"-->
|
<!--android:layout_height="match_parent"-->
|
||||||
<!--android:text="@string/make_reconciliation" />-->
|
<!--android:text="@string/make_reconciliation" />-->
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/enterServiceMenu"-->
|
<!--android:id="@+id/enterServiceMenu"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="match_parent"-->
|
<!--android:layout_height="match_parent"-->
|
||||||
<!--android:text="@string/enter_service_menu" />-->
|
<!--android:text="@string/enter_service_menu" />-->
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/addAdditionalCardReader"-->
|
<!--android:id="@+id/addAdditionalCardReader"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="match_parent"-->
|
<!--android:layout_height="match_parent"-->
|
||||||
<!--android:text="@string/add_additional_card_reader" />-->
|
<!--android:text="@string/add_additional_card_reader" />-->
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/getReadersInfo"-->
|
<!--android:id="@+id/getReadersInfo"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="match_parent"-->
|
<!--android:layout_height="match_parent"-->
|
||||||
<!--android:text="@string/get_readers_info" />-->
|
<!--android:text="@string/get_readers_info" />-->
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/getMerchantUsers"
|
android:id="@+id/getMerchantUsers"
|
||||||
|
|
@ -418,10 +436,10 @@
|
||||||
android:text="@string/printing_short_report" />
|
android:text="@string/printing_short_report" />
|
||||||
|
|
||||||
<!--<Button-->
|
<!--<Button-->
|
||||||
<!--android:id="@+id/executeExternalApplication"-->
|
<!--android:id="@+id/executeExternalApplication"-->
|
||||||
<!--android:layout_width="wrap_content"-->
|
<!--android:layout_width="wrap_content"-->
|
||||||
<!--android:layout_height="match_parent"-->
|
<!--android:layout_height="match_parent"-->
|
||||||
<!--android:text="@string/call_external_application" />-->
|
<!--android:text="@string/call_external_application" />-->
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/sendRegisterRequest"
|
android:id="@+id/sendRegisterRequest"
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@
|
||||||
<string name="make_reversal">Make reversal</string>
|
<string name="make_reversal">Make reversal</string>
|
||||||
<string name="make_easy_reversal">Make easy reversal</string>
|
<string name="make_easy_reversal">Make easy reversal</string>
|
||||||
<string name="make_easy_card_reversal">Make easy card reversal</string>
|
<string name="make_easy_card_reversal">Make easy card reversal</string>
|
||||||
|
<string name="makeReversalSavedUnsuccessfulOperation">make Reversal Saved Unsuccessful Operation</string>
|
||||||
<string name="make_reconciliation">Make reconciliation</string>
|
<string name="make_reconciliation">Make reconciliation</string>
|
||||||
<string name="get_merchant_users">Get merchant users</string>
|
<string name="get_merchant_users">Get merchant users</string>
|
||||||
<string name="get_access_payment_instruments">Get access PI</string>
|
<string name="get_access_payment_instruments">Get access PI</string>
|
||||||
|
|
@ -82,7 +83,9 @@
|
||||||
<string name="make_ecom_payment">Make ecom payment</string>
|
<string name="make_ecom_payment">Make ecom payment</string>
|
||||||
<string name="enter_service_menu">Enter service menu</string>
|
<string name="enter_service_menu">Enter service menu</string>
|
||||||
<string name="make_reversal_last_saved_operation">Make reversal last saved operation</string>
|
<string name="make_reversal_last_saved_operation">Make reversal last saved operation</string>
|
||||||
<string name="getSerialNumber">Get Serial Number</string>
|
<string name="reader_information">Get reader information</string>
|
||||||
|
<string name="version_store">Store version</string>
|
||||||
|
<string name="version_tracker">Tracker version</string>
|
||||||
|
|
||||||
<string name="pin_text_btn_1">1</string>
|
<string name="pin_text_btn_1">1</string>
|
||||||
<string name="pin_text_btn_2">2</string>
|
<string name="pin_text_btn_2">2</string>
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,10 @@ buildscript {
|
||||||
]
|
]
|
||||||
|
|
||||||
ext.deps = [
|
ext.deps = [
|
||||||
|
'support' : [
|
||||||
|
'appcompatV7': "com.android.support:appcompat-v7:${versions.supportLibrary}",
|
||||||
|
'multidex' : "com.android.support:multidex:${versions.multidex}",
|
||||||
|
],
|
||||||
'okhttp' : [
|
'okhttp' : [
|
||||||
'core' : "com.squareup.okhttp3:okhttp:${versions.okhttp}",
|
'core' : "com.squareup.okhttp3:okhttp:${versions.okhttp}",
|
||||||
'logger': "com.squareup.okhttp3:logging-interceptor:${versions.okhttp}",
|
'logger': "com.squareup.okhttp3:logging-interceptor:${versions.okhttp}",
|
||||||
|
|
@ -49,20 +53,20 @@ buildscript {
|
||||||
'retro_stream': 'net.sourceforge.streamsupport:android-retrostreams:1.6.3',
|
'retro_stream': 'net.sourceforge.streamsupport:android-retrostreams:1.6.3',
|
||||||
'hardware' : [
|
'hardware' : [
|
||||||
"terminalCommon": [
|
"terminalCommon": [
|
||||||
"cardreaderlib" : "m4bank:cardreaderlib:750",
|
"cardreaderlib" : "m4bank:cardreaderlib:759",
|
||||||
"connectionreaders": "m4bank:connectionreaders:750",
|
"connectionreaders": "m4bank:connectionreaders:759",
|
||||||
"emv-taglib" : "external:emv-taglib:2.4",
|
"emv_taglib" : "external:emv-taglib:2.5",
|
||||||
],
|
],
|
||||||
'aisino' : [
|
'aisino' : [
|
||||||
"aisino_common": "m4bank:aisino_common:138",
|
"aisino_common": "m4bank:aisino_common:140",
|
||||||
"vm20" : [
|
"vm20" : [
|
||||||
"vm20" : "external:vm20sdk:9",
|
"vm20" : "external:vm20sdk:9",
|
||||||
"asinalib": "m4bank:asinalib:99"
|
"asinalib": "m4bank:asinalib:100"
|
||||||
],
|
],
|
||||||
"a90" : [
|
"a90" : [
|
||||||
"aisinoprinterlib": "m4bank:aisinoprinterlib:152",
|
"aisinoprinterlib": "m4bank:aisinoprinterlib:153",
|
||||||
"aisino_a90lib" : "m4bank:aisino_a90lib:422",
|
"aisino_a90lib" : "m4bank:aisino_a90lib:437",
|
||||||
"aisino_a90deps" : "m4bank:aisino_a90deps:master-1.1.42@aar",
|
"aisino_a90deps" : "m4bank:aisino_a90deps:master-1.1.43@aar",
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'wangpos' : [
|
'wangpos' : [
|
||||||
|
|
@ -90,16 +94,26 @@ buildscript {
|
||||||
],
|
],
|
||||||
"spirelib" : "m4bank:spirelib:138",
|
"spirelib" : "m4bank:spirelib:138",
|
||||||
"softpos" : [
|
"softpos" : [
|
||||||
"softpaylibrary" : "m4bank:softpaylibrary:41@aar",
|
"softpaylibrary" : "m4bank:softpaylibrary:52@aar",
|
||||||
"softpay_dependencies": "m4bank:softpay_dependencies:1.1.1.52@aar",
|
"softpay_dependencies": "m4bank:softpay_dependencies:1.1.4.62@aar",
|
||||||
],
|
],
|
||||||
"sunmi" : "m4bank:sunmiv1printerlibrary:5",
|
"sunmi" : "m4bank:sunmiv1printerlibrary:5",
|
||||||
"redlib" : "m4bank:redlib:1",
|
"redlib" : "m4bank:redlib:1",
|
||||||
"d200lib" : "m4bank:d200lib:9",
|
"d200lib" : "m4bank:d200lib:9",
|
||||||
],
|
],
|
||||||
"zlibrary" : "m4bank:zlibrary:2134@aar"
|
"zlibrary" : "m4bank:zlibrary:2159@aar"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
//TODO: 20.09.2019 for future refactoring: add gradle properties parameter to set supported device remotely
|
||||||
|
if (ext.buildType.buildType == 'NFC') {
|
||||||
|
ext.supportedDevicesapp = ['SoftPos', 'Shtrih', 'Atol']
|
||||||
|
} else {
|
||||||
|
ext.supportedDevicesapp = ['Deftun', 'Singular', 'CctRed', 'RoamData', 'Rp350n', 'WisePad', 'RoamPad',
|
||||||
|
'Qpos', 'Icmp', 'Spire', 'D200', 'RoamPadNfc', 'IcmpUpos', 'WangPos',
|
||||||
|
'OrangeRoamPad', 'FakeReader', 'Aisino', 'AisinoA90',
|
||||||
|
'Shtrih', 'Sunmi', 'Atol', 'AisinoA70']
|
||||||
|
}
|
||||||
|
|
||||||
ext.currentRepository = "http://217.174.185.218:55555/artifactory/gradle-dev"
|
ext.currentRepository = "http://217.174.185.218:55555/artifactory/gradle-dev"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue