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

Commit 61430269 authored by AVINASH GUSAIN's avatar AVINASH GUSAIN
Browse files

code optimized

parent 515796a2
Loading
Loading
Loading
Loading
Loading
+16 −16
Original line number Diff line number Diff line
@@ -33,8 +33,8 @@
 	/**

--- ./apps/dav/lib/CalDAV/Schedule/IMipPlugin.php	2022-07-04 12:41:03.228533600 +0530
+++ ./apps/dav/lib/CalDAV/Schedule/IMipPlugin-new.php	2022-07-04 12:31:43.728533600 +0530
@@ -419,23 +419,34 @@
+++ ./apps/dav/lib/CalDAV/Schedule/IMipPlugin-new.php	2022-07-04 14:42:56.208533600 +0530
@@ -419,23 +419,33 @@
 	 * @param VEvent $vevent
 	 */
 	private function generateWhenString(IL10N $l10n, VEvent $vevent) {
@@ -45,39 +45,39 @@
-			$isFloating = $vevent->DTSTART->isFloating();
-			$dtend = clone $vevent->DTSTART;
+		$lastmodified=0;
+		$selectedEvent = $vevent;
+		foreach( $vevent as $currentevent){
+			$dtstamp= $currentevent->{'LAST-MODIFIED'};
+			$dtstampTime = strtotime($dtstamp);
+			if($dtstampTime>$lastmodified){
+				$lastmodified=$dtstampTime;
+				$dtStartFinal= $currentevent->DTSTART;
+				$dtEndtFinal= $currentevent->DTEND;
+				$durationFinal= $currentevent->DURATION;
+				$selectedEvent = $currentevent;
+			}
+		}
+		$dtstart = $dtStartFinal;
+		if (isset($dtEndtFinal)) {
+			$dtend = $dtEndtFinal;
+		} elseif (isset($durationFinal)) {
+			$isFloating = $dtStartFinal->isFloating();
+			$dtend = clone $dtStartFinal;
+		$dtstart = $selectedEvent->DTSTART;
+		if (isset($selectedEvent->DTEND)) {
+			$dtend = $selectedEvent->DTEND;
+		} elseif (isset($selectedEvent->DURATION)) {
+			$isFloating = $selectedEvent->DTSTART->isFloating();
+			$dtend = clone $selectedEvent->DTSTART;
 			$endDateTime = $dtend->getDateTime();
-			$endDateTime = $endDateTime->add(DateTimeParser::parse($vevent->DURATION->getValue()));
+			$endDateTime = $endDateTime->add(DateTimeParser::parse($durationFinal->getValue()));
+			$endDateTime = $endDateTime->add(DateTimeParser::parse($selectedEvent->DURATION->getValue()));
 			$dtend->setDateTime($endDateTime, $isFloating);
-		} elseif (!$vevent->DTSTART->hasTime()) {
-			$isFloating = $vevent->DTSTART->isFloating();
-			$dtend = clone $vevent->DTSTART;
+		} elseif (!$dtStartFinal->hasTime()) {
+			$isFloating = $dtStartFinal->isFloating();
+			$dtend = clone $dtStartFinal;
+		} elseif (!$selectedEvent->DTSTART->hasTime()) {
+			$isFloating = $selectedEvent->DTSTART->isFloating();
+			$dtend = clone $selectedEvent->DTSTART;
 			$endDateTime = $dtend->getDateTime();
 			$endDateTime = $endDateTime->modify('+1 day');
 			$dtend->setDateTime($endDateTime, $isFloating);
 		} else {
-			$dtend = clone $vevent->DTSTART;
+			$dtend = clone $dtStartFinal;
+			$dtend = clone $selectedEvent->DTSTART;
 		}

 		$isAllDay = $dtstart instanceof Property\ICalendar\Date;