Skip to content
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

Year calendar #568

Merged
merged 48 commits into from
Jul 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
eab37f8
Add year calendar composable
kizitonwose Jul 20, 2024
b3b13c1
Improve year calendar samples
kizitonwose Jul 20, 2024
6bcbadc
Optimise year calendar samples for small screens.
kizitonwose Jul 21, 2024
3e30f6f
Add docs for year calendar
kizitonwose Jul 21, 2024
0b83e45
Update dependencies
kizitonwose Jul 21, 2024
3d84e4b
Improve year sample
kizitonwose Jul 21, 2024
7124577
Change horizontal and vertical arrangement parameters to spacing.
kizitonwose Jul 21, 2024
ba1d810
Add year data tests
kizitonwose Jul 22, 2024
7b45281
Use JUnit5
kizitonwose Jul 22, 2024
651aca4
Add year calendar state tests
kizitonwose Jul 22, 2024
0d47caf
Add year calendar compose docs
kizitonwose Jul 22, 2024
45089a4
Unify range checks
kizitonwose Jul 23, 2024
4512615
Add multiplatform core tests
kizitonwose Jul 23, 2024
c78a7a3
Add multiplatform Year and YearMonth tests
kizitonwose Jul 23, 2024
87ffc63
Add Year model docs
kizitonwose Jul 23, 2024
ac8152b
Add jvm year converters
kizitonwose Jul 23, 2024
99178e9
Add YearMonth/Year serializers and ISO 8601 toString() implementations.
kizitonwose Jul 23, 2024
b53548d
Remove unnecessary `JvmSerializableLocalDate` class.
kizitonwose Jul 23, 2024
fc46d79
Use iso strings as state keys.
kizitonwose Jul 23, 2024
1a54da2
Remove JvmSerializable
kizitonwose Jul 23, 2024
8b48ee1
Simplify serializers
kizitonwose Jul 23, 2024
62df392
Allow external string to Year/YearMonth conversion.
kizitonwose Jul 24, 2024
e4337e9
Expose basic arithmetic utilities.
kizitonwose Jul 24, 2024
32eb5a4
Clean up tests
kizitonwose Jul 24, 2024
7cbbcee
Expose native/wasm dependency
kizitonwose Jul 24, 2024
07ce411
Revert multiplatform library to compose 1.6.11
kizitonwose Jul 24, 2024
800ac7a
Add multiplatform year calendar
kizitonwose Jul 24, 2024
46d4a3a
Add multiplatform calendar state tests
kizitonwose Jul 24, 2024
2c6347d
Add multiplatform calendar data tests
kizitonwose Jul 24, 2024
4ae762d
Clean up tests
kizitonwose Jul 25, 2024
c125c9c
Add multiplatform full screen example
kizitonwose Jul 25, 2024
b6f510d
Add page options to full screen example.
kizitonwose Jul 25, 2024
5ded0bb
Migrate sample to Material3
kizitonwose Jul 25, 2024
c21b3f1
Add page options to Android full screen example.
kizitonwose Jul 25, 2024
8a5df62
Clean up dependencies
kizitonwose Jul 25, 2024
e33c2d6
Add multiplatform horizontal year calendar sample
kizitonwose Jul 25, 2024
10bae10
Add multiplatform vertical year calendar sample
kizitonwose Jul 25, 2024
d2d80c9
Material3 color fixes
kizitonwose Jul 25, 2024
9e04fcf
Reorder annotations
kizitonwose Jul 25, 2024
bf410a8
Improve colors in the sample app
kizitonwose Jul 26, 2024
7f22bc5
Update compose docs
kizitonwose Jul 26, 2024
9792f89
Run all tests
kizitonwose Jul 26, 2024
81da299
Update docs
kizitonwose Jul 26, 2024
2d6f6ec
Api dump
kizitonwose Jul 26, 2024
acf12dd
Fix lint
kizitonwose Jul 26, 2024
fb0be24
Prepare version 2.5.3
kizitonwose Jul 27, 2024
b3569e6
Prepare versions 2.6.0-beta03-A|2.6.0-alpha04-MP
kizitonwose Jul 27, 2024
c216935
Prepare next development version.
kizitonwose Jul 27, 2024
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
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ ktlint = disabled
ij_kotlin_allow_trailing_comma = true
ij_kotlin_allow_trailing_comma_on_call_site = true
ktlint_standard_multiline-expression-wrapping = disabled
ktlint_standard_function-expression-body = disabled
ktlint_standard_chain-method-continuation = disabled
ktlint_standard_class-signature = disabled
# string-template-indent requires multiline-expression-wrapping to be enabled
ktlint_standard_string-template-indent = disabled
ktlint_standard_parameter-list-wrapping = disabled
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
with:
gradle-home-cache-cleanup: true
- name: Unit tests
run: ./gradlew testDebugUnitTest
run: ./gradlew test

