|
|
|
@ -89,6 +89,7 @@ public class FragmentMessages extends FragmentEx {
|
|
|
|
|
private AdapterMessage.ViewType viewType;
|
|
|
|
|
private LiveData<PagedList<TupleMessageEx>> messages = null;
|
|
|
|
|
|
|
|
|
|
private int autoCount = 0;
|
|
|
|
|
private boolean autoExpand = true;
|
|
|
|
|
private List<Long> expanded = new ArrayList<>();
|
|
|
|
|
private List<Long> headers = new ArrayList<>();
|
|
|
|
@ -827,10 +828,10 @@ public class FragmentMessages extends FragmentEx {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (viewType == AdapterMessage.ViewType.THREAD && autoExpand) {
|
|
|
|
|
if (viewType == AdapterMessage.ViewType.THREAD)
|
|
|
|
|
if (autoExpand) {
|
|
|
|
|
autoExpand = false;
|
|
|
|
|
|
|
|
|
|
int count = 0;
|
|
|
|
|
int unseen = 0;
|
|
|
|
|
TupleMessageEx single = null;
|
|
|
|
|
TupleMessageEx see = null;
|
|
|
|
@ -838,7 +839,7 @@ public class FragmentMessages extends FragmentEx {
|
|
|
|
|
TupleMessageEx message = messages.get(i);
|
|
|
|
|
if (!EntityFolder.ARCHIVE.equals(message.folderType) &&
|
|
|
|
|
!EntityFolder.SENT.equals(message.folderType)) {
|
|
|
|
|
count++;
|
|
|
|
|
autoCount++;
|
|
|
|
|
single = message;
|
|
|
|
|
if (!message.ui_seen) {
|
|
|
|
|
unseen++;
|
|
|
|
@ -847,8 +848,12 @@ public class FragmentMessages extends FragmentEx {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Auto expand when:
|
|
|
|
|
// - single, non archived/sent message
|
|
|
|
|
// - one unread, non archived/sent message in conversation
|
|
|
|
|
|
|
|
|
|
TupleMessageEx expand = null;
|
|
|
|
|
if (count == 1)
|
|
|
|
|
if (autoCount == 1)
|
|
|
|
|
expand = single;
|
|
|
|
|
else if (unseen == 1)
|
|
|
|
|
expand = see;
|
|
|
|
@ -857,6 +862,23 @@ public class FragmentMessages extends FragmentEx {
|
|
|
|
|
expanded.add(expand.id);
|
|
|
|
|
handleExpand(expand.id);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (autoCount > 0) {
|
|
|
|
|
int count = 0;
|
|
|
|
|
for (int i = 0; i < messages.size(); i++) {
|
|
|
|
|
TupleMessageEx message = messages.get(i);
|
|
|
|
|
if (!EntityFolder.ARCHIVE.equals(message.folderType) &&
|
|
|
|
|
!EntityFolder.SENT.equals(message.folderType)) {
|
|
|
|
|
count++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Auto close when:
|
|
|
|
|
// - no more non archived/sent messages
|
|
|
|
|
|
|
|
|
|
if (count == 0)
|
|
|
|
|
finish();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Log.i(Helper.TAG, "Submit messages=" + messages.size());
|
|
|
|
|