1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-12-24 08:38:51 -05:00

Merge pull request #240 from maniac103/thread-star

Show thread as starred if at least one message in it is starred.
This commit is contained in:
maniac103 2013-02-02 04:03:22 -08:00
commit d97d6b848d

View File

@ -89,6 +89,16 @@ public class EmailProvider extends ContentProvider {
InternalMessageColumns.MIME_TYPE
};
private static final Map<String, String> THREAD_AGGREGATION_FUNCS = new HashMap<String, String>();
static {
THREAD_AGGREGATION_FUNCS.put(MessageColumns.DATE, "MAX");
THREAD_AGGREGATION_FUNCS.put(MessageColumns.INTERNAL_DATE, "MAX");
THREAD_AGGREGATION_FUNCS.put(MessageColumns.ATTACHMENT_COUNT, "SUM");
THREAD_AGGREGATION_FUNCS.put(MessageColumns.READ, "MIN");
THREAD_AGGREGATION_FUNCS.put(MessageColumns.FLAGGED, "MAX");
THREAD_AGGREGATION_FUNCS.put(MessageColumns.ANSWERED, "MIN");
THREAD_AGGREGATION_FUNCS.put(MessageColumns.FORWARDED, "MIN");
}
private static final String[] FIXUP_MESSAGES_COLUMNS = {
MessageColumns.ID
};
@ -395,12 +405,12 @@ public class EmailProvider extends ContentProvider {
first = false;
}
final String aggregationFunc = THREAD_AGGREGATION_FUNCS.get(columnName);
if (MessageColumns.ID.equals(columnName)) {
query.append("u." + MessageColumns.ID + " AS " + MessageColumns.ID);
} else if (MessageColumns.READ.equals(columnName)) {
query.append("MIN(read) AS " + MessageColumns.READ);
} else if (MessageColumns.DATE.equals(columnName)) {
query.append("MAX(date) AS " + MessageColumns.DATE);
} else if (aggregationFunc != null) {
query.append(aggregationFunc + "(" + columnName + ") AS " + columnName);
} else if (SpecialColumns.THREAD_COUNT.equals(columnName)) {
query.append("COUNT(g) AS " + SpecialColumns.THREAD_COUNT);
} else {