1. 04.08.2025 1 коммит
  2. 31.07.2025 1 коммит
    • Stanislav Radchenko's avatar
      Refactoring the booking deletion logic (#355)
      · edd6588e
      Stanislav Radchenko создал
      * feat: implement EventOrchestrator for coordinated refresh management
      
      - Added `EventOrchestrator` class to handle user interaction states, refresh triggers, and idle time configurations.
      - Integrated `EventOrchestrator` in RootComponent and MainComponent for refresh event processing.
      - Introduced `TouchEventDispatcher` to track touch events and update interaction states.
      - Updated `AppActivity` to create and configure `EventOrchestrator` and install `TouchEventDispatcher`.
      - Refactored event handling in MainComponent to leverage orchestrated refresh events.
      - Registered `EventOrchestrator` in the `domainModule` for dependency injection.
      
      * feat: add TimeReceiver for synchronized time handling
      
      - Introduced `TimeReceiver` to provide synchronized time updates across iOS and Android platforms.
      - Implemented platform-specific logic for time synchronization using timers (iOS) and broadcast receivers (Android).
      - Added `CurrentTimeHolder` singleton for shared time state management.
      - Updated `MainComponent` to integrate `CurrentTimeHolder` for real-time date and time updates.
      - Refactored legacy timer logic in `MainComponent` for time-to-next-event calculation.
      - Registered and managed lifecycle of `TimeReceiver` in `AppActivity`.
      
      * Revert "feat: implement EventOrchestrator for coordinated refresh management"
      
      This reverts commit e2fcaded
      
      * feat: improve slot deletion and update handling
      
      - Introduced `deletionProgress` and `startTimeMillis` to manage slot deletion state.
      - Enhanced `BorderIndicator` to support custom start progress for animations.
      - Refactored slot update function to preserve deletion states and open MultiSlots.
      - Replaced `UpdateDate` intent with an enhanced `UpdateRequest` intent for room and date handling.
      - Optimized MultiSlot and sub-slot deletion logic.
      - Added utility methods for slot comparisons and extraction of `DeleteSlot` instances.
      
      * feat: implement inactivity tracking and date reset system
      
      - Added `InactivityManager`, `InactivityWindowCallback`, and `InactivityLifecycleCallbacks` to manage user inactivity and trigger callbacks.
      - Introduced `DateResetManager` to handle date reset operations upon inactivity.
      - Updated `App` to initialize inactivity tracking and integrate with `DateResetManager`.
      - Enhanced `SlotComponent` with a new intent `InactivityTimeout` to reset multi-slot states.
      - Refactored `MainComponent` to register inactivity-driven date resets and synchronize selected date with the current date.
      - Improved UI components to utilize real-time date updates from `CurrentTimeHolder`.
      
      * `refactor: remove slot deletion logic from SlotComponent and UI`
      
      The deleted logic and components related to `SlotUi.DeleteSlot` streamline the architecture and shift delete responsibility to the `BookingEditorComponent`. Adjustments include UI removal of delete-related views and simplification of slot handling logic.
      
      * fix: update date mapping logic and bump version to 0.0.3
      
      Correct `selectDate` parameter usage in `DateTimeView`.
      Upgrade project version from 0.0.2 to 0.0.3 in `gradle.properties`.
      edd6588e
  3. 18.07.2025 1 коммит
  4. 17.07.2025 1 коммит
    • Radch-enko's avatar
      feat: enhance notification handling and refactor calendar integrations
      · d347e4bb
      Radch-enko создал
      - Added `NotificationDeduplicator` to prevent duplicate notifications.
      - Integrated Google Calendar `Event` updates for recent changes with a deduplication mechanism.
      - Enhanced `CalendarNotificationsController` with robust event handling and resource state validation.
      - Refactored public endpoints configuration using a centralized `PublicEndpoints` object for better management.
      - Updated Firebase topics and associated flows to align with new naming conventions.
      - Removed redundant timers and outdated logging to simplify codebase and improve maintainability.
      - Adjusted Gradle dependencies for `notifications` and related modules.
      - Improved logging configuration in `application.yml` for better debugging in non-production environments.
      d347e4bb
  5. 15.07.2025 1 коммит
    • Radch-enko's avatar
      docs: add READMEs for tablet modules
      · 9ff4c143
      Radch-enko создал
      - Added detailed documentation to the `clients/tablet` folder, covering `core`, `feature`, and `ComposeApp` modules.
      - Defined architectures, key components, and integration details for modules such as `Data`, `Domain`, `UI`, and features like `Slot`, `Main`, `Settings`, and `BookingEditor`.
      - Included development guidelines and usage instructions across all added READMEs for consistency.
      9ff4c143
  6. 11.07.2025 4 коммита
    • Radch-enko's avatar
      Refactor: simplify settings initialization and remove redundant navigation logic
      · 3e138bae
      Radch-enko создал
      - Integrated `CheckSettingsUseCase` in `RootComponent` for settings validation during initialization.
      - Removed `onSettings` callback and associated navigation logic in `MainComponent`.
      - Updated `RoomsResult` to calculate room index based on settings.
      - Eliminated `isSettings` state and redundant settings handling in `State` and `MainScreen`.
      - Improved `SettingsManager` initialization to prevent redundant assignments.
      3e138bae
    • Radch-enko's avatar
      Update UI components, enhance scrolling, and refine lifecycle handling
      · a5e9ce5d
      Radch-enko создал
      - Changed `windowSoftInputMode` in `AndroidManifest.xml` to `adjustResize` for better keyboard behavior.
      - Added vertical scrolling to `BookingEditor` for improved UI usability on smaller screens.
      - Replaced `DropdownMenu` with a custom `Popup` in `EventOrganizerView` for better control over dropdown behavior and positioning.
      - Enhanced dependency management by adding `lifecycle` to `build.gradle.kts`.
      a5e9ce5d
    • Radch-enko's avatar
      Remove outdated files, enhance logging, and update configurations
      · 59d6e45b
      Radch-enko создал
      - Deleted `network_security_config.xml` and removed its reference from `AndroidManifest.xml` to simplify project structure.
      - Enhanced logging in `CalendarSubscriptionScheduler` for better debugging of calendar subscriptions.
      - Improved resource management in `RootComponent` with `ResourceDisposerUseCase` integration and memory leak prevention.
      - Adjusted `docker-compose.yml` configurations for better resilience and dynamic environments.
      - Refactored `ResourceDisposerUseCase` to allow reinitialization and prevent unused job persistence.
      - Simplified message handling in `ServerMessagingService` to avoid unnecessary data conversion.
      59d6e45b
    • Radch-enko's avatar
      Consolidate migration files, enhance configuration, and optimize dependency management.
      · 0df03829
      Radch-enko создал
      - Combined database migration files into a single `V1__create_tables.sql` for clarity and maintainability.
      - Updated application configuration to include Flyway migration settings, improved logging, and refined default values.
      - Fixed `GoogleCalendarConfig` scopes and improved error handling in `GoogleCalendarProvider`.
      - Adjusted build.gradle.kts to enforce consistent dependency versions and exclude conflicting modules.
      - Simplified `docker-compose.yml` with dynamic environment variables and adjusted health checks.
      - Added network security configuration for Android client and updated manifest for secure traffic handling.
      - Refactored `WorkspaceEntity` to remove redundant unique constraint on the `tag` field.
      0df03829
  7. 10.07.2025 1 коммит
  8. 06.07.2025 1 коммит
    • Radch-enko's avatar
      Refactor: remove modal navigation logic and optimize dependencies
      · dfc32ebd
      Radch-enko создал
      - Removed `modalWindowSlot` navigation in `RootComponent`, `MainComponent`, and related components to simplify logic and improve maintainability.
      - Replaced modal navigation calls with direct method invocations (`openBookingDialog`, `onFastBooking`, and `onOpenFreeRoomModal`) for better modularity.
      - Deleted unused dependencies (`BookingEditorComponent`, `FastBookingComponent`, `SlotUseCase`, etc.) and redundant imports.
      - Updated `build.gradle.kts` files to streamline dependency management for better project organization.
      - Simplified `iosApp.xcscheme` by removing outdated configurations.
      dfc32ebd
  9. 04.07.2025 1 коммит
    • Radch-enko's avatar
      Refactor: improve modularization, date handling, and iOS platform integration
      · 111af54d
      Radch-enko создал
      - Modularized platform-specific logic by introducing iOS-specific initializers and root components.
      - Enhanced date handling consistency by standardizing `LocalDateTime` usage across components and fixing `dayOfMonth` references.
      - Exported and updated Gradle dependencies (`decompose`, `datetime`, `calf-ui`).
      - Improved iOS app structure by integrating `RootHolder`, `RootView`, and `AppDelegate`.
      - Updated Xcode scheme settings and project files for enhanced build and test configurations.
      111af54d
  10. 03.07.2025 5 коммитов
    • Radch-enko's avatar
      Refactor: modularize slot feature and relocate related logic
      · 70c3dcdb
      Radch-enko создал
      - Extracted `Slot` functionality into a new `slot` module with dedicated DI setup and updated dependencies.
      - Moved `GetSlotsByRoomUseCase` and `SlotUiMapper` into the `slot` module for better modular structure.
      - Updated all references of `Slot` components and mappers for consistent integration across modules.
      - Consolidated and re-organized slot-related UI strings into the `core/ui` module for reuse.
      - Adjusted Gradle files and dependency configurations to support the new `slot` module.
      70c3dcdb
    • Radch-enko's avatar
      Refactor: modularize fast booking feature and relocate DeleteBookingUseCase
      · 29c75771
      Radch-enko создал
      - Moved `DeleteBookingUseCase` to `core/domain` module for better reuse across features.
      - Extracted `FastEvent` logic into a new `fastBooking` module with dedicated DI setup and updated dependencies.
      - Renamed `FastEventComponent` to `FastBookingComponent` for improved clarity and consistency.
      - Updated references and file paths for `FastEvent` to align with the new `fastBooking` module.
      - Adjusted Gradle and DI configurations to support the modularized `fastBooking` feature.
      29c75771
    • Radch-enko's avatar
      Refactor: modularize booking editor and domain logic
      · 4f99cc15
      Radch-enko создал
      - Moved `CreateBookingUseCase` and `UpdateBookingUseCase` to the `core/domain` module for better cross-module reusability.
      - Extracted `BookingEditor` logic into a new `bookingEditor` module with di setup and updated dependencies.
      - Replaced `UpdateEventComponent` with `BookingEditorComponent` across the main module to streamline event management.
      - Consolidated shared UI components into the `core/ui` module to avoid duplication.
      - Updated Gradle files and DI modules for consistent dependency management.
      - Improved naming and organization of string resources for booking-related views.
      4f99cc15
    • Radch-enko's avatar
      Feature: integrate Firebase Messaging and add kiosk mode functionality
      · de09e41b
      Radch-enko создал
      - Implemented `ServerMessagingService` for handling Firebase push notifications and integrated the `firebaseTopicsModule` for topic subscriptions.
      - Added kiosk mode support in `AppActivity` with device admin and lock task mode setup.
      - Updated `AndroidManifest.xml` with required service and permissions declarations.
      - Enabled Firebase dependencies in Gradle (`firebase-messaging-ktx`, `google-services`) and added signing configurations for debug and release builds.
      - Updated `App` setup to subscribe to Firebase topics dynamically.
      de09e41b
    • Radch-enko's avatar
      Feature: add device admin support and lock task mode configuration
      · ccedbf13
      Radch-enko создал
      - Added `AdminReceiver` class to support device administration functionality.
      - Updated `AndroidManifest.xml` with `AdminReceiver` declaration and `lockTaskMode` attribute for locking tasks.
      - Introduced `device_admin_receiver.xml` with supported admin policies.
      ccedbf13
  11. 01.07.2025 3 коммита
    • Radch-enko's avatar
      Remove `RoomInfo` and `SelectRoom` modules and integrate functionality into `Main` module
      · 09696242
      Radch-enko создал
      - Deleted `RoomInfo` and `SelectRoom` feature modules along with associated `build.gradle.kts` files.
      - Merged reusable logic and resources from `RoomInfo` and `SelectRoom` into `Main` feature.
      - Introduced `FreeUpRoomUseCase` and modularized modal navigation support in `MainComponent`.
      - Moved and refactored string resources from deleted modules to `Main`.
      - Enhanced `Main` module with new modal components (`FreeSelectRoomComponent`, `FastEventComponent`, `UpdateEventComponent`).
      - Updated DI setup with additional use cases and dependencies for `MainScreenModule`.
      - Adjusted Gradle build files and removed entries for deleted modules in `settings.gradle.kts` and `composeApp`.
      09696242
    • Radch-enko's avatar
      Refactor: update slot management integration and enhance UI consistency
      · 7b387e87
      Radch-enko создал
      - Replaced `slotState` with `SlotComponent` for more structured state handling.
      - Integrated `collectAsState` for slot state observation in `RoomInfoLeftPanel`.
      - Improved `SlotView` with clickable slot and delete slot intents.
      - Adjusted padding and background modifiers for better UI alignment.
      - Fixed `updateSelectDate` logic to handle both increment and decrement date changes.
      7b387e87
    • Radch-enko's avatar
      Refactor: restructure Main feature and enhance slot management
      · d7906007
      Radch-enko создал
      - Removed old `MainComponent` and `MainScreenView` implementations.
      - Added modular `presentation`, `domain`, and `uiComponent` packages to `Main` feature for better separation of concerns.
      - Introduced reusable slot-related components: `CommonSlotView`, `DeletedSlotView`, `LoadingSlotView`.
      - Created `SlotUiMapper` and domain use cases: `GetSlotsByRoomUseCase`, `GetRoomIndexUseCase`.
      - Simplified `OfficeTime` utility functions and enhanced slot calculation logic.
      - Updated DI with `mainScreenModule` for better dependency management.
      d7906007
  12. 30.06.2025 2 коммита
    • Radch-enko's avatar
      Refactor: remove unused theme files and add new settings management
      · 46dd101d
      Radch-enko создал
      - Deleted redundant theme files (`Color.kt`, `Theme.kt`, `Theme.android.kt`).
      - Introduced `SettingsComponent` and related UI elements (`GridRooms`, `CardRoom`) for room management.
      - Added vector drawable resources for icons: `arrow_to_right`, `tv`, `allert`, and `power_socket`.
      - Enhanced Gradle build scripts with new dependencies (`settings`, `slf4j-android`) and packaging configurations.
      - Integrated new API key management via `BuildKonfig`.
      - Updated `MainComponent` to handle empty settings gracefully and improved modal window navigation.
      46dd101d
    • Radch-enko's avatar
      Refactor: migrate `core:data` module to `tablet:core:domain` and enhance modularity
      · 49be75a4
      Radch-enko создал
      - Removed `clients:core:data` and its Koin module for better alignment with tablet-specific needs.
      - Introduced `tablet:core:domain` module with domain-specific models, repositories, and use cases.
      - Added support for tablet-specific booking and organizer functionality.
      - Updated Gradle build scripts, dependencies, and DI modules (`Koin`) to reflect the new architecture.
      - Enhanced navigation and component setup to integrate the `domain` module effectively.
      49be75a4
  13. 27.06.2025 1 коммит
    • Radch-enko's avatar
      Refactor: migrate tablet core data module to clients core data module and...
      · 3d240db3
      Radch-enko создал
      Refactor: migrate tablet core data module to clients core data module and enhance debug capabilities
      
      - Moved tablet-specific `core:data` code to `clients:core:data` for better modularization.
      - Renamed packages from `tablet.core` to `client.core`.
      - Introduced `isDebug` platform-specific implementation and `LoggerInitializer` for conditional logging.
      - Added `dataModule` and `appModule` Koin DI modules for streamlined dependency injection.
      - Updated Gradle build scripts to align with new structure and integrate `BuildKonfig` for API URL management.
      - Adjusted `ComposeApp` configurations for enhanced debug and DI setup.
      3d240db3
  14. 26.06.2025 1 коммит
    • Radch-enko's avatar
      Feature: add Settings module and integrate basic navigation for tablet clients
      · 21094dd6
      Radch-enko создал
      - Introduced `Settings` feature module with corresponding components and screens.
      - Implemented navigation between `Main` and `Settings` screens using `RootComponent`.
      - Updated dependencies to include `Decompose` and `Essenty` libraries for state management.
      - Enhanced `App` setup to accept root navigation for streamlined screen handling.
      - Improved Gradle build scripts to include the new module and required dependencies.
      21094dd6
  15. 25.06.2025 2 коммита
    • Radch-enko's avatar
      Refactor: modularize build logic and streamline dependency management
      · e5573217
      Radch-enko создал
      - Moved Gradle build scripts into `build-logic` for better organization.
      - Introduced reusable Kotlin Multiplatform plugin configurations for `library`, `ui`, and `data` modules.
      - Updated dependency management by integrating a centralized version catalog (`libs.versions.toml`).
      - Added and configured tablet clients: `core:ui`, `core:domain`, `core:data`, and `feature:main`.
      - Improved Gradle setup for Android and iOS compatibility with shared resources and multiplatform dependencies.
      e5573217
    • Radch-enko's avatar
      Feature: initialize multiplatform tablet and iOS support
      · 8280c922
      Radch-enko создал
      - Migrated Gradle wrapper to version 8.11.1.
      - Added tablet Compose application with initial setup and reusable components.
      - Set up iOS project with Compose integrations, AppIcons, and theme support.
      - Implemented multiplatform shared theme and reusable resources.
      - Updated build configurations for Android and iOS compatibility, including dependency management and plugin setup.
      - Introduced robust light/dark theme switching and preview scaffolding.
      - Configured iOS scheme and workspace for Compose integration.
      - Included adaptive launcher icons for both mobile platforms.
      8280c922