Sync notifications for announcements
This commit is contained in:
@@ -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<Announcement> 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 -> {
|
||||
|
||||
@@ -28,7 +28,7 @@ public class Announcement implements Serializable {
|
||||
return urls;
|
||||
}
|
||||
|
||||
private String getId() {
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user