]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionHeaderItemHolder.java
bump library dependencies
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / new_transaction / NewTransactionHeaderItemHolder.java
index 90c4718fc01c13582edb18febd4f4036db806ec0..37c55ce8aa1e4b19ec98f4b287d003683d8773c8 100644 (file)
@@ -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());