FairEmail/app/src/main/java/eu/faircode/email/ViewModelMessages.java

54 lines
1.4 KiB
Java
Raw Normal View History

package eu.faircode.email;
import androidx.lifecycle.ViewModel;
import androidx.paging.PagedList;
public class ViewModelMessages extends ViewModel {
private PagedList<TupleMessageEx> messages = null;
void setMessages(PagedList<TupleMessageEx> messages) {
this.messages = messages;
}
2018-10-21 14:07:45 +00:00
@Override
protected void onCleared() {
messages = null;
}
2018-10-21 08:49:03 +00:00
Target[] getPrevNext(String thread) {
if (messages == null)
2018-10-21 08:49:03 +00:00
return new Target[]{null, null};
boolean found = false;
TupleMessageEx prev = null;
TupleMessageEx next = null;
for (int i = 0; i < messages.size(); i++) {
TupleMessageEx item = messages.get(i);
if (item == null)
continue;
if (found) {
2018-10-21 08:49:03 +00:00
prev = item;
messages.loadAround(i);
break;
}
if (thread.equals(item.thread))
found = true;
else
2018-10-21 08:49:03 +00:00
next = item;
}
2018-10-21 08:49:03 +00:00
return new Target[]{
prev == null ? null : new Target(prev.account, prev.thread),
next == null ? null : new Target(next.account, next.thread)};
2018-10-20 19:04:05 +00:00
}
2018-10-21 08:49:03 +00:00
class Target {
2018-10-20 19:04:05 +00:00
long account;
String thread;
2018-10-21 08:49:03 +00:00
Target(long account, String thread) {
2018-10-20 19:04:05 +00:00
this.account = account;
this.thread = thread;
}
}
}