diff --git a/app/src/main/java/dev/adriankuta/kahootquiz/KahootQuizApp.kt b/app/src/main/java/dev/adriankuta/kahootquiz/KahootQuizApp.kt index ba0d955..e9edd7c 100644 --- a/app/src/main/java/dev/adriankuta/kahootquiz/KahootQuizApp.kt +++ b/app/src/main/java/dev/adriankuta/kahootquiz/KahootQuizApp.kt @@ -1,11 +1,16 @@ package dev.adriankuta.kahootquiz +import androidx.compose.foundation.Image import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeDrawing import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import dev.adriankuta.kahootquiz.core.designsystem.R as DesignR @Composable fun KahootQuizApp( @@ -15,6 +20,12 @@ fun KahootQuizApp( contentWindowInsets = WindowInsets.safeDrawing, modifier = modifier, ) { paddingValues -> - KahootQuizNavGraph(modifier = modifier.padding(paddingValues)) + Image( + painter = painterResource(id = DesignR.drawable.bg_image), + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + ) + KahootQuizNavGraph(modifier = Modifier.padding(paddingValues)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/dev/adriankuta/kahootquiz/KahootQuizNavGraph.kt b/app/src/main/java/dev/adriankuta/kahootquiz/KahootQuizNavGraph.kt index c12ca76..f2341b2 100644 --- a/app/src/main/java/dev/adriankuta/kahootquiz/KahootQuizNavGraph.kt +++ b/app/src/main/java/dev/adriankuta/kahootquiz/KahootQuizNavGraph.kt @@ -20,4 +20,4 @@ fun KahootQuizNavGraph( ) { quizScreen() } -} \ No newline at end of file +} diff --git a/app/src/test/java/dev/adriankuta/kahootquiz/ExampleUnitTest.kt b/app/src/test/java/dev/adriankuta/kahootquiz/ExampleUnitTest.kt index f5acc3d..efc3f5d 100644 --- a/app/src/test/java/dev/adriankuta/kahootquiz/ExampleUnitTest.kt +++ b/app/src/test/java/dev/adriankuta/kahootquiz/ExampleUnitTest.kt @@ -13,4 +13,4 @@ class ExampleUnitTest { fun addition_isCorrect() { assertEquals(4, 2 + 2) } -} \ No newline at end of file +} diff --git a/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/TextUtils.kt b/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/TextUtils.kt index a15e7e4..6290d86 100644 --- a/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/TextUtils.kt +++ b/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/TextUtils.kt @@ -28,7 +28,8 @@ fun Spanned.toAnnotatedString(): AnnotatedString = buildAnnotatedString { fontWeight = FontWeight.Bold, fontStyle = FontStyle.Italic, ), - start, end, + start, + end, ) } @@ -45,4 +46,4 @@ fun Spanned.toAnnotatedString(): AnnotatedString = buildAnnotatedString { ) } } -} \ No newline at end of file +} diff --git a/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/Theme.kt b/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/Theme.kt index 1091dd6..c024dd5 100644 --- a/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/Theme.kt +++ b/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/Theme.kt @@ -20,16 +20,6 @@ private val LightColorScheme = lightColorScheme( primary = Purple40, secondary = PurpleGrey40, tertiary = Pink40, - - /* Other default colors to override - background = Color(0xFFFFFBFE), - surface = Color(0xFFFFFBFE), - onPrimary = Color.White, - onSecondary = Color.White, - onTertiary = Color.White, - onBackground = Color(0xFF1C1B1F), - onSurface = Color(0xFF1C1B1F), - */ ) @Composable @@ -54,4 +44,4 @@ fun KahootQuizTheme( typography = Typography, content = content, ) -} \ No newline at end of file +} diff --git a/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/Type.kt b/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/Type.kt index a7a982d..990f4c8 100644 --- a/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/Type.kt +++ b/core/designsystem/src/main/kotlin/dev/adriankuta/kahootquiz/core/designsystem/Type.kt @@ -15,20 +15,4 @@ val Typography = Typography( lineHeight = 24.sp, letterSpacing = 0.5.sp, ), - /* Other default text styles to override - titleLarge = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 22.sp, - lineHeight = 28.sp, - letterSpacing = 0.sp - ), - labelSmall = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Medium, - fontSize = 11.sp, - lineHeight = 16.sp, - letterSpacing = 0.5.sp - ) - */ -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Access.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Access.kt index 9e87006..8887b2c 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Access.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Access.kt @@ -6,4 +6,4 @@ data class Access( val groupRead: List?, val folderGroupIds: List?, val features: List?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Channel.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Channel.kt index 2b1e0b1..3d1cdf8 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Channel.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Channel.kt @@ -2,4 +2,4 @@ package dev.adriankuta.kahootquiz.domain.models // Minimal channel info -data class Channel(val id: String?) \ No newline at end of file +data class Channel(val id: String?) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Choice.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Choice.kt index bb1f73b..5f764e2 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Choice.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Choice.kt @@ -4,4 +4,4 @@ data class Choice( val answer: String?, val correct: Boolean, val languageInfo: LanguageInfo? = null, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ChoiceRange.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ChoiceRange.kt index 5ce4f8f..6ce552b 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ChoiceRange.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ChoiceRange.kt @@ -8,4 +8,4 @@ data class ChoiceRange( val step: Int?, val correct: Int?, val tolerance: Int?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ContentTags.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ContentTags.kt index 4c4c235..a5894a0 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ContentTags.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ContentTags.kt @@ -5,4 +5,4 @@ package dev.adriankuta.kahootquiz.domain.models data class ContentTags( val curriculumCodes: List?, val generatedCurriculumCodes: List?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/CoverMetadata.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/CoverMetadata.kt index ea749b5..49911cd 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/CoverMetadata.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/CoverMetadata.kt @@ -14,4 +14,4 @@ data class CoverMetadata( val extractedColors: List?, val blurhash: String?, val crop: Crop?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Crop.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Crop.kt index fa6d4fc..d8a21bb 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Crop.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Crop.kt @@ -6,4 +6,4 @@ data class Crop( val origin: Point?, val target: Point?, val circular: Boolean?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ExtractedColor.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ExtractedColor.kt index 29d50a9..7772ef8 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ExtractedColor.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ExtractedColor.kt @@ -5,4 +5,4 @@ package dev.adriankuta.kahootquiz.domain.models data class ExtractedColor( val swatch: String?, val rgbHex: String?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/FeaturedListMembership.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/FeaturedListMembership.kt index ee6c610..347c803 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/FeaturedListMembership.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/FeaturedListMembership.kt @@ -5,4 +5,4 @@ package dev.adriankuta.kahootquiz.domain.models data class FeaturedListMembership( val list: String?, val addedAt: Long?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ImageMetadata.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ImageMetadata.kt index 4480c2e..cd49f27 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ImageMetadata.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/ImageMetadata.kt @@ -13,4 +13,4 @@ data class ImageMetadata( val height: Int? = null, val effects: List? = null, val crop: Crop? = null, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/LanguageInfo.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/LanguageInfo.kt index 0cbd7a3..fa58d14 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/LanguageInfo.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/LanguageInfo.kt @@ -6,4 +6,4 @@ data class LanguageInfo( val language: String?, val lastUpdatedOn: Long?, val readAloudSupported: Boolean?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/LastEdit.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/LastEdit.kt index 3e00a81..cd22640 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/LastEdit.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/LastEdit.kt @@ -6,4 +6,4 @@ data class LastEdit( val editorUserId: String?, val editorUsername: String?, val editTimestamp: Long?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/MediaItem.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/MediaItem.kt index 3fda83f..bd896bb 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/MediaItem.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/MediaItem.kt @@ -15,4 +15,4 @@ data class MediaItem( val width: Int? = null, val height: Int? = null, val crop: Crop? = null, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Metadata.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Metadata.kt index e73c2e0..1dc9a53 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Metadata.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Metadata.kt @@ -8,4 +8,4 @@ data class Metadata( val featuredListMemberships: List?, val lastEdit: LastEdit?, val versionMetadata: VersionMetadata?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Point.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Point.kt index e5c110b..79d2be1 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Point.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Point.kt @@ -5,4 +5,4 @@ package dev.adriankuta.kahootquiz.domain.models data class Point( val x: Int?, val y: Int?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Question.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Question.kt index ec8a595..9c09172 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Question.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Question.kt @@ -20,4 +20,4 @@ data class Question( val languageInfo: LanguageInfo? = null, val media: List? = null, val choiceRange: ChoiceRange? = null, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Quiz.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Quiz.kt index 6fd1298..3e85c82 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Quiz.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Quiz.kt @@ -32,4 +32,4 @@ data class Quiz( val type: String?, val created: Long?, val modified: Long?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/VersionMetadata.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/VersionMetadata.kt index 876a032..d2f2ff6 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/VersionMetadata.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/VersionMetadata.kt @@ -6,4 +6,4 @@ data class VersionMetadata( val version: Int?, val created: Long?, val creator: String?, -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Video.kt b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Video.kt index f3a58ed..d33f2ab 100644 --- a/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Video.kt +++ b/domain/src/main/kotlin/dev/adriankuta/kahootquiz/domain/models/Video.kt @@ -6,4 +6,4 @@ data class Video( val endTime: Int?, val service: String?, val fullUrl: String?, -) \ No newline at end of file +) diff --git a/model/data/src/main/kotlin/dev/adriankuta/kahootquiz/model/data/mappers/QuizMapper.kt b/model/data/src/main/kotlin/dev/adriankuta/kahootquiz/model/data/mappers/QuizMapper.kt index 59b481c..0fa3cb3 100644 --- a/model/data/src/main/kotlin/dev/adriankuta/kahootquiz/model/data/mappers/QuizMapper.kt +++ b/model/data/src/main/kotlin/dev/adriankuta/kahootquiz/model/data/mappers/QuizMapper.kt @@ -1,3 +1,5 @@ +@file:Suppress("TooManyFunctions") + package dev.adriankuta.kahootquiz.model.data.mappers import dev.adriankuta.kahootquiz.core.network.models.AccessDto diff --git a/ui/quiz/config/detekt/detekt.yml b/ui/quiz/config/detekt/detekt.yml deleted file mode 100644 index 809b757..0000000 --- a/ui/quiz/config/detekt/detekt.yml +++ /dev/null @@ -1,10 +0,0 @@ -# Deviations from defaults -formatting: - TrailingCommaOnCallSite: - active: true - autoCorrect: true - useTrailingCommaOnCallSite: true - TrailingCommaOnDeclarationSite: - active: true - autoCorrect: true - useTrailingCommaOnDeclarationSite: true \ No newline at end of file diff --git a/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/QuizScreen.kt b/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/QuizScreen.kt index 81137b5..7c88686 100644 --- a/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/QuizScreen.kt +++ b/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/QuizScreen.kt @@ -1,7 +1,6 @@ package dev.adriankuta.kahootquiz.ui.quiz import androidx.compose.animation.animateContentSize -import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize @@ -20,8 +19,6 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -31,20 +28,18 @@ import dev.adriankuta.kahootquiz.core.designsystem.Grey import dev.adriankuta.kahootquiz.core.designsystem.KahootQuizTheme import dev.adriankuta.kahootquiz.domain.models.Choice import dev.adriankuta.kahootquiz.domain.models.Question -import dev.adriankuta.kahootquiz.ui.quiz.components.Choices import dev.adriankuta.kahootquiz.ui.quiz.components.AnswerFeedbackBanner +import dev.adriankuta.kahootquiz.ui.quiz.components.Choices import dev.adriankuta.kahootquiz.ui.quiz.components.QuestionContent import dev.adriankuta.kahootquiz.ui.quiz.components.TimerBar import dev.adriankuta.kahootquiz.ui.quiz.components.Toolbar import kotlin.time.Duration.Companion.seconds -import dev.adriankuta.kahootquiz.core.designsystem.R as DesignR @Composable fun QuizScreen( modifier: Modifier = Modifier, viewModel: QuizScreenViewModel = hiltViewModel(), ) { - val uiState by viewModel.uiState.collectAsStateWithLifecycle() QuizScreen( @@ -63,12 +58,6 @@ private fun QuizScreen( modifier: Modifier = Modifier, ) { Box(modifier.fillMaxSize()) { - Image( - painter = painterResource(id = DesignR.drawable.bg_image), - contentDescription = null, - contentScale = ContentScale.Crop, - modifier = Modifier.fillMaxSize(), - ) when (uiState) { ScreenUiState.Loading -> QuizScreenLoading() is ScreenUiState.Success -> QuizScreenSuccess( @@ -76,7 +65,6 @@ private fun QuizScreen( onSelect = onSelect, onContinue = onContinue, ) - } } } diff --git a/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/QuizScreenViewModel.kt b/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/QuizScreenViewModel.kt index 9d21bc0..0860cb5 100644 --- a/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/QuizScreenViewModel.kt +++ b/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/QuizScreenViewModel.kt @@ -16,6 +16,7 @@ import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import javax.inject.Inject +import kotlin.time.Duration.Companion.seconds @HiltViewModel class QuizScreenViewModel @Inject constructor( @@ -78,7 +79,6 @@ class QuizScreenViewModel @Inject constructor( ) } } - } .stateIn( scope = viewModelScope, @@ -124,7 +124,7 @@ class QuizScreenViewModel @Inject constructor( timerJob = viewModelScope.launch { var remaining = totalSeconds while (remaining > 0) { - delay(1000) + delay(1.seconds) remaining -= 1 _remainingTimeSeconds.value = remaining } diff --git a/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/navigation/QuizNavigation.kt b/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/navigation/QuizNavigation.kt index 25ed342..a4af32a 100644 --- a/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/navigation/QuizNavigation.kt +++ b/ui/quiz/src/main/kotlin/dev/adriankuta/kahootquiz/ui/quiz/navigation/QuizNavigation.kt @@ -1,3 +1,5 @@ +@file:Suppress("MatchingDeclarationName") + package dev.adriankuta.kahootquiz.ui.quiz.navigation import androidx.navigation.NavGraphBuilder @@ -12,4 +14,4 @@ fun NavGraphBuilder.quizScreen() { composable { QuizScreen() } -} \ No newline at end of file +}