Sync notifications for announcements

This commit is contained in:
Caesar2011
2019-01-07 23:34:48 +01:00
parent ceccd77f18
commit 57853eccf1
2 changed files with 38 additions and 4 deletions

View File

@@ -8,15 +8,15 @@ import android.content.Context;
import android.content.SyncResult; import android.content.SyncResult;
import android.os.Bundle; import android.os.Bundle;
import com.android.volley.NetworkResponse; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import de.sebse.fuplanner.services.kvv.KVV; import de.sebse.fuplanner.services.kvv.KVV;
import de.sebse.fuplanner.services.kvv.KVVListener; 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.services.kvv.types.Modules;
import de.sebse.fuplanner.tools.CustomAccountManager; import de.sebse.fuplanner.tools.CustomAccountManager;
import de.sebse.fuplanner.tools.CustomNotificationManager;
import de.sebse.fuplanner.tools.NewAsyncQueue; import de.sebse.fuplanner.tools.NewAsyncQueue;
import de.sebse.fuplanner.tools.logging.Logger; import de.sebse.fuplanner.tools.logging.Logger;
@@ -83,9 +83,43 @@ public class KVVSyncAdapter extends AbstractThreadedSyncAdapter {
while (iterator.hasNext()) { while (iterator.hasNext()) {
Modules.Module module = iterator.next(); Modules.Module module = iterator.next();
log.d("sync module", module.title); log.d("sync module", module.title);
final ArrayList<Announcement> x = module.announcements;
mKVV.modules().details().recv(module, success1 -> { mKVV.modules().details().recv(module, success1 -> {
if (success1.second) { if (success1.second) {
log.d("Sync Successful for Module '"+module.title+"'!"); 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(); mQueue.next();
} }
}, msg -> { }, msg -> {

View File

@@ -28,7 +28,7 @@ public class Announcement implements Serializable {
return urls; return urls;
} }
private String getId() { public String getId() {
return id; return id;
} }