open-keychain/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/livedata/KeyRingDao.java
2018-07-02 14:50:11 +02:00

42 lines
1.3 KiB
Java

package org.sufficientlysecure.keychain.livedata;
import java.util.ArrayList;
import java.util.List;
import android.arch.persistence.db.SupportSQLiteDatabase;
import android.content.Context;
import android.database.Cursor;
import com.squareup.sqldelight.SqlDelightQuery;
import org.sufficientlysecure.keychain.model.Key;
import org.sufficientlysecure.keychain.model.Key.UnifiedKeyInfo;
import org.sufficientlysecure.keychain.provider.KeychainDatabase;
public class KeyRingDao {
private final SupportSQLiteDatabase db;
public static KeyRingDao getInstance(Context context) {
KeychainDatabase keychainDatabase = new KeychainDatabase(context);
return new KeyRingDao(keychainDatabase.getWritableDatabase());
}
private KeyRingDao(SupportSQLiteDatabase writableDatabase) {
this.db = writableDatabase;
}
public List<UnifiedKeyInfo> getUnifiedKeyInfo() {
SqlDelightQuery query = Key.FACTORY.selectAllUnifiedKeyInfo();
List<UnifiedKeyInfo> result = new ArrayList<>();
try (Cursor cursor = db.query(query)) {
while (cursor.moveToNext()) {
UnifiedKeyInfo unifiedKeyInfo = Key.UNIFIED_KEY_INFO_MAPPER.map(cursor);
result.add(unifiedKeyInfo);
}
}
return result;
}
}