Skip to content

Merge upstream changes #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 100 commits into
base: tasks
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
1c6bcb3
Handling period durations of days with `T` suffix (#80)
ArnyminerZ Feb 8, 2023
de24b0a
jtx Board 2.3 with improved recur handling (#79)
patrickunterwegs Feb 10, 2023
43ef146
Fixes [BUG] Attachment names get scrambled (#83)
patrickunterwegs Feb 18, 2023
1de8a88
Update JtxContract.kt (#85)
patrickunterwegs Feb 24, 2023
cf5c663
Updated ical4j to `3.2.10` (#87)
ArnyminerZ Mar 15, 2023
8c52fc8
Ignore invalid properties like empty GEO: (#82)
ArnyminerZ Mar 23, 2023
f95d63c
Handle period durations of days with T prefix (#86)
ArnyminerZ Mar 27, 2023
4b2cea2
Use large runners
rfc2822 Mar 31, 2023
f9705ff
Added handler for properties with null value when inserting (#89)
ArnyminerZ Apr 3, 2023
92e3abf
Updated timezone checks (#90)
ArnyminerZ Apr 12, 2023
5758bee
Fixed missing contact field in jtx sync (#91)
patrickunterwegs Apr 12, 2023
0133bea
Upgrade dependencies; use Java 17
rfc2822 Apr 28, 2023
2cdc726
Build/deploy KDoc over artifact instead of gh-pages branch
rfc2822 May 2, 2023
fa53d4c
added x-status to sync, refactored list-properties to use batch opera…
patrickunterwegs May 7, 2023
b6fc772
Improve build speed by enabling gradle configuration cache
rfc2822 May 10, 2023
a51f7e1
Ignore custom VTIMEZONEs that can't be properly handled by ical4j (#96)
rfc2822 May 10, 2023
260cee1
Don't use configuration cache for Dokka
rfc2822 May 10, 2023
eeca011
Add geofence radius x property (#97)
patrickunterwegs May 11, 2023
8c34e81
Update TaskProvider.kt (#98)
patrickunterwegs May 12, 2023
75e5be4
Added recuridTimezone and adapted logic for RecurrenceId (#100)
patrickunterwegs May 26, 2023
a78e72f
Make it a real library (#102)
ArnyminerZ Jun 28, 2023
aaf607c
Add dependent issues workflow
rfc2822 Jul 22, 2023
9b21834
Remove whitespace values from content providers (#109)
sunkup Aug 16, 2023
b682476
Update dependencies and tasks apps
rfc2822 Aug 16, 2023
dd0ac1f
Updated AGP to 8.1.0 and Kotlin to 1.9.0 (#111)
ArnyminerZ Sep 10, 2023
76e30b7
Ignore RDATEs when there's an also an infinite RRULE to avoid calenda…
rfc2822 Sep 12, 2023
916f222
Updated ical4j to `3.2.13` (#116)
ArnyminerZ Sep 25, 2023
a134eb6
Update dependencies
rfc2822 Dec 3, 2023
8972b85
Note that Reminders.METHOD_DEFAULT won't trigger an alarm on the Andr…
rfc2822 Dec 3, 2023
db6c8a4
updated-jtx-board-version-source (#122)
patrickunterwegs Jan 2, 2024
93262f5
Fix CodeQL (#124)
ArnyminerZ Jan 2, 2024
d4f4544
Added uid handling (#129)
ArnyminerZ Jan 23, 2024
cc21286
Updated contract, added method in JtxCollection + Test (#121)
patrickunterwegs Jan 24, 2024
90804fc
Update AGP to 8.2.1, minimum SDK level to 23
rfc2822 Jan 25, 2024
18d86b3
Fixed UID loading (#131)
ArnyminerZ Jan 26, 2024
66dc34c
Process Google Calendar-private extended property "iCalUid" (#126)
ArnyminerZ Feb 1, 2024
821ab3f
Use gradle version catalog for dependencies (#133)
ArnyminerZ Feb 3, 2024
1ca03ea
Rename AndroidTask to DmfsTask (#137)
rfc2822 Feb 17, 2024
998f6b6
Remove recurrence rules in exceptions of recurring events (#138)
sunkup Feb 21, 2024
a847d0c
Add KDoc, update slf4j
rfc2822 Feb 23, 2024
31650d1
DmfsTaskList: make populate() overrideable
rfc2822 Feb 23, 2024
e32cc40
[CI] Update Github actions
rfc2822 Mar 1, 2024
195d0c9
Amend all-day RDATE/EXDATE with time from DTSTART, if applicable (#142)
rfc2822 Mar 1, 2024
9e7fb66
Update ical4j to 3.2.17 (#140)
ArnyminerZ Mar 19, 2024
17fcf65
Add an option to ignore invalid event when parsing iCalendar (#145)
SpaceBison Mar 21, 2024
fa0c197
Update libs
rfc2822 Mar 28, 2024
f10bd57
recurrenceSetsToAndroidString: correctly assemble ZonedDateTime from …
rfc2822 Mar 28, 2024
dc8f8e3
[CI] Use normal runners instead of large runners for emulator tests
rfc2822 Apr 3, 2024
4a466b2
Update dependencies (#150)
rfc2822 May 7, 2024
a3e886c
Don't use CalendarStorageException to wrap RemoteException / as all-c…
rfc2822 May 7, 2024
00244a9
Support COMMENT for tasks (#152)
sunkup May 30, 2024
9d8077e
Update dependencies
rfc2822 May 30, 2024
377ef7b
Enable skipped EventValidatorTest
rfc2822 May 30, 2024
ba5a013
Upgrade ical4j to 3.2.18 (#149)
ArnyminerZ May 31, 2024
78ccbf0
Fix removal of recurrence rules in exceptions of recurring events (#154)
sunkup Jun 25, 2024
83cda23
Update dependencies, including ical4j
rfc2822 Jun 25, 2024
759d27f
Remove @UsesThreadContextClassLoader because it was unclear what it does
rfc2822 Jul 15, 2024
7ebab70
Mark Ical4android.log as deprecated; update gradle, AGP, dependencies
rfc2822 Jul 15, 2024
505f747
Get rid of Apache Commons (#156)
ArnyminerZ Jul 20, 2024
71a329b
[CI] Update test workflow (#158)
rfc2822 Jul 28, 2024
c9c528c
Fix dokka task
rfc2822 Jul 28, 2024
a36ee48
Replace deprecated logger calls (#159)
rfc2822 Jul 28, 2024
86af14d
Collections: unified delete() return value
rfc2822 Aug 1, 2024
60e214f
Expect boolean instead of integer (#160)
sunkup Aug 1, 2024
8d09c89
Replaced usages (#166)
ArnyminerZ Aug 8, 2024
1d9c510
Take ContentProviderClient instead of TasksProvider (#163)
sunkup Aug 12, 2024
0f42348
Fixed missing `first` calls (#169)
ArnyminerZ Aug 14, 2024
6a5df96
Forced dependency versions and excluded dependencies (#165)
ArnyminerZ Aug 17, 2024
cb94343
AndroidCompatTimeZoneRegistry logs inappropriate warning when constru…
ArnyminerZ Aug 20, 2024
b75f339
[CI] Dependency graph: only compile source (not tests)
rfc2822 Aug 21, 2024
044c1ca
Upgrade dependencies (#173)
ArnyminerZ Sep 17, 2024
eb50f30
Update dependencies and gradle
rfc2822 Oct 14, 2024
46d1799
Upgrade AGP and increase compile SDK (#176)
ArnyminerZ Oct 22, 2024
59d2728
AndroidEvent: update without event color correctly resets color (#180)
rfc2822 Oct 30, 2024
d01dba0
FixInvalidDayOffsetPreprocessor: Allow DURATION as value (#182)
sunkup Nov 13, 2024
16a4f22
Update AGP and dependencies
rfc2822 Nov 20, 2024
6bf1b14
Events: map no CLASSification to Android ACCESS_DEFAULT instead of AC…
rfc2822 Nov 20, 2024
aa59e9e
Update gradle wrapper
rfc2822 Nov 20, 2024
1accbfd
DateUtils.parseVTimeZone: return null instead of throwing a RuntimeEx…
rfc2822 Nov 21, 2024
8481c39
BatchOperation: set yield point after every 500 operations (#188)
rfc2822 Nov 22, 2024
c1ed0a0
Filter `RDATE` and `EXDATE` from exceptions (#191)
ArnyminerZ Nov 30, 2024
12df9bf
Update dependencies
rfc2822 Dec 15, 2024
883954c
Add _sync_id property (#187)
patrickunterwegs Jan 23, 2025
afa7724
Query recur instance without dtstart (#195)
sunkup Apr 15, 2025
f71347d
Allow transitive validator dependency from ical4j again
rfc2822 Apr 17, 2025
0bf7641
Update Gradle wrapper to 8.13, bump Kotlin to 2.1.20, and MockK to 1.…
rfc2822 Apr 17, 2025
504be06
Add module name to README
rfc2822 Apr 17, 2025
ef907cf
Update proguard rules and build configuration (#196)
rfc2822 Apr 17, 2025
d077602
Remove unnecssary `contextClassLoader` checks (#199)
rfc2822 May 7, 2025
615eda8
Update dependencies, clean up build config (#200)
rfc2822 May 7, 2025
21622fe
Update copyright headers to GPLv3 for all files (#201)
rfc2822 May 7, 2025
240f756
Fix cursor without next (#203)
sunkup May 13, 2025
01984e8
Merge branch 'main' into tasks
devn1x Jun 2, 2025
01bce4a
Add deprecation notice
rfc2822 Jun 9, 2025
e4957f2
Merge branch 'tasks:main' into tasks-upstream-updates
devn1x Jul 5, 2025
343772b
Merge remote-tracking branch 'upstream/main' into tasks-upstream-updates
devn1x Jul 5, 2025
c6056bb
Update agp to 8.11.0 and use java 17
devn1x Jul 5, 2025
654057e
Merge remote-tracking branch 'origin/tasks-upstream-updates' into tas…
devn1x Jul 5, 2025
d4b6f5e
Update dependencies
devn1x Jul 5, 2025
780c525
Revert some changes back to state in main
devn1x Jul 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 28 additions & 18 deletions .github/workflows/build-kdoc.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,39 @@
name: Build KDoc
name: Build and publish KDoc
on:
push:
branches: [main]

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

jobs:
build:
name: Build and publish KDoc
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
submodules: true
- uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: 11
cache: 'gradle'
- uses: gradle/wrapper-validation-action@v1
distribution: temurin
java-version: 17
- uses: gradle/actions/setup-gradle@v4

- name: Build KDoc
run: ./gradlew dokkaHtml
- name: Publish KDoc
if: success()
uses: crazy-max/[email protected]
run: ./gradlew --no-configuration-cache dokkaHtml

- uses: actions/upload-pages-artifact@v3
with:
target_branch: gh-pages
build_dir: build/dokka/html
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
path: lib/build/dokka/html

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
74 changes: 0 additions & 74 deletions .github/workflows/codeql.yml

This file was deleted.

55 changes: 55 additions & 0 deletions .github/workflows/dependent-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Dependent Issues

on:
issues:
types:
- opened
- edited
- closed
- reopened
pull_request_target:
types:
- opened
- edited
- closed
- reopened
# Makes sure we always add status check for PRs. Useful only if
# this action is required to pass before merging. Otherwise, it
# can be removed.
- synchronize

# Schedule a daily check. Useful if you reference cross-repository
# issues or pull requests. Otherwise, it can be removed.
schedule:
- cron: '12 9 * * *'

permissions: write-all

jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: z0al/dependent-issues@v1
env:
# (Required) The token to use to make API calls to GitHub.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# (Optional) The token to use to make API calls to GitHub for remote repos.
GITHUB_READ_TOKEN: ${{ secrets.DEPENDENT_ISSUES_READ_TOKEN }}

with:
# (Optional) The label to use to mark dependent issues
# label: dependent

# (Optional) Enable checking for dependencies in issues.
# Enable by setting the value to "on". Default "off"
check_issues: on

# (Optional) A comma-separated list of keywords. Default
# "depends on, blocked by"
keywords: depends on, blocked by

# (Optional) A custom comment body. It supports `{{ dependencies }}` token.
comment: >
This PR/issue depends on:

{{ dependencies }}
130 changes: 83 additions & 47 deletions .github/workflows/test-dev.yml
Original file line number Diff line number Diff line change
@@ -1,68 +1,104 @@
name: Development tests
on: push
jobs:
compile:
name: Compile and cache
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21

# See https://community.gradle.org/github-actions/docs/setup-gradle/ for more information
- uses: gradle/actions/setup-gradle@v4 # creates build cache when on main branch
with:
cache-encryption-key: ${{ secrets.gradle_encryption_key }}
gradle-home-cache-cleanup: true # clean up unused files
dependency-graph: generate-and-submit # submit Github Dependency Graph info

- run: ./gradlew --build-cache --configuration-cache compileDebugSources

test:
needs: compile
name: Tests without emulator
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
submodules: true
- uses: actions/setup-java@v2
distribution: temurin
java-version: 21
- uses: gradle/actions/setup-gradle@v4
with:
distribution: 'temurin'
java-version: 11
cache: 'gradle'
- uses: gradle/wrapper-validation-action@v1
cache-encryption-key: ${{ secrets.gradle_encryption_key }}
cache-read-only: true

- name: Check
run: ./gradlew check
- name: Archive results
uses: actions/upload-artifact@v2
with:
name: test-results
path: |
build/outputs/lint*
build/reports
- name: Run lint and unit tests
run: ./gradlew --build-cache --configuration-cache lintDebug testDebugUnitTest

test_on_emulator:
needs: compile
name: Tests with emulator
runs-on: privileged
container:
image: ghcr.io/bitfireat/docker-android-ci:main
options: --privileged
env:
ANDROID_HOME: /sdk
ANDROID_AVD_HOME: /root/.android/avd
runs-on: ubuntu-latest
strategy:
matrix:
api-level: [ 31 ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- uses: gradle/actions/setup-gradle@v4
with:
submodules: true
- uses: gradle/wrapper-validation-action@v1
cache-encryption-key: ${{ secrets.gradle_encryption_key }}
cache-read-only: true

- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: Cache APKs and gradle dependencies
uses: actions/cache@v2
- name: Cache AVD and APKs
uses: actions/cache@v4
id: avd-cache
with:
key: ${{ runner.os }}-1
path: |
~/.android/avd/*
~/.android/adb*
~/.apk
~/.gradle/caches
~/.gradle/wrapper
key: avd-${{ matrix.api-level }}

- name: Start emulator
run: start-emulator.sh
- name: Install task apps
run: |
mkdir .apk && cd .apk
wget -cq -O org.dmfs.tasks.apk https://f-droid.org/archive/org.dmfs.tasks_80800.apk && adb install org.dmfs.tasks.apk
wget -cq -O org.tasks.apk https://f-droid.org/archive/org.tasks_120400.apk && adb install org.tasks.apk
wget -cq -O at.techbee.jtx.apk https://f-droid.org/archive/at.techbee.jtx_100140002.apk && adb install at.techbee.jtx.apk
cd ..
- name: Run connected tests
run: ./gradlew connectedCheck -Pandroid.testInstrumentationRunnerArguments.notAnnotation=androidx.test.filters.FlakyTest
- name: Archive results
uses: actions/upload-artifact@v2
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
name: test-results
path: |
build/reports
api-level: ${{ matrix.api-level }}
arch: x86_64
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."

- name: Install task apps and run tests
uses: reactivecircus/android-emulator-runner@v2
env:
version_at_techbee_jtx: v2.9.0
version_org_tasks: 131104
version_org_dmfs_tasks: 82200
with:
api-level: ${{ matrix.api-level }}
arch: x86_64
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: |
mkdir .apk && cd .apk
(wget -cq -O org.dmfs.tasks.apk https://f-droid.org/repo/org.dmfs.tasks_${{ env.version_org_dmfs_tasks }}.apk || wget -cq -O org.dmfs.tasks.apk https://f-droid.org/archive/org.dmfs.tasks_${{ env.version_org_dmfs_tasks }}.apk) && adb install org.dmfs.tasks.apk
(wget -cq -O org.tasks.apk https://f-droid.org/repo/org.tasks_${{ env.version_org_tasks }}.apk || wget -cq -O org.tasks.apk https://f-droid.org/archive/org.tasks_${{ env.version_org_tasks }}.apk) && adb install org.tasks.apk
(wget -cq -O at.techbee.jtx.apk https://github.com/TechbeeAT/jtxBoard/releases/download/${{ env.version_at_techbee_jtx }}/jtxBoard-${{ env.version_at_techbee_jtx }}.apk) && adb install at.techbee.jtx.apk
cd ..
./gradlew --build-cache --configuration-cache connectedCheck -Pandroid.testInstrumentationRunnerArguments.notAnnotation=androidx.test.filters.FlakyTest
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
# Files for the Dalvik VM
*.dex

# Java class files
# Java/Kotlin files
*.class
.kotlin/

# Generated files
bin/
Expand Down
8 changes: 8 additions & 0 deletions .idea/copyright/GPL.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/copyright/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 3 additions & 13 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
# This is the list of significant contributors to ical4android.
#
# This does not necessarily list everyone who has contributed work.
# To see the full list of contributors, see the revision history in
# source control.
You can view the list of people who have contributed to the code base in the version control history:
https://github.com/bitfireAT/ical4android/graphs/contributors

Initial contributor:

* Ricki Hirner (bitfire.at)


Further contributor:

* Patrick Lang (techbee.at): jtx Board integration
Every contribution is welcome. There are many other forms of contributing besides writing code!
Loading