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
26 changes: 23 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,12 @@ plugins {
id 'org.jetbrains.kotlin.plugin.serialization'
// enable if needed
// id 'dev.reformator.stacktracedecoroutinator'

id 'io.sentry.android.gradle' version '6.1.0'
alias(libs.plugins.compose.compiler)
}

android {
compileSdk = 36
buildToolsVersion = '35.0.0'
namespace = 'io.github.landwarderer.futon'

dependenciesInfo {
Expand Down Expand Up @@ -78,6 +77,7 @@ android {
buildFeatures {
viewBinding true
buildConfig true
compose true
}
packagingOptions {
resources {
Expand All @@ -86,7 +86,10 @@ android {
'META-INF/NOTICE.md'
]
}
}
jniLibs {
useLegacyPackaging true
}
}
sourceSets {
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
main.java.srcDirs += 'src/main/kotlin/'
Expand Down Expand Up @@ -149,6 +152,10 @@ dependencies {
exclude group: 'org.json', module: 'json'
}

def composeBom = platform(libs.compose.bom)
implementation composeBom
androidTestImplementation composeBom

coreLibraryDesugaring libs.desugar.jdk.libs
implementation libs.kotlin.stdlib
implementation libs.kotlinx.coroutines.android
Expand Down Expand Up @@ -217,9 +224,21 @@ dependencies {
implementation libs.conscrypt.android
implementation libs.sentry.android

implementation libs.compose.material3
implementation libs.compose.foundation
implementation libs.compose.ui
implementation libs.compose.ui.tooling.preview
implementation libs.compose.material3.adaptive
implementation libs.androidx.activity.compose
implementation libs.androidx.lifecycle.viewmodel.compose
implementation libs.compose.runtime.livedata
implementation libs.compose.runtime.rxjava2

debugImplementation libs.leakcanary.android
nightlyImplementation libs.leakcanary.android
debugImplementation libs.workinspector
debugImplementation libs.compose.ui.tooling
debugImplementation libs.compose.ui.test.manifest

testImplementation libs.junit
testImplementation libs.json
Expand All @@ -229,6 +248,7 @@ dependencies {
androidTestImplementation libs.androidx.rules
androidTestImplementation libs.androidx.test.core
androidTestImplementation libs.androidx.junit
androidTestImplementation libs.compose.ui.test.junit4

androidTestImplementation libs.kotlinx.coroutines.test

Expand Down
3 changes: 1 addition & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,7 @@
android:backupAgent="io.github.landwarderer.futon.backups.domain.AppBackupAgent"
android:dataExtractionRules="@xml/backup_rules"
android:enableOnBackInvokedCallback="@bool/is_predictive_back_enabled"
android:extractNativeLibs="true"
android:fullBackupContent="@xml/backup_content"
android:fullBackupContent="@xml/backup_content"
android:fullBackupOnly="true"
android:hasFragileUserData="true"
android:restoreAnyVersion="true"
Expand Down
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ plugins {
alias(libs.plugins.room) apply false
alias(libs.plugins.kotlinx.serizliation) apply false
// alias(libs.plugins.decoroutinator) apply false
alias(libs.plugins.compose.compiler) apply false
}
12 changes: 10 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
# org.gradle.parallel=true
#Thu Mar 26 21:41:29 IST 2026
android.enableJetifier=false
android.enableR8.fullMode=true
android.nonFinalResIds=true
android.nonTransitiveRClass=true
android.useAndroidX=true
kotlin.code.style=official
Expand All @@ -25,3 +23,13 @@ org.gradle.workers.max=8
org.gradle.caching=true
org.gradle.configuration-cache=true
kotlin.incremental=true
android.defaults.buildfeatures.resvalues=true
android.sdk.defaultTargetSdkToCompileSdkIfUnset=false
android.enableAppCompileTimeRClass=false
android.usesSdkInManifest.disallowed=false
android.uniquePackageNames=false
android.dependency.useConstraints=true
android.r8.strictFullModeForKeepRules=false
android.r8.optimizedResourceShrinking=false
android.builtInKotlin=false
android.newDsl=false
21 changes: 19 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ desugar = "2.1.5"
diskLruCache = "1.5"
documentfile = "1.1.0"
fragment = "1.8.9"
gradle = "8.13.2"
gradle = "9.1.1"
guava = "33.4.8-android"
hilt = "1.3.0"
json = "20250517"
junit = "4.13.2"
junitKtx = "1.3.0"
kotlin = "2.2.10"
kizzyRpc = "ad8f2e32eb"
ksp = "2.2.10-2.0.2"
ksp = "2.3.2"
leakcanary = "3.0-alpha-8"
lifecycle = "2.9.4"
markwon = "4.6.2"
Expand All @@ -53,6 +53,9 @@ webkit = "1.14.0"
workRuntime = "2.10.5"
workinspector = "1.2"
window = "1.3.0"
composeBom = "2026.03.00"
activityCompose = "1.13.0"
lifecycleViewmodelCompose = "2.10.0"

[libraries]
adapterdelegates = { module = "com.hannesdorfmann:adapterdelegates4-kotlin-dsl", version.ref = "adapterdelegates" }
Expand Down Expand Up @@ -124,6 +127,19 @@ ssiv = { module = "com.github.AppFuton:subsampling-scale-image-view", version.re
workinspector = { module = "com.github.Koitharu:WorkInspector", version.ref = "workinspector" }
androidx-window = { module = "androidx.window:window", version.ref = "window" }
injekt-core = { module = "uy.kohesive.injekt:injekt-core", version = "1.16.1" }
compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBom" }
compose-ui = { module = "androidx.compose.ui:ui" }
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
compose-foundation = { module = "androidx.compose.foundation:foundation" }
compose-material3 = { module = "androidx.compose.material3:material3" }
compose-material3-adaptive = { module = "androidx.compose.material3.adaptive:adaptive" }
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityCompose" }
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycleViewmodelCompose" }
compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" }
compose-runtime-rxjava2 = { module = "androidx.compose.runtime:runtime-rxjava2" }
compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" }
compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" }

[plugins]
android-application = { id = "com.android.application", version.ref = "gradle" }
Expand All @@ -133,3 +149,4 @@ kotlinx-serizliation = { id = "org.jetbrains.kotlin.plugin.serialization", versi
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
room = { id = "androidx.room", version.ref = "room" }
decoroutinator = { id = "dev.reformator.stacktracedecoroutinator", version.ref = "decoroutinator" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=8fad3d78296ca518113f3d29016617c7f9367dc005f932bd9d93bf45ba46072b
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
distributionSha256Sum=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Loading