diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AutocryptPeerDao.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AutocryptPeerDao.java index f70d3638f..773ba27fd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AutocryptPeerDao.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/daos/AutocryptPeerDao.java @@ -71,27 +71,13 @@ public class AutocryptPeerDao extends AbstractDao { } private List getAutocryptPeers(String packageName, String... autocryptId) { - ArrayList result = new ArrayList<>(autocryptId.length); SqlDelightQuery query = AutocryptPeer.FACTORY.selectByIdentifiers(packageName, autocryptId); - try (Cursor cursor = getReadableDb().query(query)) { - if (cursor.moveToNext()) { - AutocryptPeer autocryptPeer = AutocryptPeer.PEER_MAPPER.map(cursor); - result.add(autocryptPeer); - } - } - return result; + return mapAllRows(query, AutocryptPeer.PEER_MAPPER); } public List getAutocryptKeyStatus(String packageName, String[] autocryptIds) { - ArrayList result = new ArrayList<>(autocryptIds.length); - SqlDelightQuery query = AutocryptPeer.FACTORY.selectAutocryptKeyStatus(packageName, autocryptIds, System.currentTimeMillis()); - try (Cursor cursor = getReadableDb().query(query)) { - if (cursor.moveToNext()) { - AutocryptKeyStatus autocryptPeer = AutocryptPeer.KEY_STATUS_MAPPER.map(cursor); - result.add(autocryptPeer); - } - } - return result; + SqlDelightQuery query = AutocryptPeer.FACTORY.selectAutocryptKeyStatus(packageName, autocryptIds); + return mapAllRows(query, AutocryptPeer.KEY_STATUS_MAPPER); } private void ensureAutocryptPeerExists(String packageName, String autocryptId) { diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/AutocryptPeers.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/AutocryptPeers.sq index 103d8523d..1e98dd8c4 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/AutocryptPeers.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/AutocryptPeers.sq @@ -52,8 +52,8 @@ INSERT OR IGNORE INTO autocrypt_peers (package_name, identifier) VALUES (?, ?); selectAutocryptKeyStatus: SELECT autocryptPeer.*, - (CASE WHEN ac_key.expiry IS NULL THEN 0 WHEN ac_key.expiry > ?3 THEN 0 ELSE 1 END) AS key_is_expired_int, - (CASE WHEN gossip_key.expiry IS NULL THEN 0 WHEN gossip_key.expiry > ?3 THEN 0 ELSE 1 END) AS gossip_key_is_expired_int, + (CASE WHEN ac_key.expiry IS NULL THEN 0 WHEN ac_key.expiry > strftime('%s', 'now') THEN 0 ELSE 1 END) AS key_is_expired_int, + (CASE WHEN gossip_key.expiry IS NULL THEN 0 WHEN gossip_key.expiry > strftime('%s', 'now') THEN 0 ELSE 1 END) AS gossip_key_is_expired_int, ac_key.is_revoked AS key_is_revoked_int, gossip_key.is_revoked AS gossip_key_is_revoked_int, EXISTS (SELECT * FROM certs WHERE certs.master_key_id = autocryptPeer.master_key_id AND verified = 1 ) AS key_is_verified_int,