mirror of
https://github.com/avinal/nikki.git
synced 2026-07-03 21:40:09 +05:30
e4c19c2d7c
Notifications: - VISIBILITY_PRIVATE on all channels and notifications (hides task text from lockscreen) - Remove setFullScreenIntent (requires USE_FULL_SCREEN_INTENT permission; p1 channel already bypasses DND) Auth: - Clear cached token and server URL in memory on logout via AuthRepository.onLogout callback Offline queue: - Replace manual JSON string interpolation with kotlinx.serialization JsonObject/JsonPrimitive (prevents JSON injection from memo content) CI/CD: - Pin all GitHub Actions to commit SHAs - Add permissions: contents: read to build workflow - Decode keystore via env var instead of inline expansion - Sanitize tag name through env var in release upload - Fix test task name: testAndroidHostTest Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com> Co-Authored-By: Claude Opus 4.6 (1M context)
96 lines
2.7 KiB
Kotlin
96 lines
2.7 KiB
Kotlin
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
|
|
plugins {
|
|
alias(libs.plugins.kotlin.multiplatform)
|
|
alias(libs.plugins.android.kmp.library)
|
|
alias(libs.plugins.compose.multiplatform)
|
|
alias(libs.plugins.compose.compiler)
|
|
alias(libs.plugins.kotlin.serialization)
|
|
alias(libs.plugins.ksp)
|
|
alias(libs.plugins.room)
|
|
}
|
|
|
|
kotlin {
|
|
@Suppress("DEPRECATION")
|
|
androidLibrary {
|
|
namespace = "com.avinal.memos.shared"
|
|
compileSdk = 36
|
|
minSdk = 26
|
|
|
|
withHostTest {}
|
|
|
|
compilerOptions {
|
|
jvmTarget.set(JvmTarget.JVM_11)
|
|
}
|
|
}
|
|
|
|
listOf(
|
|
iosArm64(),
|
|
iosSimulatorArm64()
|
|
).forEach { iosTarget ->
|
|
iosTarget.binaries.framework {
|
|
baseName = "ComposeApp"
|
|
isStatic = true
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
commonMain.dependencies {
|
|
@Suppress("DEPRECATION")
|
|
implementation(compose.runtime)
|
|
@Suppress("DEPRECATION")
|
|
implementation(compose.foundation)
|
|
@Suppress("DEPRECATION")
|
|
implementation(compose.material3)
|
|
@Suppress("DEPRECATION")
|
|
implementation(compose.materialIconsExtended)
|
|
@Suppress("DEPRECATION")
|
|
implementation(compose.ui)
|
|
@Suppress("DEPRECATION")
|
|
implementation(compose.components.resources)
|
|
|
|
implementation(libs.androidx.lifecycle.viewmodel)
|
|
implementation(libs.androidx.navigation.compose)
|
|
implementation(libs.androidx.datastore.preferences)
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
implementation(libs.kotlinx.datetime)
|
|
|
|
implementation(libs.ktor.client.core)
|
|
implementation(libs.ktor.client.content.negotiation)
|
|
implementation(libs.ktor.serialization.kotlinx.json)
|
|
|
|
implementation(libs.coil.compose)
|
|
implementation(libs.coil.network.ktor)
|
|
|
|
implementation(libs.room.runtime)
|
|
implementation(libs.sqlite.bundled)
|
|
}
|
|
|
|
androidMain.dependencies {
|
|
implementation(libs.kotlinx.coroutines.android)
|
|
implementation(libs.ktor.client.okhttp)
|
|
implementation(libs.androidx.work.runtime)
|
|
}
|
|
|
|
iosMain.dependencies {
|
|
implementation(libs.ktor.client.darwin)
|
|
}
|
|
|
|
commonTest.dependencies {
|
|
implementation(kotlin("test"))
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
}
|
|
}
|
|
}
|
|
|
|
room {
|
|
schemaDirectory("$projectDir/schemas")
|
|
}
|
|
|
|
dependencies {
|
|
add("kspAndroid", libs.room.compiler)
|
|
add("kspIosSimulatorArm64", libs.room.compiler)
|
|
add("kspIosArm64", libs.room.compiler)
|
|
}
|