I would abstract dialogs, toasts, snackbars, etc. behind one or more “manager” classes which can be injected into your ViewModel.
Hi there. Use of a Cursor (or Database for that matter) is an implementation detail that should be abstracted from a Presenter. Instead put them inside some kind of DataManager-type class that gets injected into the Presenter. This way, the Presenter is only concerned with taking the returned data and setting it in the view. You should be able to…
This is the first MVP library that I am considering using instead of roll-my-own solutions. I especially like handling of state persistence via serializable and its integration with the bundle and lifecycle events. Fantastic work here!