X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fnew_transaction%2FNewTransactionHeaderItemHolder.java;h=37c55ce8aa1e4b19ec98f4b287d003683d8773c8;hb=fcdd10b21d0e4af59f70804c63d145512b2cb918;hp=90c4718fc01c13582edb18febd4f4036db806ec0;hpb=02ceb0d2ef0eed07c278330e4b9b2af366f5d17f;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionHeaderItemHolder.java b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionHeaderItemHolder.java index 90c4718f..37c55ce8 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionHeaderItemHolder.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionHeaderItemHolder.java @@ -24,18 +24,20 @@ import android.text.TextUtils; import android.text.TextWatcher; import android.view.View; import android.widget.EditText; -import android.widget.SimpleCursorAdapter; +import android.widget.ListAdapter; import android.widget.TextView; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import net.ktnx.mobileledger.R; import net.ktnx.mobileledger.databinding.NewTransactionHeaderRowBinding; +import net.ktnx.mobileledger.db.TransactionDescriptionAutocompleteAdapter; import net.ktnx.mobileledger.model.Data; +import net.ktnx.mobileledger.model.FutureDates; import net.ktnx.mobileledger.ui.DatePickerFragment; import net.ktnx.mobileledger.utils.Logger; -import net.ktnx.mobileledger.utils.MLDB; import net.ktnx.mobileledger.utils.Misc; import net.ktnx.mobileledger.utils.SimpleDate; @@ -70,7 +72,7 @@ class NewTransactionHeaderItemHolder extends NewTransactionItemViewHolder boolean wasSyncing = syncingData; syncingData = true; try { - final int pos = getAdapterPosition(); + final int pos = getBindingAdapterPosition(); if (id == R.id.transaction_comment) { adapter.noteFocusIsOnTransactionComment(pos); } @@ -96,8 +98,12 @@ class NewTransactionHeaderItemHolder extends NewTransactionItemViewHolder NewTransactionActivity activity = (NewTransactionActivity) b.getRoot() .getContext(); - MLDB.hookAutocompletionAdapter(activity, b.newTransactionDescription, - MLDB.DESCRIPTION_HISTORY_TABLE, "description", false, activity, mProfile); + b.newTransactionDescription.setAdapter( + new TransactionDescriptionAutocompleteAdapter(activity)); + b.newTransactionDescription.setOnItemClickListener( + (parent, view, position, id) -> activity.descriptionSelected( + parent.getItemAtPosition(position) + .toString())); decimalSeparator = ""; Data.locale.observe(activity, locale -> decimalSeparator = String.valueOf( @@ -148,7 +154,7 @@ class NewTransactionHeaderItemHolder extends NewTransactionItemViewHolder ignoreFocusChanges = true; try { if (((focusInfo == null) || (focusInfo.element == null) || - focusInfo.position != getAdapterPosition())) + focusInfo.position != getBindingAdapterPosition())) return; NewTransactionModel.Item head = getItem().toTransactionHead(); @@ -244,7 +250,7 @@ class NewTransactionHeaderItemHolder extends NewTransactionItemViewHolder return false; } - if (getAdapterPosition() < 0) { + if (getBindingAdapterPosition() == RecyclerView.NO_POSITION) { // probably the row was swiped out Logger.debug("new-trans", "Ignoring request to suncData(): adapter position negative"); return false; @@ -278,7 +284,7 @@ class NewTransactionHeaderItemHolder extends NewTransactionItemViewHolder } private void pickTransactionDate() { DatePickerFragment picker = new DatePickerFragment(); - picker.setFutureDates(mProfile.getFutureDates()); + picker.setFutureDates(FutureDates.valueOf(mProfile.getFutureDates())); picker.setOnDatePickedListener(this); picker.setCurrentDateFromText(b.newTransactionDate.getText()); picker.show(((NewTransactionActivity) b.getRoot() @@ -299,14 +305,14 @@ class NewTransactionHeaderItemHolder extends NewTransactionItemViewHolder b.newTransactionDate.setText(head.getFormattedDate()); // avoid triggering completion pop-up - SimpleCursorAdapter a = - (SimpleCursorAdapter) b.newTransactionDescription.getAdapter(); + ListAdapter a = b.newTransactionDescription.getAdapter(); try { b.newTransactionDescription.setAdapter(null); b.newTransactionDescription.setText(head.getDescription()); } finally { - b.newTransactionDescription.setAdapter(a); + b.newTransactionDescription.setAdapter( + (TransactionDescriptionAutocompleteAdapter) a); } b.transactionComment.setText(head.getComment());