diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt index 3c9432024..d86006d02 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt @@ -176,7 +176,7 @@ class MonthView(context: Context, attrs: AttributeSet, defStyle: Int) : View(con dayVerticalOffsets.put(day.indexOnMonthView, dayVerticalOffsets[day.indexOnMonthView] + weekDaysLetterHeight) val verticalOffset = dayVerticalOffsets[day.indexOnMonthView] val xPos = x * dayWidth + horizontalOffset - val yPos = y * dayHeight + verticalOffset + val yPos = y * dayHeight + verticalOffset*1.055f val xPosCenter = xPos + dayWidth / 2 val dayNumber = day.value.toString() @@ -276,7 +276,7 @@ class MonthView(context: Context, attrs: AttributeSet, defStyle: Int) : View(con verticalOffset = max(verticalOffset, dayVerticalOffsets[event.startDayIndex + i]) } val xPos = event.startDayIndex % 7 * dayWidth + horizontalOffset - val yPos = (event.startDayIndex / 7) * dayHeight + val yPos = (event.startDayIndex / 10) * dayHeight val xPosCenter = xPos + dayWidth / 2 if (verticalOffset - eventTitleHeight * 2 > dayHeight) { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthViewWrapper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthViewWrapper.kt index 76eabbc2d..019fbf6a9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthViewWrapper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthViewWrapper.kt @@ -4,6 +4,8 @@ import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.widget.FrameLayout +import com.simplemobiletools.calendar.pro.BuildConfig +import com.simplemobiletools.calendar.pro.R import com.simplemobiletools.calendar.pro.databinding.MonthViewBackgroundBinding import com.simplemobiletools.calendar.pro.databinding.MonthViewBinding import com.simplemobiletools.calendar.pro.extensions.config @@ -67,7 +69,7 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F val childLeft = x * dayWidth + horizontalOffset - child.translationX val childTop = y * dayHeight + weekDaysLetterHeight - child.translationY val childWidth = child.measuredWidth - val childHeight = child.measuredHeight + val childHeight = child.measuredHeight/1.05F val childRight = childLeft + childWidth val childBottom = childTop + childHeight @@ -106,10 +108,15 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F } private fun measureSizes() { - dayWidth = (width - horizontalOffset) / 7f - dayHeight = (height - weekDaysLetterHeight) / 6f + // Supposons que vous avez 7 colonnes et 6 lignes + val columns = 7 + val rows = 6 + + dayWidth = ((width - horizontalOffset) / columns).toFloat() + dayHeight = ((height - weekDaysLetterHeight) / rows).toFloat() } + private fun addClickableBackgrounds() { removeAllViews() binding = MonthViewBinding.inflate(inflater, this, true) @@ -119,7 +126,7 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F for (x in 0 until COLUMN_COUNT) { val day = days.getOrNull(curId) if (day != null) { - addViewBackground(x, y, day) + addViewBackground(x, y/2, day) } curId++ } @@ -127,30 +134,46 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F } private fun addViewBackground(viewX: Int, viewY: Int, day: DayMonthly) { - val xPos = viewX * dayWidth + horizontalOffset - val yPos = viewY * dayHeight + weekDaysLetterHeight - - MonthViewBackgroundBinding.inflate(inflater, this, false).root.apply { - if (isMonthDayView) { - background = null + // utilisation de dayWidth et dayHeight pour définir la taille visuelle totale du jour + val totalDayWidth = dayWidth + val totalDayHeight = dayHeight + + // la zone cliquable à un pourcentage de la taille totale du jour + val clickableWidth = (totalDayWidth * 0.7).toInt() // 70% de la largeur totale + val clickableHeight = (totalDayHeight * 0.7).toInt() // 70% de la hauteur totale + + // Calcule les positions x et y pour centrer la zone cliquable dans la cellule du jour + val xPos = viewX * totalDayWidth + (totalDayWidth - clickableWidth) / 2 + horizontalOffset + val yPos = viewY * totalDayHeight + (totalDayHeight - clickableHeight) / 2 + weekDaysLetterHeight + + // Création des paramètres de disposition pour la vue cliquable + val clickableLayoutParams = FrameLayout.LayoutParams(clickableWidth, clickableHeight) + clickableLayoutParams.setMargins(xPos.toInt(), yPos.toInt(), 0, 0) + + val dayView = MonthViewBackgroundBinding.inflate(inflater, this, false).root.apply { + this.layoutParams = clickableLayoutParams + if (BuildConfig.DEBUG) { + setBackgroundResource(R.drawable.debug_day_border) // Appliquez la bordure rouge si en mode débogage } - layoutParams.width = dayWidth.toInt() - layoutParams.height = dayHeight.toInt() - x = xPos - y = yPos setOnClickListener { + // gestion de clic sur la zone cliquable dayClickCallback?.invoke(day) - if (isMonthDayView) { binding.monthView.updateCurrentlySelectedDay(viewX, viewY) } } - - addView(this) } + + addView(dayView) // ajout de la vue cliquable à la hiérarchie de la vue parente } + + + + + + fun togglePrintMode() { binding.monthView.togglePrintMode() } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a1a4287d5..28c1cd7bc 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,5 +1,5 @@ - + Agenda simple Agenda Changer de vue @@ -159,7 +159,7 @@ Ajouter des jours fériés Jours fériés nationaux Jours fériés religieux - Les jours fériés ont été correctement importés dans le type d'évènement \'Jours fériés\' + Les jours fériés ont été correctement importés dans le type d\'évènement \'Jours fériés\' L\'importation de certains évènements a échoué L\'importation des jours fériés a échoué @@ -252,17 +252,17 @@ Aujourd\'hui seulement Au cours du prochain… - Au cours de la prochaine journée + Au cours de la prochaine journée Au cours des %d prochains jours Au cours des %d prochains jours - Au cours de la prochaine semaine + Au cours de la prochaine semaine Au cours des %d prochaines semaines Au cours des %d prochaines semaines - Au cours du prochain mois + Au cours du prochain mois Au cours des %d prochains mois Au cours des %d prochains mois