Bläddra i källkod

calendar export: port some changes from upstream

Ignore deleted events, and fix alarm triggers

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
Álvaro Brey 2 år sedan
förälder
incheckning
b3eab117db

+ 1 - 1
app/src/main/java/third_parties/sufficientlysecure/AndroidCalendar.java

@@ -101,7 +101,7 @@ public class AndroidCalendar {
             calendar.mTimezone = getString(cur, Calendars.CALENDAR_TIME_ZONE);
 
             final String[] args = new String[]{calendar.mIdStr};
-            Cursor eventsCur = resolver.query(Events.CONTENT_URI, CAL_ID_COLS, CAL_ID_WHERE, args, null);
+            Cursor eventsCur = resolver.query(Events.CONTENT_URI, CAL_ID_COLS, CAL_ID_WHERE + " AND deleted=0", args, null);
             calendar.mNumEntries = eventsCur.getCount();
             eventsCur.close();
             calendars.add(calendar);

+ 10 - 4
app/src/main/java/third_parties/sufficientlysecure/ProcessVEvent.java

@@ -433,18 +433,24 @@ public class ProcessVEvent {
             //        - Check the calendars max number of alarms
             if (t.getDateTime() != null) {
                 alarmMs = t.getDateTime().getTime(); // Absolute
-            } else if (t.getDuration() != null && t.getDuration().isNegative()) {
+            } else if (t.getDuration() != null && t.getDuration().isNegative()) { //alarm trigger before start of event
                 Related rel = (Related) t.getParameter(Parameter.RELATED);
                 if (rel != null && rel == Related.END) {
                     alarmStartMs = e.getEndDate().getDate().getTime();
                 }
-                alarmMs = alarmStartMs - durationToMs(t.getDuration()); // Relative
+                alarmMs = alarmStartMs - durationToMs(t.getDuration()); // Relative "-"
+            } else if (t.getDuration() != null && !t.getDuration().isNegative()) { //alarm trigger after start of event
+                Related rel = (Related) t.getParameter(Parameter.RELATED);
+                if (rel != null && rel == Related.END) {
+                    alarmStartMs = e.getEndDate().getDate().getTime();
+                }
+                alarmMs = alarmStartMs + durationToMs(t.getDuration()); // Relative "+"
             } else {
                 continue;
             }
 
             int reminder = (int) ((startMs - alarmMs) / DateUtils.MINUTE_IN_MILLIS);
-            if (reminder >= 0 && !reminders.contains(reminder)) {
+            if (!reminders.contains(reminder)) {
                 reminders.add(reminder);
             }
         }
@@ -520,7 +526,7 @@ public class ProcessVEvent {
     }
 
     private Cursor queryEvents(ContentResolver resolver, StringBuilder b, List<String> argsList) {
-        final String where = b.toString();
+        final String where = b.toString() + " AND deleted=0";
         final String[] args = argsList.toArray(new String[argsList.size()]);
         return resolver.query(Events.CONTENT_URI, EVENT_QUERY_COLUMNS, where, args, null);
     }

+ 1 - 1
app/src/main/java/third_parties/sufficientlysecure/SaveCalendar.java

@@ -203,7 +203,7 @@ public class SaveCalendar {
 
             upload(fileName);
         } else {
-            Log_OC.w(TAG, "Calendar has " + selectedCal.mIdStr + "no components");
+            Log_OC.w(TAG, "Calendar '" + selectedCal.mIdStr + "' has no components");
         }
     }