Ivy-Apps / ivy-wallet

Ivy Wallet is an open-source money manager app for Android, no longer maintained. You can fork the code or download the final version from Google Play.
https://play.google.com/store/apps/details?id=com.ivy.wallet
GNU General Public License v3.0
2.81k stars 677 forks source link

[FEATURE] Filter historical titles list #2678

Closed nvllz closed 1 year ago

nvllz commented 1 year ago

Please confirm the following

What do you want to be added or improved?

I want the transaction title drop-down list (this one with historical titles below the input field) to display only titles that match the current text.

Why do you need it?

How do you imagine it?

When we type some text in the transaction title, we get the drop-down list to filter only the historical titles that contain the typed text. This way we can easily type just part of the title and use any historical title that matches. It would also be good to make sure the filtering isn't case-sensitive.

ILIYANGERMANOV commented 1 year ago

Hey @nvllz, Ivy Wallet's current logic sometimes makes very good predictions based on "Category" and "Account" so we can't make that. Maybe, we can introduce as a customization option "Suggest only exact titles". Wdyt?

nvllz commented 1 year ago

I get your point. But if none of the items on the prediction list match your current title, you start typing and have the unrelated list still cluttering the UI. If unmatching items got filtered on the go, we could not only have it easier to reach the 6th and latter list element (it'd become the top item if titles match enough) but have the list hidden if it's not necessary (as in this case when we don't need any historical title).

Or make it as easy as moving the typing cursor to the description input field when tapping a "Next" on the keyboard. It currently acts as the Save button shortcut. Maybe it's just me who see this list annoying hahah :D

If it'd be that easy as it sounds, the option you described would also be a solution. But name it something like "Title Suggestion List Filtering" as we want to see a list containing the text (for "abc" show both "xxabcx" and "abcdef").

ILIYANGERMANOV commented 1 year ago

I get your point. But if none of the items on the prediction list match your current title, you start typing and have the unrelated list still cluttering the UI. If unmatching items got filtered on the go, we could not only have it easier to reach the 6th and latter list element (it'd become the top item if titles match enough) but have the list hidden if it's not necessary (as in this case when we don't need any historical title).

Or make it as easy as moving the typing cursor to the description input field when tapping a "Next" on the keyboard. It currently acts as the Save button shortcut. Maybe it's just me who see this list annoying hahah :D

If it'd be that easy as it sounds, the option you described would also be a solution. But name it something like "Title Suggestion List Filtering" as we want to see a list containing the text (for "abc" show both "xxabcx" and "abcdef").

We need to fix the algorithm. The logic should be:

At least that's how I think it is. Gotta investigate it and improve it. I won't "approve" the issue, yet because I don't won't the "By Category" and "By Account" part getting removed.

nvllz commented 1 year ago

I think the prediction works pretty well. The only thing that bothers me is the fact that the list is static. If you don't want to name your new record by one of the predicted list items (you see about 3-5 first items, the rest is hidden under the keyboard), you start typing your own title. I'm sure we all tend to do it faster and most of the time just focus on typing instead of looking for the matching title in the list, which shows us different predicted titles. After some time you get hundreds of either income or expense entries. I just want to hide the items on the prediction list that don't match the text in the input field in real time.

In other words:

For example: Alghoritm predicted a list with the following list items

And the user types "ma" in the title field. The app automatically filters the list to show only the matching items, without changing the order (by simply discarding items that do not contain the field text):

That's my view.