From f418c6906701fdc6b531e32b2cc7435b1edc5a88 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Tue, 28 Nov 2017 14:11:57 +0000 Subject: [PATCH] WATCH OUT!!!!! SERIALIZABLE BREAKS A FEW THINGS!!!! (CollectionInfo) Getting entries also works. --- .../syncadapter/remote/JournalEntry.aidl | 4 ++ .../syncadapter/remote/RemoteService.java | 11 ++++- .../syncadapter/remote/JournalEntry.java | 44 +++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 app/src/main/aidl/com/etesync/syncadapter/remote/JournalEntry.aidl create mode 100644 remoteexample/src/main/java/com/etesync/syncadapter/remote/JournalEntry.java diff --git a/app/src/main/aidl/com/etesync/syncadapter/remote/JournalEntry.aidl b/app/src/main/aidl/com/etesync/syncadapter/remote/JournalEntry.aidl new file mode 100644 index 00000000..a201852a --- /dev/null +++ b/app/src/main/aidl/com/etesync/syncadapter/remote/JournalEntry.aidl @@ -0,0 +1,4 @@ +package com.etesync.syncadapter.remote; + +parcelable JournalEntry; + diff --git a/app/src/main/java/com/etesync/syncadapter/remote/RemoteService.java b/app/src/main/java/com/etesync/syncadapter/remote/RemoteService.java index 513e163d..19efc4d7 100644 --- a/app/src/main/java/com/etesync/syncadapter/remote/RemoteService.java +++ b/app/src/main/java/com/etesync/syncadapter/remote/RemoteService.java @@ -20,7 +20,9 @@ import com.etesync.syncadapter.model.CollectionInfo; import com.etesync.syncadapter.model.EntryEntity; import com.etesync.syncadapter.model.JournalEntity; import com.etesync.syncadapter.model.JournalModel; +import com.etesync.syncadapter.model.ServiceEntity; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; @@ -55,16 +57,21 @@ public class RemoteService extends Service { Journal ret[] = new Journal[journals.size()]; int i = 0; for (JournalEntity journal : journals) { + if (!journal.getInfo().isOfTypeService(journalType)) { + continue; + } ret[i] = new Journal(journal.getUid()); i++; } - return ret; + return Arrays.copyOf(ret, i); } public JournalEntry[] getJournalEntries(String journalUid, String lastUid) throws RemoteException { EntityDataStore data = ((App) getApplicationContext()).getData(); - JournalEntity journal = data.select(JournalEntity.class).where((JournalEntity.DELETED.eq(false))).limit(1).get().firstOrNull(); + JournalEntity journal = data.select(JournalEntity.class).where((JournalEntity.DELETED.eq(false)).and(JournalEntity.UID.eq(journalUid))).limit(1).get().firstOrNull(); + // FIXME: Should return a proper error + if (journal == null) return null; // FIXME: Should support generic type if (!mApiPermissionHelper.isAllowedIgnoreErrors(journal.getInfo().type.toString())) return null; diff --git a/remoteexample/src/main/java/com/etesync/syncadapter/remote/JournalEntry.java b/remoteexample/src/main/java/com/etesync/syncadapter/remote/JournalEntry.java new file mode 100644 index 00000000..301447a6 --- /dev/null +++ b/remoteexample/src/main/java/com/etesync/syncadapter/remote/JournalEntry.java @@ -0,0 +1,44 @@ +package com.etesync.syncadapter.remote; + +import android.os.Parcel; +import android.os.Parcelable; + +public class JournalEntry implements Parcelable { + public String account; + public String id; + public String content; + + public JournalEntry(String id) { + this.id = id; + } + + protected JournalEntry(Parcel in) { + account = in.readString(); + id = in.readString(); + content = in.readString(); + } + + public static final Creator CREATOR = new Creator() { + @Override + public JournalEntry createFromParcel(Parcel in) { + return new JournalEntry(in); + } + + @Override + public JournalEntry[] newArray(int size) { + return new JournalEntry[size]; + } + }; + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel parcel, int i) { + parcel.writeString(account); + parcel.writeString(id); + parcel.writeString(content); + } +}