42 lines
1.3 KiB
Java
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;
|
|
}
|
|
}
|