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
25 changes: 16 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,19 @@ jobs:
name: "test (${{ matrix.target }})"
steps:
- name: Check out code
uses: "actions/checkout@v4"
uses: actions/checkout@v6

- name: Set up JDK 21
uses: "actions/setup-java@v4"
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: "temurin"
java-version: 21
distribution: 'temurin'
java-version: '25'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v6
with:
cache-provider: basic
validate-wrappers: true

- name: Test with Gradle
run: "./gradlew :htmlconverter:${{ matrix.target }}Test"
Expand All @@ -42,17 +48,18 @@ jobs:

steps:
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up JDK 21
uses: actions/setup-java@v4
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '21'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v6
with:
cache-provider: basic
validate-wrappers: true

- name: Build with Gradle
Expand Down
13 changes: 7 additions & 6 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,22 @@ jobs:

steps:
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up JDK 21
uses: actions/setup-java@v4
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '21'
java-version: '25'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v6
with:
cache-provider: basic
validate-wrappers: true

- name: Publish to Maven Central
run: ./gradlew clean publishToMavenCentral --no-configuration-cache
run: ./gradlew clean publishToMavenCentral
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVENCENTRALUSERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVENCENTRALPASSWORD }}
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ It can be considered as a multiplatform replacement for Android's [`Html.fromHtm

#### Android

* Open the project in Android Studio and click ▶ **sample** (run configuration) to build and run.
* _OR_ from the command line: `./gradlew sample:installDebug` to install to a connected device.
* Open the project in Android Studio and click ▶ **androidApp** (run configuration) to build and run.
* _OR_ from the command line: `./gradlew androidApp:installDebug` to install to a connected device.

#### Desktop (JVM)

Expand Down
1 change: 1 addition & 0 deletions androidApp/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
48 changes: 48 additions & 0 deletions androidApp/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
}

android {
namespace = "be.digitalia.compose.htmlconverter.sample"
compileSdk = 36

defaultConfig {
applicationId = "be.digitalia.compose.htmlconverter.sample"
minSdk = 21
targetSdk = 36
versionCode = 1
versionName = "1.0.0"
}

buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"))
}
packaging {
resources {
excludes += listOf(
"DebugProbesKt.bin",
"kotlin-tooling-metadata.json",
"kotlin/**",
"META-INF/*.version"
)
}
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}

dependencies {
implementation(project(":sample"))

implementation(compose.preview)
implementation(libs.androidx.activity.compose)
debugImplementation(compose.uiTooling)
}
3 changes: 2 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
alias(libs.plugins.androidApplication) apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.kotlin.multiplatform.library) apply false
alias(libs.plugins.jetbrainsCompose) apply false
alias(libs.plugins.compose.compiler) apply false
alias(libs.plugins.kotlinMultiplatform) apply false
Expand Down
11 changes: 6 additions & 5 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
[versions]
androidGradlePlugin = "8.13.0"
androidGradlePlugin = "9.2.1"
androidx-activity-compose = "1.11.0"
jetbrainsCompose = "1.8.0"
kotlin = "2.1.21"
jetbrainsCompose = "1.9.3"
kotlin = "2.2.21"
ktxml = "1.0.0"
maven-publish = "0.34.0"
maven-publish = "0.36.0"

[libraries]
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" }
ktxml = { module = "org.kobjects.ktxml:core", version.ref = "ktxml" }

[plugins]
androidApplication = { id = "com.android.application", version.ref = "androidGradlePlugin" }
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "androidGradlePlugin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "jetbrainsCompose" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
14 changes: 5 additions & 9 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 9 additions & 47 deletions sample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,17 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidApplication)
alias(libs.plugins.android.kotlin.multiplatform.library)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
}

kotlin {
androidTarget {
android {
namespace = "be.digitalia.compose.htmlconverter.sample.shared"
compileSdk = 36
minSdk = 21

compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
Expand All @@ -26,16 +30,10 @@ kotlin {
}
}

jvm("desktop")
jvm()

sourceSets {
val androidMain by getting {
dependencies {
implementation(compose.preview)
implementation(libs.androidx.activity.compose)
}
}
val commonMain by getting {
commonMain {
dependencies {
implementation(project(":htmlconverter"))
implementation(compose.runtime)
Expand All @@ -45,50 +43,14 @@ kotlin {
implementation(compose.components.uiToolingPreview)
}
}
val desktopMain by getting {
jvmMain {
dependencies {
implementation(compose.desktop.currentOs)
}
}
}
}

android {
namespace = "be.digitalia.compose.htmlconverter.sample"
compileSdk = 36

defaultConfig {
applicationId = "be.digitalia.compose.htmlconverter.sample"
minSdk = 21
targetSdk = 36
versionCode = 1
versionName = "1.0.0"
}
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
}
packaging {
resources {
excludes += listOf(
"DebugProbesKt.bin",
"kotlin-tooling-metadata.json",
"kotlin/**",
"META-INF/*.version"
)
}
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
dependencies {
debugImplementation(compose.uiTooling)
}
}

compose.desktop {
application {
mainClass = "MainKt"
Expand Down
3 changes: 2 additions & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ dependencyResolutionManagement {

rootProject.name = "HtmlConverterCompose"
include(":htmlconverter")
include(":sample")
include(":sample")
include(":androidApp")