mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 16:47:01 +05:30
Merge #153
153: Use multiplatform compose r=Skrilltrax a=Skrilltrax Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
This commit is contained in:
commit
10232720ae
12 changed files with 99 additions and 19 deletions
8
.idea/artifacts/common_jvm.xml
generated
Normal file
8
.idea/artifacts/common_jvm.xml
generated
Normal file
|
@ -0,0 +1,8 @@
|
|||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="common-jvm">
|
||||
<output-path>$PROJECT_DIR$/common/build/libs</output-path>
|
||||
<root id="archive" name="common-jvm.jar">
|
||||
<element id="module-output" name="Claw.common.jvmMain" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
1
.idea/gradle.xml
generated
1
.idea/gradle.xml
generated
|
@ -14,6 +14,7 @@
|
|||
<option value="$PROJECT_DIR$/api" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
<option value="$PROJECT_DIR$/buildSrc" />
|
||||
<option value="$PROJECT_DIR$/common" />
|
||||
<option value="$PROJECT_DIR$/database" />
|
||||
<option value="$PROJECT_DIR$/desktop" />
|
||||
</set>
|
||||
|
|
|
@ -3,44 +3,40 @@ plugins {
|
|||
kotlin("android")
|
||||
kotlin("kapt")
|
||||
id("dagger.hilt.android.plugin")
|
||||
id("org.jetbrains.compose") version "0.4.0-build173"
|
||||
id("shot")
|
||||
`versioning-plugin`
|
||||
`lobsters-plugin`
|
||||
`core-library-desugaring`
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
|
||||
}
|
||||
|
||||
android {
|
||||
defaultConfig {
|
||||
applicationId = "dev.msfjarvis.lobsters"
|
||||
testInstrumentationRunner = "com.karumi.shot.ShotTestRunner"
|
||||
}
|
||||
|
||||
buildFeatures.compose = true
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = Dependencies.COMPOSE_VERSION
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
kapt(Dependencies.AndroidX.Hilt.daggerCompiler)
|
||||
implementation(project(":api"))
|
||||
implementation(project(":common"))
|
||||
implementation(project(":database"))
|
||||
implementation(compose.foundation)
|
||||
implementation(compose.material)
|
||||
implementation(compose.runtime)
|
||||
implementation(compose.ui)
|
||||
implementation(Dependencies.AndroidX.appCompat)
|
||||
implementation(Dependencies.AndroidX.browser)
|
||||
implementation(Dependencies.AndroidX.Compose.activity)
|
||||
implementation(Dependencies.AndroidX.Compose.compiler)
|
||||
implementation(Dependencies.AndroidX.Compose.foundation)
|
||||
implementation(Dependencies.AndroidX.Compose.foundationLayout)
|
||||
implementation(Dependencies.AndroidX.Compose.lifecycleViewModel)
|
||||
implementation(Dependencies.AndroidX.Compose.material)
|
||||
implementation(Dependencies.AndroidX.Compose.navigation)
|
||||
implementation(Dependencies.AndroidX.Compose.paging)
|
||||
implementation(Dependencies.AndroidX.Compose.runtime)
|
||||
implementation(Dependencies.AndroidX.Compose.ui)
|
||||
implementation(Dependencies.AndroidX.Compose.uiTooling)
|
||||
implementation(Dependencies.AndroidX.Compose.uiUnit)
|
||||
implementation(Dependencies.AndroidX.Hilt.dagger)
|
||||
implementation(Dependencies.AndroidX.Lifecycle.runtimeKtx)
|
||||
implementation(Dependencies.AndroidX.Lifecycle.viewmodelKtx)
|
||||
|
@ -54,5 +50,4 @@ dependencies {
|
|||
testImplementation(Dependencies.Testing.junit)
|
||||
androidTestImplementation(Dependencies.AndroidX.Compose.activity)
|
||||
androidTestImplementation(Dependencies.Testing.daggerHilt)
|
||||
androidTestImplementation(Dependencies.Testing.AndroidX.Compose.uiTestJunit4)
|
||||
}
|
||||
|
|
|
@ -7,13 +7,13 @@ import dagger.hilt.InstallIn
|
|||
import dagger.hilt.android.components.ActivityComponent
|
||||
import dagger.hilt.android.qualifiers.ActivityContext
|
||||
import dev.msfjarvis.lobsters.ui.urllauncher.UrlLauncher
|
||||
import dev.msfjarvis.lobsters.ui.urllauncher.UrlLauncherImpl
|
||||
import dev.msfjarvis.lobsters.ui.urllauncher.AndroidUrlLauncherImpl
|
||||
|
||||
@Module
|
||||
@InstallIn(ActivityComponent::class)
|
||||
object UrlLauncherModule {
|
||||
@Provides
|
||||
fun provideUrlLauncher(@ActivityContext context: Context): UrlLauncher {
|
||||
return UrlLauncherImpl(context)
|
||||
return AndroidUrlLauncherImpl(context)
|
||||
}
|
||||
}
|
||||
|
|
58
common/build.gradle.kts
Normal file
58
common/build.gradle.kts
Normal file
|
@ -0,0 +1,58 @@
|
|||
plugins {
|
||||
kotlin("multiplatform")
|
||||
id("com.android.library")
|
||||
id("org.jetbrains.compose") version "0.4.0-build173"
|
||||
`lobsters-plugin`
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
|
||||
google()
|
||||
}
|
||||
|
||||
|
||||
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_1_8.toString()
|
||||
useIR = true
|
||||
}
|
||||
}
|
||||
|
||||
// workaround for https://youtrack.jetbrains.com/issue/KT-43944
|
||||
android {
|
||||
configurations {
|
||||
create("androidTestApi")
|
||||
create("androidTestDebugApi")
|
||||
create("androidTestReleaseApi")
|
||||
create("testApi")
|
||||
create("testDebugApi")
|
||||
create("testReleaseApi")
|
||||
}
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm()
|
||||
android()
|
||||
|
||||
sourceSets {
|
||||
val androidMain by getting {
|
||||
dependencies {
|
||||
implementation(compose.runtime)
|
||||
implementation(Dependencies.AndroidX.browser)
|
||||
}
|
||||
}
|
||||
|
||||
val commonMain by getting {
|
||||
dependencies {
|
||||
implementation(compose.runtime)
|
||||
}
|
||||
}
|
||||
|
||||
val jvmMain by getting {
|
||||
dependencies {
|
||||
implementation(compose.runtime)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,8 +3,9 @@ package dev.msfjarvis.lobsters.ui.urllauncher
|
|||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import androidx.browser.customtabs.CustomTabsIntent
|
||||
import dev.msfjarvis.lobsters.ui.urllauncher.UrlLauncher
|
||||
|
||||
class UrlLauncherImpl(private val context: Context) : UrlLauncher {
|
||||
class AndroidUrlLauncherImpl(private val context: Context) : UrlLauncher {
|
||||
override fun launch(url: String) {
|
||||
val customTabsIntent = CustomTabsIntent.Builder()
|
||||
.setShareState(CustomTabsIntent.SHARE_STATE_ON)
|
|
@ -0,0 +1,14 @@
|
|||
package dev.msfjarvis.lobsters.ui.urllauncher
|
||||
|
||||
import java.awt.Desktop
|
||||
import java.net.URI
|
||||
|
||||
class JVMUrlLauncherImpl() : UrlLauncher {
|
||||
override fun launch(url: String) {
|
||||
val desktop = Desktop.getDesktop()
|
||||
|
||||
if (Desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)) {
|
||||
desktop.browse(URI(url))
|
||||
}
|
||||
}
|
||||
}
|
2
common/src/main/AndroidManifest.xml
Normal file
2
common/src/main/AndroidManifest.xml
Normal file
|
@ -0,0 +1,2 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="dev.msfjarvis.lobsters.common" />
|
|
@ -12,6 +12,7 @@ repositories {
|
|||
|
||||
dependencies {
|
||||
implementation(project(":api"))
|
||||
implementation(project(":common"))
|
||||
implementation(project(":database"))
|
||||
implementation(compose.desktop.currentOs)
|
||||
implementation(compose.runtime)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
rootProject.name = "Claw"
|
||||
include(":app", ":api", ":database", ":desktop")
|
||||
include(":app", ":api", ":common", ":database", ":desktop")
|
||||
enableFeaturePreview("GRADLE_METADATA")
|
||||
pluginManagement {
|
||||
repositories {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue