forked from I2P_Developers/i2p.i2p
SusiMail: Show result after server check (ticket #2087)
This commit is contained in:
@@ -218,7 +218,7 @@ public class Folder<O extends Object> {
|
||||
* @return true if added
|
||||
*/
|
||||
public boolean addElement(O element) {
|
||||
return addElements(Collections.singletonList(element));
|
||||
return addElements(Collections.singletonList(element)) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -226,11 +226,11 @@ public class Folder<O extends Object> {
|
||||
* Re-sorts the array if a sorter is set and any elements are actually added.
|
||||
*
|
||||
* @param elems to add
|
||||
* @return true if any were added
|
||||
* @return number added
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public synchronized boolean addElements(List<O> elems) {
|
||||
boolean shouldUpdate = false;
|
||||
public synchronized int addElements(List<O> elems) {
|
||||
int added = 0;
|
||||
if (elements != null) {
|
||||
// delay copy until required
|
||||
List<O> list = null;
|
||||
@@ -245,19 +245,19 @@ public class Folder<O extends Object> {
|
||||
if (!found) {
|
||||
if (list == null) {
|
||||
list = new ArrayList<O>(Arrays.asList(elements));
|
||||
shouldUpdate = true;
|
||||
}
|
||||
list.add(e);
|
||||
}
|
||||
}
|
||||
if (shouldUpdate) {
|
||||
if (list != null) {
|
||||
added = list.size() - elements.length;
|
||||
setElements((O[]) list.toArray(new Object[list.size()]));
|
||||
}
|
||||
} else if (!elems.isEmpty()) {
|
||||
setElements((O[]) (elems.toArray(new Object[elems.size()])));
|
||||
shouldUpdate = true;
|
||||
added = elems.size();
|
||||
setElements((O[]) (elems.toArray(new Object[added])));
|
||||
}
|
||||
return shouldUpdate;
|
||||
return added;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1235,14 +1235,17 @@ public class WebMail extends HttpServlet
|
||||
sessionObject.error += _t("Internal error, lost connection.") + '\n';
|
||||
return State.AUTH;
|
||||
}
|
||||
// TODO how to do a "No new mail" message?
|
||||
mailbox.refresh();
|
||||
sessionObject.error += mailbox.lastError();
|
||||
String error = mailbox.lastError();
|
||||
sessionObject.error += error;
|
||||
sessionObject.mailCache.getMail(MailCache.FetchMode.HEADER);
|
||||
// get through cache so we have the disk-only ones too
|
||||
String[] uidls = sessionObject.mailCache.getUIDLs();
|
||||
if (uidls != null)
|
||||
sessionObject.folder.addElements(Arrays.asList(uidls));
|
||||
int added = sessionObject.folder.addElements(Arrays.asList(uidls));
|
||||
if (added > 0)
|
||||
sessionObject.info += ngettext("{0} new message", "{0} new messages", added);
|
||||
else if (error.length() <= 0)
|
||||
sessionObject.info += _t("No new messages");
|
||||
sessionObject.pageChanged = true;
|
||||
}
|
||||
return state;
|
||||
@@ -1886,7 +1889,7 @@ public class WebMail extends HttpServlet
|
||||
|
||||
// get through cache so we have the disk-only ones too
|
||||
String[] uidls = sessionObject.mailCache.getUIDLs();
|
||||
if (folder.addElements(Arrays.asList(uidls))) {
|
||||
if (folder.addElements(Arrays.asList(uidls)) > 0) {
|
||||
// we added elements, so it got sorted
|
||||
} else {
|
||||
// check for changed sort
|
||||
|
||||
Reference in New Issue
Block a user