use FlexibleAdapter with LiveData in KeyListFragment

This commit is contained in:
Vincent Breitmoser
2018-06-20 00:45:34 +02:00
parent 72f3ed89a6
commit f87209d242
23 changed files with 746 additions and 1778 deletions

View File

@@ -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;
}
}