Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.globalpayments.library.terminals.moby.mobySaf.MobySafManager;
import com.globalpayments.library.terminals.receivers.BluetoothDiscoveryListener;
import com.globalpayments.library.BuildConfig;
import com.globalpayments.library.R;
Expand Down Expand Up @@ -77,6 +79,7 @@ public class MobyDevice implements IDevice {

private static boolean timberPlanted;
private TransactionManager transactionManager;
private MobySafManager mobySafManager;
private Context applicationContext;
private Context mobyPairingContext;
private ConnectionConfig connectionConfig;
Expand All @@ -89,6 +92,7 @@ public class MobyDevice implements IDevice {
private DeviceListener deviceListener;
private TransactionListener transactionListener;
private SafListener safListener;
private SafListener uploadSafListener;
private AvailableTerminalVersionsListener availableTerminalVersionsListener;
private UpdateTerminalListener updateTerminalListener;
private PairingLedView pairingLedView;
Expand Down Expand Up @@ -191,6 +195,20 @@ public void setConnectionConfig(ConnectionConfig connectionConfig) throws Except
safIDs = new ArrayList<Long>();
}

/**
* Initialize SAF manager
*/
protected void initializeMobySafManager () {
try {
mobySafManager.initialize(
terminalConfig,
gatewayConfig
);
} catch (InitializationException ex) {
ex.printStackTrace();
}
}

/**
* Initialize transaction manager.
*/
Expand All @@ -217,10 +235,10 @@ private Context getMobyPairingContext() {

@Override
public void uploadSAF() {
if (transactionManager == null) {
transactionManager = TransactionManager.getInstance();
if (mobySafManager == null) {
mobySafManager = MobySafManager.getInstance();
}
transactionManager.processAllSafTransactions(new SafListenerImpl());
mobySafManager.processAllSafTransactions(new SafListenerImpl(uploadSafListener));
}

/**
Expand Down Expand Up @@ -285,6 +303,10 @@ public void setSafListener(SafListener safListener) {
this.safListener = safListener;
}

public void setUploadSafListener(SafListener safListener) {
this.uploadSafListener = safListener;
}

public void setAvailableTerminalVersionsListener(
AvailableTerminalVersionsListener availableTerminalVersionsListener) {
this.availableTerminalVersionsListener = availableTerminalVersionsListener;
Expand Down Expand Up @@ -401,6 +423,7 @@ private void startConnect() {
isScanned = false;
}
initializeTransactionManager();
initializeMobySafManager();

if (transactionManager.isInitialized()) {
Timber.d("TransactionManager isInitialized() called");
Expand Down Expand Up @@ -826,46 +849,54 @@ public void onError(Error error) {
}

protected class SafListenerImpl implements com.tsys.payments.library.db.SafListener {
private SafListener safListener = MobyDevice.this.safListener;

public SafListenerImpl() {}

public SafListenerImpl(@Nullable SafListener safListener) {
this.safListener = safListener;
}

@Override
public void onProcessingComplete(List<TransactionResponse> responses) {
Timber.d("onProcessingComplete - count - " + responses.size());
for (TransactionResponse transactionResponse : responses) {
Timber.d("response: " + transactionResponse);
}
if (safListener != null) {
safListener.onProcessingComplete(responses);
if (this.safListener != null) {
this.safListener.onProcessingComplete(responses);
}
}

@Override
public void onAllSafTransactionsRetrieved(List<SafTransaction> obfuscatedSafTransactions) {
Timber.d("onAllSafTransactionsRetrieved - count - " + obfuscatedSafTransactions.size());
if (safListener != null) {
safListener.onAllSafTransactionsRetrieved(obfuscatedSafTransactions);
if (this.safListener != null) {
this.safListener.onAllSafTransactionsRetrieved(obfuscatedSafTransactions);
}
}

@Override
public void onError(Error error) {
Timber.d("onError - " + error);
if (safListener != null) {
safListener.onError(new java.lang.Error(error.getMessage()));
if (this.safListener != null) {
this.safListener.onError(new java.lang.Error(error.getMessage()));
}
}

@Override
public void onTransactionStored(String id, int totalCount, BigDecimal totalAmount) {
Timber.d("onTransactionStored - id - " + id + ", count - " + totalCount + ", amount - " + totalAmount);
if (safListener != null) {
safListener.onTransactionStored(id, totalCount, totalAmount);
if (this.safListener != null) {
this.safListener.onTransactionStored(id, totalCount, totalAmount);
}
}

@Override
public void onStoredTransactionComplete(String id, TransactionResponse transactionResponse) {
Timber.d("onStoredTransactionComplete - id - " + id + ", response - " + transactionResponse);
if (safListener != null) {
safListener.onStoredTransactionComplete(id, transactionResponse);
if (this.safListener != null) {
this.safListener.onStoredTransactionComplete(id, transactionResponse);
}
}
};
Expand Down
Loading