Report account errors

This commit is contained in:
M66B 2019-03-06 14:48:54 +00:00
parent 3ada7a7432
commit f1e90e038c
3 changed files with 15 additions and 9 deletions

View File

@ -52,7 +52,8 @@ public interface DaoFolder {
EntityFolder getBrowsableFolder(long folder, boolean search);
@Query("SELECT folder.*" +
", account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
", account.name AS accountName, account.color AS accountColor" +
", account.state AS accountState, account.error AS accountError" +
", COUNT(message.id) AS messages" +
", SUM(CASE WHEN message.content = 1 THEN 1 ELSE 0 END) AS content" +
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
@ -67,7 +68,8 @@ public interface DaoFolder {
LiveData<List<TupleFolderEx>> liveFolders(Long account);
@Query("SELECT folder.*" +
", account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
", account.name AS accountName, account.color AS accountColor" +
", account.state AS accountState, account.error AS accountError" +
", COUNT(message.id) AS messages" +
", SUM(CASE WHEN message.content = 1 THEN 1 ELSE 0 END) AS content" +
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
@ -85,7 +87,8 @@ public interface DaoFolder {
LiveData<EntityFolder> livePrimaryDrafts();
@Query("SELECT folder.*" +
", account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
", account.name AS accountName, account.color AS accountColor" +
", account.state AS accountState, account.error AS accountError" +
", COUNT(message.id) AS messages" +
", SUM(CASE WHEN message.content = 1 THEN 1 ELSE 0 END) AS content" +
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +

View File

@ -1521,7 +1521,7 @@ public class FragmentMessages extends FragmentBase {
boolean errors = false;
for (TupleFolderEx folder : folders) {
unseen += folder.unseen;
if (!TextUtils.isEmpty(folder.error))
if (folder.error != null || folder.accountError != null)
errors = true;
}
@ -1543,8 +1543,7 @@ public class FragmentMessages extends FragmentBase {
rvMessage.scrollToPosition(0);
}
if (errors &&
!refreshing && swipeRefresh.isRefreshing())
if (errors && !refreshing && swipeRefresh.isRefreshing())
Snackbar.make(view, R.string.title_sync_errors, Snackbar.LENGTH_LONG).show();
swipeRefresh.setRefreshing(refreshing);
@ -1580,9 +1579,11 @@ public class FragmentMessages extends FragmentBase {
rvMessage.scrollToPosition(0);
}
if (folder != null && !TextUtils.isEmpty(folder.error) &&
!refreshing && swipeRefresh.isRefreshing())
Snackbar.make(view, folder.error, Snackbar.LENGTH_LONG).show();
String error = null;
if (folder != null)
error = (folder.error == null ? folder.accountError : folder.error);
if (error != null && !refreshing && swipeRefresh.isRefreshing())
Snackbar.make(view, error, Snackbar.LENGTH_LONG).show();
swipeRefresh.setRefreshing(refreshing);
}

View File

@ -25,6 +25,7 @@ public class TupleFolderEx extends EntityFolder {
public String accountName;
public Integer accountColor;
public String accountState;
public String accountError;
public int messages;
public int content;
public int unseen;
@ -37,6 +38,7 @@ public class TupleFolderEx extends EntityFolder {
Objects.equals(accountName, other.accountName) &&
Objects.equals(this.accountColor, other.accountColor) &&
Objects.equals(accountState, other.accountState) &&
Objects.equals(accountError, other.accountError) &&
this.messages == other.messages &&
this.content == other.content &&
this.unseen == other.unseen);