Update AboutLibraries and other dependencies (#1760)

Update dependencies and modify AboutActivity to use dynamic library loading

- Remove outdated aboutlibraries.json
- Update AboutActivity to dynamically load libraries using LocalContext
- Replace InvalidRemoteResourceException with InvalidICalendarException in sync managers
- Bump dependency versions for various libraries including mikepenz-aboutLibraries, okhttp, and unifiedpush
- Adjust build.gradle.kts and gradle/libs.versions.toml for new plugin and library versions
This commit is contained in:
Ricki Hirner
2025-10-18 09:12:41 +02:00
committed by GitHub
parent dd798f8380
commit 39a0fe3f98
8 changed files with 26 additions and 21 deletions

View File

@@ -9,7 +9,7 @@ plugins {
alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.android)
alias(libs.plugins.ksp) alias(libs.plugins.ksp)
alias(libs.plugins.mikepenz.aboutLibraries) alias(libs.plugins.mikepenz.aboutLibraries.android)
} }
// Android configuration // Android configuration
@@ -123,8 +123,10 @@ ksp {
} }
aboutLibraries { aboutLibraries {
// exclude timestamps for reproducible builds [https://github.com/bitfireAT/davx5-ose/issues/994] export {
excludeFields = arrayOf("generated") // exclude timestamps for reproducible builds [https://github.com/bitfireAT/davx5-ose/issues/994]
excludeFields.add("generated")
}
} }
dependencies { dependencies {
@@ -187,7 +189,7 @@ dependencies {
@Suppress("RedundantSuppression") @Suppress("RedundantSuppression")
implementation(libs.dnsjava) implementation(libs.dnsjava)
implementation(libs.guava) implementation(libs.guava)
implementation(libs.mikepenz.aboutLibraries) implementation(libs.mikepenz.aboutLibraries.m3)
implementation(libs.okhttp.base) implementation(libs.okhttp.base)
implementation(libs.okhttp.brotli) implementation(libs.okhttp.brotli)
implementation(libs.okhttp.logging) implementation(libs.okhttp.logging)

View File

@@ -32,7 +32,7 @@ import at.bitfire.ical4android.Event
import at.bitfire.ical4android.EventReader import at.bitfire.ical4android.EventReader
import at.bitfire.ical4android.EventWriter import at.bitfire.ical4android.EventWriter
import at.bitfire.ical4android.util.DateUtils import at.bitfire.ical4android.util.DateUtils
import at.bitfire.synctools.exception.InvalidRemoteResourceException import at.bitfire.synctools.exception.InvalidICalendarException
import dagger.assisted.Assisted import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject import dagger.assisted.AssistedInject
@@ -265,7 +265,7 @@ class CalendarSyncManager @AssistedInject constructor(
val events: List<Event> val events: List<Event>
try { try {
events = EventReader().readEvents(reader) events = EventReader().readEvents(reader)
} catch (e: InvalidRemoteResourceException) { } catch (e: InvalidICalendarException) {
logger.log(Level.SEVERE, "Received invalid iCalendar, ignoring", e) logger.log(Level.SEVERE, "Received invalid iCalendar, ignoring", e)
notifyInvalidResource(e, fileName) notifyInvalidResource(e, fileName)
return return

View File

@@ -27,7 +27,7 @@ import at.bitfire.davdroid.resource.LocalResource
import at.bitfire.davdroid.resource.SyncState import at.bitfire.davdroid.resource.SyncState
import at.bitfire.davdroid.util.DavUtils.lastSegment import at.bitfire.davdroid.util.DavUtils.lastSegment
import at.bitfire.ical4android.JtxICalObject import at.bitfire.ical4android.JtxICalObject
import at.bitfire.synctools.exception.InvalidRemoteResourceException import at.bitfire.synctools.exception.InvalidICalendarException
import dagger.assisted.Assisted import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject import dagger.assisted.AssistedInject
@@ -167,7 +167,7 @@ class JtxSyncManager @AssistedInject constructor(
try { try {
// parse the reader content and return the list of ICalObjects // parse the reader content and return the list of ICalObjects
icalobjects.addAll(JtxICalObject.fromReader(reader, localCollection)) icalobjects.addAll(JtxICalObject.fromReader(reader, localCollection))
} catch (e: InvalidRemoteResourceException) { } catch (e: InvalidICalendarException) {
logger.log(Level.SEVERE, "Received invalid iCalendar, ignoring", e) logger.log(Level.SEVERE, "Received invalid iCalendar, ignoring", e)
notifyInvalidResource(e, fileName) notifyInvalidResource(e, fileName)
return return

View File

@@ -26,7 +26,7 @@ import at.bitfire.davdroid.resource.LocalTaskList
import at.bitfire.davdroid.resource.SyncState import at.bitfire.davdroid.resource.SyncState
import at.bitfire.davdroid.util.DavUtils.lastSegment import at.bitfire.davdroid.util.DavUtils.lastSegment
import at.bitfire.ical4android.Task import at.bitfire.ical4android.Task
import at.bitfire.synctools.exception.InvalidRemoteResourceException import at.bitfire.synctools.exception.InvalidICalendarException
import dagger.assisted.Assisted import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject import dagger.assisted.AssistedInject
@@ -161,7 +161,7 @@ class TasksSyncManager @AssistedInject constructor(
val tasks: List<Task> val tasks: List<Task>
try { try {
tasks = Task.tasksFromReader(reader) tasks = Task.tasksFromReader(reader)
} catch (e: InvalidRemoteResourceException) { } catch (e: InvalidICalendarException) {
logger.log(Level.SEVERE, "Received invalid iCalendar, ignoring", e) logger.log(Level.SEVERE, "Received invalid iCalendar, ignoring", e)
notifyInvalidResource(e, fileName) notifyInvalidResource(e, fileName)
return return

View File

@@ -40,6 +40,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
@@ -52,8 +53,10 @@ import at.bitfire.davdroid.R
import at.bitfire.davdroid.di.IoDispatcher import at.bitfire.davdroid.di.IoDispatcher
import at.bitfire.davdroid.ui.ExternalUris.withStatParams import at.bitfire.davdroid.ui.ExternalUris.withStatParams
import at.bitfire.davdroid.ui.composable.PixelBoxes import at.bitfire.davdroid.ui.composable.PixelBoxes
import com.mikepenz.aboutlibraries.Libs
import com.mikepenz.aboutlibraries.ui.compose.LibraryDefaults import com.mikepenz.aboutlibraries.ui.compose.LibraryDefaults
import com.mikepenz.aboutlibraries.ui.compose.m3.LibrariesContainer import com.mikepenz.aboutlibraries.ui.compose.m3.LibrariesContainer
import com.mikepenz.aboutlibraries.util.withContext
import dagger.BindsOptionalOf import dagger.BindsOptionalOf
import dagger.Module import dagger.Module
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
@@ -175,7 +178,10 @@ class AboutActivity: AppCompatActivity() {
), ),
dimensions = LibraryDefaults.libraryDimensions( dimensions = LibraryDefaults.libraryDimensions(
itemSpacing = 8.dp itemSpacing = 8.dp
) ),
libraries = Libs.Builder()
.withContext(LocalContext.current)
.build()
) )
} }
} }

View File

@@ -1,3 +0,0 @@
{"metadata":{"generated":"2023-12-03T12:08:52.214Z"},"libraries":[
{"uniqueId":"com.example:sample","funding":[],"developers":[{"name":"Sample Developer"}],"artifactVersion":"1.0","description":"This list has to be updated at release build time by explicitly writing to R.raw.aboutlibraries.","name":"Sample Dependency","licenses":["Sample-License"]}
], "licenses":{}}

View File

@@ -9,5 +9,5 @@ plugins {
alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.ksp) apply false alias(libs.plugins.ksp) apply false
alias(libs.plugins.mikepenz.aboutLibraries) apply false alias(libs.plugins.mikepenz.aboutLibraries.android) apply false
} }

View File

@@ -20,7 +20,7 @@ androidx-test-junit = "1.3.0"
androidx-work = "2.10.5" androidx-work = "2.10.5"
bitfire-cert4android = "41009d48ed" bitfire-cert4android = "41009d48ed"
bitfire-dav4jvm = "f11523619b" bitfire-dav4jvm = "f11523619b"
bitfire-synctools = "095f96005b" bitfire-synctools = "1a7f70b1a0"
compose-accompanist = "0.37.3" compose-accompanist = "0.37.3"
compose-bom = "2025.10.00" compose-bom = "2025.10.00"
dnsjava = "3.6.3" dnsjava = "3.6.3"
@@ -32,12 +32,12 @@ kotlin = "2.2.20"
kotlinx-coroutines = "1.10.2" kotlinx-coroutines = "1.10.2"
# see https://github.com/google/ksp/releases for version numbers # see https://github.com/google/ksp/releases for version numbers
ksp = "2.2.20-2.0.3" ksp = "2.2.20-2.0.3"
mikepenz-aboutLibraries = "12.2.4" mikepenz-aboutLibraries = "13.1.0"
mockk = "1.14.5" mockk = "1.14.5"
okhttp = "5.2.0" okhttp = "5.2.1"
openid-appauth = "0.11.1" openid-appauth = "0.11.1"
room = "2.8.2" room = "2.8.2"
unifiedpush = "3.1.0" unifiedpush = "3.1.2"
unifiedpush-fcm = "3.0.0" unifiedpush-fcm = "3.0.0"
# Other libraries, especially ical4j, require Apache Commons. Some recent versions of Apache # Other libraries, especially ical4j, require Apache Commons. Some recent versions of Apache
@@ -92,7 +92,7 @@ junit = { module = "junit:junit", version = "4.13.2" }
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" }
mikepenz-aboutLibraries = { module = "com.mikepenz:aboutlibraries-compose-m3", version.ref = "mikepenz-aboutLibraries" } mikepenz-aboutLibraries-m3 = { module = "com.mikepenz:aboutlibraries-compose-m3", version.ref = "mikepenz-aboutLibraries" }
mockk = { module = "io.mockk:mockk", version.ref = "mockk" } mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
mockk-android = { module = "io.mockk:mockk-android", version.ref = "mockk" } mockk-android = { module = "io.mockk:mockk-android", version.ref = "mockk" }
okhttp-base = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } okhttp-base = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
@@ -114,4 +114,4 @@ compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
mikepenz-aboutLibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "mikepenz-aboutLibraries" } mikepenz-aboutLibraries-android = { id = "com.mikepenz.aboutlibraries.plugin.android", version.ref = "mikepenz-aboutLibraries" }