Various fixes for 1.0 release #3
10 changed files with 251 additions and 145 deletions
|
@ -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"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)};
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
|
@ -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")
|
|
||||||
}
|
}
|
|
@ -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
117
gradle/libs.versions.toml
Normal 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" }
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
|
@ -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
|
||||||
|
|
|
@ -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")
|
||||||
|
|
Loading…
Reference in a new issue