I first started writing this app... a while ago. There are some pretty nasty things lurking in its codebase, and to be honest I didn't put a lot of thought into its structure when I was building it. I'm creating this issue as a general todo-list of anything that should be moved, refactored, and reorganized in the future. The plan is to use libraries from Android Jetpack, such as Room and LiveData, as well as a general DI framework like Koin.
[x] Move sound/radio player from Application class to injected component
[ ] Move sunset time calculator from Application class to injected component
[ ] Create common "AlertData" model that alarms & timers inherit from
[ ] Make an injected "AlertPlayer" component containing the repeat/vibrate logic from AlarmActivity
[ ] *Remove AlarmManager interaction from data models, move scheduling to injected component
[ ] *Switch alarm "database" (SharedPreferences, referenced from data models) to Room/SQL
[ ] *Implement LiveData / ViewModel classes for UI interaction
[ ] Write tests for some functionality (repeat behavior, etc)
* These are pretty heavy tasks and may need to be done all at once, or maintained in a separate branch until complete.
I did start working on some of these in the refactor branch a while ago - but it's a little out of date now, and I'm realizing it'd be better to introduce some of these changes separately. Open to feedback on any of the decisions here.
I first started writing this app... a while ago. There are some pretty nasty things lurking in its codebase, and to be honest I didn't put a lot of thought into its structure when I was building it. I'm creating this issue as a general todo-list of anything that should be moved, refactored, and reorganized in the future. The plan is to use libraries from Android Jetpack, such as Room and LiveData, as well as a general DI framework like Koin.
* These are pretty heavy tasks and may need to be done all at once, or maintained in a separate branch until complete.
I did start working on some of these in the
refactor
branch a while ago - but it's a little out of date now, and I'm realizing it'd be better to introduce some of these changes separately. Open to feedback on any of the decisions here.