Skip to content

Commit 59a0fcb

Browse files
authored
Switch to synctools (#589)
* Use synctools instead of ical4android * Remove unused dependency
1 parent aef730f commit 59a0fcb

5 files changed

Lines changed: 29 additions & 27 deletions

File tree

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ dependencies {
117117
coreLibraryDesugaring(libs.desugaring)
118118

119119
implementation(libs.bitfire.cert4android)
120-
implementation(libs.bitfire.ical4android)
120+
implementation(libs.bitfire.synctools)
121121

122122
implementation(libs.compose.dialogs.color)
123123
implementation(libs.compose.dialogs.core)

app/proguard-rules.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
public static ** valueOf(java.lang.String);
2525
}
2626

27-
# keep ICSx⁵ and ical4android
27+
# keep ICSx⁵ and synctools
2828
-keep class at.bitfire.** { *; } # all ICSx⁵ code is required
2929

3030
# Additional rules which are now required since missing classes can't be ignored in R8 anymore.

app/src/main/AndroidManifest.xml

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,36 @@
55

66
<!-- fetch iCalendar files -->
77
<uses-permission android:name="android.permission.INTERNET" />
8+
9+
<!-- allows sending notifications -->
10+
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
11+
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
12+
813
<!-- manage ICSx⁵ accounts -->
9-
<uses-permission
10-
android:name="android.permission.AUTHENTICATE_ACCOUNTS"
11-
android:maxSdkVersion="22" />
12-
<uses-permission
13-
android:name="android.permission.GET_ACCOUNTS"
14-
android:maxSdkVersion="22" />
15-
<!-- add/update/delete events -->
16-
<uses-permission android:name="android.permission.READ_CALENDAR" />
17-
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
14+
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" android:maxSdkVersion="22" />
15+
<uses-permission android:name="android.permission.GET_ACCOUNTS" android:maxSdkVersion="22" />
16+
1817
<!-- view/change the sync interval and whether the account is synchronizing -->
1918
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
2019
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
2120
<uses-permission android:name="android.permission.READ_SYNC_STATS" />
21+
2222
<!-- check/repair sync interval after boot -->
2323
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
24-
<!-- remove task permissions from ical4android -->
25-
<uses-permission
26-
android:name="org.dmfs.permission.READ_TASKS"
27-
tools:node="remove" />
28-
<uses-permission
29-
android:name="org.dmfs.permission.WRITE_TASKS"
30-
tools:node="remove" />
31-
<!-- allows sending notifications -->
32-
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
33-
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
24+
25+
<!-- add/update/delete events -->
26+
<uses-permission android:name="android.permission.READ_CALENDAR" />
27+
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
28+
29+
<!-- remove contacts and tasks permission from synctools -->
30+
<uses-permission android:name="android.permission.READ_CONTACTS" tools:node="remove" />
31+
<uses-permission android:name="android.permission.WRITE_CONTACTS" tools:node="remove" />
32+
<uses-permission android:name="org.dmfs.permission.READ_TASKS" tools:node="remove" />
33+
<uses-permission android:name="org.dmfs.permission.WRITE_TASKS" tools:node="remove" />
34+
<uses-permission android:name="org.tasks.permission.READ_TASKS" tools:node="remove" />
35+
<uses-permission android:name="org.tasks.permission.WRITE_TASKS" tools:node="remove" />
36+
<uses-permission android:name="at.techbee.jtx.permission.READ" tools:node="remove" />
37+
<uses-permission android:name="at.techbee.jtx.permission.WRITE" tools:node="remove" />
3438

3539
<application
3640
android:allowBackup="true"

app/src/main/java/at/bitfire/icsdroid/Constants.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
package at.bitfire.icsdroid
66

77
import android.os.Build
8-
import at.bitfire.ical4android.Ical4Android
8+
import at.bitfire.ical4android.ical4jVersion
99
import okhttp3.OkHttp
1010

1111
object Constants {
1212

1313
const val TAG = "icsx5"
1414

15-
val USER_AGENT = "ICSx5/${BuildConfig.VERSION_NAME} (ical4j/${Ical4Android.ical4jVersion} okhttp/${OkHttp.VERSION} Android/${Build.VERSION.RELEASE})"
15+
val USER_AGENT = "ICSx5/${BuildConfig.VERSION_NAME} (ical4j/${ical4jVersion} okhttp/${OkHttp.VERSION} Android/${Build.VERSION.RELEASE})"
1616

1717
}

gradle/libs.versions.toml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ androidx-test-rules = "1.6.1"
1111
androidx-test-runner = "1.6.2"
1212
androidx-work = "2.10.1"
1313
bitfire-cert4android = "f0964cb"
14-
bitfire-ical4android = "883954c"
14+
bitfire-synctools = "7aa709f6b6"
1515
compose-dialogs = "1.3.0"
1616
compose-material = "1.7.8"
1717
compose-material3 = "1.3.2"
@@ -43,7 +43,7 @@ androidx-test-runner = { module = "androidx.test:runner", version.ref = "android
4343
androidx-work-runtime = { module = "androidx.work:work-runtime-ktx", version.ref = "androidx-work" }
4444
androidx-work-testing = { module = "androidx.work:work-testing", version.ref = "androidx-work" }
4545
bitfire-cert4android = { module = "com.github.bitfireAT:cert4android", version.ref = "bitfire-cert4android" }
46-
bitfire-ical4android = { module = "com.github.bitfireAT:ical4android", version.ref = "bitfire-ical4android" }
46+
bitfire-synctools = { module = "com.github.bitfireat:synctools", version.ref = "bitfire-synctools" }
4747
compose-dialogs-color = { module = "com.maxkeppeler.sheets-compose-dialogs:color", version.ref = "compose-dialogs" }
4848
compose-dialogs-core = { module = "com.maxkeppeler.sheets-compose-dialogs:core", version.ref = "compose-dialogs" }
4949
compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "compose-material3" }
@@ -57,8 +57,6 @@ junit = { module = "junit:junit", version.ref = "junit" }
5757
kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" }
5858
okhttp-base = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
5959
okhttp-brotli = { module = "com.squareup.okhttp3:okhttp-brotli", version.ref = "okhttp" }
60-
# Use okhttp-coroutines and remove "Call.executeAsync" calls once OkHttp 5.0 stable is released
61-
okhttp-coroutines = { module = "com.squareup.okhttp3:okhttp-coroutines", version.ref = "okhttp" }
6260
okhttp-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp" }
6361
room-base = { module = "androidx.room:room-ktx", version.ref = "room" }
6462
room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }

0 commit comments

Comments
 (0)