I use similar architecture on my apps. It’s very close to yours. I use Presenter to map all my use cases for the specific screen. Then I use the View(Activity or Fragment) for everything that needs the Context. So I end up with a clean Presenter which contains high-level logic only. If I need to do complicated scenarios with chained calls, I separate them at Activity/Fragment level and then assemble them at Presenter’s layer for the specific use case. So my Presenter has only one dependency the Activity/Fragment.
Something else that I do is I never call Activity or Fragment ‘View’ because it’s not clearly View.