From ac0b1a654c45400cfc336226f396534a9150cd9b Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 2 Mar 2026 14:30:06 +0100 Subject: [PATCH 1/2] Update minSdkVersion --- lib/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index 21d9e40d..3d8485d1 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -16,7 +16,7 @@ android { namespace = "at.bitfire.synctools" defaultConfig { - minSdk = 23 // Android 6 + minSdk = 24 // Android 7 testInstrumentationRunner = "at.bitfire.synctools.LoggingTestRunner" From 6c02612721fbbeb4beddeb1058db6356bd152815 Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Mon, 2 Mar 2026 14:40:34 +0100 Subject: [PATCH 2/2] - Replace deprecated `closeCompat()` with standard `close()` - Remove compatibility method `closeCompat()` from `MiscUtils` --- .../kotlin/at/bitfire/ical4android/AospTest.kt | 4 ++-- .../kotlin/at/bitfire/ical4android/JtxCollectionTest.kt | 4 ++-- .../kotlin/at/bitfire/ical4android/JtxICalObjectTest.kt | 4 ++-- .../at/bitfire/synctools/storage/JtxBatchOperationTest.kt | 4 ++-- .../calendar/AndroidCalendarProviderBehaviorTest.kt | 4 ++-- .../storage/calendar/AndroidCalendarProviderTest.kt | 4 ++-- .../synctools/storage/calendar/AndroidCalendarTest.kt | 4 ++-- .../storage/calendar/AndroidRecurringCalendarTest.kt | 4 ++-- .../storage/calendar/CalendarBatchOperationTest.kt | 4 ++-- .../synctools/storage/tasks/ContactsBatchOperationTest.kt | 4 ++-- .../main/kotlin/at/bitfire/ical4android/TaskProvider.kt | 4 ++-- .../main/kotlin/at/bitfire/ical4android/util/MiscUtils.kt | 8 +------- 12 files changed, 23 insertions(+), 29 deletions(-) diff --git a/lib/src/androidTest/kotlin/at/bitfire/ical4android/AospTest.kt b/lib/src/androidTest/kotlin/at/bitfire/ical4android/AospTest.kt index 1bc8b00c..1e649886 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/ical4android/AospTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/ical4android/AospTest.kt @@ -14,7 +14,7 @@ import android.net.Uri import android.provider.CalendarContract import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.GrantPermissionRule -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import org.junit.After import org.junit.Assert.assertNotNull import org.junit.Before @@ -52,7 +52,7 @@ class AospTest { @After fun shutdown() { provider.delete(calendarUri, null, null) - provider.closeCompat() + provider.close() } private fun Uri.asSyncAdapter() = diff --git a/lib/src/androidTest/kotlin/at/bitfire/ical4android/JtxCollectionTest.kt b/lib/src/androidTest/kotlin/at/bitfire/ical4android/JtxCollectionTest.kt index ab594d25..20666f96 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/ical4android/JtxCollectionTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/ical4android/JtxCollectionTest.kt @@ -12,7 +12,7 @@ import android.content.ContentValues import androidx.test.platform.app.InstrumentationRegistry import at.bitfire.ical4android.impl.TestJtxCollection import at.bitfire.ical4android.impl.testProdId -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import at.bitfire.synctools.test.GrantPermissionOrSkipRule import at.techbee.jtx.JtxContract import at.techbee.jtx.JtxContract.asSyncAdapter @@ -57,7 +57,7 @@ class JtxCollectionTest { @After fun tearDown() { - client.closeCompat() + client.close() var collections = JtxCollection.find(testAccount, client, context, TestJtxCollection.Factory, null, null) collections.forEach { collection -> diff --git a/lib/src/androidTest/kotlin/at/bitfire/ical4android/JtxICalObjectTest.kt b/lib/src/androidTest/kotlin/at/bitfire/ical4android/JtxICalObjectTest.kt index cff10a33..4dcb3122 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/ical4android/JtxICalObjectTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/ical4android/JtxICalObjectTest.kt @@ -15,7 +15,7 @@ import androidx.core.content.pm.PackageInfoCompat import androidx.test.platform.app.InstrumentationRegistry import at.bitfire.ical4android.impl.TestJtxCollection import at.bitfire.ical4android.impl.testProdId -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import at.bitfire.synctools.test.GrantPermissionOrSkipRule import at.techbee.jtx.JtxContract import at.techbee.jtx.JtxContract.JtxICalObject @@ -117,7 +117,7 @@ class JtxICalObjectTest { @After fun tearDown() { - client.closeCompat() + client.close() collection?.delete() val collections = JtxCollection.find(testAccount, client, context, TestJtxCollection.Factory, null, null) assertEquals(0, collections.size) diff --git a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/JtxBatchOperationTest.kt b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/JtxBatchOperationTest.kt index 281bf9d2..078f7fc0 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/JtxBatchOperationTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/JtxBatchOperationTest.kt @@ -15,7 +15,7 @@ import at.bitfire.ical4android.JtxCollection import at.bitfire.ical4android.JtxICalObject import at.bitfire.ical4android.TaskProvider import at.bitfire.ical4android.util.MiscUtils.asSyncAdapter -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import at.bitfire.synctools.test.BuildConfig import at.bitfire.synctools.test.GrantPermissionOrSkipRule import at.techbee.jtx.JtxContract @@ -42,7 +42,7 @@ class JtxBatchOperationTest { @After fun tearDown() { - provider.closeCompat() + provider.close() } diff --git a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarProviderBehaviorTest.kt b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarProviderBehaviorTest.kt index abf7240f..84928295 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarProviderBehaviorTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarProviderBehaviorTest.kt @@ -17,7 +17,7 @@ import androidx.core.content.contentValuesOf import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.GrantPermissionRule import at.bitfire.ical4android.impl.TestCalendar -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import at.bitfire.synctools.storage.LocalStorageException import at.bitfire.synctools.test.assertContentValuesEqual import org.junit.After @@ -53,7 +53,7 @@ class AndroidCalendarProviderBehaviorTest { @After fun tearDown() { - client.closeCompat() + client.close() } diff --git a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarProviderTest.kt b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarProviderTest.kt index dfa5ae29..c310b053 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarProviderTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarProviderTest.kt @@ -18,7 +18,7 @@ import androidx.core.content.contentValuesOf import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.GrantPermissionRule import at.bitfire.ical4android.impl.TestCalendar -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import at.bitfire.synctools.icalendar.Css3Color import org.junit.After import org.junit.Assert.assertEquals @@ -45,7 +45,7 @@ class AndroidCalendarProviderTest { @After fun tearDown() { - client.closeCompat() + client.close() } diff --git a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarTest.kt b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarTest.kt index 0626e1c6..e89b992d 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidCalendarTest.kt @@ -17,7 +17,7 @@ import android.provider.CalendarContract.Reminders import androidx.core.content.contentValuesOf import androidx.test.platform.app.InstrumentationRegistry import at.bitfire.ical4android.impl.TestCalendar -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import at.bitfire.synctools.storage.BatchOperation import at.bitfire.synctools.test.InitCalendarProviderRule import at.bitfire.synctools.test.assertContentValuesEqual @@ -56,7 +56,7 @@ class AndroidCalendarTest { @After fun tearDown() { calendar.delete() - client.closeCompat() + client.close() } diff --git a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidRecurringCalendarTest.kt b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidRecurringCalendarTest.kt index 5b460848..68ad34f6 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidRecurringCalendarTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/AndroidRecurringCalendarTest.kt @@ -16,7 +16,7 @@ import android.provider.CalendarContract.Events import androidx.core.content.contentValuesOf import androidx.test.platform.app.InstrumentationRegistry import at.bitfire.ical4android.impl.TestCalendar -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import at.bitfire.synctools.test.InitCalendarProviderRule import at.bitfire.synctools.test.assertContentValuesEqual import at.bitfire.synctools.test.assertEventAndExceptionsEqual @@ -62,7 +62,7 @@ class AndroidRecurringCalendarTest { @After fun tearDown() { calendar.delete() - client.closeCompat() + client.close() } diff --git a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/CalendarBatchOperationTest.kt b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/CalendarBatchOperationTest.kt index 29c56bc9..dabb8320 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/CalendarBatchOperationTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/calendar/CalendarBatchOperationTest.kt @@ -13,7 +13,7 @@ import android.provider.CalendarContract import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.GrantPermissionRule import at.bitfire.ical4android.util.MiscUtils.asSyncAdapter -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import at.bitfire.synctools.storage.BatchOperation import org.junit.After import org.junit.Before @@ -46,7 +46,7 @@ class CalendarBatchOperationTest { "${CalendarContract.Events.ACCOUNT_TYPE}=? AND ${CalendarContract.Events.ACCOUNT_NAME}=?", arrayOf(testAccount.type, testAccount.name) ) - provider.closeCompat() + provider.close() } diff --git a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/tasks/ContactsBatchOperationTest.kt b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/tasks/ContactsBatchOperationTest.kt index 6ef2e3af..b1136ccc 100644 --- a/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/tasks/ContactsBatchOperationTest.kt +++ b/lib/src/androidTest/kotlin/at/bitfire/synctools/storage/tasks/ContactsBatchOperationTest.kt @@ -12,7 +12,7 @@ import android.content.ContentProviderClient import android.provider.ContactsContract import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.GrantPermissionRule -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import at.bitfire.synctools.storage.BatchOperation import at.bitfire.synctools.storage.ContactsBatchOperation import at.bitfire.synctools.storage.LocalStorageException @@ -48,7 +48,7 @@ class ContactsBatchOperationTest { "${ContactsContract.RawContacts.ACCOUNT_TYPE}=? AND ${ContactsContract.RawContacts.ACCOUNT_NAME}=?", arrayOf(testAccount.type, testAccount.name) ) - provider.closeCompat() + provider.close() } diff --git a/lib/src/main/kotlin/at/bitfire/ical4android/TaskProvider.kt b/lib/src/main/kotlin/at/bitfire/ical4android/TaskProvider.kt index ff212632..2fbc6249 100644 --- a/lib/src/main/kotlin/at/bitfire/ical4android/TaskProvider.kt +++ b/lib/src/main/kotlin/at/bitfire/ical4android/TaskProvider.kt @@ -11,7 +11,7 @@ import android.content.ContentProviderClient import android.content.Context import android.content.pm.PackageManager import androidx.core.content.pm.PackageInfoCompat -import at.bitfire.ical4android.util.MiscUtils.closeCompat + import java.io.Closeable import java.util.logging.Level import java.util.logging.Logger @@ -138,7 +138,7 @@ class TaskProvider private constructor( override fun close() { - client.closeCompat() + client.close() } diff --git a/lib/src/main/kotlin/at/bitfire/ical4android/util/MiscUtils.kt b/lib/src/main/kotlin/at/bitfire/ical4android/util/MiscUtils.kt index ac5fc30c..7e33b9e2 100644 --- a/lib/src/main/kotlin/at/bitfire/ical4android/util/MiscUtils.kt +++ b/lib/src/main/kotlin/at/bitfire/ical4android/util/MiscUtils.kt @@ -16,13 +16,7 @@ object MiscUtils { // various extension methods - fun ContentProviderClient.closeCompat() { - @Suppress("DEPRECATION") - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) - close() - else - release() - } + fun Uri.asSyncAdapter(account: Account): Uri = buildUpon() .appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, account.name)