refactor: Make support for file storing optional in database API

This commit is contained in:
Christian Pauly 2021-06-01 15:27:18 +02:00
parent ab0ff46900
commit c387b33e9f
4 changed files with 10 additions and 3 deletions

View File

@ -75,6 +75,9 @@ class Database extends _$Database implements DatabaseApi {
Database.connect(DatabaseConnection connection) : super.connect(connection);
@override
bool get supportsFileStoring => true;
@override
int get schemaVersion => 12;

View File

@ -28,6 +28,7 @@ import '../../famedlysdk.dart';
abstract class DatabaseApi {
int get maxFileSize => 1 * 1024 * 1024;
bool get supportsFileStoring => false;
Future<Map<String, dynamic>> getClient(String name);
Future updateClient(

View File

@ -590,7 +590,8 @@ void main() {
final client = await getClient();
final response = await client.uploadContent(Uint8List(0), 'file.jpeg');
expect(response, 'mxc://example.com/AQwafuaFswefuhsfAFAgsw');
expect(await client.database.getFile(response) != null, true);
expect(await client.database.getFile(response) != null,
client.database.supportsFileStoring);
await client.dispose(closeDatabase: true);
});

View File

@ -1263,13 +1263,15 @@ void main() {
expect(await event.isAttachmentInLocalStore(), false);
var buffer = await event.downloadAndDecryptAttachment(
downloadCallback: downloadCallback);
expect(await event.isAttachmentInLocalStore(), true);
expect(await event.isAttachmentInLocalStore(),
event.room.client.database.supportsFileStoring);
expect(buffer.bytes, FILE_BUFF);
expect(serverHits, 1);
buffer = await event.downloadAndDecryptAttachment(
downloadCallback: downloadCallback);
expect(buffer.bytes, FILE_BUFF);
expect(serverHits, 1);
expect(
serverHits, event.room.client.database.supportsFileStoring ? 1 : 2);
await room.client.dispose(closeDatabase: true);
});