instrumentation-tests:
name: Instrumentation tests
Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ A highly customizable calendar library for Android and Compose Multiplatform, ba

## Features

- [x] Single, multiple or range selection - Total flexibility to implement the date selection
- [x] Week, month, or year modes - Show a week-based calendar, or the typical month calendar, or a year-based calendar.
- [x] Single, multiple, or range selection - Total flexibility to implement the date selection
whichever way you like.
- [x] Week or month mode - Show a week-based calendar, or the typical month calendar.
- [x] Disable desired dates - Prevent selection of some dates by disabling them.
- [x] Boundary dates - Limit the calendar date range.
- [x] Custom date view/composable - Make your day cells look however you want, with any
Expand All @@ -28,8 +28,8 @@ A highly customizable calendar library for Android and Compose Multiplatform, ba
- [x] Horizontal or vertical scrolling calendar.
- [x] HeatMap calendar - Suitable for showing how data changes over time, like GitHub's contribution
chart.
- [x] Month/Week headers and footers - Add headers/footers of any kind on each month/week.
- [x] Easily scroll to any date/week/month on the calendar via swipe actions or programmatically.
- [x] Year/Month/Week headers and footers - Add headers/footers of any kind on each year/month/week.
- [x] Easily scroll to any date/week/month/year on the calendar via swipe actions or programmatically.
- [x] Use all RecyclerView/LazyRow/LazyColumn customizations since the calendar extends from
RecyclerView for the view system and uses LazyRow/LazyColumn for compose.
- [x] Design your calendar [however you want.](https://github.com/kizitonwose/Calendar/issues/1) The
Expand Down Expand Up @@ -124,12 +124,12 @@ For the compose calendar library, ensure that you are using the library version

| Compose UI | Android Calendar Library | Multiplatform Calendar Library |
|:----------:|:------------------------:|:------------------------------:|
| 1.2.x | 2.0.x | - |
| 1.3.x | 2.1.x - 2.2.x | - |
| 1.4.x | 2.3.x | - |
| 1.5.x | 2.4.x | - |
| 1.6.x | 2.5.x | - |
| 1.7.x | 2.6.x | 2.6.x |
| 1.2.x | 2.0.x | - |
| 1.3.x | 2.1.x - 2.2.x | - |
| 1.4.x | 2.3.x | - |
| 1.5.x | 2.4.x | - |
| 1.6.x | 2.5.x | 2.5.x |
| 1.7.x | 2.6.x | 2.6.x |

## Usage

Expand Down
7 changes: 4 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,23 @@ plugins {
alias(libs.plugins.mavenPublish) apply false
alias(libs.plugins.kotlinMultiplatform) apply false
alias(libs.plugins.jetbrainsCompose) apply false
alias(libs.plugins.kotlinSerialization) apply false
alias(libs.plugins.versionCheck)
alias(libs.plugins.bcv)
}

allprojects {
apply(plugin = rootProject.libs.plugins.kotlinter.get().pluginId)

plugins.withType<KotlinBasePlugin>().configureEach {
plugins.withType<KotlinBasePlugin> {
extensions.configure<KotlinProjectExtension> {
if ("sample" !in project.name) {
explicitApi()
}
}
}

tasks.withType<Test>().configureEach {
tasks.withType<Test> {
useJUnitPlatform()
// https://docs.gradle.org/8.8/userguide/performance.html#execute_tests_in_parallel
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
}
Expand Down
Loading
Loading