QR settlement added crash handling

This commit is contained in:
kizzy 2025-12-16 00:31:22 +07:00
parent c46b8793a1
commit 7d8f9f5af2

View File

@ -146,6 +146,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
count = 0; count = 0;
totalAmount = 0; totalAmount = 0;
try {
for (PayDetail payDetail : payDetailList) { for (PayDetail payDetail : payDetailList) {
// Filter for QR transactions only // Filter for QR transactions only
if ((payDetail.getTransactionType() == TransactionsType.MMQR.value if ((payDetail.getTransactionType() == TransactionsType.MMQR.value
@ -163,6 +164,13 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
} }
} }
} }
} catch (IllegalStateException e) {
// Handle cursor window size exceeded error
android.util.Log.e("QRSettlement", "Database cursor error - likely due to large data size", e);
showEmptyDataView();
settlementViewModel.isNoData.setValue(true);
return;
}
if (qrTransactionsList.isEmpty()) { if (qrTransactionsList.isEmpty()) {
showEmptyDataView(); showEmptyDataView();
@ -175,8 +183,6 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
setupSettlementDisplayData(); setupSettlementDisplayData();
} }
// setupSettlementDisplayData();
} else { } else {
showEmptyDataView(); showEmptyDataView();
settlementViewModel.isNoData.setValue(true); settlementViewModel.isNoData.setValue(true);
@ -191,6 +197,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
count = 0; count = 0;
totalAmount = 0; totalAmount = 0;
try {
for (PayDetail payDetail : payDetailList) { for (PayDetail payDetail : payDetailList) {
// Filter for QR transactions only // Filter for QR transactions only
if ((payDetail.getTransactionType() == TransactionsType.MMQR.value if ((payDetail.getTransactionType() == TransactionsType.MMQR.value
@ -208,6 +215,13 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
} }
} }
} }
} catch (IllegalStateException e) {
// Handle cursor window size exceeded error
android.util.Log.e("QRSettlement", "Database cursor error in last settlement - likely due to large data size", e);
showEmptyDataView();
settlementViewModel.isNoData.setValue(true);
return;
}
if (qrTransactionsList.isEmpty()) { if (qrTransactionsList.isEmpty()) {
showEmptyDataView(); showEmptyDataView();
@ -217,8 +231,6 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
settlementViewModel.isNoData.setValue(false); settlementViewModel.isNoData.setValue(false);
} }
} else { } else {
showEmptyDataView(); showEmptyDataView();
settlementViewModel.isNoData.setValue(true); settlementViewModel.isNoData.setValue(true);