[Refactoring] Activity providers

Implements [ticket 3329](https://www.openproject.org/work_packages/3329)