use FlexibleAdapter with LiveData in KeyListFragment
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user