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

[Kalendar-Selector] Added CutCornerShape + DiamondShape+CustomShape #23

Merged
merged 2 commits into from
Jan 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand All @@ -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")
}
```

Expand All @@ -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")
}
```

Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/com/himanshoe/sample/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,18 @@ 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?) {
super.onCreate(savedInstanceState)
setContent {
Kalendar(
kalendarType = KalendarType.Oceanic(),
kalendarEvents = listOf(KalendarEvent(LocalDate.now().plusDays(3), "", "")),
kalendarKonfig = KalendarKonfig(weekCharacters = 2),
onCurrentDayClick = { date, event ->
},
Expand Down
2 changes: 1 addition & 1 deletion kalendar-endlos/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.himanshoe.kalendar.common
package com.himanshoe.kalendar.endlos.common
/*
* MIT License
*
Expand All @@ -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
Expand All @@ -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(
Expand All @@ -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(
Expand All @@ -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(
Expand All @@ -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(
Expand All @@ -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
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -109,7 +109,7 @@ private fun getTextColor(
isEvent -> kalendarSelector.eventTextColor
else -> when {
isSelected -> kalendarSelector.selectedTextColor
else -> kalendarSelector.textColor
else -> kalendarSelector.defaultTextColor
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion kalendar/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand All @@ -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
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down