Remove TOML catagog file & clean warning.
Expect that fucking rootProject.exec in gradle.
This commit is contained in:
parent
1a73795615
commit
4944f06e91
16 changed files with 78 additions and 253 deletions
|
|
@ -1,12 +1,15 @@
|
|||
import com.android.build.api.dsl.SigningConfig
|
||||
import org.apache.commons.io.output.ByteArrayOutputStream
|
||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||
import java.nio.charset.Charset
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.compose)
|
||||
alias(libs.plugins.jetbrains.kotlin.serialization)
|
||||
alias(libs.plugins.hilt)
|
||||
alias(libs.plugins.ksp)
|
||||
id("com.android.application")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
id("org.jetbrains.kotlin.plugin.compose")
|
||||
id("org.jetbrains.kotlin.plugin.serialization")
|
||||
id("com.google.dagger.hilt.android")
|
||||
id("com.google.devtools.ksp")
|
||||
}
|
||||
|
||||
android {
|
||||
|
|
@ -14,13 +17,7 @@ android {
|
|||
compileSdk = 36
|
||||
|
||||
signingConfigs {
|
||||
create("pixelized") {
|
||||
storeFile =
|
||||
(project.properties["PIXELIZED_RELEASE_STORE_FILE"] as? String)?.let { file(it) }
|
||||
storePassword = project.properties["PIXELIZED_RELEASE_STORE_PASSWORD"] as? String
|
||||
keyAlias = project.properties["PIXELIZED_RELEASE_KEY_ALIAS"] as? String
|
||||
keyPassword = project.properties["PIXELIZED_RELEASE_KEY_PASSWORD"] as? String
|
||||
}
|
||||
create("pixelized") { populatePixelizedSigningConfig() }
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
|
|
@ -59,14 +56,18 @@ android {
|
|||
)
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = "11"
|
||||
freeCompilerArgs = listOf("-XXLanguage:+PropertyParamAnnotationDefaultTargetMode")
|
||||
|
||||
kotlin {
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
}
|
||||
compilerOptions {
|
||||
jvmTarget = JvmTarget.JVM_11
|
||||
freeCompilerArgs = listOf("-XXLanguage:+PropertyParamAnnotationDefaultTargetMode")
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
|
|
@ -74,50 +75,56 @@ android {
|
|||
|
||||
dependencies {
|
||||
|
||||
implementation(libs.androidx.core.ktx)
|
||||
implementation(libs.androidx.lifecycle.runtime.ktx)
|
||||
implementation(libs.androidx.activity.compose)
|
||||
implementation(platform(libs.androidx.compose.bom))
|
||||
implementation(libs.androidx.ui)
|
||||
implementation(libs.androidx.ui.graphics)
|
||||
implementation(libs.androidx.ui.tooling.preview)
|
||||
implementation(libs.androidx.material3)
|
||||
implementation(libs.androidx.material3.windowsizeclass)
|
||||
implementation(libs.androidx.adaptive.layout)
|
||||
implementation(libs.androidx.material3.navigation3)
|
||||
// Android
|
||||
implementation("androidx.core:core-ktx:1.17.0")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.9.4")
|
||||
implementation("androidx.activity:activity-compose:1.11.0")
|
||||
implementation("androidx.compose.ui:ui:1.9.3")
|
||||
implementation("androidx.compose.ui:ui-graphics:1.9.3")
|
||||
implementation("androidx.compose.ui:ui-tooling:1.9.3")
|
||||
implementation("androidx.compose.ui:ui-tooling-preview:1.9.3")
|
||||
|
||||
implementation(libs.androidx.datastore)
|
||||
implementation(libs.kotlinx.serialization.core)
|
||||
implementation(libs.kotlinx.serialization.json)
|
||||
implementation(libs.androidx.navigation3.runtime)
|
||||
implementation(libs.androidx.navigation3.ui)
|
||||
implementation(libs.androidx.hilt.navigation.compose)
|
||||
implementation(libs.androidx.lifecycle.viewmodel.navigation3)
|
||||
implementation(libs.androidx.material.icons.extended)
|
||||
// Material
|
||||
implementation("androidx.compose.material3:material3:1.4.0")
|
||||
implementation("androidx.compose.material:material-icons-extended:1.7.8")
|
||||
implementation("androidx.compose.material3:material3-window-size-class:1.4.0")
|
||||
implementation("androidx.compose.material3.adaptive:adaptive-layout:1.1.0")
|
||||
|
||||
implementation(libs.hilt.android)
|
||||
ksp(libs.hilt.compiler)
|
||||
// Navigation
|
||||
implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha11")
|
||||
implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha11")
|
||||
implementation("androidx.compose.material3.adaptive:adaptive-navigation3:1.0.0-SNAPSHOT")
|
||||
implementation("androidx.lifecycle:lifecycle-viewmodel-navigation3:1.0.0-SNAPSHOT")
|
||||
|
||||
testImplementation(libs.junit)
|
||||
androidTestImplementation(libs.androidx.junit)
|
||||
androidTestImplementation(libs.androidx.espresso.core)
|
||||
androidTestImplementation(platform(libs.androidx.compose.bom))
|
||||
androidTestImplementation(libs.androidx.ui.test.junit4)
|
||||
debugImplementation(libs.androidx.ui.tooling)
|
||||
debugImplementation(libs.androidx.ui.test.manifest)
|
||||
// Preferences
|
||||
implementation("androidx.datastore:datastore-preferences:1.1.7")
|
||||
|
||||
// Json
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0")
|
||||
|
||||
// Injection
|
||||
implementation("androidx.hilt:hilt-navigation-compose:1.3.0")
|
||||
implementation("com.google.dagger:hilt-android:2.57.2")
|
||||
ksp("com.google.dagger:hilt-compiler:2.57.2")
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
private fun getGitBuildNumber(
|
||||
charset: Charset = Charset.defaultCharset(),
|
||||
): Int {
|
||||
return try {
|
||||
val stdout = org.apache.commons.io.output.ByteArrayOutputStream()
|
||||
return ByteArrayOutputStream().use { stream ->
|
||||
rootProject.exec {
|
||||
commandLine("git", "rev-list", "--count", "HEAD")
|
||||
standardOutput = stdout
|
||||
standardOutput = stream
|
||||
}
|
||||
stdout.toString(charset).trim().toInt()
|
||||
} catch (_: Exception) {
|
||||
1
|
||||
stream.toString(charset).trim().toIntOrNull() ?: 1
|
||||
}
|
||||
}
|
||||
|
||||
fun SigningConfig.populatePixelizedSigningConfig() {
|
||||
storeFile = (project.properties["PIXELIZED_RELEASE_STORE_FILE"] as? String)?.let { file(it) }
|
||||
storePassword = project.properties["PIXELIZED_RELEASE_STORE_PASSWORD"] as? String
|
||||
keyAlias = project.properties["PIXELIZED_RELEASE_KEY_ALIAS"] as? String
|
||||
keyPassword = project.properties["PIXELIZED_RELEASE_KEY_PASSWORD"] as? String
|
||||
}
|
||||
|
|
@ -14,6 +14,7 @@ import androidx.core.content.ContextCompat
|
|||
import com.pixelized.headache.ui.navigation.home.HomeNavigator
|
||||
import com.pixelized.headache.ui.navigation.main.MainNavigator
|
||||
import com.pixelized.headache.ui.page.MainPage
|
||||
import com.pixelized.headache.ui.page.calendar.CalendarChooserPage
|
||||
import com.pixelized.headache.ui.theme.HeadacheTheme
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import javax.inject.Inject
|
||||
|
|
@ -50,6 +51,7 @@ class MainActivity : ComponentActivity() {
|
|||
setContent {
|
||||
HeadacheTheme {
|
||||
Surface {
|
||||
// CalendarChooserPage()
|
||||
MainPage(
|
||||
mainNavigator = mainNavigator,
|
||||
homeNavigator = homeNavigator,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.pixelized.headache.ui.navigation.destination
|
||||
|
||||
import android.icu.util.Calendar
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||
import androidx.navigation3.runtime.EntryProviderBuilder
|
||||
import androidx.navigation3.runtime.entry
|
||||
import com.pixelized.headache.repository.event.Event
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import androidx.compose.runtime.rememberCoroutineScope
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.pixelized.headache.R
|
||||
import com.pixelized.headache.ui.common.toolbar.Toolbar
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
|
|||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||
import com.pixelized.headache.R
|
||||
import com.pixelized.headache.ui.common.error.HandleErrorMessage
|
||||
import com.pixelized.headache.ui.theme.HeadacheTheme
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
|
|||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.pixelized.headache.R
|
||||
import com.pixelized.headache.ui.common.toolbar.Toolbar
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.pixelized.headache.R
|
||||
import com.pixelized.headache.ui.common.toolbar.Toolbar
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
|
|||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.pixelized.headache.ui.navigation.destination.navigateToEventPage
|
||||
import com.pixelized.headache.ui.navigation.main.LocalMainNavigator
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
|||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.pixelized.headache.ui.navigation.destination.navigateToEventPage
|
||||
import com.pixelized.headache.ui.navigation.main.LocalMainNavigator
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
|
|||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.pixelized.headache.ui.navigation.destination.navigateToEventPage
|
||||
import com.pixelized.headache.ui.navigation.main.LocalMainNavigator
|
||||
|
|
|
|||
|
|
@ -1,92 +0,0 @@
|
|||
package com.pixelized.headache
|
||||
|
||||
import com.pixelized.headache.repository.event.factory.PillFactory
|
||||
import org.junit.Test
|
||||
|
||||
class EventFactoryTest {
|
||||
private val factory = PillFactory()
|
||||
|
||||
@Test
|
||||
fun testPill() {
|
||||
test(
|
||||
pill = "Spifen 400",
|
||||
expectedLabel = "Spifen 400",
|
||||
expectedAmount = 1,
|
||||
expectedIsValid = true,
|
||||
expectedIsMisspelled = false,
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testMisspelledPill() {
|
||||
test(
|
||||
pill = "Spifen",
|
||||
expectedLabel = "Spifen 400",
|
||||
expectedAmount = 1,
|
||||
expectedIsValid = true,
|
||||
expectedIsMisspelled = true,
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testUnknownPill() {
|
||||
test(
|
||||
pill = "Spife",
|
||||
expectedLabel = "?",
|
||||
expectedAmount = 1,
|
||||
expectedIsValid = false,
|
||||
expectedIsMisspelled = false,
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun test2Pills_1() {
|
||||
test(
|
||||
pill = "Spifen 400 x2",
|
||||
expectedLabel = "Spifen 400",
|
||||
expectedAmount = 2,
|
||||
expectedIsValid = true,
|
||||
expectedIsMisspelled = false,
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun test2Pills_2() {
|
||||
test(
|
||||
pill = "Spifen 400 x 2",
|
||||
expectedLabel = "Spifen 400",
|
||||
expectedAmount = 2,
|
||||
expectedIsValid = true,
|
||||
expectedIsMisspelled = false,
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun text2Pills_3() {
|
||||
test(
|
||||
pill = "Ibuprofene 400 Extra x2",
|
||||
expectedLabel = "Ibuprofène 400",
|
||||
expectedAmount = 2,
|
||||
expectedIsValid = true,
|
||||
expectedIsMisspelled = true,
|
||||
)
|
||||
}
|
||||
|
||||
fun test(
|
||||
pill: String,
|
||||
expectedLabel: String,
|
||||
expectedAmount: Int,
|
||||
expectedIsValid: Boolean,
|
||||
expectedIsMisspelled: Boolean,
|
||||
) {
|
||||
factory.parsePill(
|
||||
pill = pill,
|
||||
).let {
|
||||
assert(it.label == expectedLabel) { "Label error - Expected:\"$expectedLabel\" but was:\"${it.label}\"" }
|
||||
assert(it.amount == expectedAmount) { "Amount error - Expected:\"$expectedAmount\" but was:\"${it.amount}\"" }
|
||||
assert(it.description == pill) { "Description error - Expected:\"$pill\" but was:\"${it.description}\"" }
|
||||
assert(it.isValid == expectedIsValid) { "isValid error - Expected:\"$expectedIsValid\" but was:\"${it.isValid}\"" }
|
||||
assert(it.isMisspelled == expectedIsMisspelled) { "isMisspelled error - Expected:\"$expectedIsMisspelled\" but was:\"${it.isMisspelled}\"" }
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue