Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ee5355c authored by rincewound's avatar rincewound Committed by Gitsaibot
Browse files

Sort events by column to ensure correct draw order.

parent e399c255
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Comparator;
import java.util.Formatter;
import java.util.Locale;
import java.util.regex.Matcher;
@@ -3133,6 +3134,12 @@ public class DayView extends View implements View.OnCreateContextMenuListener,
        selectionArea.right = selectionArea.left + cellWidth;

        final ArrayList<Event> events = mEvents;

        // Sort events by column, so they are drawn in order of column. This
        // leads to events with the higher column number being drawn last, which
        // ensures proper z-sorting when multiple events overlap.
        events.sort(Comparator.comparingInt(Event::getColumn));

        int numEvents = events.size();
        EventGeometry geometry = mEventGeometry;

@@ -3163,6 +3170,7 @@ public class DayView extends View implements View.OnCreateContextMenuListener,
            if (r.top > viewEndY || r.bottom < mViewStartY) {
                continue;
            }

            StaticLayout layout = getEventLayout(mLayouts, i, event, eventTextPaint, r);
            // TODO: not sure why we are 4 pixels off
            drawEventText(layout, r, canvas, mViewStartY + 4, mViewStartY + mViewHeight