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