diff --git a/README.md b/README.md index e8c5cdd..f19c6ff 100644 --- a/README.md +++ b/README.md @@ -11,13 +11,64 @@ attendees, and categories effectively. ## Overview / Key Features -- **Monthly Calendar View**: View events in a grid layout by weeks and days. -- **Daily View**: Easily browse and manage daily events. -- **Event Management**: Create, edit, and delete events with support for categories and attendees. -- **User Authentication**: Register and log in with robust access and refresh - token support, ensuring secure and seamless user sessions. -- **Error Handling**: Gracefully handles API errors, including scenarios where - the backend is unreachable. +- **Monthly Calendar View:** The default landing page of the app provides a + neatly organized monthly calendar view. Days are displayed in a grid layout + with rows representing weeks. Days with events are highlighted. Users can + navigate between months using arrow buttons. +- **Daily View:** An interface for viewing and managing events for a specific + day. Events are displayed as easy-to-read cards, ordered by their start times. + From here, users can create new events, edit or delete their own events, leave + invited events, or view detailed event information. +- **Event Management:** Fully featured event management allows users to create, + edit, and delete events. Events support color selection from a color picker, + detailed descriptions, and attendee invitations. Invited events are integrated + into the calendar, and invite notifications provide quick actions for managing + responses. +- **Category Management:** Users can create, edit, and delete event categories. + These categories can be assigned to events to organize them effectively. + Categories also support color selection for easy identification. +- **User Authentication:** Secure and robust authentication with automatic + login for valid session tokens. Tokens are securely stored & persist across app + restarts, allowing users to access the app without needing to reauthenticate + every time they open it. Registration and login are straightforward, and access + tokens are refreshed automatically to maintain session continuity. Once a + refresh token expires, the user is automatically logged out and redirected to + the login screen. +- **Invitations and Notifications:** Users can invite others to events, and + invitations appear as notifications. Invite notifications contain support + actions like marking as read, previewing the event details, accepting or + declining the invitation, and deleting the notification. When an invitation + is accepted or declined, the inviter receives a notification update, letting + them know about the acceptance/rejection. +- **Error Handling and API Base URL Management:** When the app cannot connect + to the API server, a dedicated error screen is displayed. From this screen, + users can modify the API base URL, allowing seamless switching to another + server if needed. This Base URL setting is also accessible from the login and + register screens. +- **Settings and Account Management:** The settings screen is accessible to + logged in users and offers comprehensive account management. Users can update + their username, email, and password, delete their account, or log out. The API + base URL can also be adjusted from here. +- **Event Details View:** A detailed view displays complete event information, + including its creation date, description, attendees, categories, and, if + applicable, the event owner's details for invited events. This page offers a + full view of the event, unlike the event cards shown in the day view, which + only show a summary. +- **Color-Coded Visuals:** Both events and categories support color + customization via a built-in color picker, making it easy to differentiate and + organize items visually. +- **Clean and Intuitive UI:** The app's design prioritizes usability and + clarity, with features like the event-based day highlights in the monthly view + and a simple card format for daily events. All functionalities are accessible + through logically organized pages and actions. +- **Notifications System:** The notification page supports the previously + described invite notifications, but also general message notifications, which + the administrator can send (currently only possible by directly adding it to + the database, as the API doesn't support privileged/admin accounts, though + this would be possible to add in the future). Note that the app doesn't + support push notifications, so notifications are only visible from the + notifications screen when the app is open, however, this could be implemented + in the future as well. ## Backend requirements diff --git a/app/src/main/java/com/p_vacho/neat_calendar/activities/CreateEventActivity.kt b/app/src/main/java/com/p_vacho/neat_calendar/activities/CreateEventActivity.kt index 653fbcb..5d1c6bd 100644 --- a/app/src/main/java/com/p_vacho/neat_calendar/activities/CreateEventActivity.kt +++ b/app/src/main/java/com/p_vacho/neat_calendar/activities/CreateEventActivity.kt @@ -109,10 +109,12 @@ class CreateEventActivity : AppCompatActivity() { txtStartTime.setText(formatDateTime(startDateTime)) if (endDateTime != startDateTime) { + eventTypeToggleGroup.check(R.id.btnDurationEvent) instantEvent = false txtEndTime.visibility = View.VISIBLE txtEndTime.setText(formatDateTime(endDateTime)) } else { + eventTypeToggleGroup.check(R.id.btnInstantEvent) instantEvent = true endDateTime = null txtEndTime.visibility = View.GONE diff --git a/showcase/09_duration_event_details.png b/showcase/09_duration_event_details.png index 30ca63d..ad7277e 100644 Binary files a/showcase/09_duration_event_details.png and b/showcase/09_duration_event_details.png differ