mirror of
https://github.com/AdrianKuta/KahootQuiz.git
synced 2025-09-14 17:24:21 +02:00
This commit significantly revamps the `QuizScreen` UI to display question details including image and text, and introduces a new `core:designsystem` module to centralize theme, colors, typography, and drawable resources. Key changes: - **UI Layer (`ui:quiz` module):** - Updated `QuizScreen.kt`: - Implemented a background image for the screen. - Added a `Toolbar` composable to display question progress and type. - Created `QuestionContent` composable to show the question image (using Coil for image loading) and text. - Added a placeholder `Choices` composable (currently an empty `LazyVerticalGrid`). - Applied `fillMaxSize()` to the main `QuizScreen` modifier. - Included a `@Preview` for `QuizScreen` with sample data. - Modified `QuizScreenViewModel.kt` to update `QuizUiState` with the first `Question` from the fetched quiz. - Added a `quiz` string resource in `strings.xml`. - Added dependencies for Coil (compose and okhttp) in `ui/quiz/build.gradle.kts`. - **Core Design System (`core:designsystem` module):** - Created a new Android library module `core:designsystem`. - Moved `Color.kt`, `Theme.kt`, and `Type.kt` from `app/src/main/java/dev/adriankuta/kahootquiz/ui/theme` to this new module. - Added a new `Grey` color to `Color.kt`. - Added `bg_image.webp` and `ic_type.xml` drawable resources. - Configured the module with `kahootquiz.android.library.compose` plugin. - **App Module (`app` module):** - Updated `MainActivity.kt` to import `KahootQuizTheme` from the new `core.designsystem` package. - Added `implementation(projects.core.designsystem)` dependency in `app/build.gradle.kts`. - **Domain Layer (`domain` module):** - Made several fields in `Question.kt` and `Choice.kt` nullable and provided default null values to accommodate potential missing data from the API. - Specifically, `Question.image` is now non-nullable (`String`). - **Build System:** - Added `coilCompose` and `coilNetworkOkhttp` versions to `gradle/libs.versions.toml`. - Included `:core:designsystem` in `settings.gradle.kts`.
41 lines
1.7 KiB
XML
41 lines
1.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project version="4">
|
|
<component name="GradleMigrationSettings" migrationVersion="1" />
|
|
<component name="GradleSettings">
|
|
<option name="linkedExternalProjectsSettings">
|
|
<GradleProjectSettings>
|
|
<compositeConfiguration>
|
|
<compositeBuild compositeDefinitionSource="SCRIPT">
|
|
<builds>
|
|
<build path="$PROJECT_DIR$/build-logic" name="build-logic">
|
|
<projects>
|
|
<project path="$PROJECT_DIR$/build-logic" />
|
|
<project path="$PROJECT_DIR$/build-logic/convention" />
|
|
</projects>
|
|
</build>
|
|
</builds>
|
|
</compositeBuild>
|
|
</compositeConfiguration>
|
|
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
|
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
|
<option name="modules">
|
|
<set>
|
|
<option value="$PROJECT_DIR$" />
|
|
<option value="$PROJECT_DIR$/app" />
|
|
<option value="$PROJECT_DIR$/build-logic" />
|
|
<option value="$PROJECT_DIR$/build-logic/convention" />
|
|
<option value="$PROJECT_DIR$/core" />
|
|
<option value="$PROJECT_DIR$/core/designsystem" />
|
|
<option value="$PROJECT_DIR$/core/network" />
|
|
<option value="$PROJECT_DIR$/domain" />
|
|
<option value="$PROJECT_DIR$/model" />
|
|
<option value="$PROJECT_DIR$/model/data" />
|
|
<option value="$PROJECT_DIR$/ui" />
|
|
<option value="$PROJECT_DIR$/ui/quiz" />
|
|
</set>
|
|
</option>
|
|
</GradleProjectSettings>
|
|
</option>
|
|
</component>
|
|
</project> |