up dependencies version
parent
c3cf63fdbe
commit
49c3cc5b8d
|
|
@ -62,6 +62,9 @@ android {
|
|||
}
|
||||
}
|
||||
buildTypes {
|
||||
all {
|
||||
buildConfigField ("String[]", "SUPPORTED_DEVICES", collectSupportedDevicesToArray())
|
||||
}
|
||||
release {
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
|
|
@ -123,3 +126,9 @@ dependencies {
|
|||
|
||||
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 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 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.encoder.PatternLayoutEncoder;
|
||||
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.M4BankMposClientInterfaceFacade;
|
||||
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.EasyCardRefundCallbackHandler;
|
||||
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.GetTransactionsListCallbackHandler;
|
||||
import ru.m4bank.mpos.library.external.transactions.LastReversalCardPaymentCallbackHandler;
|
||||
|
|
@ -113,7 +113,8 @@ public class M4BankActivity extends FlutterActivity {
|
|||
private PrintingCallbackHandlerImpl printingCallbackHandler;
|
||||
private XReportCallbackHandler xReportCallbackHandler;
|
||||
private LastReversalCardPaymentCallbackHandler revertCurrentOperationCallbackHandler;
|
||||
private GetSerialNumberCallbackHandler getSerialNumberCallbackHandler;
|
||||
private GetCardReaderInformationCallbackHandler getCardReaderInformationCallbackHandler;
|
||||
private EasyReversalSavedOperationCallbackHandler easyReversalSavedOperationCallbackHandler;
|
||||
|
||||
private GetTransactionListForRefundCallbackHandlerImpl getTransactionListForRefundCallbackHandler;
|
||||
private SendRegisterRequestCallbackHandlerImpl sendRegisterRequestCallbackHandler;
|
||||
|
|
@ -223,7 +224,7 @@ public class M4BankActivity extends FlutterActivity {
|
|||
|
||||
//слушатель для получения списка мерчантов
|
||||
getMerchantUsersCallbackHandler = new GetMerchantUsersCallbackHandlerImpl(this);
|
||||
//слушатель поулчения лицензии
|
||||
//слушатель получения лицензии
|
||||
getLicenseCallbackHandler = new GetLicenseCallbackHandlerImpl(this);
|
||||
//слушатель повторной отправки чека
|
||||
resendReceiptCallbackHandler = new ResendReceiptCallbackHandlerImpl(this);
|
||||
|
|
@ -236,13 +237,15 @@ public class M4BankActivity extends FlutterActivity {
|
|||
//слушатели печати
|
||||
printingCallbackHandler = new PrintingCallbackHandlerImpl(this);
|
||||
//слушатель для получения серийного номера
|
||||
getSerialNumberCallbackHandler = new GetSerialNumberCallbackHandlerImpl(this);
|
||||
getCardReaderInformationCallbackHandler = new GetCardReaderInformationCallbackHandlerImpl(this);
|
||||
//слушатель для считывания barcode
|
||||
scanBarCodeCallbackHandler = new ScanBarCodeCallbackHandlerImpl(this);
|
||||
// слушатель для отмены неуспешной операции, которая сохранена в холдере
|
||||
easyReversalSavedOperationCallbackHandler = new EasyReversalSavedOperationCallbackHandlerImpl(this);
|
||||
|
||||
initLoginForm();
|
||||
|
||||
initButton(R.id.getSerialNumber, v -> getSerialNumber());
|
||||
initButton(R.id.readerInformation, v -> getReaderInformation());
|
||||
|
||||
initButton(R.id.activate, v -> clientInterface.getAuthorizationManager().activate(activationCallbackHandler));
|
||||
|
||||
|
|
@ -408,7 +411,6 @@ public class M4BankActivity extends FlutterActivity {
|
|||
//////////// отправка данных для регистрации mpos - дополнительный функционал при активации//////////////
|
||||
findViewById(R.id.sendRegisterRequest).setOnClickListener(v -> {
|
||||
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()
|
||||
.sendRegisterRequest(sendRegisterRequestCallbackHandler, getRegisterRequestData(), url);
|
||||
});
|
||||
|
|
@ -479,6 +481,16 @@ public class M4BankActivity extends FlutterActivity {
|
|||
|
||||
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,
|
||||
getString(R.string.default_server_address_mpos_5_0_test));
|
||||
String serverUrl;
|
||||
|
|
@ -583,6 +595,11 @@ public class M4BankActivity extends FlutterActivity {
|
|||
|
||||
//обновление словаря в библиотеке ридера
|
||||
initButton(R.id.updateDictionary, v -> updateDictionary(aisinoDictionary));
|
||||
|
||||
// отмена неуспешной операции, которая сохранена в холдере
|
||||
initButton(R.id.makeReversalSavedUnsuccessfulOperation, v ->
|
||||
clientInterface.getTransactionManager()
|
||||
.makeReversalSavedUnsuccessfulOperation(easyReversalSavedOperationCallbackHandler));
|
||||
}
|
||||
|
||||
private void initButton(int id, View.OnClickListener onClickListener) {
|
||||
|
|
@ -610,6 +627,7 @@ public class M4BankActivity extends FlutterActivity {
|
|||
.energySaverModeTime(150)
|
||||
.pinLengthsArray(new byte[]{4, 6})
|
||||
.shutDownModeTime(300)
|
||||
.deviceType(new DeviceTypeDefiner().define())
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
@ -662,8 +680,8 @@ public class M4BankActivity extends FlutterActivity {
|
|||
clientInterface.getConfigurationManager().updateDictionary(dictionaryCore);
|
||||
}
|
||||
|
||||
private void getSerialNumber() {
|
||||
clientInterface.getCardReaderManager().getCardReaderSerialNumber(getSerialNumberCallbackHandler);
|
||||
private void getReaderInformation() {
|
||||
clientInterface.getCardReaderManager().getCardReaderInformation(getCardReaderInformationCallbackHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -232,10 +232,22 @@
|
|||
</LinearLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/getSerialNumber"
|
||||
android:id="@+id/readerInformation"
|
||||
android:layout_width="wrap_content"
|
||||
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
|
||||
android:id="@+id/makeReversalLastWithCallback"
|
||||
|
|
@ -303,6 +315,12 @@
|
|||
android:layout_height="match_parent"
|
||||
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
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
<string name="make_reversal">Make reversal</string>
|
||||
<string name="make_easy_reversal">Make easy 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="get_merchant_users">Get merchant users</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="enter_service_menu">Enter service menu</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_2">2</string>
|
||||
|
|
|
|||
|
|
@ -23,6 +23,10 @@ buildscript {
|
|||
]
|
||||
|
||||
ext.deps = [
|
||||
'support' : [
|
||||
'appcompatV7': "com.android.support:appcompat-v7:${versions.supportLibrary}",
|
||||
'multidex' : "com.android.support:multidex:${versions.multidex}",
|
||||
],
|
||||
'okhttp' : [
|
||||
'core' : "com.squareup.okhttp3:okhttp:${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',
|
||||
'hardware' : [
|
||||
"terminalCommon": [
|
||||
"cardreaderlib" : "m4bank:cardreaderlib:750",
|
||||
"connectionreaders": "m4bank:connectionreaders:750",
|
||||
"emv-taglib" : "external:emv-taglib:2.4",
|
||||
"cardreaderlib" : "m4bank:cardreaderlib:759",
|
||||
"connectionreaders": "m4bank:connectionreaders:759",
|
||||
"emv_taglib" : "external:emv-taglib:2.5",
|
||||
],
|
||||
'aisino' : [
|
||||
"aisino_common": "m4bank:aisino_common:138",
|
||||
"aisino_common": "m4bank:aisino_common:140",
|
||||
"vm20" : [
|
||||
"vm20" : "external:vm20sdk:9",
|
||||
"asinalib": "m4bank:asinalib:99"
|
||||
"asinalib": "m4bank:asinalib:100"
|
||||
],
|
||||
"a90" : [
|
||||
"aisinoprinterlib": "m4bank:aisinoprinterlib:152",
|
||||
"aisino_a90lib" : "m4bank:aisino_a90lib:422",
|
||||
"aisino_a90deps" : "m4bank:aisino_a90deps:master-1.1.42@aar",
|
||||
"aisinoprinterlib": "m4bank:aisinoprinterlib:153",
|
||||
"aisino_a90lib" : "m4bank:aisino_a90lib:437",
|
||||
"aisino_a90deps" : "m4bank:aisino_a90deps:master-1.1.43@aar",
|
||||
],
|
||||
],
|
||||
'wangpos' : [
|
||||
|
|
@ -90,16 +94,26 @@ buildscript {
|
|||
],
|
||||
"spirelib" : "m4bank:spirelib:138",
|
||||
"softpos" : [
|
||||
"softpaylibrary" : "m4bank:softpaylibrary:41@aar",
|
||||
"softpay_dependencies": "m4bank:softpay_dependencies:1.1.1.52@aar",
|
||||
"softpaylibrary" : "m4bank:softpaylibrary:52@aar",
|
||||
"softpay_dependencies": "m4bank:softpay_dependencies:1.1.4.62@aar",
|
||||
],
|
||||
"sunmi" : "m4bank:sunmiv1printerlibrary:5",
|
||||
"redlib" : "m4bank:redlib:1",
|
||||
"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"
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue