//TODO multiple amounts with different currencies per posting?
NewTransactionHeaderItemHolder(@NonNull NewTransactionHeaderRowBinding b,
NewTransactionItemsAdapter adapter) {
- super(b.getRoot(), adapter);
+ super(b.getRoot());
this.b = b;
b.newTransactionDescription.setNextFocusForwardId(View.NO_ID);
b.newTransactionDescription.setAdapter(
new TransactionDescriptionAutocompleteAdapter(activity));
b.newTransactionDescription.setOnItemClickListener(
- (parent, view, position, id) -> activity.descriptionSelected(
+ (parent, view, position, id) -> activity.onDescriptionSelected(
parent.getItemAtPosition(position)
.toString()));
focusInfo.position != getBindingAdapterPosition()))
return;
- NewTransactionModel.Item head = getItem().toTransactionHead();
+ final NewTransactionModel.Item item = getItem();
+ if (item == null)
+ return;
+
+ NewTransactionModel.Item head = item.toTransactionHead();
// bad idea - double pop-up, and not really necessary.
// the user can tap the input to get the calendar
//if (!tvDate.hasFocus()) tvDate.requestFocus();
syncingData = true;
try {
- NewTransactionModel.TransactionHead head = getItem().toTransactionHead();
+ final NewTransactionModel.Item item = getItem();
+ if (item == null)
+ return false;
+
+ NewTransactionModel.TransactionHead head = item.toTransactionHead();
head.setDate(String.valueOf(b.newTransactionDate.getText()));
(TransactionDescriptionAutocompleteAdapter) a);
}
- b.transactionComment.setText(head.getComment());
- //styleComment(b.transactionComment, head.getComment());
+ final String comment = head.getComment();
+ b.transactionComment.setText(comment);
+ styleComment(b.transactionComment, comment); // would hide or make it visible
setEditable(true);
- applyFocus(mAdapter.model.getFocusInfo()
- .getValue());
+ NewTransactionItemsAdapter adapter =
+ (NewTransactionItemsAdapter) getBindingAdapter();
+ if (adapter != null)
+ applyFocus(adapter.model.getFocusInfo()
+ .getValue());
}
finally {
syncingData = false;
}
@Override
public void onDatePicked(int year, int month, int day) {
- final NewTransactionModel.TransactionHead head = getItem().toTransactionHead();
+ final NewTransactionModel.Item item = getItem();
+ if (item == null)
+ return;
+
+ final NewTransactionModel.TransactionHead head = item.toTransactionHead();
head.setDate(new SimpleDate(year, month + 1, day));
b.newTransactionDate.setText(head.getFormattedDate());