Bug: There's a bug where the app thinks we're logged in, because email/password were being stored in the keychain, and LoggedInCondition was checking the keychain for stored values to evaluate.
Fix: I added a few UI cues to inform the user that the login failed or their email is not a valid email address. I also changed the conditions for storing login credentials in the keychain; it now only stores it if the login procedure returns without an error. There was also a bug where the login UI would get stuck on disabled, fixed that by only calling updateUI() after validating that the inputs are not empty.
Bug: There's a bug where the app thinks we're logged in, because email/password were being stored in the keychain, and LoggedInCondition was checking the keychain for stored values to evaluate.
Fix: I added a few UI cues to inform the user that the login failed or their email is not a valid email address. I also changed the conditions for storing login credentials in the keychain; it now only stores it if the login procedure returns without an error. There was also a bug where the login UI would get stuck on disabled, fixed that by only calling updateUI() after validating that the inputs are not empty.