Release v1.0.5: UI Refactoring, Stability Enhancements, and Dependency Updates#23
Merged
dev-ali-mansour merged 9 commits intomainfrom Feb 15, 2026
Merged
Release v1.0.5: UI Refactoring, Stability Enhancements, and Dependency Updates#23dev-ali-mansour merged 9 commits intomainfrom
dev-ali-mansour merged 9 commits intomainfrom
Conversation
…pose - Add `@Stable` annotation to `HomeViewModel`, `NewTaskViewModel`, `UpdateTaskViewModel`, `TaskDetailsViewModel`, and `SelectedTaskViewModel` for better Compose performance. - Move `koinViewModel()` calls from function bodies to default parameter values in `AppNavHost`, `HomeScreen`, `NewTaskScreen`, `UpdateTaskScreen`, and `TaskDetailsScreen` to improve testability and follow best practices. - Format `when` blocks across various ViewModels and Screens to use consistent bracing. - Reorganize imports in multiple UI files.
Introduces a reusable `CommonTopAppBar` Composable using Material 3 `CenterAlignedTopAppBar`. Features include support for a title, an optional back/close navigation icon, and custom actions.
Refactors the UI architecture to use `Scaffold` within individual feature screens (`HomeScreen`, `NewTaskScreen`, `UpdateTaskScreen`, and `TaskDetailsScreen`) instead of passing composable setters through `AppNavHost`. Specific changes: * Removed `onSetTopBar` and `onSetFab` callbacks from `AppNavHost` and related screen composables. * Introduced `CommonTopAppBar` to standardize the top bar across different screens. * Updated `MainApp` to remove state tracking for dynamic top bar and FAB content. * Added `consumeWindowInsets` in `MainApp` to correctly handle padding in the navigation host. * Added `add_task` string resource for better localization and accessibility.
…pose - Add `@Stable` annotation to `HomeViewModel`, `NewTaskViewModel`, `UpdateTaskViewModel`, `TaskDetailsViewModel`, and `SelectedTaskViewModel` for better Compose performance. - Move `koinViewModel()` calls from function bodies to default parameter values in `AppNavHost`, `HomeScreen`, `NewTaskScreen`, `UpdateTaskScreen`, and `TaskDetailsScreen` to improve testability and follow best practices. - Format `when` blocks across various ViewModels and Screens to use consistent bracing. - Reorganize imports in multiple UI files.
…app logic - Removes `onSetTopBar` and `onSetFab` parameters from `AppNavHost` and its internal screen destinations. - Implements `OnBackPress`, `OnExitDialogConfirmed`, and `OnExitDialogCancelled` event handling in `HomeViewModel`. - Adds `ExitApp` effect handling in `HomeScreen` to close the activity and terminate the process.
- Update Gradle to 9.2.1 and AGP to 9.0.1. - Upgrade Kotlin to 2.3.10 and KSP to 2.3.5. - Update various library versions, including Lifecycle (2.10.0), Activity Compose (1.12.4), Compose BOM (2026.02.00), Navigation (2.9.7), Room (2.8.4), and MockK (1.14.9). - Remove the `kotlin-android` plugin alias from build scripts. - Refactor `jvmTarget` configuration and test resource directory declaration in `app/build.gradle.kts`.
- Removes `multidex` version and library definition from `gradle/libs.versions.toml`. - Removes `multidex` dependency from `app/build.gradle.kts`. - Refactors `MyApplication` to inherit from `Application` instead of `MultiDexApplication` and removes related imports.
- Adds `gradle-daemon-jvm.properties` to specify Java 21 (Adoptium) as the daemon toolchain for various platforms. - Applies the `org.gradle.toolchains.foojay-resolver-convention` plugin in `settings.gradle.kts` to resolve these toolchains via Foojay.
Updates `HomeScreen.kt` to include `LocalContext` and `kotlin.system.exitProcess` for upcoming logic changes.
6b69cdd to
bcfb8eb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR prepares version 1.0.5 by introducing significant improvements to the app's architecture, UI management, and build system. The primary focus was on decentralizing UI components for better maintainability and enhancing Compose stability.
Key Changes
🎨 UI & UX Refactoring
HomeScreen,NewTaskScreen,TaskDetailsScreen, andUpdateTaskSreen). This provides better control over UI state per screen.CommonTopAppBarto standardize the look and feel across the application.AppNavHostlogic and implemented application exit logic.🏗️ Architecture & Stability
⚙️ Build System & Dependencies
minSdkis 24).libs.versions.toml.Files Impacted
app/build.gradle.kts&gradle/libs.versions.toml: Build configuration and dependency updates.HomeScreen.kt,NewTaskScreen.kt,TaskDetailsSreen.kt,UpdateTaskSreen.kt: UI refactoring.CommonTopAppBar.kt: New shared UI component.HomeViewModel.kt,NewTaskViewModel.kt,SelectedTaskViewModel.kt: Architectural improvements.