From 54955b46287dd755f1ca0dbb4b61c17b7e124c98 Mon Sep 17 00:00:00 2001 From: Seweryn Fornalik Date: Thu, 8 Apr 2021 09:35:09 +0200 Subject: [PATCH 1/3] Fix issue#2899 - background not centered --- .../calendar/month/MonthWeekEventsView.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/com/android/calendar/month/MonthWeekEventsView.java b/src/com/android/calendar/month/MonthWeekEventsView.java index bff9ae703..34fc241d7 100644 --- a/src/com/android/calendar/month/MonthWeekEventsView.java +++ b/src/com/android/calendar/month/MonthWeekEventsView.java @@ -34,6 +34,7 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Align; import android.graphics.Paint.Style; +import android.graphics.Rect; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.provider.CalendarContract.Attendees; @@ -617,6 +618,9 @@ public class MonthWeekEventsView extends SimpleWeekView { Time time = new Time(mTimeZone); time.setJulianDay(julianMonday); + int current_date_text_x=getResources().getDimensionPixelSize(R.dimen.current_date_text_x); + int current_date_text_y=getResources().getDimensionPixelSize(R.dimen.current_date_text_y); + for (; i < numCount; i++) { x = computeDayLeftPosition(i - offset) - (mSidePaddingMonthNumber); @@ -630,17 +634,21 @@ public class MonthWeekEventsView extends SimpleWeekView { } mMonthNumPaint.setColor(getContext().getResources().getColor(R.color.color_default_blue1)); int current_date_bg_size=getResources().getDimensionPixelSize(R.dimen.current_date_bg_size); - int current_date_circle_x=getResources().getDimensionPixelSize(R.dimen.current_date_circle_x); - int current_date_circle_y=getResources().getDimensionPixelSize(R.dimen.current_date_circle_y); - int size=mDayNumbers[i].length(); + //check text width & height to calculate circle cx and cy values + Rect bounds = new Rect(); + mMonthNumPaint.getTextBounds(mDayNumbers[i], 0, mDayNumbers[i].length(), bounds); - if(size==1){ - // mMonthNumPaint.setColor(getContext().getResources().getColor(R.color.colorRedAccent)); - current_date_circle_x=getResources().getDimensionPixelSize(R.dimen.current_date_circle_single_x); - } + int text_height = bounds.height(); + int text_width = bounds.width(); + int topExtraMargin = 3; + int topTopMargin = y - text_height; + float proposedRadius = topTopMargin + text_height / 2 - topExtraMargin; + + float radius = Math.min(current_date_bg_size, proposedRadius); - canvas.drawCircle(x-current_date_circle_x, y-current_date_circle_y, current_date_bg_size,mMonthNumPaint); + canvas.drawCircle(x - current_date_text_x - (text_width / 2), + y - current_date_text_y - (text_height / 2), radius, mMonthNumPaint); mMonthNumPaint.setColor(mMonthNumTodayColor); } else if (mFocusDay[i] != isFocusMonth) { isFocusMonth = mFocusDay[i]; @@ -648,8 +656,6 @@ public class MonthWeekEventsView extends SimpleWeekView { } double relation = Math.sqrt(canvas.getWidth() * canvas.getHeight()); mMonthNumPaint.setTextSize((int)relation / 12); - int current_date_text_x=getResources().getDimensionPixelSize(R.dimen.current_date_text_x); - int current_date_text_y=getResources().getDimensionPixelSize(R.dimen.current_date_text_y); canvas.drawText(mDayNumbers[i], x-current_date_text_x, y-current_date_text_y, mMonthNumPaint); -- GitLab From d2d954bd54df769c630d73a6d34e40f441683695 Mon Sep 17 00:00:00 2001 From: Seweryn Fornalik Date: Thu, 8 Apr 2021 18:03:43 +0200 Subject: [PATCH 2/3] Fix issue#2899 - background not centered: udpates after review --- res/values/dimens.xml | 2 +- src/com/android/calendar/month/MonthWeekEventsView.java | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 0451f5322..c5d5c36cf 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -62,7 +62,7 @@ 12dp 5dp 7dp - 0dp + 5dp diff --git a/src/com/android/calendar/month/MonthWeekEventsView.java b/src/com/android/calendar/month/MonthWeekEventsView.java index 34fc241d7..06326c770 100644 --- a/src/com/android/calendar/month/MonthWeekEventsView.java +++ b/src/com/android/calendar/month/MonthWeekEventsView.java @@ -641,14 +641,9 @@ public class MonthWeekEventsView extends SimpleWeekView { int text_height = bounds.height(); int text_width = bounds.width(); - int topExtraMargin = 3; - int topTopMargin = y - text_height; - float proposedRadius = topTopMargin + text_height / 2 - topExtraMargin; - - float radius = Math.min(current_date_bg_size, proposedRadius); canvas.drawCircle(x - current_date_text_x - (text_width / 2), - y - current_date_text_y - (text_height / 2), radius, mMonthNumPaint); + y + current_date_text_y - (text_height / 2), current_date_bg_size, mMonthNumPaint); mMonthNumPaint.setColor(mMonthNumTodayColor); } else if (mFocusDay[i] != isFocusMonth) { isFocusMonth = mFocusDay[i]; @@ -657,7 +652,7 @@ public class MonthWeekEventsView extends SimpleWeekView { double relation = Math.sqrt(canvas.getWidth() * canvas.getHeight()); mMonthNumPaint.setTextSize((int)relation / 12); - canvas.drawText(mDayNumbers[i], x-current_date_text_x, y-current_date_text_y, mMonthNumPaint); + canvas.drawText(mDayNumbers[i], x-current_date_text_x, y+current_date_text_y, mMonthNumPaint); if (isBold) { mMonthNumPaint.setFakeBoldText(isBold = false); -- GitLab From 5855f351de6f246a2c470a7764a8a4d0487eccab Mon Sep 17 00:00:00 2001 From: Seweryn Fornalik Date: Thu, 13 May 2021 12:01:53 +0200 Subject: [PATCH 3/3] Fix issue#2899 - move backgroud up not to overlap with events --- res/values/dimens.xml | 1 + src/com/android/calendar/month/MonthWeekEventsView.java | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index c5d5c36cf..9591d971b 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -63,6 +63,7 @@ 5dp 7dp 5dp + 3dp diff --git a/src/com/android/calendar/month/MonthWeekEventsView.java b/src/com/android/calendar/month/MonthWeekEventsView.java index 06326c770..226b57e44 100644 --- a/src/com/android/calendar/month/MonthWeekEventsView.java +++ b/src/com/android/calendar/month/MonthWeekEventsView.java @@ -620,6 +620,7 @@ public class MonthWeekEventsView extends SimpleWeekView { int current_date_text_x=getResources().getDimensionPixelSize(R.dimen.current_date_text_x); int current_date_text_y=getResources().getDimensionPixelSize(R.dimen.current_date_text_y); + int current_date_event_margin=getResources().getDimensionPixelSize(R.dimen.current_date_text_event_margin); for (; i < numCount; i++) { x = computeDayLeftPosition(i - offset) - (mSidePaddingMonthNumber); @@ -643,7 +644,8 @@ public class MonthWeekEventsView extends SimpleWeekView { int text_width = bounds.width(); canvas.drawCircle(x - current_date_text_x - (text_width / 2), - y + current_date_text_y - (text_height / 2), current_date_bg_size, mMonthNumPaint); + y + current_date_text_y - (text_height / 2) - current_date_event_margin, + current_date_bg_size, mMonthNumPaint); mMonthNumPaint.setColor(mMonthNumTodayColor); } else if (mFocusDay[i] != isFocusMonth) { isFocusMonth = mFocusDay[i]; @@ -652,7 +654,8 @@ public class MonthWeekEventsView extends SimpleWeekView { double relation = Math.sqrt(canvas.getWidth() * canvas.getHeight()); mMonthNumPaint.setTextSize((int)relation / 12); - canvas.drawText(mDayNumbers[i], x-current_date_text_x, y+current_date_text_y, mMonthNumPaint); + canvas.drawText(mDayNumbers[i], x-current_date_text_x, + y+current_date_text_y - current_date_event_margin, mMonthNumPaint); if (isBold) { mMonthNumPaint.setFakeBoldText(isBold = false); -- GitLab