From 5102a8ea485c41deb9d51f6df3a7184be21a4cf7 Mon Sep 17 00:00:00 2001 From: shabinder Date: Sat, 26 Jun 2021 00:33:43 +0530 Subject: [PATCH] Console App (Folder) & Mosaic-SubModule --- .gitmodules | 3 + console-app/build.gradle.kts | 59 +++++++++++++++++++ console-app/src/main/java/main.kt | 20 +++++++ console-app/src/main/java/utils/Exceptions.kt | 17 ++++++ console-app/src/main/java/utils/Ext.kt | 9 +++ console-app/src/main/java/utils/TestClass.kt | 6 ++ settings.gradle.kts | 2 +- 7 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 console-app/build.gradle.kts create mode 100644 console-app/src/main/java/main.kt create mode 100644 console-app/src/main/java/utils/Exceptions.kt create mode 100644 console-app/src/main/java/utils/Ext.kt create mode 100644 console-app/src/main/java/utils/TestClass.kt diff --git a/.gitmodules b/.gitmodules index d89eb58f..6b523bd4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "spotiflyer-ios"] path = spotiflyer-ios url = https://github.com/Shabinder/spotiflyer-ios +[submodule "mosaic"] + path = mosaic + url = https://github.com/JakeWharton/mosaic diff --git a/console-app/build.gradle.kts b/console-app/build.gradle.kts new file mode 100644 index 00000000..ec9a4d43 --- /dev/null +++ b/console-app/build.gradle.kts @@ -0,0 +1,59 @@ +plugins { + kotlin("jvm")// version "1.4.32" + kotlin("plugin.serialization") + id("ktlint-setup") + id("com.jakewharton.mosaic") + application +} + +group = "com.shabinder" +version = Versions.versionCode + +repositories { + mavenCentral() +} + +application { + mainClass.set("MainKt") + applicationName = "spotiflyer-console-app" +} + +dependencies { + implementation(Koin.core) + implementation(project(":common:database")) + implementation(project(":common:data-models")) + implementation(project(":common:dependency-injection")) + implementation(project(":common:root")) + implementation(project(":common:main")) + implementation(project(":common:list")) + implementation(project(":common:list")) + + + // Decompose + implementation(Decompose.decompose) + implementation(Decompose.extensionsCompose) + + // MVI + implementation(MVIKotlin.mvikotlin) + implementation(MVIKotlin.mvikotlinMain) + + // Koin + implementation(Koin.core) + + // Matomo + implementation("org.piwik.java.tracking:matomo-java-tracker:1.6") + + implementation(Ktor.slf4j) + implementation(Ktor.clientCore) + implementation(Ktor.clientJson) + implementation(Ktor.clientApache) + implementation(Ktor.clientLogging) + implementation(Ktor.clientSerialization) + implementation(Serialization.json) + // testDeps + testImplementation(kotlin("test-junit")) +} + +tasks.test { + useJUnit() +} diff --git a/console-app/src/main/java/main.kt b/console-app/src/main/java/main.kt new file mode 100644 index 00000000..62c5bdea --- /dev/null +++ b/console-app/src/main/java/main.kt @@ -0,0 +1,20 @@ +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import com.jakewharton.mosaic.Text +import com.jakewharton.mosaic.runMosaic +import kotlinx.coroutines.delay + +fun main(/*args: Array*/) = runMosaic { + // TODO https://github.com/JakeWharton/mosaic/issues/3 + var count by mutableStateOf(0) + + setContent { + Text("The count is: $count") + } + + for (i in 1..20) { + delay(250) + count = i + } +} diff --git a/console-app/src/main/java/utils/Exceptions.kt b/console-app/src/main/java/utils/Exceptions.kt new file mode 100644 index 00000000..ed4d8751 --- /dev/null +++ b/console-app/src/main/java/utils/Exceptions.kt @@ -0,0 +1,17 @@ +@file:Suppress("ClassName") + +package utils + +data class ENV_KEY_MISSING( + val keyName: String, + override val message: String? = "$keyName was not found, please check your ENV variables" +) : Exception(message) + +data class HCTI_URL_RESPONSE_ERROR( + val response: String, + override val message: String? = "Server Error, We Recieved this Resp: $response" +) : Exception(message) + +data class RETRY_LIMIT_EXHAUSTED( + override val message: String? = "RETRY LIMIT EXHAUSTED!" +) : Exception(message) diff --git a/console-app/src/main/java/utils/Ext.kt b/console-app/src/main/java/utils/Ext.kt new file mode 100644 index 00000000..9dbb6978 --- /dev/null +++ b/console-app/src/main/java/utils/Ext.kt @@ -0,0 +1,9 @@ +package utils + +val String.byProperty: String get() = System.getenv(this) + ?: throw (ENV_KEY_MISSING(this)) + +val String.byOptionalProperty: String? get() = System.getenv(this) + +fun debug(message: String) = println("\n::debug::$message") +fun debug(tag: String, message: String) = println("\n::debug::$tag:\n$message") \ No newline at end of file diff --git a/console-app/src/main/java/utils/TestClass.kt b/console-app/src/main/java/utils/TestClass.kt new file mode 100644 index 00000000..3ffb46b9 --- /dev/null +++ b/console-app/src/main/java/utils/TestClass.kt @@ -0,0 +1,6 @@ +package utils + +import kotlinx.coroutines.runBlocking + +// Test Class- at development Time +fun main(): Unit = runBlocking {} diff --git a/settings.gradle.kts b/settings.gradle.kts index dcde5caa..a8b58618 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -32,7 +32,7 @@ include( ":maintenance-tasks" ) -includeBuild("mosaic") { +includeBuild("mosaic/mosaic") { dependencySubstitution { substitute(module("com.jakewharton.mosaic:mosaic-gradle-plugin")).with(project(":mosaic-gradle-plugin")) substitute(module("com.jakewharton.mosaic:mosaic-runtime")).with(project(":mosaic-runtime"))