Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: androidTest
name: tests

on:
pull_request:
Expand All @@ -9,6 +9,8 @@ on:
jobs:
build:
runs-on: ubuntu-latest
env:
OPEN_API_KEY: ${{ secrets.OPEN_API_KEY }}

steps:
- name: Checkout
Expand Down
29 changes: 29 additions & 0 deletions composeApp/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import com.android.build.api.dsl.ApplicationDefaultConfig
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
import org.jlleitschuh.gradle.ktlint.reporter.ReporterType
import java.util.Properties

plugins {
alias(libs.plugins.kotlinMultiplatform)
Expand Down Expand Up @@ -118,6 +120,9 @@ android {
targetSdk = libs.versions.android.targetSdk.get().toInt()
versionCode = 1
versionName = "1.0"

val properties = getLocalProperties()
setupBuildConfigFields(properties = properties)
}
packaging {
resources {
Expand All @@ -133,6 +138,9 @@ android {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
buildFeatures {
buildConfig = true
}
}

dependencies {
Expand All @@ -149,4 +157,25 @@ compose.desktop {
packageVersion = "1.0.0"
}
}
}

fun ApplicationDefaultConfig.setupBuildConfigFields(
properties: Properties,
) {
fun secret(key: String): String = System.getenv(key) ?: properties.getProperty(key, "")

if (secret("OPEN_API_KEY").isEmpty()) {
error("OPEN_API_KEY not set in local.properties")
}

buildConfigField(type = "String", name = "OPEN_API_KEY", value = "\"${secret("OPEN_API_KEY")}\"")
}

fun getLocalProperties(): Properties {
return Properties().apply {
val file = rootProject.file("local.properties")
if (file.exists()) {
file.inputStream().use { load(it) }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@ class AndroidPlatform : Platform {
override val name: String = "Android ${Build.VERSION.SDK_INT}"
}

actual fun getPlatform(): Platform = AndroidPlatform()
actual fun getPlatform(): Platform = AndroidPlatform()

actual fun getOpenApiKey() = BuildConfig.OPEN_API_KEY
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ interface Platform {
val name: String
}

expect fun getPlatform(): Platform
expect fun getPlatform(): Platform

expect fun getOpenApiKey(): String

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.developersbreach.kotlindictionarymultiplatform.data.detail.repository

import arrow.core.Either
import com.developersbreach.kotlindictionarymultiplatform.core.network.API_KEY
import com.developersbreach.kotlindictionarymultiplatform.core.network.KtorHttpClient
import com.developersbreach.kotlindictionarymultiplatform.data.detail.model.KotlinTopicDetails
import com.developersbreach.kotlindictionarymultiplatform.getOpenApiKey

class DetailRepository {

suspend fun fetchTopic(topicId: String): Either<Throwable, KotlinTopicDetails> =
Either.catch {
KtorHttpClient.generateTopicDetails(topicId, API_KEY)
KtorHttpClient.generateTopicDetails(topicId, getOpenApiKey())
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.developersbreach.kotlindictionarymultiplatform

actual fun getOpenApiKey(): String = ""
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.developersbreach.kotlindictionarymultiplatform

actual fun getOpenApiKey(): String = ""
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ class WasmPlatform : Platform {
override val name: String = "Web with Kotlin/Wasm"
}

actual fun getPlatform(): Platform = WasmPlatform()
actual fun getPlatform(): Platform = WasmPlatform()

actual fun getOpenApiKey(): String = ""
Loading