The reason I wanted to make `preferenceManager` an explicit dependency of this class was to improve its testability. In fact, in my test application I was using a fake `PreferenceManager` that always triggered the dialogs.

In this case, the fake instance of the `PreferenceManager` is going to be used just for testing and an instance of `SharedPreferenceManager` is a perfectly sensible default value.
I think we should better give the chance to set a custom instance and defaulting to `SharedPreferenceManager` if nothing is provided. What do you think?