Merge pull request #7414 from thunderbird/bump_dependencies

Bump dependencies
This commit is contained in:
Wolf-Martell Montwé 2023-12-07 12:42:05 +00:00 committed by GitHub
commit c04e7de4b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 106 additions and 84 deletions

View file

@ -15,7 +15,6 @@ max_line_length = 120
ij_kotlin_imports_layout = *,^
ij_kotlin_allow_trailing_comma = true
ij_kotlin_allow_trailing_comma_on_call_site = true
ktlint_ignore_back_ticked_identifier = true
[*.{yml,yaml,json,toml,md}]
indent_size = 2

View file

@ -508,7 +508,9 @@ object K9 : EarlyInit {
@Suppress("ktlint:standard:class-naming")
enum class BACKGROUND_OPS {
ALWAYS, NEVER, WHEN_CHECKED_AUTO_SYNC
ALWAYS,
NEVER,
WHEN_CHECKED_AUTO_SYNC,
}
/**

View file

@ -26,7 +26,8 @@ class NotificationChannelManager(
val miscellaneousChannelId = "misc"
enum class ChannelType {
MESSAGES, MISCELLANEOUS
MESSAGES,
MISCELLANEOUS,
}
init {

View file

@ -14,44 +14,6 @@ import com.fsck.k9.mailstore.MimePartStreamParser
import org.junit.Test
class AutocryptGossipHeaderParserTest {
val GOSSIP_DATA_BOB = Base64.decodeBase64(
"""
mQGNBFoBt74BDAC8AMsjPY17kxodbfmHah38ZQipY0yfuo97WUBs2jeiFYlQdunPANi5VMgbAX+H
Mq1XoBRs6qW+WpX8Uj11mu22c57BTUXJRbRr4TnTuuOQmT0egwFDe3x8vHSFmcf9OzG8iKR9ftUE
+F2ewrzzmm3XY8hy7QeUgBfClZVA6A3rsX4gGawjDo6ZRBbYwckINgGX/vQk6rGs
""".trimIndent().toByteArray(),
)
val GOSSIP_HEADER_BOB =
"""
|addr=bob@autocrypt.example; keydata=
| mQGNBFoBt74BDAC8AMsjPY17kxodbfmHah38ZQipY0yfuo97WUBs2jeiFYlQdunPANi5VMgbAX+H
| Mq1XoBRs6qW+WpX8Uj11mu22c57BTUXJRbRr4TnTuuOQmT0egwFDe3x8vHSFmcf9OzG8iKR9ftUE
| +F2ewrzzmm3XY8hy7QeUgBfClZVA6A3rsX4gGawjDo6ZRBbYwckINgGX/vQk6rGs
""".trimMargin()
val GOSSIP_RAW_HEADER_BOB = "Autocrypt-Gossip: $GOSSIP_HEADER_BOB".crlf()
// Example from Autocrypt 1.0 appendix
val GOSSIP_PART =
"""
|Autocrypt-Gossip: $GOSSIP_HEADER_BOB
|Autocrypt-Gossip: addr=carol@autocrypt.example; keydata=
| mQGNBFoBt8oBDADGqfZ6PqW05hUEO1dkKm+ixJXnbVriPz2tRkAqT7lTF4KBGitxo4IPv9RPIjJR
| UMUo89ddyqQfiwKxdFCMDqFDnVRWlDaM+r8sauNJoIFwtTFuvUpkFeCI5gYvneEIIbf1r3Xx1pf5
| Iy9qsd5eg/4Vvc2AezUv+A6p2DUNHgFMX2FfDus+EPO0wgeWbNaV601aE7UhyugB
|Content-Type: text/plain
|
|Hi Bob and Carol,
|
|I wanted to introduce the two of you to each other.
|
|I hope you are both doing well! You can now both "reply all" here,
|and the thread will remain encrypted.
|
|Regards,
|Alice
""".trimMargin().crlf()
private val autocryptGossipHeaderParser = AutocryptGossipHeaderParser.getInstance()
@ -115,4 +77,45 @@ class AutocryptGossipHeaderParserTest {
assertThat(gossipHeader).isNull()
}
private companion object {
val GOSSIP_DATA_BOB: ByteArray = Base64.decodeBase64(
"""
mQGNBFoBt74BDAC8AMsjPY17kxodbfmHah38ZQipY0yfuo97WUBs2jeiFYlQdunPANi5VMgbAX+H
Mq1XoBRs6qW+WpX8Uj11mu22c57BTUXJRbRr4TnTuuOQmT0egwFDe3x8vHSFmcf9OzG8iKR9ftUE
+F2ewrzzmm3XY8hy7QeUgBfClZVA6A3rsX4gGawjDo6ZRBbYwckINgGX/vQk6rGs
""".trimIndent().toByteArray(),
)
val GOSSIP_HEADER_BOB =
"""
|addr=bob@autocrypt.example; keydata=
| mQGNBFoBt74BDAC8AMsjPY17kxodbfmHah38ZQipY0yfuo97WUBs2jeiFYlQdunPANi5VMgbAX+H
| Mq1XoBRs6qW+WpX8Uj11mu22c57BTUXJRbRr4TnTuuOQmT0egwFDe3x8vHSFmcf9OzG8iKR9ftUE
| +F2ewrzzmm3XY8hy7QeUgBfClZVA6A3rsX4gGawjDo6ZRBbYwckINgGX/vQk6rGs
""".trimMargin()
val GOSSIP_RAW_HEADER_BOB = "Autocrypt-Gossip: $GOSSIP_HEADER_BOB".crlf()
// Example from Autocrypt 1.0 appendix
val GOSSIP_PART =
"""
|Autocrypt-Gossip: $GOSSIP_HEADER_BOB
|Autocrypt-Gossip: addr=carol@autocrypt.example; keydata=
| mQGNBFoBt8oBDADGqfZ6PqW05hUEO1dkKm+ixJXnbVriPz2tRkAqT7lTF4KBGitxo4IPv9RPIjJR
| UMUo89ddyqQfiwKxdFCMDqFDnVRWlDaM+r8sauNJoIFwtTFuvUpkFeCI5gYvneEIIbf1r3Xx1pf5
| Iy9qsd5eg/4Vvc2AezUv+A6p2DUNHgFMX2FfDus+EPO0wgeWbNaV601aE7UhyugB
|Content-Type: text/plain
|
|Hi Bob and Carol,
|
|I wanted to introduce the two of you to each other.
|
|I hope you are both doing well! You can now both "reply all" here,
|and the thread will remain encrypted.
|
|Regards,
|Alice
""".trimMargin().crlf()
}
}

View file

@ -48,12 +48,13 @@ class K9NotificationResourceProvider(private val context: Context) : Notificatio
override fun certificateErrorBody(): String = context.getString(R.string.notification_certificate_error_text)
override fun newMessagesTitle(newMessagesCount: Int): String =
context.resources.getQuantityString(
override fun newMessagesTitle(newMessagesCount: Int): String {
return context.resources.getQuantityString(
R.plurals.notification_new_messages_title,
newMessagesCount,
newMessagesCount,
)
}
override fun additionalMessages(overflowMessagesCount: Int, accountName: String): String =
context.getString(R.string.notification_additional_messages, overflowMessagesCount, accountName)
@ -77,11 +78,9 @@ class K9NotificationResourceProvider(private val context: Context) : Notificatio
override fun checkingMailTicker(accountName: String, folderName: String): String =
context.getString(R.string.notification_bg_sync_ticker, accountName, folderName)
override fun checkingMailTitle(): String =
context.getString(R.string.notification_bg_sync_title)
override fun checkingMailTitle(): String = context.getString(R.string.notification_bg_sync_title)
override fun checkingMailSeparator(): String =
context.getString(R.string.notification_bg_title_separator)
override fun checkingMailSeparator(): String = context.getString(R.string.notification_bg_title_separator)
override fun actionMarkAsRead(): String = context.getString(R.string.notification_action_mark_as_read)

View file

@ -1372,7 +1372,9 @@ open class MessageList :
}
private enum class DisplayMode {
MESSAGE_LIST, MESSAGE_VIEW, SPLIT_VIEW
MESSAGE_LIST,
MESSAGE_VIEW,
SPLIT_VIEW,
}
private class LaunchData(

View file

@ -762,6 +762,9 @@ class RecipientPresenter(
}
enum class CryptoMode {
SIGN_ONLY, NO_CHOICE, CHOICE_DISABLED, CHOICE_ENABLED
SIGN_ONLY,
NO_CHOICE,
CHOICE_DISABLED,
CHOICE_ENABLED,
}
}

View file

@ -2046,7 +2046,8 @@ class MessageListFragment :
}
private enum class FolderOperation {
COPY, MOVE
COPY,
MOVE,
}
private enum class Error(@StringRes val errorText: Int) {

View file

@ -986,7 +986,8 @@ class MessageViewFragment :
}
private enum class FolderOperation {
COPY, MOVE
COPY,
MOVE,
}
companion object {

View file

@ -46,9 +46,7 @@ internal fun CommonExtension<*, *, *, *, *>.configureSharedConfig() {
}
}
internal fun CommonExtension<*, *, *, *, *>.configureSharedComposeConfig(
libs: LibrariesForLibs,
) {
internal fun CommonExtension<*, *, *, *, *>.configureSharedComposeConfig(libs: LibrariesForLibs) {
buildFeatures {
compose = true
}
@ -63,9 +61,7 @@ internal fun CommonExtension<*, *, *, *, *>.configureSharedComposeConfig(
}
}
internal fun DependencyHandler.configureSharedComposeDependencies(
libs: LibrariesForLibs,
) {
internal fun DependencyHandler.configureSharedComposeDependencies(libs: LibrariesForLibs) {
val composeBom = platform(libs.androidx.compose.bom)
implementation(composeBom)
androidTestImplementation(composeBom)

View file

@ -19,7 +19,7 @@ configure<DetektExtension> {
tasks.withType<Detekt>().configureEach {
jvmTarget = ThunderbirdProjectConfig.javaCompatibilityVersion.toString()
exclude(DEFAULT_EXCLUDES)
exclude(defaultExcludes)
reports {
html.required.set(true)
@ -31,14 +31,14 @@ tasks.withType<Detekt>().configureEach {
tasks.withType<DetektCreateBaselineTask>().configureEach {
jvmTarget = ThunderbirdProjectConfig.javaCompatibilityVersion.toString()
exclude(DEFAULT_EXCLUDES)
exclude(defaultExcludes)
}
dependencies {
detektPlugins(libs.detekt.plugin.compose)
}
val DEFAULT_EXCLUDES = listOf(
val defaultExcludes = listOf(
"**/.gradle/**",
"**/.idea/**",
"**/build/**",

View file

@ -7,12 +7,15 @@ plugins {
configure<SpotlessExtension> {
kotlin {
ktlint(libs.versions.ktlint.get())
.userData(mapOf("android" to "true"))
.setEditorConfigPath("$projectDir/.editorconfig")
.editorConfigOverride(editorConfigOverride)
target("**/*.kt")
targetExclude("**/build/", "**/resources/", "plugins/openpgp-api-lib/")
}
kotlinGradle {
ktlint(libs.versions.ktlint.get())
.setEditorConfigPath("$projectDir/.editorconfig")
.editorConfigOverride(editorConfigOverride)
target("**/*.gradle.kts")
targetExclude("**/build/")
}
@ -26,3 +29,11 @@ configure<SpotlessExtension> {
trimTrailingWhitespace()
}
}
val editorConfigOverride = mapOf(
"ktlint_function_naming_ignore_when_annotated_with" to "Composable",
"ktlint_standard_property-naming" to "disabled",
"ktlint_standard_function-signature" to "disabled",
"ktlint_standard_parameter-list-spacing" to "disabled",
"ktlint_ignore_back_ticked_identifier" to "true",
)

