From 66fdde442a7e254896d1a473524542f9283e4112 Mon Sep 17 00:00:00 2001 From: Himanshu Singh Date: Sun, 30 Jan 2022 04:13:46 +0100 Subject: [PATCH 1/2] [Kalendar-Selector] Added CutCornerShape + DiamondShape+CustomShape --- .../java/com/himanshoe/sample/MainActivity.kt | 3 + .../endlos/common/KalendarSelector.kt | 86 ++++++++++++++----- .../kalendar/endlos/common/KalendarStyle.kt | 1 - .../kalendar/endlos/common/ui/KalendarDot.kt | 2 +- .../kalendar/endlos/ui/KalendarDay.kt | 4 +- .../kalendar/endlos/ui/KalendarHeader.kt | 4 +- .../kalendar/endlos/ui/KalendarMonth.kt | 2 +- .../kalendar/endlos/ui/KalendarYear.kt | 2 +- .../kalendar/common/KalendarSelector.kt | 52 +++++++++++ .../kalendar/common/KalendarStyle.kt | 2 +- 10 files changed, 129 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/himanshoe/sample/MainActivity.kt b/app/src/main/java/com/himanshoe/sample/MainActivity.kt index b62aa09..41b2080 100644 --- a/app/src/main/java/com/himanshoe/sample/MainActivity.kt +++ b/app/src/main/java/com/himanshoe/sample/MainActivity.kt @@ -4,8 +4,10 @@ import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import com.himanshoe.kalendar.common.KalendarKonfig +import com.himanshoe.kalendar.common.data.KalendarEvent import com.himanshoe.kalendar.ui.Kalendar import com.himanshoe.kalendar.ui.KalendarType +import java.time.LocalDate class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -13,6 +15,7 @@ class MainActivity : ComponentActivity() { setContent { Kalendar( kalendarType = KalendarType.Oceanic(), + kalendarEvents = listOf(KalendarEvent(LocalDate.now().plusDays(3), "", "")), kalendarKonfig = KalendarKonfig(weekCharacters = 2), onCurrentDayClick = { date, event -> }, diff --git a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/KalendarSelector.kt b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/KalendarSelector.kt index fc948a2..ed76a3b 100644 --- a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/KalendarSelector.kt +++ b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/KalendarSelector.kt @@ -1,4 +1,4 @@ -package com.himanshoe.kalendar.common +package com.himanshoe.kalendar.endlos.common /* * MIT License * @@ -24,6 +24,7 @@ package com.himanshoe.kalendar.common */ import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.CutCornerShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.RectangleShape @@ -37,9 +38,8 @@ sealed class KalendarSelector( open val defaultColor: Color, open val todayColor: Color, open val selectedTextColor: Color, - open val textColor: Color, + open val defaultTextColor: Color, open val eventTextColor: Color, - open val textHeaderColor: Color, ) { data class Circle( @@ -48,17 +48,15 @@ sealed class KalendarSelector( override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, override val todayColor: Color = KalendarTheme.colors.todayColor, override val selectedTextColor: Color = KalendarTheme.colors.white, - override val textColor: Color = KalendarTheme.colors.black, - override val textHeaderColor: Color = KalendarTheme.colors.black, + override val defaultTextColor: Color = KalendarTheme.colors.black, ) : KalendarSelector( CircleShape, selectedColor, defaultColor, todayColor, selectedTextColor, - textColor, - eventTextColor, - textHeaderColor + defaultTextColor, + eventTextColor ) data class Dot( @@ -67,16 +65,15 @@ sealed class KalendarSelector( override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, override val todayColor: Color = KalendarTheme.colors.todayColor, override val selectedTextColor: Color = KalendarTheme.colors.selectedColor, - override val textColor: Color = KalendarTheme.colors.black, - override val textHeaderColor: Color = KalendarTheme.colors.black, + override val defaultTextColor: Color = KalendarTheme.colors.black, ) : KalendarSelector( CircleShape, selectedColor, defaultColor, todayColor, selectedTextColor, - textColor, - eventTextColor, textHeaderColor + defaultTextColor, + eventTextColor ) data class Square( @@ -85,16 +82,49 @@ sealed class KalendarSelector( override val todayColor: Color = KalendarTheme.colors.todayColor, override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, override val selectedTextColor: Color = KalendarTheme.colors.white, - override val textColor: Color = KalendarTheme.colors.black, - override val textHeaderColor: Color = KalendarTheme.colors.black, + override val defaultTextColor: Color = KalendarTheme.colors.black, ) : KalendarSelector( RectangleShape, selectedColor, defaultColor, todayColor, selectedTextColor, - textColor, - eventTextColor, textHeaderColor + defaultTextColor, + eventTextColor + ) + + data class CutCornerSquare( + override val selectedColor: Color = KalendarTheme.colors.selectedColor, + override val defaultColor: Color = KalendarTheme.colors.white, + override val todayColor: Color = KalendarTheme.colors.todayColor, + override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, + override val selectedTextColor: Color = KalendarTheme.colors.white, + override val defaultTextColor: Color = KalendarTheme.colors.black, + ) : KalendarSelector( + CutCornerShape(Grid.OneHalf), + selectedColor, + defaultColor, + todayColor, + selectedTextColor, + defaultTextColor, + eventTextColor + ) + + data class DiamondShape( + override val selectedColor: Color = KalendarTheme.colors.selectedColor, + override val defaultColor: Color = KalendarTheme.colors.white, + override val todayColor: Color = KalendarTheme.colors.todayColor, + override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, + override val selectedTextColor: Color = KalendarTheme.colors.white, + override val defaultTextColor: Color = KalendarTheme.colors.black, + ) : KalendarSelector( + CutCornerShape(50), + selectedColor, + defaultColor, + todayColor, + selectedTextColor, + defaultTextColor, + eventTextColor ) data class Rounded( @@ -103,15 +133,31 @@ sealed class KalendarSelector( override val todayColor: Color = KalendarTheme.colors.todayColor, override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, override val selectedTextColor: Color = KalendarTheme.colors.white, - override val textColor: Color = KalendarTheme.colors.black, - override val textHeaderColor: Color = KalendarTheme.colors.black, + override val defaultTextColor: Color = KalendarTheme.colors.black, ) : KalendarSelector( RoundedCornerShape(Grid.OneHalf), selectedColor, defaultColor, todayColor, selectedTextColor, - textColor, - eventTextColor, textHeaderColor + defaultTextColor, + eventTextColor + ) + data class CustomShape( + override val shape: Shape, + override val selectedColor: Color = KalendarTheme.colors.selectedColor, + override val defaultColor: Color = KalendarTheme.colors.white, + override val todayColor: Color = KalendarTheme.colors.todayColor, + override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, + override val selectedTextColor: Color = KalendarTheme.colors.white, + override val defaultTextColor: Color = KalendarTheme.colors.black, + ) : KalendarSelector( + shape, + selectedColor, + defaultColor, + todayColor, + selectedTextColor, + defaultTextColor, + eventTextColor ) } diff --git a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/KalendarStyle.kt b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/KalendarStyle.kt index 4dd8f8f..71d535c 100644 --- a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/KalendarStyle.kt +++ b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/KalendarStyle.kt @@ -26,7 +26,6 @@ package com.himanshoe.kalendar.endlos.common import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp -import com.himanshoe.kalendar.common.KalendarSelector import com.himanshoe.kalendar.endlos.common.theme.Grid import com.himanshoe.kalendar.endlos.common.theme.KalendarShape diff --git a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/ui/KalendarDot.kt b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/ui/KalendarDot.kt index c003c5a..0021e9c 100644 --- a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/ui/KalendarDot.kt +++ b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/common/ui/KalendarDot.kt @@ -28,7 +28,7 @@ import androidx.compose.material.Surface import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import com.himanshoe.kalendar.common.KalendarSelector +import com.himanshoe.kalendar.endlos.common.KalendarSelector import com.himanshoe.kalendar.endlos.common.theme.Grid @Composable diff --git a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarDay.kt b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarDay.kt index 3c7b56f..927ea7b 100644 --- a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarDay.kt +++ b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarDay.kt @@ -38,7 +38,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.himanshoe.kalendar.common.KalendarSelector +import com.himanshoe.kalendar.endlos.common.KalendarSelector import com.himanshoe.kalendar.endlos.common.data.KalendarEvent import com.himanshoe.kalendar.endlos.common.theme.KalendarShape import com.himanshoe.kalendar.endlos.common.ui.KalendarDot @@ -109,7 +109,7 @@ private fun getTextColor( isEvent -> kalendarSelector.eventTextColor else -> when { isSelected -> kalendarSelector.selectedTextColor - else -> kalendarSelector.textColor + else -> kalendarSelector.defaultTextColor } } } diff --git a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarHeader.kt b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarHeader.kt index 6283683..3b1781e 100644 --- a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarHeader.kt +++ b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarHeader.kt @@ -29,7 +29,7 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign -import com.himanshoe.kalendar.common.KalendarSelector +import com.himanshoe.kalendar.endlos.common.KalendarSelector import com.himanshoe.kalendar.endlos.common.theme.Grid @Composable @@ -41,7 +41,7 @@ internal fun KalendarHeader( modifier = Modifier .padding(Grid.Two) .fillMaxWidth(), - color = kalendarSelector.textColor, + color = kalendarSelector.defaultTextColor, style = MaterialTheme.typography.h6, text = text, textAlign = TextAlign.Center, diff --git a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarMonth.kt b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarMonth.kt index aa07b22..c9f7e52 100644 --- a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarMonth.kt +++ b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarMonth.kt @@ -17,8 +17,8 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.unit.dp -import com.himanshoe.kalendar.common.KalendarSelector import com.himanshoe.kalendar.endlos.common.KalendarKonfig +import com.himanshoe.kalendar.endlos.common.KalendarSelector import com.himanshoe.kalendar.endlos.common.data.KalendarEvent import com.himanshoe.kalendar.endlos.util.getMonthNameFormatter import java.time.LocalDate diff --git a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarYear.kt b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarYear.kt index be6d14b..344f3e5 100644 --- a/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarYear.kt +++ b/kalendar-endlos/src/main/java/com/himanshoe/kalendar/endlos/ui/KalendarYear.kt @@ -29,8 +29,8 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier -import com.himanshoe.kalendar.common.KalendarSelector import com.himanshoe.kalendar.endlos.common.KalendarKonfig +import com.himanshoe.kalendar.endlos.common.KalendarSelector import com.himanshoe.kalendar.endlos.common.data.KalendarEvent import com.himanshoe.kalendar.endlos.common.theme.Grid import com.himanshoe.kalendar.endlos.util.CalendarMonthSource.getInitialMonths diff --git a/kalendar/src/main/java/com/himanshoe/kalendar/common/KalendarSelector.kt b/kalendar/src/main/java/com/himanshoe/kalendar/common/KalendarSelector.kt index a732078..69cee74 100644 --- a/kalendar/src/main/java/com/himanshoe/kalendar/common/KalendarSelector.kt +++ b/kalendar/src/main/java/com/himanshoe/kalendar/common/KalendarSelector.kt @@ -24,6 +24,7 @@ package com.himanshoe.kalendar.common */ import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.CutCornerShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.RectangleShape @@ -92,6 +93,40 @@ sealed class KalendarSelector( eventTextColor ) + data class CutCornerSquare( + override val selectedColor: Color = KalendarTheme.colors.selectedColor, + override val defaultColor: Color = KalendarTheme.colors.white, + override val todayColor: Color = KalendarTheme.colors.todayColor, + override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, + override val selectedTextColor: Color = KalendarTheme.colors.white, + override val defaultTextColor: Color = KalendarTheme.colors.black, + ) : KalendarSelector( + CutCornerShape(Grid.OneHalf), + selectedColor, + defaultColor, + todayColor, + selectedTextColor, + defaultTextColor, + eventTextColor + ) + + data class DiamondShape( + override val selectedColor: Color = KalendarTheme.colors.selectedColor, + override val defaultColor: Color = KalendarTheme.colors.white, + override val todayColor: Color = KalendarTheme.colors.todayColor, + override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, + override val selectedTextColor: Color = KalendarTheme.colors.white, + override val defaultTextColor: Color = KalendarTheme.colors.black, + ) : KalendarSelector( + CutCornerShape(50), + selectedColor, + defaultColor, + todayColor, + selectedTextColor, + defaultTextColor, + eventTextColor + ) + data class Rounded( override val selectedColor: Color = KalendarTheme.colors.selectedColor, override val defaultColor: Color = KalendarTheme.colors.white, @@ -108,4 +143,21 @@ sealed class KalendarSelector( defaultTextColor, eventTextColor ) + data class CustomShape( + override val shape: Shape, + override val selectedColor: Color = KalendarTheme.colors.selectedColor, + override val defaultColor: Color = KalendarTheme.colors.white, + override val todayColor: Color = KalendarTheme.colors.todayColor, + override val eventTextColor: Color = KalendarTheme.colors.eventTextColor, + override val selectedTextColor: Color = KalendarTheme.colors.white, + override val defaultTextColor: Color = KalendarTheme.colors.black, + ) : KalendarSelector( + shape, + selectedColor, + defaultColor, + todayColor, + selectedTextColor, + defaultTextColor, + eventTextColor + ) } diff --git a/kalendar/src/main/java/com/himanshoe/kalendar/common/KalendarStyle.kt b/kalendar/src/main/java/com/himanshoe/kalendar/common/KalendarStyle.kt index 0188e02..cd69721 100644 --- a/kalendar/src/main/java/com/himanshoe/kalendar/common/KalendarStyle.kt +++ b/kalendar/src/main/java/com/himanshoe/kalendar/common/KalendarStyle.kt @@ -41,7 +41,7 @@ import com.himanshoe.kalendar.common.theme.KalendarShape data class KalendarStyle( val kalendarBackgroundColor: Color? = null, val kalendarColor: Color? = null, - val kalendarSelector: KalendarSelector = KalendarSelector.Circle(), + val kalendarSelector: KalendarSelector = KalendarSelector.DiamondShape(), val hasRadius: Boolean = true, val elevation: Dp = if (hasRadius) Grid.One else Grid.Zero, val shape: Shape = KalendarShape.ButtomCurvedShape, From de64d5054bef5cec5f09beb6ef4af445db776c85 Mon Sep 17 00:00:00 2001 From: Himanshu Singh Date: Sun, 30 Jan 2022 04:27:24 +0100 Subject: [PATCH 2/2] [Kalendar-Selector] Updated readme --- README.md | 7 ++++--- kalendar-endlos/gradle.properties | 2 +- kalendar/gradle.properties | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7cf19c6..9d0695a 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,8 @@ This is a calendar to integrate Calendar with Custom design in your jetpack comp also add list of events for your days. _Made with ❤️ for Android Developers by Himanshu_ -[![Maven Central](https://img.shields.io/maven-central/v/com.himanshoe/kalendar)](https://search.maven.org/artifact/com.himanshoe/kalendar) +[![Kalendar](https://img.shields.io/maven-central/v/com.himanshoe/kalendar)](https://search.maven.org/artifact/com.himanshoe/kalendar) +[![Kalenda-Endlos](https://img.shields.io/maven-central/v/com.himanshoe/kalendar)](https://search.maven.org/artifact/com.himanshoe/kalendar-endlos) [![Github Followers](https://img.shields.io/github/followers/hi-manshu?label=Follow&style=social)](https://github.com/hi-manshu) [![Twitter Follow](https://img.shields.io/twitter/follow/hi_man_shoe?label=Follow&style=social)](https://twitter.com/hi_man_shoe) @@ -23,7 +24,7 @@ In `build.gradle` of app module, include this dependency ```gradle dependencies { - implementation("com.himanshoe:kalendar:1.0.0-RC2") + implementation("com.himanshoe:kalendar:1.0.0-RC4") } ``` @@ -32,7 +33,7 @@ app module, include this dependency ```gradle dependencies { - implementation("com.himanshoe:kalendar-endlos:1.0.0-alpha1") + implementation("com.himanshoe:kalendar-endlos:1.0.0-RC1") } ``` diff --git a/kalendar-endlos/gradle.properties b/kalendar-endlos/gradle.properties index 9892ee9..198ca80 100644 --- a/kalendar-endlos/gradle.properties +++ b/kalendar-endlos/gradle.properties @@ -5,7 +5,7 @@ POM_DESCRIPTION=An Elementary Compose Calendar. POM_PACKAGING=aar POM_INCEPTION_YEAR=2022 GROUP=com.himanshoe -VERSION_NAME=1.0.0-alpha1 +VERSION_NAME=1.0.0-RC1 VERSION_CODE=1 POM_URL=https://github.com/hi-manshu POM_LICENCE_NAME=The Apache Software License, Version 2.0 diff --git a/kalendar/gradle.properties b/kalendar/gradle.properties index 107a6e2..31900a9 100644 --- a/kalendar/gradle.properties +++ b/kalendar/gradle.properties @@ -5,7 +5,7 @@ POM_DESCRIPTION=An Elementary Compose Calendar. POM_PACKAGING=aar POM_INCEPTION_YEAR=2022 GROUP=com.himanshoe -VERSION_NAME=1.0.0-RC3 +VERSION_NAME=1.0.0-RC4 VERSION_CODE=1 POM_URL=https://github.com/hi-manshu POM_LICENCE_NAME=The Apache Software License, Version 2.0