Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose / Description
Supersedes ankidroid#12161 and ankidroid#8066
I'm open to opinions about the design. This is significantly simpler than ankidroid#12161 because I feel that it is overengineered, and 95%+ of our shared preferences usage is simply accessing a preference.
Fixes
Approach
In the commits.
The methods and settings are implemented incrementally to ease the reviewing process and to simplify the workflow.
How Has This Been Tested?
Unit tests + Manually checking if the changed settings still work
Learning (optional, can help others)
I haven't used much until now Java/Kotlin
mockmethods for tests. Probably there are better ways to do what I have done, but it was a nice learning experience.Also learned more about kotlin reflection
Checklist
Please, go through these checks before submitting the PR.