1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
[versions]
agp = "8.5.1"
androidxActivity = "1.9.1"
bouncycastle = "1.78.1"
coroutines = "1.8.1"
flowbinding = "1.2.0"
hilt = "2.51.1"
kotlin = "2.0.0"
kotlinResult = "2.0.0"
lifecycle = "2.8.4"
moshi = "1.15.1"
[libraries]
android-desugarJdkLibs = "com.android.tools:desugar_jdk_libs:2.0.4"
androidx-activity = { module = "androidx.activity:activity", version.ref = "androidxActivity" }
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidxActivity" }
androidx-annotation = "androidx.annotation:annotation:1.8.1"
androidx-appcompat = "androidx.appcompat:appcompat:1.7.0"
androidx-autofill = "androidx.autofill:autofill:1.3.0-alpha01"
androidx-biometricKtx = "androidx.biometric:biometric-ktx:1.2.0-alpha05"
androidx-constraintlayout = "androidx.constraintlayout:constraintlayout:2.2.0-alpha13"
androidx-core-ktx = "androidx.core:core-ktx:1.13.1"
androidx-documentfile = "androidx.documentfile:documentfile:1.1.0-alpha01"
androidx-fragment-ktx = "androidx.fragment:fragment-ktx:1.8.2"
androidx-lifecycle-common = { module = "androidx.lifecycle:lifecycle-common", version.ref = "lifecycle" }
androidx-lifecycle-livedataKtx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycle" }
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" }
androidx-lifecycle-viewmodelKtx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
androidx-material = "com.google.android.material:material:1.12.0"
androidx-preference = "androidx.preference:preference:1.2.1"
androidx-recyclerview = "androidx.recyclerview:recyclerview:1.4.0-alpha01"
androidx-recyclerviewSelection = "androidx.recyclerview:recyclerview-selection:1.2.0-alpha01"
androidx-security = "androidx.security:security-crypto-ktx:1.1.0-alpha06"
androidx-swiperefreshlayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01"
aps-sublimeFuzzy = "com.github.android-password-store:sublime-fuzzy:2.3.4"
aps-zxingAndroidEmbedded = "com.github.android-password-store:zxing-android-embedded:4.2.1"
build-agp = { module = "com.android.tools.build:gradle", version.ref = "agp" }
build-diffutils = "io.github.java-diff-utils:java-diff-utils:4.12"
build-download = "de.undercouch:gradle-download-task:5.6.0"
build-javapoet = "com.squareup:javapoet:1.13.0"
build-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
build-ktfmt = "com.facebook:ktfmt:0.51"
build-mavenpublish = "com.vanniktech:gradle-maven-publish-plugin:0.29.0"
build-metalava = "me.tylerbwong.gradle.metalava:plugin:0.3.5"
build-moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" }
build-moshi-kotlin = { module = "com.squareup.moshi:moshi-kotlin", version.ref = "moshi" }
build-okhttp = "com.squareup.okhttp3:okhttp:5.0.0-alpha.14"
build-r8 = "com.android.tools:r8:8.4.6-dev"
build-semver = "com.github.zafarkhaja:java-semver:0.10.2"
build-sentry = "io.sentry.android.gradle:io.sentry.android.gradle.gradle.plugin:4.10.0"
build-vcu = "nl.littlerobots.version-catalog-update:nl.littlerobots.version-catalog-update.gradle.plugin:0.8.4"
compose-bom = "androidx.compose:compose-bom:2024.06.00"
compose-foundation-core = { module = "androidx.compose.foundation:foundation" }
compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" }
compose-material3 = { module = "androidx.compose.material3:material3" }
compose-ui-core = { module = "androidx.compose.ui:ui" }
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
dagger-hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" }
dagger-hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" }
dagger-hilt-core = { module = "com.google.dagger:hilt-core", version.ref = "hilt" }
kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "kotlin" }
kotlinx-collections-immutable = "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7"
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" }
testing-junit = "junit:junit:4.13.2"
testing-kotlintest-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
testing-robolectric = "org.robolectric:robolectric:4.13"
testing-sharedPrefsMock = "com.github.android-password-store:shared-preferences-fake:2.0.0"
testing-testparameterinjector = "com.google.testparameterinjector:test-parameter-injector:1.16"
testing-turbine = "app.cash.turbine:turbine:1.1.0"
thirdparty-bouncycastle-bcprov = { module = "org.bouncycastle:bcprov-jdk18on", version.ref = "bouncycastle" }
thirdparty-bouncycastle-bcutil = { module = "org.bouncycastle:bcutil-jdk18on", version.ref = "bouncycastle" }
# We're fine with the current version.
# noinspection GradleDependency
thirdparty-commons_codec = "commons-codec:commons-codec:1.14"
thirdparty-compose-lints = "com.slack.lint.compose:compose-lint-checks:1.3.1"
thirdparty-eddsa = "net.i2p.crypto:eddsa:0.3.0"
thirdparty-fastscroll = "me.zhanghai.android.fastscroll:library:1.3.0"
thirdparty-flowbinding-android = { module = "io.github.reactivecircus.flowbinding:flowbinding-android", version.ref = "flowbinding" }
# JGit upgrades also raise its minimum Java runtime requirements that we cannot satisfy on Android
# noinspection GradleDependency
thirdparty-jgit = "org.eclipse.jgit:org.eclipse.jgit:4.5.7.201904151645-r"
thirdparty-kotlinResult = { module = "com.michael-bull.kotlin-result:kotlin-result", version.ref = "kotlinResult" }
thirdparty-kotlinResult-coroutines = { module = "com.michael-bull.kotlin-result:kotlin-result-coroutines", version.ref = "kotlinResult" }
thirdparty-leakcanary-plumber = "com.squareup.leakcanary:plumber-android-startup:2.14"
thirdparty-logcat = "com.squareup.logcat:logcat:0.1"
thirdparty-modernAndroidPrefs = "de.maxr1998:modernandroidpreferences:2.4.0-beta2"
thirdparty-nonfree-googlePlayAuthApiPhone = "com.google.android.gms:play-services-auth-api-phone:18.1.0"
thirdparty-nonfree-sentry = "io.sentry:sentry-android:7.12.0"
thirdparty-pgpainless = "org.pgpainless:pgpainless-core:1.6.7"
thirdparty-slack-lints = "com.slack.lint:slack-lint-checks:0.7.4"
thirdparty-slf4j-api = { module = "org.slf4j:slf4j-api", version = { strictly = "[1.7, 1.8[", prefer = "1.7.36" } }
thirdparty-sshj = "com.hierynomus:sshj:0.38.0"
thirdparty-uri = "com.eygraber:uri-kmp:0.0.18"
[bundles]
androidxLifecycle = [
"androidx-lifecycle-common",
"androidx-lifecycle-livedataKtx",
"androidx-lifecycle-viewmodelKtx",
]
testDependencies = [
"testing-junit",
"testing-kotlintest-junit",
]
[plugins]
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
kotlin-composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|