Previous/next navigation

This commit is contained in:
M66B
2018-10-17 16:37:59 +00:00
parent b505b5015e
commit 655e25258f
6 changed files with 132 additions and 20 deletions

View File

@@ -75,6 +75,7 @@ import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.Observer;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.paging.PagedList;
public class ActivityView extends ActivityBilling implements FragmentManager.OnBackStackChangedListener {
private View view;
@@ -83,6 +84,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
private ActionBarDrawerToggle drawerToggle;
private long attachment = -1;
private PagedList<TupleMessageEx> messages = null;
private static final int ATTACHMENT_BUFFER_SIZE = 8192; // bytes
@@ -883,4 +885,29 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
}.load(this, args);
}
}
void setMessages(PagedList<TupleMessageEx> messages) {
this.messages = messages;
}
public String[] getPrevNext(String thread) {
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) {
next = item;
messages.loadAround(i);
break;
}
if (thread.equals(item.thread))
found = true;
else
prev = item;
}
return new String[]{prev == null ? null : prev.thread, next == null ? null : next.thread};
}
}