BaseActivity uses SharedPreferences directly and cherry-picks private implementation details from AppPreferencesImpl.
Application should use application abstraction AppPreferences.
AppPreferencesImpl is private implementation and shall not be touched.
This regression has been introduced in 1615130093d382211c3c84d33ff2b6206d5f5728 and c1aa005db929d08af4453489de603938e9d0c9c2
@AndyScherzinger @tobiasKaminsky @dan0xii
I think this should be addressed. This change is against design principles we try to introduce.
The only reason we still have AppPreferencesImpl accessible is that we can't close it due to some tech debt in other places, but this will change.
SharedPreferences shall not be accessed directly as it is unmanageable from data migration perspectiveYou are absolutely right 馃憤
I haven't had much sleep lately...
This should be addressed and be fixed before 3.10. While I don't know how to remove the change listener (I guess you have an idea 馃槉)
We shall just extend the AppPreferences interface and delegate to the shared preferences inside the *Impl insntance. Pretty trivial refactoring.
Most helpful comment
@AndyScherzinger @tobiasKaminsky @dan0xii
I think this should be addressed. This change is against design principles we try to introduce.
The only reason we still have
AppPreferencesImplaccessible is that we can't close it due to some tech debt in other places, but this will change.SharedPreferencesshall not be accessed directly as it is unmanageable from data migration perspective