Contributions are very welcome, feel free to open new issues or PR.
Project maintainers are @Neamar, @Dorvaryn, @saveman71 and @Pluggi.
Want to help with the translation? Use https://hosted.weblate.org/projects/kiss/strings/ to collaborate on strings translation!
Keep in mind the goal of KISS is to be fast and small. So before you add new features, ask yourself what you're trying to achieve and if you can make it with fewer dependencies (for instance, that's why we're not using RecyclerView :()
Different data types can be aggregated via KISS' simple interface: apps, contacts, settings...
Each data types uses four classes:
- A loader, which retrieves all available items at startup
- A provider, which knows all of its items (e.g. all contacts), and is responsible for filtering those records according to the query
- A pojo, which is a POJO storing simple data for one item (e.g. contact name, display name, phone number, photo)
- A result, which ensures the pojo is properly displayed in the list
Controlling the workflow is SummonActivity, initializing the UI, dispatching the query to the providers and ordering the results according to their relevance and user search history.
This is clearly not as easy as it ought to be.
You need to create a new loader, new provider, new pojo and new result. You also need to ensure adapter.RecordAdapter.java
creates your own view type (see method getViewTypeCount
and getItemViewType
).
Explain your changes, comment your code and make sure the CI is able to compile your code.
Sadly, there is no test suite yet :(