An app developed while streaming at gnu_coding_cafe, this was just a pretext to share what an Android developer can be brought to during his day job. I streamed this during 2 hours per day, 5 consecutive days. You may find the day results in the Pull Requests:
- Install / Config JUnit5
- Jupiter API + Runner
- Test use case
PopupNotificationUseCase
: Class to show an Android notificationShouldGoToWorkUseCase
: Check if the given date is a day I should go to work place
- [Will change in another PR] Call use cases directly from MainActivity
- Install MockK
- Write tests for home screen
ScheduleRemindersUseCase
: Schedule the reminders at 8AM
- Move some code from Activity to
HomeViewModel
- and rename MainActivity ->
HomeActivity
- and rename MainActivity ->
AtStartupReceiver
: Used, at phone startup, schedule remindersMorningReminderReceiver
: When triggered, show the right notification
- Install and use Dagger-hilt
- Inject things everywhere (Activity, ViewModel, UseCases, BroadcastReceiver)
UpdateSchedulesUseCase
: Partially implemented (look the next PR)
- Add some fields to the layout
- Send the field values to ViewModel
SharedPrefScheduleRepository: ScheduleRepository
: store scheduling preferences into SharedPreferences- and read the preferences in order to display the scheuling form
- Inject
SharedPrefScheduleRepository
thanks to a Dagger-@Module
ScheduleRemindersUseCase
: schedule the FIRST occurence to be in the future, not in the past
- Format the hour and the time on 2 characters
- Move code from Activity to
SchedulingFragment
- Make the icon color daynight-dependent
- Configure architecture of themes
- Split application into 2 screens (2 Fragments in the same Activity)
- Install NavigationComponent to navigate between theses 2 screens