diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java index 8ef879e..84f764d 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java @@ -8,15 +8,15 @@ import android.content.Context; import android.content.SyncResult; import android.os.Bundle; -import com.android.volley.NetworkResponse; - +import java.util.ArrayList; import java.util.Iterator; import de.sebse.fuplanner.services.kvv.KVV; import de.sebse.fuplanner.services.kvv.KVVListener; -import de.sebse.fuplanner.services.kvv.types.LoginToken; +import de.sebse.fuplanner.services.kvv.types.Announcement; import de.sebse.fuplanner.services.kvv.types.Modules; import de.sebse.fuplanner.tools.CustomAccountManager; +import de.sebse.fuplanner.tools.CustomNotificationManager; import de.sebse.fuplanner.tools.NewAsyncQueue; import de.sebse.fuplanner.tools.logging.Logger; @@ -83,9 +83,43 @@ public class KVVSyncAdapter extends AbstractThreadedSyncAdapter { while (iterator.hasNext()) { Modules.Module module = iterator.next(); log.d("sync module", module.title); + final ArrayList x = module.announcements; mKVV.modules().details().recv(module, success1 -> { if (success1.second) { log.d("Sync Successful for Module '"+module.title+"'!"); + if (x != null && module.announcements != null && module.title.equals("Seminar: Künstliche Intelligenz - Autonome Fahrzeuge")) { + for (Announcement newAnnounce: module.announcements) { + boolean found = false; + for (Announcement oldAnnounce: x) { + if (newAnnounce.getId().equals(oldAnnounce.getId())) { + found = true; + if (newAnnounce.hashCode() != oldAnnounce.hashCode()) { + CustomNotificationManager.sendNotification(getContext(), "Announcement Updated", newAnnounce.getTitle()); + } + x.remove(oldAnnounce); + break; + } + } + if (!found) { + CustomNotificationManager.sendNotification(getContext(), "Announcement Added", newAnnounce.getTitle()); + } + } + for (Announcement oldAnnounce: x) { + CustomNotificationManager.sendNotification(getContext(), "Announcement Removed", oldAnnounce.getTitle()); + } + } + if (x != null) + log.d("x", "length:", x.size(), x.hashCode()); + else + log.d("x null"); + if (success1.first.announcements != null) + log.d("success", "length:", success1.first.announcements.size(), success1.first.announcements.hashCode()); + else + log.d("success null"); + if (module.announcements != null) + log.d("module", "length:", module.announcements.size(), module.announcements.hashCode()); + else + log.d("module null"); mQueue.next(); } }, msg -> { diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Announcement.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Announcement.java index c4b96be..909d297 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Announcement.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Announcement.java @@ -28,7 +28,7 @@ public class Announcement implements Serializable { return urls; } - private String getId() { + public String getId() { return id; }