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

Unverified Commit 209b0b83 authored by LuK1337's avatar LuK1337
Browse files

Merge tag 'v1.0.55' of https://github.com/Etar-Group/Etar-Calendar into lineage-23.2

* tag 'v1.0.55' of https://github.com/Etar-Group/Etar-Calendar:
  Translated using Weblate (Turkish)
  Translated using Weblate (Chinese (Simplified Han script))
  Translated using Weblate (Czech)
  Translated using Weblate (Dutch)
  New version 1.0.55
  Revert "Load events when scrolling in month view"
  Revert "Add stacked events"
  Revert "Sort events by column to ensure correct draw order."
  Revert "Fix for the border issue with overlapping events"

Change-Id: I903f7d9d07cfadb644425dd328f0990a10df020e
parents 0b050ac8 e452478f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -24,8 +24,8 @@ android {
	defaultConfig {
		minSdk = 23
		targetSdk = 36
		versionCode = 54
		versionName = "1.0.54"
		versionCode = 55
		versionName = "1.0.55"
		applicationId = "ws.xsoh.etar"
		testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
	}
+2 −18
Original line number Diff line number Diff line
@@ -87,7 +87,6 @@ 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;
@@ -3134,12 +3133,6 @@ 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;

@@ -3170,7 +3163,6 @@ 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
@@ -4770,24 +4762,16 @@ public class DayView extends View implements View.OnCreateContextMenuListener,

        // If there are any events in the selected region, then assign the
        // closest one to mSelectedEvent.
        if (!mSelectedEvents.isEmpty()) {
        if (mSelectedEvents.size() > 0) {
            int len = mSelectedEvents.size();
            Event closestEvent = null;
            float minDist = mViewWidth + mViewHeight; // some large distance
            float maxCol = -99999;
            for (int index = 0; index < len; index++) {
                Event ev = mSelectedEvents.get(index);

                // dist will yield 0.0 for all events overlapping each other.
                // In order to select the correct one we use the topmost event (i.e. the one with
                // the highest col value!

                float dist = geometry.pointToEvent(x, y, ev);
                float col  = ev.getColumn();
                if (dist <= minDist && col > maxCol) {
                if (dist < minDist) {
                    minDist = dist;
                    closestEvent = ev;
                    maxCol = col;
                }
            }
            setSelectedEvent(closestEvent);
+4 −7
Original line number Diff line number Diff line
@@ -24,11 +24,6 @@ public class EventGeometry {

    private float mMinuteHeight;

    // How many pixels is each column set off from the
    // very left of column 0?
    // This is used to enable stacked parallel events.
    private static final float mPerColMargin  = 32;

    private float mHourGap;
    private float mMinEventHeight;

@@ -79,6 +74,7 @@ public class EventGeometry {
        }

        int col = event.getColumn();
        int maxCols = event.getMaxColumns();
        int startHour = startTime / 60;
        int endHour = endTime / 60;

@@ -101,8 +97,9 @@ public class EventGeometry {
            event.bottom = event.top + mMinEventHeight;
        }

        event.left = left + (col) * mPerColMargin;
        event.right = left + cellWidth - mCellMargin;
        float colWidth = (float) (cellWidth - (maxCols + 1) * mCellMargin) / (float) maxCols;
        event.left = left + col * (colWidth + mCellMargin);
        event.right = event.left + colWidth;
        return true;
    }

+7 −13
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ public class MonthByWeekFragment extends SimpleDayPickerFragment implements
    private static final String WHERE_CALENDARS_VISIBLE = Calendars.VISIBLE + "=1";
    private static final String INSTANCES_SORT_ORDER = Instances.START_DAY + ","
            + Instances.START_MINUTE + "," + Instances.TITLE;
    private static final int WEEKS_BUFFER = 6;
    private static final int WEEKS_BUFFER = 1;
    // How long to wait after scroll stops before starting the loader
    // Using scroll duration because scroll state changes don't update
    // correctly when a scroll is triggered programmatically.
@@ -105,11 +105,12 @@ public class MonthByWeekFragment extends SimpleDayPickerFragment implements
    private CreateEventDialogFragment mEventDialog;
    private CursorLoader mLoader;
    private Uri mEventUri;
    private volatile boolean mShouldLoad = true;
    private final Runnable mUpdateLoader = new Runnable() {
        @Override
        public void run() {
            synchronized (this) {
                if (mLoader == null) {
                if (!mShouldLoad || mLoader == null) {
                    return;
                }
                // Stop any previous loads while we update the uri
@@ -479,26 +480,19 @@ public class MonthByWeekFragment extends SimpleDayPickerFragment implements
                            | DateUtils.FORMAT_SHOW_YEAR, null, null);
        }
    }
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        super.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount);

        synchronized (mUpdateLoader) {
            mHandler.removeCallbacks(mUpdateLoader);
            mHandler.postDelayed(mUpdateLoader, LOADER_DELAY);
        }
    }

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {

        synchronized (mUpdateLoader) {
            if (scrollState != OnScrollListener.SCROLL_STATE_IDLE) {
                mDesiredDay.set(System.currentTimeMillis());
                mShouldLoad = false;
                stopLoader();
                mDesiredDay.set(System.currentTimeMillis());
            } else {
                mHandler.removeCallbacks(mUpdateLoader);
                mHandler.postDelayed(mUpdateLoader, 0);
                mShouldLoad = true;
                mHandler.postDelayed(mUpdateLoader, LOADER_DELAY);
            }
        }
        if (scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
+5 −0
Original line number Diff line number Diff line
- Opravena UTC chyba v goto
- Načtení událostí při posouvání v režimu měsíce
- Přidány hromadné události
- Přidáno oprávnění WRITE_SYNC_SETTINGS pro zabránění duplikaci kalendáře při přepnutí synchronizace
- Opravy chyb
Loading