I'm trying to follow the MVP pattern. However, I have some doubts on how to handle adapters and view holders on this pattern.
Should I use the adapter as a presenter? Having the business logic?
Or should I pass a instance of the presenter that handles the list logic and then call methods of the presenter when there is any interaction with the adapter elements?
Thank you
There is no exact/correct definition of implementing MVP in Android
To answer your question, in my view the Presenter should not have any Android logic.
As such, the Adapter would be a "View" then i.e. Presenter provides it the data (via the Activity or Fragment) and it just deals with how to present this.
I'd do MVP as follow.
Model - POJO's, parsing, Storing (SQLlite) and retrieving data (http). Obviously I'd divide the POJO's, parsing and DB logic into sub folders - but this all falls into Model for me.
View - Activity, Fragment, Adapters - Activities & Fragment hold reference to a Presenter that gives them data to display. How this data/messages are displayed, look + feel etc. is dealt with in the View.
Presenter - The Middle man, provides the logic to inputs i.e. Button Clicks, retrieval of data, validation of inputs & then passes the result back to the View (Activity or Fragment)
Here's a great article on MVP
Here's a simplified diagram of MVP

Answer modified from this question (also answered by me)