+ View.OnFocusChangeListener focusMonitor = (v, hasFocus) -> {
+ if (hasFocus) {
+ boolean wasSyncing = syncingData;
+ syncingData = true;
+ try {
+ final int pos = getAdapterPosition();
+ adapter.updateFocusedItem(pos);
+ if (v instanceof AutoCompleteTextViewWithClear) {
+ adapter.noteFocusIsOnAccount(pos);
+ }
+ else {
+ adapter.noteFocusIsOnAmount(pos);
+ }
+ }
+ finally {
+ syncingData = wasSyncing;
+ }
+ }
+ };
+
+ tvDescription.setOnFocusChangeListener(focusMonitor);
+ tvAccount.setOnFocusChangeListener(focusMonitor);
+ tvAmount.setOnFocusChangeListener(focusMonitor);
+