In my Android App I have a presenter which handles user interactions, contains kind of request manager and if needed sends user input over request manager to request manager.
My solutions would be as follows (I did something similar in Swift before):