View file

@ -40,7 +40,9 @@ fun ContentLoadingErrorView(
}
enum class ContentLoadingErrorState {
Loading, Content, Error
Loading,
Content,
Error,
}
@Composable

View file

@ -2,21 +2,22 @@
android.useAndroidX=true
android.enableJetifier=false
android.nonTransitiveRClass=true
## Disable buildFeatures flags by default
android.defaults.buildfeatures.aidl=false
android.defaults.buildfeatures.buildconfig=false
android.defaults.buildfeatures.renderscript=false
android.defaults.buildfeatures.resvalues=false
android.defaults.buildfeatures.shaders=false
# Gradle
## Ensure important default jvmargs aren't overwritten. See https://github.com/gradle/gradle/issues/19750
org.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=false
org.gradle.kotlin.dsl.allWarningsAsErrors=true
## Workaround for AGP still using old versions of xerces and having issues with Gradle > 8.3
## https://docs.gradle.org/current/userguide/upgrading_version_8.html#xml_parsing_now_requires_recent_parsers
## remove once AGP is updated and uses a newer version XML parser
systemProp.javax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
systemProp.javax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl
systemProp.javax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl

View file

@ -2,15 +2,15 @@
# Please don't open pull requests upgrading dependencies if you're a new contributor.
[versions]
gradle = "8.4"
androidGradlePlugin = "8.1.2"
ktlint = "0.50.0"
gradle = "8.5"
androidGradlePlugin = "8.1.4"
ktlint = "1.0.1"
kotlin = "1.9.10"
kotlin = "1.9.20"
kotlinxCoroutines = "1.7.3"
jetbrainsAnnotations = "24.0.1"
androidxAppCompat = "1.6.1"
androidxActivity = "1.8.0"
androidxActivity = "1.8.1"
androidxRecyclerView = "1.3.2"
androidxLifecycle = "2.6.2"
androidxNavigation = "2.7.5"
@ -21,7 +21,7 @@ androidxCoreSplashscreen = "1.0.1"
androidxPreference = "1.2.1"
androidxDrawerLayout = "1.1.1"
androidxTransition = "1.4.1"
androidxComposeCompiler = "1.5.3"
androidxComposeCompiler = "1.5.5"
# https://developer.android.com/jetpack/compose/bom/bom-mapping
androidxComposeBom = "2023.10.01"
androidxComposeMaterial = "1.5.4"
@ -38,29 +38,29 @@ mime4j = "0.8.9"
okhttp = "4.12.0"
glide = "4.16.0"
moshi = "1.15.0"
mockito = "5.6.0"
mockito = "5.8.0"
[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }
android-lint = { id = "com.android.lint", version.ref = "androidGradlePlugin" }
ksp = "com.google.devtools.ksp:1.9.10-1.0.13"
ksp = "com.google.devtools.ksp:1.9.20-1.0.14"
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
spotless = "com.diffplug.spotless:6.22.0"
detekt = "io.gitlab.arturbosch.detekt:1.23.2"
dependency-check = "com.github.ben-manes.versions:0.48.0"
spotless = "com.diffplug.spotless:6.23.3"
detekt = "io.gitlab.arturbosch.detekt:1.23.4"
dependency-check = "com.github.ben-manes.versions:0.50.0"
[libraries]
desugar = "com.android.tools:desugar_jdk_libs:2.0.3"
desugar = "com.android.tools:desugar_jdk_libs:2.0.4"
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" }
kotlinx-datetime = "org.jetbrains.kotlinx:kotlinx-datetime:0.4.1"
kotlinx-datetime = "org.jetbrains.kotlinx:kotlinx-datetime:0.5.0"
kotlinx-collections-immutable = "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.6"
jetbrains-annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrainsAnnotations" }
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidxAppCompat" }
@ -147,7 +147,7 @@ kxml2 = "com.github.cketti:kxml2-extracted-from-android:1.0"
junit = "junit:junit:4.13.2"
robolectric = "org.robolectric:robolectric:4.11.1"
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" }
mockito-kotlin = "org.mockito.kotlin:mockito-kotlin:5.1.0"
mockito-kotlin = "org.mockito.kotlin:mockito-kotlin:5.2.1"
turbine = "app.cash.turbine:turbine:0.13.0"
jdom2 = "org.jdom:jdom2:2.0.6.1"
icu4j-charset = "com.ibm.icu:icu4j-charset:72.1"
@ -155,7 +155,7 @@ assertk = "com.willowtreeapps.assertk:assertk-jvm:0.27.0"
leakcanary-android = "com.squareup.leakcanary:leakcanary-android:2.9.1"
detekt-plugin-compose = "io.nlopez.compose.rules:detekt:0.3.2"
detekt-plugin-compose = "io.nlopez.compose.rules:detekt:0.3.5"
[bundles]
shared-jvm-main = [

Binary file not shown.

View file

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

View file

@ -196,6 +196,7 @@ internal object DecoderUtil {
}
private enum class Encoding {
Q, B
Q,
B,
}
}