Menstruation Nation (M. Nation) is a free period tracker designed for youth. The app helps people learn more about their bodies by tracking their period cycle and symptoms.
This pull request includes the points from issue #26
Vertically Scrolling Calendar
Dates displayed since November 2021
Correct day of the week labels
Clicking on a day navigates to Symptom Logging Page
After completing the navigation to the Symptom Logging Page I thought it would be a good idea to try and finish the page itself. It took much longer than I thought, but it is more or less exactly the same as the IOS version.
Checklist Before Sending Pull Request:
[x] Fix spacing for Sleep Prompt to be same as Exercise Prompt.
[x] Fix LazyGrid spacing in Exercise Prompt.
[x] Removing scrolling from inside prompts
[x] Overlay Save Button so it can be used while multiple prompts are open
[x] Make keyboard save on tab close
[x] Make keyboard close on clicking outside
[x] Make focus move from text field to text field if applicable
[x] NumberFields only accept numbers
[x] Add SymptomLog Tests
[x] Add Calendar Tests
The only differences being:
Minor animation shortcomings such as OverScroll and unclean highlighting when clicking tabs. I could possibly fix the latter but the OverScroll is just a shortcoming of Compose itself. (I've fixed the unclean highlighting)
Time selection for the sleep and exercise prompt are different since I was unable to find a dial field such as the one used in the IOS version. Personally, I think the textfields are easier to use.
The save button currently doesn't highlight depending on there is new information. This is a scope issue and mainly has to do with how recomposition is difficult to trigger on everything.
The save button only redirects back to the calendar page. Once data storage is figured out, the data from LogViewModel instance can be stored on press.
Weird Racquet Sports text will not center for some reason. Genuinely confused since its alignment depends on a LazyLayout and every other time the selectable squares are used in the LazyLayout the issue never occurs.
I think these are minor issues considering how well everything else seems to work. The only thing missing is testing.
This pull request includes the points from issue #26
After completing the navigation to the Symptom Logging Page I thought it would be a good idea to try and finish the page itself. It took much longer than I thought, but it is more or less exactly the same as the IOS version.
Checklist Before Sending Pull Request:
The only differences being:
I think these are minor issues considering how well everything else seems to work. The only thing missing is testing.
Some of the code for the notes prompt is taken from https://stackoverflow.com/questions/69040571/android-compose-textfield-how-to-set-exact-3-lines. This is because there is no obvious way to do a large text box yet in Compose. From the feature issue, https://issuetracker.google.com/issues/122476634, it seems like a compose implementation is currently in review process. If it is released before we finish the app it would be a better solution.