7791 Commits

Author SHA1 Message Date
dependabot[bot]
445c29a762 chore(deps): bump com.android.application from 9.3.0 to 9.3.1 (#1263)
Bumps com.android.application from 9.3.0 to 9.3.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-28 05:12:19 +05:30
dependabot[bot]
14816e9a09 chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0 (#1259)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.4.0 to 7.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](48b55a011b...8207627860)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 03:34:44 +05:30
dependabot[bot]
a7ef853eee chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 (#1260)
Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](9c091bb21b...3d3c42e5aa)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 03:34:24 +05:30
dependabot[bot]
8ff9a192c7 chore(deps): bump com.android.application from 9.2.1 to 9.3.0 (#1261)
Bumps com.android.application from 9.2.1 to 9.3.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 03:33:06 +05:30
Sepehr
9bfd12bc22 chore(l10n): update Persian translations
Currently translated at 100.0% (261 of 261 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/fa/
Via: Weblate
2026-07-17 07:07:47 +05:30
Christophe Genre
a0e52d1e80 chore(l10n): update French translations
Currently translated at 100.0% (261 of 261 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/fr/
Via: Weblate
2026-07-17 07:07:47 +05:30
Guillaume
f3c80cc983 chore(l10n): update Dutch translations
Currently translated at 100.0% (261 of 261 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/nl/
Via: Weblate
2026-07-17 07:07:47 +05:30
ssantos
0291c381d7 chore(l10n): update Portuguese translations
Currently translated at 99.2% (259 of 261 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/pt/
Via: Weblate
2026-07-17 07:07:47 +05:30
Bjarki Geir Benediktsson
716d926eea chore(l10n): update Icelandic translations
Currently translated at 22.6% (59 of 261 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/is/
Via: Weblate
2026-07-17 07:07:47 +05:30
dependabot[bot]
341bfabd59 chore(deps): bump com.google.devtools.ksp from 2.3.9 to 2.3.10 (#1246)
Bumps [com.google.devtools.ksp](https://github.com/google/ksp) from 2.3.9 to 2.3.10.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.3.9...2.3.10)

---
updated-dependencies:
- dependency-name: com.google.devtools.ksp
  dependency-version: 2.3.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 00:25:43 +05:30
Demy Klabbers
fee565e2d2 fix(manifest): add SyncAdapter package visibility for Android 11+ (#1091)
* fix(manifest): add SyncAdapter intent to queries

* docs(changelog): update with SyncAdapter visibility fix

* refactor(manifest): add dedicated <queries> element for SyncAdapter intent

* docs(changelog): refine description of SyncAdapter visibility fix

* docs(changelog): add missing issue link

Refs: https://github.com/FossifyOrg/Calendar/issues/656

---------

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>
2026-07-08 05:23:09 +05:30
Faraz Ahmed
155aba2136 fix: allow title and location fields to wrap long text (#1178)
* fix: allow title and location fields to wrap long text

Remove android:maxLines="1" from event_title and event_location so
that long titles and locations wrap across multiple lines instead of
being clipped. The fields remain single-line inputs (no newlines),
only the visual display now wraps correctly.

Refs #1177

---------

Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2026-07-08 04:57:36 +05:30
dependabot[bot]
69741b1b40 chore(deps): bump fastlane from 2.236.1 to 2.237.0 (#1244)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.236.1 to 2.237.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.236.1...fastlane/2.237.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.237.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-06 23:36:02 +05:30
fossifybot[bot]
decad53f0a chore: update lint baselines (#1238)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-07-01 12:58:32 +05:30
dependabot[bot]
025c12982a chore(deps): bump faraday from 1.10.5 to 1.10.6 (#1236)
Bumps [faraday](https://github.com/lostisland/faraday) from 1.10.5 to 1.10.6.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v1.10.5...v1.10.6)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 1.10.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-30 21:06:09 +05:30
dependabot[bot]
b44560964b chore(deps): bump gradle-wrapper from 9.6.0 to 9.6.1 (#1235)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.6.0 to 9.6.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.6.0...v9.6.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-30 08:10:49 +05:30
dependabot[bot]
e18e3873da chore(deps): bump fastlane from 2.236.0 to 2.236.1 (#1227)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.236.0 to 2.236.1.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.236.0...fastlane/2.236.1)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.236.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-23 20:14:13 +05:30
dependabot[bot]
b49957cc8a chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 (#1232)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](df4cb1c069...9c091bb21b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-23 20:13:50 +05:30
dependabot[bot]
e636df662a chore(deps): bump gradle-wrapper from 9.5.1 to 9.6.0 (#1233)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.5.1 to 9.6.0.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.5.1...v9.6.0)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-23 20:02:09 +05:30
dependabot[bot]
a3e4abcf48 chore(deps): bump fastlane from 2.235.0 to 2.236.0 (#1224)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.235.0 to 2.236.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.235.0...fastlane/2.236.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.236.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-08 23:22:03 +05:30
dependabot[bot]
3f6c4f5c0e chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 (#1221)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](de0fac2e45...df4cb1c069)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 21:50:14 +05:30
dependabot[bot]
0bfc52c419 chore(deps): bump com.google.devtools.ksp from 2.3.8 to 2.3.9 (#1222)
Bumps [com.google.devtools.ksp](https://github.com/google/ksp) from 2.3.8 to 2.3.9.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.3.8...2.3.9)

---
updated-dependencies:
- dependency-name: com.google.devtools.ksp
  dependency-version: 2.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 21:49:08 +05:30
fossifybot[bot]
0460a011ab chore: update holidays (#1217)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-06-01 16:33:57 +05:30
fossifybot[bot]
9e39ac712c chore: update lint baselines (#1220)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-06-01 08:27:01 +05:30
fossifybot[bot]
f5b04fe115 chore: update lint baselines (#1182)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-05-31 22:28:51 +05:30
dependabot[bot]
10a77dd116 chore(deps): bump jwt from 2.10.2 to 3.2.0 (#1216)
Bumps [jwt](https://github.com/jwt/ruby-jwt) from 2.10.2 to 3.2.0.
- [Release notes](https://github.com/jwt/ruby-jwt/releases)
- [Changelog](https://github.com/jwt/ruby-jwt/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jwt/ruby-jwt/compare/v2.10.2...v3.2.0)

---
updated-dependencies:
- dependency-name: jwt
  dependency-version: 3.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-28 10:07:12 +05:30
dependabot[bot]
d146ad1f9b chore(deps): bump fastlane from 2.233.0 to 2.234.0 (#1200)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.233.0 to 2.234.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.233.0...fastlane/2.234.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.234.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 18:53:31 +05:30
dependabot[bot]
1767043ce2 chore(deps): bump com.android.application from 9.2.0 to 9.2.1 (#1201)
Bumps com.android.application from 9.2.0 to 9.2.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 18:53:18 +05:30
dependabot[bot]
b56dc42c7e chore(deps): bump com.google.devtools.ksp from 2.3.7 to 2.3.8 (#1208)
Bumps [com.google.devtools.ksp](https://github.com/google/ksp) from 2.3.7 to 2.3.8.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.3.7...2.3.8)

---
updated-dependencies:
- dependency-name: com.google.devtools.ksp
  dependency-version: 2.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 18:53:06 +05:30
dependabot[bot]
3308f946fd chore(deps): bump date-holidays in /.github/workflows/holiday-generator (#1209)
Bumps [date-holidays](https://github.com/commenthol/date-holidays) from 3.27.0 to 3.29.0.
- [Changelog](https://github.com/commenthol/date-holidays/blob/master/CHANGELOG.md)
- [Commits](https://github.com/commenthol/date-holidays/compare/v3.27.0...v3.29.0)

---
updated-dependencies:
- dependency-name: date-holidays
  dependency-version: 3.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 18:52:55 +05:30
dependabot[bot]
4672bde019 chore(deps): bump gradle-wrapper from 9.4.1 to 9.5.1 (#1210)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.4.1 to 9.5.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.4.1...v9.5.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 18:52:42 +05:30
dependabot[bot]
76875a2a47 chore(deps): bump actions/create-github-app-token from 3.1.1 to 3.2.0 (#1207)
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Changelog](https://github.com/actions/create-github-app-token/blob/main/CHANGELOG.md)
- [Commits](1b10c78c78...bcd2ba4921)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 17:52:34 +05:30
H Tamás
59cf4ecc25 chore(l10n): update Hungarian translations
Currently translated at 100.0% (261 of 261 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/hu/
Via: Weblate
2026-05-09 07:04:46 +05:30
OKAMOTO Shigehiro
d389eb9f2b chore(l10n): update Japanese translations
Currently translated at 98.4% (257 of 261 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/ja/
Via: Weblate
2026-05-06 07:03:45 +05:30
OKAMOTO Shigehiro
29c4804619 chore(l10n): update Japanese translations
Currently translated at 98.0% (256 of 261 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/ja/
Via: Weblate
2026-05-03 07:04:08 +05:30
H Tamás
cb79ce8999 chore(l10n): update Hungarian translations
Currently translated at 100.0% (261 of 261 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/hu/
Via: Weblate
2026-04-30 07:04:21 +05:30
Naveen Singh
7746333465 fix: consume completed weekly pinch gesture (#1173)
Follow-up to #1097. Keep the weekly pinch gesture marked as consumed until the final ACTION_UP/ACTION_CANCEL so the completed pinch cannot fall through as a day-column tap or event click.
2026-04-28 18:39:44 +05:30
Naveen Singh
9643bdd2c2 chore(release): revert build version back to 1.10.3 due to release failure (#1171)
* chore(release): revert build version back to 1.10.3 due to release failure

* docs: remove extra blank lines in CHANGELOG.md

* chore(release): remove changelog for version 21
2026-04-28 17:47:29 +05:30
Hosted Weblate
fc3be8a1a7 chore(l10n): update translation files via Cleanup translation files
Translation files for Fossify/Calendar were updated
by the "Cleanup translation files" hook.

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/
Via: Weblate
2026-04-28 17:40:55 +05:30
大王叫我来巡山
48c6d757c8 chore(l10n): update Chinese (Simplified Han script) translations
Currently translated at 100.0% (267 of 267 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/zh_Hans/
Via: Weblate
2026-04-28 17:40:55 +05:30
Dan
d363ffebe4 chore(l10n): update Ukrainian translations
Currently translated at 100.0% (267 of 267 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/uk/
Via: Weblate
2026-04-28 17:40:55 +05:30
Agnieszka C
a0a025f591 chore(l10n): update Polish translations
Currently translated at 100.0% (267 of 267 strings)

Translation: Fossify/Calendar
Translate-URL: https://hosted.weblate.org/projects/fossify/calendar/pl/
Via: Weblate
2026-04-28 17:40:55 +05:30
Naveen Singh
bd893b40d5 docs(changelog): update changelog and issue references (#1170) 2026-04-28 17:12:36 +05:30
Naveen Singh
b8d8d6f6b1 Revert "feat: Calendar selection for event list widget (#1160)" (#1168)
This reverts commit 80dd4d9f1e.
2026-04-28 17:03:07 +05:30
P4u14
a8e218679b fix: Monthly widget doesn't show multiple-day events properly #15 (#1068)
* #15 adapt styling for multi-day events on monthlyWidget to look like one rectangle

* refactor to avoid exceeding method length

---------

Co-authored-by: Paula <paula.schreiber@altavo.eu>
2026-04-28 15:56:24 +05:30
rros
12b8d73d7a feature: setup unit testing (#1074)
* Add junit dependency

* Add more test libraries for androidTest classes.

* Add an expected failure util to catch assertion error for known bugs without failing the tests.

* Add some tests for known bugs.
2026-04-28 15:56:14 +05:30
rbrgmn
0b35af49fc Fix weekly view pinch zoom getting stuck (#1097)
* Fix weekly view pinch zoom getting stuck

This code fixes an issue #621 in Week view where pinch zoom could stop
responding after zooming out, especially when an event/task is placed in
the first or last time slot (around 00:00 or 23:00).

* add to fixed issue #621

* fix code for ci test
2026-04-28 15:55:45 +05:30
rbrgmn
5fc88aefc3 fix Current time indicator issue #1115 (#1116)
* fix issue#1115

Timeline indicator drawn above events/tasks so it stays visible at all
times.

* add issue #1115 to fixed
2026-04-28 15:55:35 +05:30
fossifybot[bot]
f0317bec12 chore(release): v1.11.0 (21) (#1119)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-04-28 15:55:24 +05:30
Kurian Vithayathil
80dd4d9f1e feat: Calendar selection for event list widget (#1160)
* feat(widget): add calendars column and helpers to Widget model

Add nullable calendars field (String? DEFAULT NULL) to Widget entity for
per-widget calendar filtering. NULL = fallback to global, empty = show nothing.

- Widget.kt: add calendars field, isCalendarsConfigured(), getCalendarIdsAsList()
- EventsDatabase.kt: bump version 11→12, MIGRATION_11_12 adds column
- Constants.kt: add EVENT_LIST_CALENDARS intent extra key

* feat(widget): add settings icon drawable and calendar picker strings

- ic_settings_vector.xml: Material Settings gear icon (24dp)
- strings.xml: add widget_calendars, widget_calendars_summary, widget_calendars_all

* feat(widget): implement per-widget calendar filtering for event list widget

Add per-widget calendar selection to the event list widget. Each widget
instance can now filter events to specific calendars, overriding the
global display settings.

- Add overrideCalendarIds parameter to EventsHelper.getEventsSync() with
  widget-wins-completely logic (skips all global filter including
  birthday/anniversary)
- Add calendars Intent extra to WidgetService for per-instance filtering
- Add settings gear icon to widget header via direct PendingIntent
- Add calendar picker row to widget config screen with SelectCalendarsDialog
- Guard back press during re-configuration to avoid clearing widget
- Disable save button until existing config loads from Room

* chore: add Room schema 12.json

Generated by KSP during build. Captures the new nullable calendars
TEXT column on the widgets table introduced by migration 11->12.

* fix(widget): pre-check all calendars when default selection is used

* feat(widget): add 3-state calendar picker to widget config

Add calendar selection UI to the widget configuration screen with
explicit tracking of user intent to distinguish three states:

- null (never configured): falls back to global filter, shows 'All calendars'
- empty string (explicitly chose none): shows 'No calendars selected' + warning
- comma-separated IDs: shows 'N calendars selected'

Changes:
- Flatten widget_config_list.xml to ConstraintLayout
- Add calendar picker button with SelectCalendarsDialog
- Track mCalendarsExplicitlyChosen flag through config/reconfig cycle
- Fix saveConfig to preserve explicit-zero as empty string sentinel
- Fix updateCalendarPickerLabel for 3-state display
- Show warning when zero calendars explicitly selected
- Fix EventListWidgetAdapter intent parsing for null vs empty-string
- Fix MyWidgetListProvider to only set calendars extra when non-null
- Pre-check all calendars when default selection is used
- Add ic_calendar_add_vector drawable and dimension resources

* changelog: consolidate [Unreleased] entries for per-widget calendar filtering

* fix(detekt): resolve MaxLineLength, MagicNumber, and complexity warnings

* fix(widget): add contentDescription to widget header ImageButtons

Replace ImageView with ImageButton and add accessibility labels
for configure, new event, and show today actions in the event
list widget header.

* refactor(widget): replace deprecated onBackPressed with onBackPressedCompat

Remove @Deprecated onBackPressed override in WidgetListConfigureActivity
in favor of the compatibility-aware onBackPressedCompat/performDefaultBack
pattern from the commons library.

* fix: use LongSparseArray for calendar colors and reference color resource

- Replace Map<Long, Int> with LongSparseArray<Int> in
  EventsHelper for Android-idiomatic long-keyed map usage
- Use @color/dark_grey reference instead of hardcoded hex in
  debug launcher background drawable

---------

Co-authored-by: Kurian Vithayathil <1056073+kvithayathil@users.noreply.github.com>
2026-04-28 15:55:13 +05:30