[FREE] Advanced List Filter

This extension allows filtering data in lists of large amounts of items. The filtering is done asynchronously therefore you can filter large lists and not notice any interference in the user interface.

Current Version Properties

  • Works asynchronously.
  • Use of all cpu cores for fast filtering.
  • It has three types of filtering.
  • Allows to establish a percentage of similarity


Level of Similarity
It is an integer that goes from 0 to 100, it tells the engine how equal the items in the list with the keyword should be.
100 means they must be completely the same.
You can use the extension blocks(…Similarity) or put any number in 0-100 range

Search types
These blocks help us to search in different types of lists.

  • Normal Type -> is used for searches in text lists.
  • List Type -> it is used to search lists in which its items are other lists. In these sublists there must be at least one item that is text that allows comparison.
    With the lookAtIndex field we tell the engine which index to look at when making the comparison.
    If we don’t have a fixed index, we set it to 0 so that the engine searches the entire sublist.
  • Dictionary Type -> It is used to search in lists whose items are dictionaries.
    The lookAtKey field allows us to establish in which key the engine will observe when making the comparison. If we leave it as an empty text, the engine will look at the whole dictionary.

OnMessage event
This event is called every time the engine has something to say, it may be that the search has ended or that there was an error when performing the search.
For this event we have two types of messages, if the message is that the search was successful, foundItems will return the list of found items that meet the comparison.
In message we obtain the number of items found or if there is an error when performing the search.

Search block

In this block we have to specify the keyword we want to search for, the source, which is the list in which the search is carried out, the type of search and the similarity.
The term lazy comparison means if the motor has to respect the position of each letter.
There is a list with an item that is “google”. And the keyWord that we enter in the search field is “oogle”.
If lazy comparison is disabled, the engine will determine that the position of the letters are not the same and therefore will discard the item “google” as a possible result.
If lazy comparison is activated, the item “google” will be recognized as a possible result.

io.csapps.search.aix (22.7 KB)

Test .aia
Search_Test.aia (56.2 KB)


Nice work broo @salazar6cristopher :heart:

Finally Best extension for searching
Thank and nice work​:heart::heart:

1 Like

Another complex one :clock130::jigsaw:
Wonderful! Wonder what doLazyComparison does and how it works :wink:

Great Work @salazar6cristopher :hugs:

Good work broo
Pleas post tutorial and aia file.

Liked it.
Thanks for the extension

The .aia test file is uploaded now, you can access to see how to use the extension.

I just try Search_Test.aia on Companion.
when searching for “abcd”, runtime error occurred.

Task com.google.common.util.concurrent.ListenableFutureTask@f507b09 rejected from java.util.concurrent.ThreadPoolExecutor@b76e387[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 50010]

1 Like

Both files were uploaded again. Please test again

1 Like

No runtime error now.
Thank you very much.

I am still getting this error, even after using this latest version
WhatsApp Image 2020-12-26 at 5.28.57 PM

Also I am getting this weird item list automatically added in my search list
WhatsApp Image 2020-12-26 at 5.25.52 PM

I have updated the extension, could you please send a screenshot of your blocks? You may not be using the extension in the right way.

Compilation error was fixed.

1 Like
  • Bug when the application is minimized fixed.
  • List Type bug fixed.

How to search item from multiple lists like List1,List2,List3…etc

Well currently you can only search in a single list.
What you can do is copy the lists you have into a new one and filter on that list.
Something like this:
Captura de pantalla_2021-05-18_18-10-19


@salazar6cristopher Ok Thanks for your suggestion.

how to search on more then one index?

Please, could you help me?
See error message.