Various fixes for 1.0 release #3

Merged
wbrawner merged 4 commits from workflow into main 2024-07-12 04:34:04 +00:00
10 changed files with 251 additions and 145 deletions

View file

@ -3,10 +3,11 @@ import java.io.FileNotFoundException
import java.util.Properties import java.util.Properties
plugins { plugins {
id("com.android.application") alias(libs.plugins.android.application)
id("kotlin-android") alias(libs.plugins.compose.compiler)
id("com.osacky.fladle") alias(libs.plugins.kotlin.android)
id("com.github.triplet.play") version "3.8.4" alias(libs.plugins.fladle)
alias(libs.plugins.triplet.play)
id("com.wbrawner.releasehelper") id("com.wbrawner.releasehelper")
} }
@ -23,7 +24,7 @@ try {
} }
android { android {
packagingOptions { packaging {
resources { resources {
excludes += listOf( excludes += listOf(
"META-INF/LICENSE-LGPL-2.1.txt", "META-INF/LICENSE-LGPL-2.1.txt",
@ -34,7 +35,7 @@ android {
) )
} }
} }
compileSdk = 34 compileSdk = libs.versions.maxSdk.get().toInt()
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
@ -44,8 +45,8 @@ android {
} }
defaultConfig { defaultConfig {
applicationId = "com.wbrawner.simplemarkdown" applicationId = "com.wbrawner.simplemarkdown"
minSdk = 23 minSdk = libs.versions.minSdk.get().toInt()
targetSdk = 34 targetSdk = libs.versions.maxSdk.get().toInt()
versionCode = 41 versionCode = 41
versionName = "0.8.16" versionName = "0.8.16"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
@ -90,9 +91,6 @@ android {
buildFeatures { buildFeatures {
compose = true compose = true
} }
composeOptions {
kotlinCompilerExtensionVersion = "1.5.3"
}
playConfigs { playConfigs {
register("play") { register("play") {
enabled.set(true) enabled.set(true)
@ -111,70 +109,65 @@ play {
dependencies { dependencies {
"freeImplementation"(project(":free")) "freeImplementation"(project(":free"))
"playImplementation"(project(":non-free")) "playImplementation"(project(":non-free"))
implementation("androidx.compose.material3:material3-window-size-class-android:1.2.0") implementation(libs.androidx.material3.windowsizeclass)
val navigationVersion = "2.7.2" implementation(libs.androidx.navigation.compose)
implementation("androidx.navigation:navigation-compose:$navigationVersion") testImplementation(libs.junit)
testImplementation("junit:junit:4.13.2") testRuntimeOnly(libs.robolectric)
testRuntimeOnly("org.robolectric:robolectric:4.2.1") androidTestImplementation(libs.androidx.espresso.core)
val espressoVersion = "3.5.1" androidTestImplementation(libs.androidx.espresso.web)
androidTestImplementation("androidx.test.espresso:espresso-core:$espressoVersion") androidTestImplementation(libs.androidx.espresso.intents)
androidTestImplementation("androidx.test.espresso:espresso-web:$espressoVersion") androidTestRuntimeOnly(libs.androidx.runner)
androidTestImplementation("androidx.test.espresso:espresso-intents:$espressoVersion") androidTestUtil(libs.androidx.orchestrator)
androidTestRuntimeOnly("androidx.test:runner:1.5.2") implementation(libs.androidx.core.splashscreen)
androidTestUtil("androidx.test:orchestrator:1.4.2") implementation(libs.androidx.appcompat)
implementation("androidx.core:core-splashscreen:1.0.1") implementation(libs.material)
implementation("androidx.appcompat:appcompat:1.6.1") implementation(libs.androidx.core.ktx)
implementation("com.google.android.material:material:1.9.0") implementation(libs.androidx.browser)
implementation("androidx.core:core-ktx:1.12.0") implementation(libs.commonmark)
implementation("androidx.browser:browser:1.6.0") implementation(libs.commonmark.ext.gfm.tables)
val commonMarkVersion = "0.22.0" implementation(libs.commonmark.ext.gfm.strikethrough)
implementation("org.commonmark:commonmark:$commonMarkVersion") implementation(libs.commonmark.ext.autolink)
implementation("org.commonmark:commonmark-ext-gfm-tables:$commonMarkVersion") implementation(libs.commonmark.ext.task.list.items)
implementation("org.commonmark:commonmark-ext-gfm-strikethrough:$commonMarkVersion") implementation(libs.commonmark.ext.yaml.front.matter)
implementation("org.commonmark:commonmark-ext-autolink:$commonMarkVersion") implementation(libs.commonmark.ext.image.attributes)
implementation("org.commonmark:commonmark-ext-task-list-items:$commonMarkVersion") implementation(libs.commonmark.ext.heading.anchor)
implementation("org.commonmark:commonmark-ext-yaml-front-matter:$commonMarkVersion") val composeBom = enforcedPlatform(libs.compose.bom)
implementation("org.commonmark:commonmark-ext-image-attributes:$commonMarkVersion")
implementation("org.commonmark:commonmark-ext-heading-anchor:$commonMarkVersion")
val composeBom = platform("androidx.compose:compose-bom:2023.08.00")
implementation(composeBom) implementation(composeBom)
androidTestImplementation(composeBom) androidTestImplementation(composeBom)
implementation("androidx.compose.runtime:runtime") implementation(libs.androidx.runtime)
implementation("androidx.compose.ui:ui") implementation(libs.androidx.ui)
implementation("androidx.activity:activity-compose") implementation(libs.androidx.activity.compose)
implementation("androidx.compose.foundation:foundation") implementation(libs.androidx.foundation)
implementation("androidx.compose.foundation:foundation-layout") implementation(libs.androidx.foundation.layout)
implementation("androidx.compose.ui:ui-tooling") implementation(libs.androidx.ui.tooling)
implementation("androidx.compose.material3:material3") implementation(libs.androidx.material3)
implementation("androidx.compose.material:material-icons-extended") implementation(libs.androidx.material.icons.extended)
androidTestImplementation("androidx.compose.ui:ui-test-junit4") androidTestImplementation(libs.androidx.ui.test.junit4)
val coroutinesVersion = "1.7.1" runtimeOnly(libs.kotlinx.coroutines.android)
runtimeOnly("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion") testImplementation(libs.kotlinx.coroutines.test)
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion") implementation(libs.syllable.counter)
implementation("eu.crydee:syllable-counter:4.0.2") androidTestImplementation(libs.androidx.ui.test)
androidTestImplementation("androidx.compose.ui:ui-test:1.6.0") androidTestImplementation(libs.androidx.core)
androidTestImplementation("androidx.test:core:1.5.0") androidTestImplementation(libs.androidx.monitor)
androidTestImplementation("androidx.test:monitor:1.6.1") androidTestImplementation(libs.junit)
androidTestImplementation("junit:junit:4.13.2") androidTestImplementation(libs.hamcrest.core)
androidTestImplementation("org.hamcrest:hamcrest-core:1.3") implementation(libs.androidx.activity.ktx)
implementation("androidx.activity:activity-ktx:1.8.0") implementation(libs.androidx.activity.ktx)
implementation("androidx.activity:activity:1.8.0") implementation(libs.androidx.animation.core)
implementation("androidx.compose.animation:animation-core:1.6.0") implementation(libs.androidx.animation)
implementation("androidx.compose.animation:animation:1.6.0") implementation(libs.androidx.material.icons.core)
implementation("androidx.compose.material:material-icons-core:1.6.0") implementation(libs.androidx.ui.graphics)
implementation("androidx.compose.ui:ui-graphics:1.6.0") implementation(libs.androidx.ui.text)
implementation("androidx.compose.ui:ui-text:1.6.0") implementation(libs.androidx.ui.tooling.preview)
implementation("androidx.compose.ui:ui-tooling-preview:1.6.0") implementation(libs.androidx.ui.unit)
implementation("androidx.compose.ui:ui-unit:1.6.0") implementation(libs.androidx.core.ktx)
implementation("androidx.core:core:1.13.1") implementation(libs.androidx.lifecycle.viewmodel.ktx)
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2") implementation(libs.androidx.navigation.common)
implementation("androidx.lifecycle:lifecycle-viewmodel:2.6.2") implementation(libs.androidx.navigation.runtime.ktx)
implementation("androidx.navigation:navigation-common:2.7.2") implementation(libs.androidx.preference.ktx)
implementation("androidx.navigation:navigation-runtime:2.7.2") implementation(libs.acra.core)
implementation("androidx.preference:preference:1.2.1") implementation(libs.timber)
implementation("ch.acra:acra-core:5.11.3") implementation(libs.kotlinx.coroutines.core)
implementation("com.jakewharton.timber:timber:5.0.1")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1")
implementation(project(":core")) implementation(project(":core"))
} }

View file

@ -3,6 +3,7 @@ package com.wbrawner.simplemarkdown.ui
import android.view.ViewGroup import android.view.ViewGroup
import android.webkit.WebView import android.webkit.WebView
import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
@ -62,8 +63,9 @@ fun MarkdownText(modifier: Modifier = Modifier, markdown: String) {
modifier = modifier modifier = modifier
.fillMaxSize() .fillMaxSize()
.verticalScroll(rememberScrollState()), .verticalScroll(rememberScrollState()),
verticalArrangement = Arrangement.Top
) { ) {
HtmlText(modifier = modifier, html = html) HtmlText(html = html)
} }
} }
@ -76,6 +78,9 @@ fun HtmlText(html: String, modifier: Modifier = Modifier) {
| background: #${materialColors.surface.toArgb().toHexString().substring(2)}; | background: #${materialColors.surface.toArgb().toHexString().substring(2)};
| color: #${materialColors.onSurface.toArgb().toHexString().substring(2)}; | color: #${materialColors.onSurface.toArgb().toHexString().substring(2)};
|} |}
|a {
| color: #${materialColors.secondary.toArgb().toHexString().substring(2)};
|}
|pre { |pre {
| background: #${materialColors.surfaceVariant.toArgb().toHexString().substring(2)}; | background: #${materialColors.surfaceVariant.toArgb().toHexString().substring(2)};
| color: #${materialColors.onSurfaceVariant.toArgb().toHexString().substring(2)}; | color: #${materialColors.onSurfaceVariant.toArgb().toHexString().substring(2)};

View file

@ -1,25 +1,10 @@
buildscript {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:8.1.2")
classpath("com.google.gms:google-services:4.3.15")
classpath("com.google.firebase:firebase-crashlytics-gradle:2.9.4")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10")
classpath("com.osacky.flank.gradle:fladle:0.17.4")
}
}
plugins { plugins {
id("com.autonomousapps.dependency-analysis") version "1.31.0" alias(libs.plugins.android.application) apply false
} alias(libs.plugins.android.library) apply false
alias(libs.plugins.google.services) apply false
allprojects { alias(libs.plugins.firebase.crashlytics) apply false
repositories { alias(libs.plugins.kotlin.android) apply false
google() alias(libs.plugins.compose.compiler) apply false
mavenCentral() alias(libs.plugins.fladle) apply false
} alias(libs.plugins.dependency.analysis)
} }

View file

@ -3,8 +3,8 @@ import java.io.FileNotFoundException
import java.util.Properties import java.util.Properties
plugins { plugins {
id("com.android.library") alias(libs.plugins.android.library)
id("org.jetbrains.kotlin.android") alias(libs.plugins.kotlin.android)
} }
val acraProperties = Properties() val acraProperties = Properties()
@ -20,13 +20,12 @@ try {
android { android {
namespace = "com.wbrawner.simplemarkdown.core" namespace = "com.wbrawner.simplemarkdown.core"
compileSdk = 34 compileSdk = libs.versions.maxSdk.get().toInt()
defaultConfig { defaultConfig {
minSdk = 23 minSdk = libs.versions.minSdk.get().toInt()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
buildConfigField("String", "ACRA_URL", "\"${acraProperties["url"]}\"") buildConfigField("String", "ACRA_URL", "\"${acraProperties["url"]}\"")
buildConfigField("String", "ACRA_USER", "\"${acraProperties["user"]}\"") buildConfigField("String", "ACRA_USER", "\"${acraProperties["user"]}\"")
buildConfigField("String", "ACRA_PASS", "\"${acraProperties["pass"]}\"") buildConfigField("String", "ACRA_PASS", "\"${acraProperties["pass"]}\"")
@ -51,10 +50,9 @@ android {
} }
dependencies { dependencies {
val acraVersion = "5.11.3" implementation(libs.acra.core)
implementation("ch.acra:acra-core:$acraVersion") implementation(libs.acra.http)
implementation("ch.acra:acra-http:$acraVersion") runtimeOnly(libs.acra.limiter)
runtimeOnly("ch.acra:acra-limiter:$acraVersion") runtimeOnly(libs.acra.advanced.scheduler)
runtimeOnly("ch.acra:acra-advanced-scheduler:$acraVersion") api(libs.timber)
api("com.jakewharton.timber:timber:5.0.1")
} }

View file

@ -1,17 +1,17 @@
plugins { plugins {
id("com.android.library") alias(libs.plugins.android.library)
id("org.jetbrains.kotlin.android") alias(libs.plugins.kotlin.android)
alias(libs.plugins.compose.compiler)
} }
android { android {
namespace = "com.wbrawner.simplemarkdown.free" namespace = "com.wbrawner.simplemarkdown.free"
compileSdk = 34 compileSdk = libs.versions.maxSdk.get().toInt()
defaultConfig { defaultConfig {
minSdk = 23 minSdk = libs.versions.minSdk.get().toInt()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
} }
buildTypes { buildTypes {
@ -26,9 +26,6 @@ android {
buildFeatures { buildFeatures {
compose = true compose = true
} }
composeOptions {
kotlinCompilerExtensionVersion = "1.5.3"
}
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
@ -39,9 +36,9 @@ android {
} }
dependencies { dependencies {
implementation("com.jakewharton.timber:timber:5.0.1") implementation(libs.timber)
val composeBom = platform("androidx.compose:compose-bom:2023.08.00") val composeBom = enforcedPlatform(libs.compose.bom)
implementation(composeBom) implementation(composeBom)
androidTestImplementation(composeBom) androidTestImplementation(composeBom)
implementation("androidx.compose.runtime:runtime") implementation(libs.runtime)
} }

117
gradle/libs.versions.toml Normal file
View file

@ -0,0 +1,117 @@
[versions]
acra = "5.11.3"
activityKtx = "1.9.0"
animationCore = "1.6.8"
appcompat = "1.7.0"
billing = "7.0.0"
browser = "1.8.0"
commonMarkVersion = "0.22.0"
composeBom = "2024.06.00"
core = "1.6.1"
coreKtx = "1.13.1"
coreSplashscreen = "1.0.1"
coroutines = "1.7.3"
dependencyAnalysis = "1.31.0"
espressoVersion = "3.6.1"
fladle = "0.17.4"
googleServices = "4.4.2"
firebaseCrashlyticsGradle = "3.0.2"
androidGradlePlugin = "8.5.1"
hamcrestCore = "1.3"
junit = "4.13.2"
kotlin = "2.0.0"
lifecycleViewmodelKtx = "2.8.3"
material = "1.12.0"
material3WindowSizeClassAndroid = "1.2.1"
materialIconsCore = "1.6.8"
maxSdk = "35"
minSdk = "23"
monitor = "1.7.1"
navigationCommon = "2.7.7"
navigationRuntimeKtx = "2.7.7"
navigationVersion = "2.7.7"
orchestrator = "1.5.0"
play = "2.0.1"
preferenceKtx = "1.2.1"
robolectric = "4.2.1"
runner = "1.6.1"
syllableCounter = "4.0.2"
timber = "5.0.1"
tripletPlay = "3.8.4"
[libraries]
acra-advanced-scheduler = { module = "ch.acra:acra-advanced-scheduler", version.ref = "acra" }
acra-core = { module = "ch.acra:acra-core", version.ref = "acra" }
acra-limiter = { module = "ch.acra:acra-limiter", version.ref = "acra" }
acra-http = { module = "ch.acra:acra-http", version.ref = "acra" }
androidx-activity-compose = { module = "androidx.activity:activity-compose" }
androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "activityKtx" }
androidx-animation = { module = "androidx.compose.animation:animation", version.ref = "animationCore" }
androidx-animation-core = { module = "androidx.compose.animation:animation-core", version.ref = "animationCore" }
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
androidx-browser = { module = "androidx.browser:browser", version.ref = "browser" }
androidx-compose-runtime-runtime = { module = "androidx.compose.runtime:runtime" }
androidx-core = { module = "androidx.test:core", version.ref = "core" }
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" }
androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "coreSplashscreen" }
androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espressoVersion" }
androidx-espresso-intents = { module = "androidx.test.espresso:espresso-intents", version.ref = "espressoVersion" }
androidx-espresso-web = { module = "androidx.test.espresso:espresso-web", version.ref = "espressoVersion" }
androidx-foundation = { module = "androidx.compose.foundation:foundation" }
androidx-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" }
androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" }
androidx-material-icons-core = { module = "androidx.compose.material:material-icons-core", version.ref = "materialIconsCore" }
androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" }
androidx-material3 = { module = "androidx.compose.material3:material3" }
androidx-material3-windowsizeclass = { module = "androidx.compose.material3:material3-window-size-class-android", version.ref = "material3WindowSizeClassAndroid" }
androidx-monitor = { module = "androidx.test:monitor", version.ref = "monitor" }
androidx-navigation-common = { module = "androidx.navigation:navigation-common", version.ref = "navigationCommon" }
androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigationVersion" }
androidx-navigation-runtime-ktx = { module = "androidx.navigation:navigation-runtime-ktx", version.ref = "navigationRuntimeKtx" }
androidx-orchestrator = { module = "androidx.test:orchestrator", version.ref = "orchestrator" }
androidx-preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preferenceKtx" }
androidx-runner = { module = "androidx.test:runner", version.ref = "runner" }
androidx-runtime = { module = "androidx.compose.runtime:runtime" }
androidx-ui = { module = "androidx.compose.ui:ui" }
androidx-ui-graphics = { module = "androidx.compose.ui:ui-graphics" }
androidx-ui-test = { module = "androidx.compose.ui:ui-test" }
androidx-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" }
androidx-ui-text = { module = "androidx.compose.ui:ui-text" }
androidx-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
androidx-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
androidx-ui-unit = { module = "androidx.compose.ui:ui-unit" }
billing = { module = "com.android.billingclient:billing", version.ref = "billing" }
commonmark = { module = "org.commonmark:commonmark", version.ref = "commonMarkVersion" }
commonmark-ext-autolink = { module = "org.commonmark:commonmark-ext-autolink", version.ref = "commonMarkVersion" }
commonmark-ext-gfm-strikethrough = { module = "org.commonmark:commonmark-ext-gfm-strikethrough", version.ref = "commonMarkVersion" }
commonmark-ext-gfm-tables = { module = "org.commonmark:commonmark-ext-gfm-tables", version.ref = "commonMarkVersion" }
commonmark-ext-heading-anchor = { module = "org.commonmark:commonmark-ext-heading-anchor", version.ref = "commonMarkVersion" }
commonmark-ext-image-attributes = { module = "org.commonmark:commonmark-ext-image-attributes", version.ref = "commonMarkVersion" }
commonmark-ext-task-list-items = { module = "org.commonmark:commonmark-ext-task-list-items", version.ref = "commonMarkVersion" }
commonmark-ext-yaml-front-matter = { module = "org.commonmark:commonmark-ext-yaml-front-matter", version.ref = "commonMarkVersion" }
compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBom" }
foundation = { module = "androidx.compose.foundation:foundation" }
foundation-layout = { module = "androidx.compose.foundation:foundation-layout" }
hamcrest-core = { module = "org.hamcrest:hamcrest-core", version.ref = "hamcrestCore" }
junit = { module = "junit:junit", version.ref = "junit" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
material = { module = "com.google.android.material:material", version.ref = "material" }
material3 = { module = "androidx.compose.material3:material3" }
play-review-ktx = { module = "com.google.android.play:review-ktx", version.ref = "play" }
robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" }
runtime = { module = "androidx.compose.runtime:runtime" }
syllable-counter = { module = "eu.crydee:syllable-counter", version.ref = "syllableCounter" }
timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
dependency-analysis = { id = "com.autonomousapps.dependency-analysis", version.ref = "dependencyAnalysis" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlyticsGradle" }
fladle = { id = "com.osacky.fladle", version.ref = "fladle" }
google-services = { id = "com.google.gms.google-services", version.ref = "googleServices" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
triplet-play = { id = "com.github.triplet.play", version.ref = "tripletPlay" }

View file

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip

View file

@ -1,17 +1,17 @@
plugins { plugins {
id("com.android.library") alias(libs.plugins.android.library)
id("org.jetbrains.kotlin.android") alias(libs.plugins.kotlin.android)
alias(libs.plugins.compose.compiler)
} }
android { android {
namespace = "com.wbrawner.simplemarkdown" namespace = "com.wbrawner.simplemarkdown.nonfree"
compileSdk = 34 compileSdk = libs.versions.maxSdk.get().toInt()
defaultConfig { defaultConfig {
minSdk = 23 minSdk = libs.versions.minSdk.get().toInt()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
} }
buildTypes { buildTypes {
@ -30,29 +30,26 @@ android {
buildFeatures { buildFeatures {
compose = true compose = true
} }
composeOptions {
kotlinCompilerExtensionVersion = "1.5.3"
}
kotlinOptions { kotlinOptions {
jvmTarget = "1.8" jvmTarget = "1.8"
} }
} }
dependencies { dependencies {
implementation("androidx.core:core-ktx:1.13.1") implementation(libs.androidx.core.ktx)
implementation("com.android.billingclient:billing:6.0.1") implementation(libs.billing)
api("com.jakewharton.timber:timber:5.0.1") api(libs.timber)
val composeBom = platform("androidx.compose:compose-bom:2023.08.00") val composeBom = enforcedPlatform(libs.compose.bom)
implementation(composeBom) implementation(composeBom)
androidTestImplementation(composeBom) androidTestImplementation(composeBom)
implementation("androidx.compose.runtime:runtime") implementation(libs.androidx.compose.runtime.runtime)
implementation("androidx.compose.ui:ui") implementation(libs.androidx.ui)
implementation("androidx.compose.foundation:foundation") implementation(libs.foundation)
implementation("androidx.compose.foundation:foundation-layout") implementation(libs.foundation.layout)
implementation("androidx.compose.ui:ui-graphics") implementation(libs.androidx.ui.graphics)
implementation("androidx.compose.ui:ui-text") implementation(libs.androidx.ui.text)
implementation("androidx.preference:preference-ktx:1.2.1") implementation(libs.androidx.preference.ktx)
implementation("com.google.android.play:core:1.10.3") implementation(libs.play.review.ktx)
implementation("androidx.compose.ui:ui-tooling") implementation(libs.androidx.ui.tooling)
implementation("androidx.compose.material3:material3") implementation(libs.material3)
} }

View file

@ -21,7 +21,7 @@ import com.android.billingclient.api.BillingResult
import com.android.billingclient.api.ConsumeParams import com.android.billingclient.api.ConsumeParams
import com.android.billingclient.api.ProductDetails import com.android.billingclient.api.ProductDetails
import com.android.billingclient.api.QueryProductDetailsParams import com.android.billingclient.api.QueryProductDetailsParams
import com.wbrawner.simplemarkdown.R import com.wbrawner.simplemarkdown.nonfree.R
import timber.log.Timber import timber.log.Timber
@Composable @Composable

View file

@ -1 +1,15 @@
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
include(":app", ":core", ":free", "non-free") include(":app", ":core", ":free", "non-free")