fixed sending multiple transaction if there has reversal
This commit is contained in:
parent
01043dbbca
commit
890b1c55a8
@ -6,6 +6,7 @@ import android.view.View;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.lifecycle.LiveData;
|
||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
import androidx.navigation.NavController;
|
import androidx.navigation.NavController;
|
||||||
import androidx.navigation.NavDestination;
|
import androidx.navigation.NavDestination;
|
||||||
@ -129,43 +130,52 @@ public class ProcessingFragment extends DataBindingFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void checkReversal() {
|
private void checkReversal() {
|
||||||
sharedViewModel.getLastReversalTransaction().observe(getViewLifecycleOwner(), new Observer<PayDetail>() {
|
observeOnce(sharedViewModel.getLastReversalTransaction(), payDetail -> {
|
||||||
@Override
|
if (payDetail != null) {
|
||||||
public void onChanged(PayDetail payDetail) {
|
TradeData tradeData = new TradeData();
|
||||||
if(payDetail != null) {
|
tradeData.setPayDetail(payDetail);
|
||||||
TradeData tradeData = new TradeData();
|
LogUtil.d(TAG, "Sending Reversal!");
|
||||||
tradeData.setPayDetail(payDetail);
|
sharedViewModel.loadingMsg(getResourceString(R.string.txt_sending_reversal));
|
||||||
LogUtil.d(TAG,"Sending Reversal!");
|
|
||||||
sharedViewModel.loadingMsg(getResourceString(R.string.txt_sending_reversal));
|
|
||||||
|
|
||||||
ReversalAction.getInstance().setData(tradeData).enqueue().startReversal(new ReversalListener() {
|
ReversalAction.getInstance().setData(tradeData).enqueue().startReversal(new ReversalListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccessReversal() {
|
public void onSuccessReversal() {
|
||||||
LogUtil.d(TAG,"Reversal Success!");
|
LogUtil.d(TAG, "Reversal Success!");
|
||||||
payDetail.setIsNeedReversal(false);
|
payDetail.setIsNeedReversal(false);
|
||||||
sharedViewModel.updatePayDetail(payDetail);
|
sharedViewModel.updatePayDetail(payDetail);
|
||||||
startTransactionProcess();
|
delayFunctionCall(()->startTransactionProcess());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNetworkFail(String msg) {
|
public void onNetworkFail(String msg) {
|
||||||
LogUtil.d(TAG,"Reversal Network Fail!"+msg);
|
LogUtil.d(TAG, "Reversal Network Fail!" + msg);
|
||||||
startTransactionProcess();
|
startTransactionProcess();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailReversal(String msg) {
|
public void onFailReversal(String msg) {
|
||||||
LogUtil.d(TAG,"Reversal Fail!"+msg);
|
LogUtil.d(TAG, "Reversal Fail!" + msg);
|
||||||
startTransactionProcess();
|
startTransactionProcess();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
startTransactionProcess();
|
LogUtil.d(TAG,"No reversal found!");
|
||||||
}
|
startTransactionProcess();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private <T> void observeOnce(LiveData<T> liveData, Observer<T> observer) {
|
||||||
|
liveData.observe(getViewLifecycleOwner(), new Observer<T>() {
|
||||||
|
@Override
|
||||||
|
public void onChanged(T t) {
|
||||||
|
liveData.removeObserver(this);
|
||||||
|
observer.onChanged(t);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private boolean isEmvTrans() {
|
private boolean isEmvTrans() {
|
||||||
return sharedViewModel.isEmv.getValue() != null && sharedViewModel.isEmv.getValue();
|
return sharedViewModel.isEmv.getValue() != null && sharedViewModel.isEmv.getValue();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user