mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 07:48:40 +00:00
fix #307
This commit is contained in:
parent
1eaa1a5edd
commit
7977d171c7
32 changed files with 14201 additions and 78 deletions
|
|
@ -12,3 +12,4 @@ targets:
|
||||||
databases:
|
databases:
|
||||||
twonly_db: lib/src/database/twonly.db.dart
|
twonly_db: lib/src/database/twonly.db.dart
|
||||||
twonly_database: lib/src/database/twonly_database_old.dart
|
twonly_database: lib/src/database/twonly_database_old.dart
|
||||||
|
schema_dir: lib/src/database/schemas
|
||||||
1
lib/src/database/schemas/twonly_db/drift_schema_v1.json
Normal file
1
lib/src/database/schemas/twonly_db/drift_schema_v1.json
Normal file
File diff suppressed because one or more lines are too long
1
lib/src/database/schemas/twonly_db/drift_schema_v2.json
Normal file
1
lib/src/database/schemas/twonly_db/drift_schema_v2.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -45,9 +45,6 @@ class MediaFiles extends Table {
|
||||||
BoolColumn get requiresAuthentication =>
|
BoolColumn get requiresAuthentication =>
|
||||||
boolean().withDefault(const Constant(false))();
|
boolean().withDefault(const Constant(false))();
|
||||||
|
|
||||||
BoolColumn get reopenByContact =>
|
|
||||||
boolean().withDefault(const Constant(false))();
|
|
||||||
|
|
||||||
BoolColumn get stored => boolean().withDefault(const Constant(false))();
|
BoolColumn get stored => boolean().withDefault(const Constant(false))();
|
||||||
BoolColumn get isDraftMedia => boolean().withDefault(const Constant(false))();
|
BoolColumn get isDraftMedia => boolean().withDefault(const Constant(false))();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ class Messages extends Table {
|
||||||
.references(MediaFiles, #mediaId, onDelete: KeyAction.setNull)();
|
.references(MediaFiles, #mediaId, onDelete: KeyAction.setNull)();
|
||||||
|
|
||||||
BoolColumn get mediaStored => boolean().withDefault(const Constant(false))();
|
BoolColumn get mediaStored => boolean().withDefault(const Constant(false))();
|
||||||
|
BoolColumn get mediaReopened =>
|
||||||
|
boolean().withDefault(const Constant(false))();
|
||||||
|
|
||||||
BlobColumn get downloadToken => blob().nullable()();
|
BlobColumn get downloadToken => blob().nullable()();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ import 'package:twonly/src/database/tables/signal_identity_key_store.table.dart'
|
||||||
import 'package:twonly/src/database/tables/signal_pre_key_store.table.dart';
|
import 'package:twonly/src/database/tables/signal_pre_key_store.table.dart';
|
||||||
import 'package:twonly/src/database/tables/signal_sender_key_store.table.dart';
|
import 'package:twonly/src/database/tables/signal_sender_key_store.table.dart';
|
||||||
import 'package:twonly/src/database/tables/signal_session_store.table.dart';
|
import 'package:twonly/src/database/tables/signal_session_store.table.dart';
|
||||||
|
import 'package:twonly/src/database/twonly.db.steps.dart';
|
||||||
import 'package:twonly/src/utils/log.dart';
|
import 'package:twonly/src/utils/log.dart';
|
||||||
|
|
||||||
part 'twonly.db.g.dart';
|
part 'twonly.db.g.dart';
|
||||||
|
|
@ -66,7 +67,7 @@ class TwonlyDB extends _$TwonlyDB {
|
||||||
TwonlyDB.forTesting(DatabaseConnection super.connection);
|
TwonlyDB.forTesting(DatabaseConnection super.connection);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get schemaVersion => 1;
|
int get schemaVersion => 2;
|
||||||
|
|
||||||
static QueryExecutor _openConnection() {
|
static QueryExecutor _openConnection() {
|
||||||
return driftDatabase(
|
return driftDatabase(
|
||||||
|
|
@ -83,7 +84,12 @@ class TwonlyDB extends _$TwonlyDB {
|
||||||
beforeOpen: (details) async {
|
beforeOpen: (details) async {
|
||||||
await customStatement('PRAGMA foreign_keys = ON');
|
await customStatement('PRAGMA foreign_keys = ON');
|
||||||
},
|
},
|
||||||
// onUpgrade: stepByStep(),
|
onUpgrade: stepByStep(
|
||||||
|
from1To2: (m, schema) async {
|
||||||
|
await m.addColumn(schema.messages, schema.messages.mediaReopened);
|
||||||
|
await m.dropColumn(schema.mediaFiles, 'reopen_by_contact');
|
||||||
|
},
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1886,16 +1886,6 @@ class $MediaFilesTable extends MediaFiles
|
||||||
defaultConstraints: GeneratedColumn.constraintIsAlways(
|
defaultConstraints: GeneratedColumn.constraintIsAlways(
|
||||||
'CHECK ("requires_authentication" IN (0, 1))'),
|
'CHECK ("requires_authentication" IN (0, 1))'),
|
||||||
defaultValue: const Constant(false));
|
defaultValue: const Constant(false));
|
||||||
static const VerificationMeta _reopenByContactMeta =
|
|
||||||
const VerificationMeta('reopenByContact');
|
|
||||||
@override
|
|
||||||
late final GeneratedColumn<bool> reopenByContact = GeneratedColumn<bool>(
|
|
||||||
'reopen_by_contact', aliasedName, false,
|
|
||||||
type: DriftSqlType.bool,
|
|
||||||
requiredDuringInsert: false,
|
|
||||||
defaultConstraints: GeneratedColumn.constraintIsAlways(
|
|
||||||
'CHECK ("reopen_by_contact" IN (0, 1))'),
|
|
||||||
defaultValue: const Constant(false));
|
|
||||||
static const VerificationMeta _storedMeta = const VerificationMeta('stored');
|
static const VerificationMeta _storedMeta = const VerificationMeta('stored');
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumn<bool> stored = GeneratedColumn<bool>(
|
late final GeneratedColumn<bool> stored = GeneratedColumn<bool>(
|
||||||
|
|
@ -1976,7 +1966,6 @@ class $MediaFilesTable extends MediaFiles
|
||||||
uploadState,
|
uploadState,
|
||||||
downloadState,
|
downloadState,
|
||||||
requiresAuthentication,
|
requiresAuthentication,
|
||||||
reopenByContact,
|
|
||||||
stored,
|
stored,
|
||||||
isDraftMedia,
|
isDraftMedia,
|
||||||
reuploadRequestedBy,
|
reuploadRequestedBy,
|
||||||
|
|
@ -2010,12 +1999,6 @@ class $MediaFilesTable extends MediaFiles
|
||||||
requiresAuthentication.isAcceptableOrUnknown(
|
requiresAuthentication.isAcceptableOrUnknown(
|
||||||
data['requires_authentication']!, _requiresAuthenticationMeta));
|
data['requires_authentication']!, _requiresAuthenticationMeta));
|
||||||
}
|
}
|
||||||
if (data.containsKey('reopen_by_contact')) {
|
|
||||||
context.handle(
|
|
||||||
_reopenByContactMeta,
|
|
||||||
reopenByContact.isAcceptableOrUnknown(
|
|
||||||
data['reopen_by_contact']!, _reopenByContactMeta));
|
|
||||||
}
|
|
||||||
if (data.containsKey('stored')) {
|
if (data.containsKey('stored')) {
|
||||||
context.handle(_storedMeta,
|
context.handle(_storedMeta,
|
||||||
stored.isAcceptableOrUnknown(data['stored']!, _storedMeta));
|
stored.isAcceptableOrUnknown(data['stored']!, _storedMeta));
|
||||||
|
|
@ -2089,8 +2072,6 @@ class $MediaFilesTable extends MediaFiles
|
||||||
requiresAuthentication: attachedDatabase.typeMapping.read(
|
requiresAuthentication: attachedDatabase.typeMapping.read(
|
||||||
DriftSqlType.bool,
|
DriftSqlType.bool,
|
||||||
data['${effectivePrefix}requires_authentication'])!,
|
data['${effectivePrefix}requires_authentication'])!,
|
||||||
reopenByContact: attachedDatabase.typeMapping.read(
|
|
||||||
DriftSqlType.bool, data['${effectivePrefix}reopen_by_contact'])!,
|
|
||||||
stored: attachedDatabase.typeMapping
|
stored: attachedDatabase.typeMapping
|
||||||
.read(DriftSqlType.bool, data['${effectivePrefix}stored'])!,
|
.read(DriftSqlType.bool, data['${effectivePrefix}stored'])!,
|
||||||
isDraftMedia: attachedDatabase.typeMapping
|
isDraftMedia: attachedDatabase.typeMapping
|
||||||
|
|
@ -2146,7 +2127,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
final UploadState? uploadState;
|
final UploadState? uploadState;
|
||||||
final DownloadState? downloadState;
|
final DownloadState? downloadState;
|
||||||
final bool requiresAuthentication;
|
final bool requiresAuthentication;
|
||||||
final bool reopenByContact;
|
|
||||||
final bool stored;
|
final bool stored;
|
||||||
final bool isDraftMedia;
|
final bool isDraftMedia;
|
||||||
final List<int>? reuploadRequestedBy;
|
final List<int>? reuploadRequestedBy;
|
||||||
|
|
@ -2163,7 +2143,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
this.uploadState,
|
this.uploadState,
|
||||||
this.downloadState,
|
this.downloadState,
|
||||||
required this.requiresAuthentication,
|
required this.requiresAuthentication,
|
||||||
required this.reopenByContact,
|
|
||||||
required this.stored,
|
required this.stored,
|
||||||
required this.isDraftMedia,
|
required this.isDraftMedia,
|
||||||
this.reuploadRequestedBy,
|
this.reuploadRequestedBy,
|
||||||
|
|
@ -2191,7 +2170,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
$MediaFilesTable.$converterdownloadStaten.toSql(downloadState));
|
$MediaFilesTable.$converterdownloadStaten.toSql(downloadState));
|
||||||
}
|
}
|
||||||
map['requires_authentication'] = Variable<bool>(requiresAuthentication);
|
map['requires_authentication'] = Variable<bool>(requiresAuthentication);
|
||||||
map['reopen_by_contact'] = Variable<bool>(reopenByContact);
|
|
||||||
map['stored'] = Variable<bool>(stored);
|
map['stored'] = Variable<bool>(stored);
|
||||||
map['is_draft_media'] = Variable<bool>(isDraftMedia);
|
map['is_draft_media'] = Variable<bool>(isDraftMedia);
|
||||||
if (!nullToAbsent || reuploadRequestedBy != null) {
|
if (!nullToAbsent || reuploadRequestedBy != null) {
|
||||||
|
|
@ -2233,7 +2211,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
? const Value.absent()
|
? const Value.absent()
|
||||||
: Value(downloadState),
|
: Value(downloadState),
|
||||||
requiresAuthentication: Value(requiresAuthentication),
|
requiresAuthentication: Value(requiresAuthentication),
|
||||||
reopenByContact: Value(reopenByContact),
|
|
||||||
stored: Value(stored),
|
stored: Value(stored),
|
||||||
isDraftMedia: Value(isDraftMedia),
|
isDraftMedia: Value(isDraftMedia),
|
||||||
reuploadRequestedBy: reuploadRequestedBy == null && nullToAbsent
|
reuploadRequestedBy: reuploadRequestedBy == null && nullToAbsent
|
||||||
|
|
@ -2275,7 +2252,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
.fromJson(serializer.fromJson<String?>(json['downloadState'])),
|
.fromJson(serializer.fromJson<String?>(json['downloadState'])),
|
||||||
requiresAuthentication:
|
requiresAuthentication:
|
||||||
serializer.fromJson<bool>(json['requiresAuthentication']),
|
serializer.fromJson<bool>(json['requiresAuthentication']),
|
||||||
reopenByContact: serializer.fromJson<bool>(json['reopenByContact']),
|
|
||||||
stored: serializer.fromJson<bool>(json['stored']),
|
stored: serializer.fromJson<bool>(json['stored']),
|
||||||
isDraftMedia: serializer.fromJson<bool>(json['isDraftMedia']),
|
isDraftMedia: serializer.fromJson<bool>(json['isDraftMedia']),
|
||||||
reuploadRequestedBy:
|
reuploadRequestedBy:
|
||||||
|
|
@ -2302,7 +2278,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
'downloadState': serializer.toJson<String?>(
|
'downloadState': serializer.toJson<String?>(
|
||||||
$MediaFilesTable.$converterdownloadStaten.toJson(downloadState)),
|
$MediaFilesTable.$converterdownloadStaten.toJson(downloadState)),
|
||||||
'requiresAuthentication': serializer.toJson<bool>(requiresAuthentication),
|
'requiresAuthentication': serializer.toJson<bool>(requiresAuthentication),
|
||||||
'reopenByContact': serializer.toJson<bool>(reopenByContact),
|
|
||||||
'stored': serializer.toJson<bool>(stored),
|
'stored': serializer.toJson<bool>(stored),
|
||||||
'isDraftMedia': serializer.toJson<bool>(isDraftMedia),
|
'isDraftMedia': serializer.toJson<bool>(isDraftMedia),
|
||||||
'reuploadRequestedBy': serializer.toJson<List<int>?>(reuploadRequestedBy),
|
'reuploadRequestedBy': serializer.toJson<List<int>?>(reuploadRequestedBy),
|
||||||
|
|
@ -2323,7 +2298,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
Value<UploadState?> uploadState = const Value.absent(),
|
Value<UploadState?> uploadState = const Value.absent(),
|
||||||
Value<DownloadState?> downloadState = const Value.absent(),
|
Value<DownloadState?> downloadState = const Value.absent(),
|
||||||
bool? requiresAuthentication,
|
bool? requiresAuthentication,
|
||||||
bool? reopenByContact,
|
|
||||||
bool? stored,
|
bool? stored,
|
||||||
bool? isDraftMedia,
|
bool? isDraftMedia,
|
||||||
Value<List<int>?> reuploadRequestedBy = const Value.absent(),
|
Value<List<int>?> reuploadRequestedBy = const Value.absent(),
|
||||||
|
|
@ -2342,7 +2316,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
downloadState.present ? downloadState.value : this.downloadState,
|
downloadState.present ? downloadState.value : this.downloadState,
|
||||||
requiresAuthentication:
|
requiresAuthentication:
|
||||||
requiresAuthentication ?? this.requiresAuthentication,
|
requiresAuthentication ?? this.requiresAuthentication,
|
||||||
reopenByContact: reopenByContact ?? this.reopenByContact,
|
|
||||||
stored: stored ?? this.stored,
|
stored: stored ?? this.stored,
|
||||||
isDraftMedia: isDraftMedia ?? this.isDraftMedia,
|
isDraftMedia: isDraftMedia ?? this.isDraftMedia,
|
||||||
reuploadRequestedBy: reuploadRequestedBy.present
|
reuploadRequestedBy: reuploadRequestedBy.present
|
||||||
|
|
@ -2375,9 +2348,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
requiresAuthentication: data.requiresAuthentication.present
|
requiresAuthentication: data.requiresAuthentication.present
|
||||||
? data.requiresAuthentication.value
|
? data.requiresAuthentication.value
|
||||||
: this.requiresAuthentication,
|
: this.requiresAuthentication,
|
||||||
reopenByContact: data.reopenByContact.present
|
|
||||||
? data.reopenByContact.value
|
|
||||||
: this.reopenByContact,
|
|
||||||
stored: data.stored.present ? data.stored.value : this.stored,
|
stored: data.stored.present ? data.stored.value : this.stored,
|
||||||
isDraftMedia: data.isDraftMedia.present
|
isDraftMedia: data.isDraftMedia.present
|
||||||
? data.isDraftMedia.value
|
? data.isDraftMedia.value
|
||||||
|
|
@ -2414,7 +2384,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
..write('uploadState: $uploadState, ')
|
..write('uploadState: $uploadState, ')
|
||||||
..write('downloadState: $downloadState, ')
|
..write('downloadState: $downloadState, ')
|
||||||
..write('requiresAuthentication: $requiresAuthentication, ')
|
..write('requiresAuthentication: $requiresAuthentication, ')
|
||||||
..write('reopenByContact: $reopenByContact, ')
|
|
||||||
..write('stored: $stored, ')
|
..write('stored: $stored, ')
|
||||||
..write('isDraftMedia: $isDraftMedia, ')
|
..write('isDraftMedia: $isDraftMedia, ')
|
||||||
..write('reuploadRequestedBy: $reuploadRequestedBy, ')
|
..write('reuploadRequestedBy: $reuploadRequestedBy, ')
|
||||||
|
|
@ -2436,7 +2405,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
uploadState,
|
uploadState,
|
||||||
downloadState,
|
downloadState,
|
||||||
requiresAuthentication,
|
requiresAuthentication,
|
||||||
reopenByContact,
|
|
||||||
stored,
|
stored,
|
||||||
isDraftMedia,
|
isDraftMedia,
|
||||||
reuploadRequestedBy,
|
reuploadRequestedBy,
|
||||||
|
|
@ -2456,7 +2424,6 @@ class MediaFile extends DataClass implements Insertable<MediaFile> {
|
||||||
other.uploadState == this.uploadState &&
|
other.uploadState == this.uploadState &&
|
||||||
other.downloadState == this.downloadState &&
|
other.downloadState == this.downloadState &&
|
||||||
other.requiresAuthentication == this.requiresAuthentication &&
|
other.requiresAuthentication == this.requiresAuthentication &&
|
||||||
other.reopenByContact == this.reopenByContact &&
|
|
||||||
other.stored == this.stored &&
|
other.stored == this.stored &&
|
||||||
other.isDraftMedia == this.isDraftMedia &&
|
other.isDraftMedia == this.isDraftMedia &&
|
||||||
other.reuploadRequestedBy == this.reuploadRequestedBy &&
|
other.reuploadRequestedBy == this.reuploadRequestedBy &&
|
||||||
|
|
@ -2476,7 +2443,6 @@ class MediaFilesCompanion extends UpdateCompanion<MediaFile> {
|
||||||
final Value<UploadState?> uploadState;
|
final Value<UploadState?> uploadState;
|
||||||
final Value<DownloadState?> downloadState;
|
final Value<DownloadState?> downloadState;
|
||||||
final Value<bool> requiresAuthentication;
|
final Value<bool> requiresAuthentication;
|
||||||
final Value<bool> reopenByContact;
|
|
||||||
final Value<bool> stored;
|
final Value<bool> stored;
|
||||||
final Value<bool> isDraftMedia;
|
final Value<bool> isDraftMedia;
|
||||||
final Value<List<int>?> reuploadRequestedBy;
|
final Value<List<int>?> reuploadRequestedBy;
|
||||||
|
|
@ -2494,7 +2460,6 @@ class MediaFilesCompanion extends UpdateCompanion<MediaFile> {
|
||||||
this.uploadState = const Value.absent(),
|
this.uploadState = const Value.absent(),
|
||||||
this.downloadState = const Value.absent(),
|
this.downloadState = const Value.absent(),
|
||||||
this.requiresAuthentication = const Value.absent(),
|
this.requiresAuthentication = const Value.absent(),
|
||||||
this.reopenByContact = const Value.absent(),
|
|
||||||
this.stored = const Value.absent(),
|
this.stored = const Value.absent(),
|
||||||
this.isDraftMedia = const Value.absent(),
|
this.isDraftMedia = const Value.absent(),
|
||||||
this.reuploadRequestedBy = const Value.absent(),
|
this.reuploadRequestedBy = const Value.absent(),
|
||||||
|
|
@ -2513,7 +2478,6 @@ class MediaFilesCompanion extends UpdateCompanion<MediaFile> {
|
||||||
this.uploadState = const Value.absent(),
|
this.uploadState = const Value.absent(),
|
||||||
this.downloadState = const Value.absent(),
|
this.downloadState = const Value.absent(),
|
||||||
this.requiresAuthentication = const Value.absent(),
|
this.requiresAuthentication = const Value.absent(),
|
||||||
this.reopenByContact = const Value.absent(),
|
|
||||||
this.stored = const Value.absent(),
|
this.stored = const Value.absent(),
|
||||||
this.isDraftMedia = const Value.absent(),
|
this.isDraftMedia = const Value.absent(),
|
||||||
this.reuploadRequestedBy = const Value.absent(),
|
this.reuploadRequestedBy = const Value.absent(),
|
||||||
|
|
@ -2533,7 +2497,6 @@ class MediaFilesCompanion extends UpdateCompanion<MediaFile> {
|
||||||
Expression<String>? uploadState,
|
Expression<String>? uploadState,
|
||||||
Expression<String>? downloadState,
|
Expression<String>? downloadState,
|
||||||
Expression<bool>? requiresAuthentication,
|
Expression<bool>? requiresAuthentication,
|
||||||
Expression<bool>? reopenByContact,
|
|
||||||
Expression<bool>? stored,
|
Expression<bool>? stored,
|
||||||
Expression<bool>? isDraftMedia,
|
Expression<bool>? isDraftMedia,
|
||||||
Expression<String>? reuploadRequestedBy,
|
Expression<String>? reuploadRequestedBy,
|
||||||
|
|
@ -2553,7 +2516,6 @@ class MediaFilesCompanion extends UpdateCompanion<MediaFile> {
|
||||||
if (downloadState != null) 'download_state': downloadState,
|
if (downloadState != null) 'download_state': downloadState,
|
||||||
if (requiresAuthentication != null)
|
if (requiresAuthentication != null)
|
||||||
'requires_authentication': requiresAuthentication,
|
'requires_authentication': requiresAuthentication,
|
||||||
if (reopenByContact != null) 'reopen_by_contact': reopenByContact,
|
|
||||||
if (stored != null) 'stored': stored,
|
if (stored != null) 'stored': stored,
|
||||||
if (isDraftMedia != null) 'is_draft_media': isDraftMedia,
|
if (isDraftMedia != null) 'is_draft_media': isDraftMedia,
|
||||||
if (reuploadRequestedBy != null)
|
if (reuploadRequestedBy != null)
|
||||||
|
|
@ -2576,7 +2538,6 @@ class MediaFilesCompanion extends UpdateCompanion<MediaFile> {
|
||||||
Value<UploadState?>? uploadState,
|
Value<UploadState?>? uploadState,
|
||||||
Value<DownloadState?>? downloadState,
|
Value<DownloadState?>? downloadState,
|
||||||
Value<bool>? requiresAuthentication,
|
Value<bool>? requiresAuthentication,
|
||||||
Value<bool>? reopenByContact,
|
|
||||||
Value<bool>? stored,
|
Value<bool>? stored,
|
||||||
Value<bool>? isDraftMedia,
|
Value<bool>? isDraftMedia,
|
||||||
Value<List<int>?>? reuploadRequestedBy,
|
Value<List<int>?>? reuploadRequestedBy,
|
||||||
|
|
@ -2595,7 +2556,6 @@ class MediaFilesCompanion extends UpdateCompanion<MediaFile> {
|
||||||
downloadState: downloadState ?? this.downloadState,
|
downloadState: downloadState ?? this.downloadState,
|
||||||
requiresAuthentication:
|
requiresAuthentication:
|
||||||
requiresAuthentication ?? this.requiresAuthentication,
|
requiresAuthentication ?? this.requiresAuthentication,
|
||||||
reopenByContact: reopenByContact ?? this.reopenByContact,
|
|
||||||
stored: stored ?? this.stored,
|
stored: stored ?? this.stored,
|
||||||
isDraftMedia: isDraftMedia ?? this.isDraftMedia,
|
isDraftMedia: isDraftMedia ?? this.isDraftMedia,
|
||||||
reuploadRequestedBy: reuploadRequestedBy ?? this.reuploadRequestedBy,
|
reuploadRequestedBy: reuploadRequestedBy ?? this.reuploadRequestedBy,
|
||||||
|
|
@ -2633,9 +2593,6 @@ class MediaFilesCompanion extends UpdateCompanion<MediaFile> {
|
||||||
map['requires_authentication'] =
|
map['requires_authentication'] =
|
||||||
Variable<bool>(requiresAuthentication.value);
|
Variable<bool>(requiresAuthentication.value);
|
||||||
}
|
}
|
||||||
if (reopenByContact.present) {
|
|
||||||
map['reopen_by_contact'] = Variable<bool>(reopenByContact.value);
|
|
||||||
}
|
|
||||||
if (stored.present) {
|
if (stored.present) {
|
||||||
map['stored'] = Variable<bool>(stored.value);
|
map['stored'] = Variable<bool>(stored.value);
|
||||||
}
|
}
|
||||||
|
|
@ -2683,7 +2640,6 @@ class MediaFilesCompanion extends UpdateCompanion<MediaFile> {
|
||||||
..write('uploadState: $uploadState, ')
|
..write('uploadState: $uploadState, ')
|
||||||
..write('downloadState: $downloadState, ')
|
..write('downloadState: $downloadState, ')
|
||||||
..write('requiresAuthentication: $requiresAuthentication, ')
|
..write('requiresAuthentication: $requiresAuthentication, ')
|
||||||
..write('reopenByContact: $reopenByContact, ')
|
|
||||||
..write('stored: $stored, ')
|
..write('stored: $stored, ')
|
||||||
..write('isDraftMedia: $isDraftMedia, ')
|
..write('isDraftMedia: $isDraftMedia, ')
|
||||||
..write('reuploadRequestedBy: $reuploadRequestedBy, ')
|
..write('reuploadRequestedBy: $reuploadRequestedBy, ')
|
||||||
|
|
@ -2759,6 +2715,16 @@ class $MessagesTable extends Messages with TableInfo<$MessagesTable, Message> {
|
||||||
defaultConstraints: GeneratedColumn.constraintIsAlways(
|
defaultConstraints: GeneratedColumn.constraintIsAlways(
|
||||||
'CHECK ("media_stored" IN (0, 1))'),
|
'CHECK ("media_stored" IN (0, 1))'),
|
||||||
defaultValue: const Constant(false));
|
defaultValue: const Constant(false));
|
||||||
|
static const VerificationMeta _mediaReopenedMeta =
|
||||||
|
const VerificationMeta('mediaReopened');
|
||||||
|
@override
|
||||||
|
late final GeneratedColumn<bool> mediaReopened = GeneratedColumn<bool>(
|
||||||
|
'media_reopened', aliasedName, false,
|
||||||
|
type: DriftSqlType.bool,
|
||||||
|
requiredDuringInsert: false,
|
||||||
|
defaultConstraints: GeneratedColumn.constraintIsAlways(
|
||||||
|
'CHECK ("media_reopened" IN (0, 1))'),
|
||||||
|
defaultValue: const Constant(false));
|
||||||
static const VerificationMeta _downloadTokenMeta =
|
static const VerificationMeta _downloadTokenMeta =
|
||||||
const VerificationMeta('downloadToken');
|
const VerificationMeta('downloadToken');
|
||||||
@override
|
@override
|
||||||
|
|
@ -2828,6 +2794,7 @@ class $MessagesTable extends Messages with TableInfo<$MessagesTable, Message> {
|
||||||
content,
|
content,
|
||||||
mediaId,
|
mediaId,
|
||||||
mediaStored,
|
mediaStored,
|
||||||
|
mediaReopened,
|
||||||
downloadToken,
|
downloadToken,
|
||||||
quotesMessageId,
|
quotesMessageId,
|
||||||
isDeletedFromSender,
|
isDeletedFromSender,
|
||||||
|
|
@ -2878,6 +2845,12 @@ class $MessagesTable extends Messages with TableInfo<$MessagesTable, Message> {
|
||||||
mediaStored.isAcceptableOrUnknown(
|
mediaStored.isAcceptableOrUnknown(
|
||||||
data['media_stored']!, _mediaStoredMeta));
|
data['media_stored']!, _mediaStoredMeta));
|
||||||
}
|
}
|
||||||
|
if (data.containsKey('media_reopened')) {
|
||||||
|
context.handle(
|
||||||
|
_mediaReopenedMeta,
|
||||||
|
mediaReopened.isAcceptableOrUnknown(
|
||||||
|
data['media_reopened']!, _mediaReopenedMeta));
|
||||||
|
}
|
||||||
if (data.containsKey('download_token')) {
|
if (data.containsKey('download_token')) {
|
||||||
context.handle(
|
context.handle(
|
||||||
_downloadTokenMeta,
|
_downloadTokenMeta,
|
||||||
|
|
@ -2951,6 +2924,8 @@ class $MessagesTable extends Messages with TableInfo<$MessagesTable, Message> {
|
||||||
.read(DriftSqlType.string, data['${effectivePrefix}media_id']),
|
.read(DriftSqlType.string, data['${effectivePrefix}media_id']),
|
||||||
mediaStored: attachedDatabase.typeMapping
|
mediaStored: attachedDatabase.typeMapping
|
||||||
.read(DriftSqlType.bool, data['${effectivePrefix}media_stored'])!,
|
.read(DriftSqlType.bool, data['${effectivePrefix}media_stored'])!,
|
||||||
|
mediaReopened: attachedDatabase.typeMapping
|
||||||
|
.read(DriftSqlType.bool, data['${effectivePrefix}media_reopened'])!,
|
||||||
downloadToken: attachedDatabase.typeMapping
|
downloadToken: attachedDatabase.typeMapping
|
||||||
.read(DriftSqlType.blob, data['${effectivePrefix}download_token']),
|
.read(DriftSqlType.blob, data['${effectivePrefix}download_token']),
|
||||||
quotesMessageId: attachedDatabase.typeMapping.read(
|
quotesMessageId: attachedDatabase.typeMapping.read(
|
||||||
|
|
@ -2989,6 +2964,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
final String? content;
|
final String? content;
|
||||||
final String? mediaId;
|
final String? mediaId;
|
||||||
final bool mediaStored;
|
final bool mediaStored;
|
||||||
|
final bool mediaReopened;
|
||||||
final Uint8List? downloadToken;
|
final Uint8List? downloadToken;
|
||||||
final String? quotesMessageId;
|
final String? quotesMessageId;
|
||||||
final bool isDeletedFromSender;
|
final bool isDeletedFromSender;
|
||||||
|
|
@ -3006,6 +2982,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
this.content,
|
this.content,
|
||||||
this.mediaId,
|
this.mediaId,
|
||||||
required this.mediaStored,
|
required this.mediaStored,
|
||||||
|
required this.mediaReopened,
|
||||||
this.downloadToken,
|
this.downloadToken,
|
||||||
this.quotesMessageId,
|
this.quotesMessageId,
|
||||||
required this.isDeletedFromSender,
|
required this.isDeletedFromSender,
|
||||||
|
|
@ -3033,6 +3010,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
map['media_id'] = Variable<String>(mediaId);
|
map['media_id'] = Variable<String>(mediaId);
|
||||||
}
|
}
|
||||||
map['media_stored'] = Variable<bool>(mediaStored);
|
map['media_stored'] = Variable<bool>(mediaStored);
|
||||||
|
map['media_reopened'] = Variable<bool>(mediaReopened);
|
||||||
if (!nullToAbsent || downloadToken != null) {
|
if (!nullToAbsent || downloadToken != null) {
|
||||||
map['download_token'] = Variable<Uint8List>(downloadToken);
|
map['download_token'] = Variable<Uint8List>(downloadToken);
|
||||||
}
|
}
|
||||||
|
|
@ -3074,6 +3052,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
? const Value.absent()
|
? const Value.absent()
|
||||||
: Value(mediaId),
|
: Value(mediaId),
|
||||||
mediaStored: Value(mediaStored),
|
mediaStored: Value(mediaStored),
|
||||||
|
mediaReopened: Value(mediaReopened),
|
||||||
downloadToken: downloadToken == null && nullToAbsent
|
downloadToken: downloadToken == null && nullToAbsent
|
||||||
? const Value.absent()
|
? const Value.absent()
|
||||||
: Value(downloadToken),
|
: Value(downloadToken),
|
||||||
|
|
@ -3112,6 +3091,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
content: serializer.fromJson<String?>(json['content']),
|
content: serializer.fromJson<String?>(json['content']),
|
||||||
mediaId: serializer.fromJson<String?>(json['mediaId']),
|
mediaId: serializer.fromJson<String?>(json['mediaId']),
|
||||||
mediaStored: serializer.fromJson<bool>(json['mediaStored']),
|
mediaStored: serializer.fromJson<bool>(json['mediaStored']),
|
||||||
|
mediaReopened: serializer.fromJson<bool>(json['mediaReopened']),
|
||||||
downloadToken: serializer.fromJson<Uint8List?>(json['downloadToken']),
|
downloadToken: serializer.fromJson<Uint8List?>(json['downloadToken']),
|
||||||
quotesMessageId: serializer.fromJson<String?>(json['quotesMessageId']),
|
quotesMessageId: serializer.fromJson<String?>(json['quotesMessageId']),
|
||||||
isDeletedFromSender:
|
isDeletedFromSender:
|
||||||
|
|
@ -3136,6 +3116,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
'content': serializer.toJson<String?>(content),
|
'content': serializer.toJson<String?>(content),
|
||||||
'mediaId': serializer.toJson<String?>(mediaId),
|
'mediaId': serializer.toJson<String?>(mediaId),
|
||||||
'mediaStored': serializer.toJson<bool>(mediaStored),
|
'mediaStored': serializer.toJson<bool>(mediaStored),
|
||||||
|
'mediaReopened': serializer.toJson<bool>(mediaReopened),
|
||||||
'downloadToken': serializer.toJson<Uint8List?>(downloadToken),
|
'downloadToken': serializer.toJson<Uint8List?>(downloadToken),
|
||||||
'quotesMessageId': serializer.toJson<String?>(quotesMessageId),
|
'quotesMessageId': serializer.toJson<String?>(quotesMessageId),
|
||||||
'isDeletedFromSender': serializer.toJson<bool>(isDeletedFromSender),
|
'isDeletedFromSender': serializer.toJson<bool>(isDeletedFromSender),
|
||||||
|
|
@ -3156,6 +3137,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
Value<String?> content = const Value.absent(),
|
Value<String?> content = const Value.absent(),
|
||||||
Value<String?> mediaId = const Value.absent(),
|
Value<String?> mediaId = const Value.absent(),
|
||||||
bool? mediaStored,
|
bool? mediaStored,
|
||||||
|
bool? mediaReopened,
|
||||||
Value<Uint8List?> downloadToken = const Value.absent(),
|
Value<Uint8List?> downloadToken = const Value.absent(),
|
||||||
Value<String?> quotesMessageId = const Value.absent(),
|
Value<String?> quotesMessageId = const Value.absent(),
|
||||||
bool? isDeletedFromSender,
|
bool? isDeletedFromSender,
|
||||||
|
|
@ -3173,6 +3155,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
content: content.present ? content.value : this.content,
|
content: content.present ? content.value : this.content,
|
||||||
mediaId: mediaId.present ? mediaId.value : this.mediaId,
|
mediaId: mediaId.present ? mediaId.value : this.mediaId,
|
||||||
mediaStored: mediaStored ?? this.mediaStored,
|
mediaStored: mediaStored ?? this.mediaStored,
|
||||||
|
mediaReopened: mediaReopened ?? this.mediaReopened,
|
||||||
downloadToken:
|
downloadToken:
|
||||||
downloadToken.present ? downloadToken.value : this.downloadToken,
|
downloadToken.present ? downloadToken.value : this.downloadToken,
|
||||||
quotesMessageId: quotesMessageId.present
|
quotesMessageId: quotesMessageId.present
|
||||||
|
|
@ -3196,6 +3179,9 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
mediaId: data.mediaId.present ? data.mediaId.value : this.mediaId,
|
mediaId: data.mediaId.present ? data.mediaId.value : this.mediaId,
|
||||||
mediaStored:
|
mediaStored:
|
||||||
data.mediaStored.present ? data.mediaStored.value : this.mediaStored,
|
data.mediaStored.present ? data.mediaStored.value : this.mediaStored,
|
||||||
|
mediaReopened: data.mediaReopened.present
|
||||||
|
? data.mediaReopened.value
|
||||||
|
: this.mediaReopened,
|
||||||
downloadToken: data.downloadToken.present
|
downloadToken: data.downloadToken.present
|
||||||
? data.downloadToken.value
|
? data.downloadToken.value
|
||||||
: this.downloadToken,
|
: this.downloadToken,
|
||||||
|
|
@ -3227,6 +3213,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
..write('content: $content, ')
|
..write('content: $content, ')
|
||||||
..write('mediaId: $mediaId, ')
|
..write('mediaId: $mediaId, ')
|
||||||
..write('mediaStored: $mediaStored, ')
|
..write('mediaStored: $mediaStored, ')
|
||||||
|
..write('mediaReopened: $mediaReopened, ')
|
||||||
..write('downloadToken: $downloadToken, ')
|
..write('downloadToken: $downloadToken, ')
|
||||||
..write('quotesMessageId: $quotesMessageId, ')
|
..write('quotesMessageId: $quotesMessageId, ')
|
||||||
..write('isDeletedFromSender: $isDeletedFromSender, ')
|
..write('isDeletedFromSender: $isDeletedFromSender, ')
|
||||||
|
|
@ -3249,6 +3236,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
content,
|
content,
|
||||||
mediaId,
|
mediaId,
|
||||||
mediaStored,
|
mediaStored,
|
||||||
|
mediaReopened,
|
||||||
$driftBlobEquality.hash(downloadToken),
|
$driftBlobEquality.hash(downloadToken),
|
||||||
quotesMessageId,
|
quotesMessageId,
|
||||||
isDeletedFromSender,
|
isDeletedFromSender,
|
||||||
|
|
@ -3269,6 +3257,7 @@ class Message extends DataClass implements Insertable<Message> {
|
||||||
other.content == this.content &&
|
other.content == this.content &&
|
||||||
other.mediaId == this.mediaId &&
|
other.mediaId == this.mediaId &&
|
||||||
other.mediaStored == this.mediaStored &&
|
other.mediaStored == this.mediaStored &&
|
||||||
|
other.mediaReopened == this.mediaReopened &&
|
||||||
$driftBlobEquality.equals(other.downloadToken, this.downloadToken) &&
|
$driftBlobEquality.equals(other.downloadToken, this.downloadToken) &&
|
||||||
other.quotesMessageId == this.quotesMessageId &&
|
other.quotesMessageId == this.quotesMessageId &&
|
||||||
other.isDeletedFromSender == this.isDeletedFromSender &&
|
other.isDeletedFromSender == this.isDeletedFromSender &&
|
||||||
|
|
@ -3288,6 +3277,7 @@ class MessagesCompanion extends UpdateCompanion<Message> {
|
||||||
final Value<String?> content;
|
final Value<String?> content;
|
||||||
final Value<String?> mediaId;
|
final Value<String?> mediaId;
|
||||||
final Value<bool> mediaStored;
|
final Value<bool> mediaStored;
|
||||||
|
final Value<bool> mediaReopened;
|
||||||
final Value<Uint8List?> downloadToken;
|
final Value<Uint8List?> downloadToken;
|
||||||
final Value<String?> quotesMessageId;
|
final Value<String?> quotesMessageId;
|
||||||
final Value<bool> isDeletedFromSender;
|
final Value<bool> isDeletedFromSender;
|
||||||
|
|
@ -3306,6 +3296,7 @@ class MessagesCompanion extends UpdateCompanion<Message> {
|
||||||
this.content = const Value.absent(),
|
this.content = const Value.absent(),
|
||||||
this.mediaId = const Value.absent(),
|
this.mediaId = const Value.absent(),
|
||||||
this.mediaStored = const Value.absent(),
|
this.mediaStored = const Value.absent(),
|
||||||
|
this.mediaReopened = const Value.absent(),
|
||||||
this.downloadToken = const Value.absent(),
|
this.downloadToken = const Value.absent(),
|
||||||
this.quotesMessageId = const Value.absent(),
|
this.quotesMessageId = const Value.absent(),
|
||||||
this.isDeletedFromSender = const Value.absent(),
|
this.isDeletedFromSender = const Value.absent(),
|
||||||
|
|
@ -3325,6 +3316,7 @@ class MessagesCompanion extends UpdateCompanion<Message> {
|
||||||
this.content = const Value.absent(),
|
this.content = const Value.absent(),
|
||||||
this.mediaId = const Value.absent(),
|
this.mediaId = const Value.absent(),
|
||||||
this.mediaStored = const Value.absent(),
|
this.mediaStored = const Value.absent(),
|
||||||
|
this.mediaReopened = const Value.absent(),
|
||||||
this.downloadToken = const Value.absent(),
|
this.downloadToken = const Value.absent(),
|
||||||
this.quotesMessageId = const Value.absent(),
|
this.quotesMessageId = const Value.absent(),
|
||||||
this.isDeletedFromSender = const Value.absent(),
|
this.isDeletedFromSender = const Value.absent(),
|
||||||
|
|
@ -3346,6 +3338,7 @@ class MessagesCompanion extends UpdateCompanion<Message> {
|
||||||
Expression<String>? content,
|
Expression<String>? content,
|
||||||
Expression<String>? mediaId,
|
Expression<String>? mediaId,
|
||||||
Expression<bool>? mediaStored,
|
Expression<bool>? mediaStored,
|
||||||
|
Expression<bool>? mediaReopened,
|
||||||
Expression<Uint8List>? downloadToken,
|
Expression<Uint8List>? downloadToken,
|
||||||
Expression<String>? quotesMessageId,
|
Expression<String>? quotesMessageId,
|
||||||
Expression<bool>? isDeletedFromSender,
|
Expression<bool>? isDeletedFromSender,
|
||||||
|
|
@ -3365,6 +3358,7 @@ class MessagesCompanion extends UpdateCompanion<Message> {
|
||||||
if (content != null) 'content': content,
|
if (content != null) 'content': content,
|
||||||
if (mediaId != null) 'media_id': mediaId,
|
if (mediaId != null) 'media_id': mediaId,
|
||||||
if (mediaStored != null) 'media_stored': mediaStored,
|
if (mediaStored != null) 'media_stored': mediaStored,
|
||||||
|
if (mediaReopened != null) 'media_reopened': mediaReopened,
|
||||||
if (downloadToken != null) 'download_token': downloadToken,
|
if (downloadToken != null) 'download_token': downloadToken,
|
||||||
if (quotesMessageId != null) 'quotes_message_id': quotesMessageId,
|
if (quotesMessageId != null) 'quotes_message_id': quotesMessageId,
|
||||||
if (isDeletedFromSender != null)
|
if (isDeletedFromSender != null)
|
||||||
|
|
@ -3387,6 +3381,7 @@ class MessagesCompanion extends UpdateCompanion<Message> {
|
||||||
Value<String?>? content,
|
Value<String?>? content,
|
||||||
Value<String?>? mediaId,
|
Value<String?>? mediaId,
|
||||||
Value<bool>? mediaStored,
|
Value<bool>? mediaStored,
|
||||||
|
Value<bool>? mediaReopened,
|
||||||
Value<Uint8List?>? downloadToken,
|
Value<Uint8List?>? downloadToken,
|
||||||
Value<String?>? quotesMessageId,
|
Value<String?>? quotesMessageId,
|
||||||
Value<bool>? isDeletedFromSender,
|
Value<bool>? isDeletedFromSender,
|
||||||
|
|
@ -3405,6 +3400,7 @@ class MessagesCompanion extends UpdateCompanion<Message> {
|
||||||
content: content ?? this.content,
|
content: content ?? this.content,
|
||||||
mediaId: mediaId ?? this.mediaId,
|
mediaId: mediaId ?? this.mediaId,
|
||||||
mediaStored: mediaStored ?? this.mediaStored,
|
mediaStored: mediaStored ?? this.mediaStored,
|
||||||
|
mediaReopened: mediaReopened ?? this.mediaReopened,
|
||||||
downloadToken: downloadToken ?? this.downloadToken,
|
downloadToken: downloadToken ?? this.downloadToken,
|
||||||
quotesMessageId: quotesMessageId ?? this.quotesMessageId,
|
quotesMessageId: quotesMessageId ?? this.quotesMessageId,
|
||||||
isDeletedFromSender: isDeletedFromSender ?? this.isDeletedFromSender,
|
isDeletedFromSender: isDeletedFromSender ?? this.isDeletedFromSender,
|
||||||
|
|
@ -3443,6 +3439,9 @@ class MessagesCompanion extends UpdateCompanion<Message> {
|
||||||
if (mediaStored.present) {
|
if (mediaStored.present) {
|
||||||
map['media_stored'] = Variable<bool>(mediaStored.value);
|
map['media_stored'] = Variable<bool>(mediaStored.value);
|
||||||
}
|
}
|
||||||
|
if (mediaReopened.present) {
|
||||||
|
map['media_reopened'] = Variable<bool>(mediaReopened.value);
|
||||||
|
}
|
||||||
if (downloadToken.present) {
|
if (downloadToken.present) {
|
||||||
map['download_token'] = Variable<Uint8List>(downloadToken.value);
|
map['download_token'] = Variable<Uint8List>(downloadToken.value);
|
||||||
}
|
}
|
||||||
|
|
@ -3486,6 +3485,7 @@ class MessagesCompanion extends UpdateCompanion<Message> {
|
||||||
..write('content: $content, ')
|
..write('content: $content, ')
|
||||||
..write('mediaId: $mediaId, ')
|
..write('mediaId: $mediaId, ')
|
||||||
..write('mediaStored: $mediaStored, ')
|
..write('mediaStored: $mediaStored, ')
|
||||||
|
..write('mediaReopened: $mediaReopened, ')
|
||||||
..write('downloadToken: $downloadToken, ')
|
..write('downloadToken: $downloadToken, ')
|
||||||
..write('quotesMessageId: $quotesMessageId, ')
|
..write('quotesMessageId: $quotesMessageId, ')
|
||||||
..write('isDeletedFromSender: $isDeletedFromSender, ')
|
..write('isDeletedFromSender: $isDeletedFromSender, ')
|
||||||
|
|
@ -9203,7 +9203,6 @@ typedef $$MediaFilesTableCreateCompanionBuilder = MediaFilesCompanion Function({
|
||||||
Value<UploadState?> uploadState,
|
Value<UploadState?> uploadState,
|
||||||
Value<DownloadState?> downloadState,
|
Value<DownloadState?> downloadState,
|
||||||
Value<bool> requiresAuthentication,
|
Value<bool> requiresAuthentication,
|
||||||
Value<bool> reopenByContact,
|
|
||||||
Value<bool> stored,
|
Value<bool> stored,
|
||||||
Value<bool> isDraftMedia,
|
Value<bool> isDraftMedia,
|
||||||
Value<List<int>?> reuploadRequestedBy,
|
Value<List<int>?> reuploadRequestedBy,
|
||||||
|
|
@ -9222,7 +9221,6 @@ typedef $$MediaFilesTableUpdateCompanionBuilder = MediaFilesCompanion Function({
|
||||||
Value<UploadState?> uploadState,
|
Value<UploadState?> uploadState,
|
||||||
Value<DownloadState?> downloadState,
|
Value<DownloadState?> downloadState,
|
||||||
Value<bool> requiresAuthentication,
|
Value<bool> requiresAuthentication,
|
||||||
Value<bool> reopenByContact,
|
|
||||||
Value<bool> stored,
|
Value<bool> stored,
|
||||||
Value<bool> isDraftMedia,
|
Value<bool> isDraftMedia,
|
||||||
Value<List<int>?> reuploadRequestedBy,
|
Value<List<int>?> reuploadRequestedBy,
|
||||||
|
|
@ -9287,10 +9285,6 @@ class $$MediaFilesTableFilterComposer
|
||||||
column: $table.requiresAuthentication,
|
column: $table.requiresAuthentication,
|
||||||
builder: (column) => ColumnFilters(column));
|
builder: (column) => ColumnFilters(column));
|
||||||
|
|
||||||
ColumnFilters<bool> get reopenByContact => $composableBuilder(
|
|
||||||
column: $table.reopenByContact,
|
|
||||||
builder: (column) => ColumnFilters(column));
|
|
||||||
|
|
||||||
ColumnFilters<bool> get stored => $composableBuilder(
|
ColumnFilters<bool> get stored => $composableBuilder(
|
||||||
column: $table.stored, builder: (column) => ColumnFilters(column));
|
column: $table.stored, builder: (column) => ColumnFilters(column));
|
||||||
|
|
||||||
|
|
@ -9373,10 +9367,6 @@ class $$MediaFilesTableOrderingComposer
|
||||||
column: $table.requiresAuthentication,
|
column: $table.requiresAuthentication,
|
||||||
builder: (column) => ColumnOrderings(column));
|
builder: (column) => ColumnOrderings(column));
|
||||||
|
|
||||||
ColumnOrderings<bool> get reopenByContact => $composableBuilder(
|
|
||||||
column: $table.reopenByContact,
|
|
||||||
builder: (column) => ColumnOrderings(column));
|
|
||||||
|
|
||||||
ColumnOrderings<bool> get stored => $composableBuilder(
|
ColumnOrderings<bool> get stored => $composableBuilder(
|
||||||
column: $table.stored, builder: (column) => ColumnOrderings(column));
|
column: $table.stored, builder: (column) => ColumnOrderings(column));
|
||||||
|
|
||||||
|
|
@ -9441,9 +9431,6 @@ class $$MediaFilesTableAnnotationComposer
|
||||||
GeneratedColumn<bool> get requiresAuthentication => $composableBuilder(
|
GeneratedColumn<bool> get requiresAuthentication => $composableBuilder(
|
||||||
column: $table.requiresAuthentication, builder: (column) => column);
|
column: $table.requiresAuthentication, builder: (column) => column);
|
||||||
|
|
||||||
GeneratedColumn<bool> get reopenByContact => $composableBuilder(
|
|
||||||
column: $table.reopenByContact, builder: (column) => column);
|
|
||||||
|
|
||||||
GeneratedColumn<bool> get stored =>
|
GeneratedColumn<bool> get stored =>
|
||||||
$composableBuilder(column: $table.stored, builder: (column) => column);
|
$composableBuilder(column: $table.stored, builder: (column) => column);
|
||||||
|
|
||||||
|
|
@ -9525,7 +9512,6 @@ class $$MediaFilesTableTableManager extends RootTableManager<
|
||||||
Value<UploadState?> uploadState = const Value.absent(),
|
Value<UploadState?> uploadState = const Value.absent(),
|
||||||
Value<DownloadState?> downloadState = const Value.absent(),
|
Value<DownloadState?> downloadState = const Value.absent(),
|
||||||
Value<bool> requiresAuthentication = const Value.absent(),
|
Value<bool> requiresAuthentication = const Value.absent(),
|
||||||
Value<bool> reopenByContact = const Value.absent(),
|
|
||||||
Value<bool> stored = const Value.absent(),
|
Value<bool> stored = const Value.absent(),
|
||||||
Value<bool> isDraftMedia = const Value.absent(),
|
Value<bool> isDraftMedia = const Value.absent(),
|
||||||
Value<List<int>?> reuploadRequestedBy = const Value.absent(),
|
Value<List<int>?> reuploadRequestedBy = const Value.absent(),
|
||||||
|
|
@ -9544,7 +9530,6 @@ class $$MediaFilesTableTableManager extends RootTableManager<
|
||||||
uploadState: uploadState,
|
uploadState: uploadState,
|
||||||
downloadState: downloadState,
|
downloadState: downloadState,
|
||||||
requiresAuthentication: requiresAuthentication,
|
requiresAuthentication: requiresAuthentication,
|
||||||
reopenByContact: reopenByContact,
|
|
||||||
stored: stored,
|
stored: stored,
|
||||||
isDraftMedia: isDraftMedia,
|
isDraftMedia: isDraftMedia,
|
||||||
reuploadRequestedBy: reuploadRequestedBy,
|
reuploadRequestedBy: reuploadRequestedBy,
|
||||||
|
|
@ -9563,7 +9548,6 @@ class $$MediaFilesTableTableManager extends RootTableManager<
|
||||||
Value<UploadState?> uploadState = const Value.absent(),
|
Value<UploadState?> uploadState = const Value.absent(),
|
||||||
Value<DownloadState?> downloadState = const Value.absent(),
|
Value<DownloadState?> downloadState = const Value.absent(),
|
||||||
Value<bool> requiresAuthentication = const Value.absent(),
|
Value<bool> requiresAuthentication = const Value.absent(),
|
||||||
Value<bool> reopenByContact = const Value.absent(),
|
|
||||||
Value<bool> stored = const Value.absent(),
|
Value<bool> stored = const Value.absent(),
|
||||||
Value<bool> isDraftMedia = const Value.absent(),
|
Value<bool> isDraftMedia = const Value.absent(),
|
||||||
Value<List<int>?> reuploadRequestedBy = const Value.absent(),
|
Value<List<int>?> reuploadRequestedBy = const Value.absent(),
|
||||||
|
|
@ -9582,7 +9566,6 @@ class $$MediaFilesTableTableManager extends RootTableManager<
|
||||||
uploadState: uploadState,
|
uploadState: uploadState,
|
||||||
downloadState: downloadState,
|
downloadState: downloadState,
|
||||||
requiresAuthentication: requiresAuthentication,
|
requiresAuthentication: requiresAuthentication,
|
||||||
reopenByContact: reopenByContact,
|
|
||||||
stored: stored,
|
stored: stored,
|
||||||
isDraftMedia: isDraftMedia,
|
isDraftMedia: isDraftMedia,
|
||||||
reuploadRequestedBy: reuploadRequestedBy,
|
reuploadRequestedBy: reuploadRequestedBy,
|
||||||
|
|
@ -9648,6 +9631,7 @@ typedef $$MessagesTableCreateCompanionBuilder = MessagesCompanion Function({
|
||||||
Value<String?> content,
|
Value<String?> content,
|
||||||
Value<String?> mediaId,
|
Value<String?> mediaId,
|
||||||
Value<bool> mediaStored,
|
Value<bool> mediaStored,
|
||||||
|
Value<bool> mediaReopened,
|
||||||
Value<Uint8List?> downloadToken,
|
Value<Uint8List?> downloadToken,
|
||||||
Value<String?> quotesMessageId,
|
Value<String?> quotesMessageId,
|
||||||
Value<bool> isDeletedFromSender,
|
Value<bool> isDeletedFromSender,
|
||||||
|
|
@ -9667,6 +9651,7 @@ typedef $$MessagesTableUpdateCompanionBuilder = MessagesCompanion Function({
|
||||||
Value<String?> content,
|
Value<String?> content,
|
||||||
Value<String?> mediaId,
|
Value<String?> mediaId,
|
||||||
Value<bool> mediaStored,
|
Value<bool> mediaStored,
|
||||||
|
Value<bool> mediaReopened,
|
||||||
Value<Uint8List?> downloadToken,
|
Value<Uint8List?> downloadToken,
|
||||||
Value<String?> quotesMessageId,
|
Value<String?> quotesMessageId,
|
||||||
Value<bool> isDeletedFromSender,
|
Value<bool> isDeletedFromSender,
|
||||||
|
|
@ -9817,6 +9802,9 @@ class $$MessagesTableFilterComposer
|
||||||
ColumnFilters<bool> get mediaStored => $composableBuilder(
|
ColumnFilters<bool> get mediaStored => $composableBuilder(
|
||||||
column: $table.mediaStored, builder: (column) => ColumnFilters(column));
|
column: $table.mediaStored, builder: (column) => ColumnFilters(column));
|
||||||
|
|
||||||
|
ColumnFilters<bool> get mediaReopened => $composableBuilder(
|
||||||
|
column: $table.mediaReopened, builder: (column) => ColumnFilters(column));
|
||||||
|
|
||||||
ColumnFilters<Uint8List> get downloadToken => $composableBuilder(
|
ColumnFilters<Uint8List> get downloadToken => $composableBuilder(
|
||||||
column: $table.downloadToken, builder: (column) => ColumnFilters(column));
|
column: $table.downloadToken, builder: (column) => ColumnFilters(column));
|
||||||
|
|
||||||
|
|
@ -10012,6 +10000,10 @@ class $$MessagesTableOrderingComposer
|
||||||
ColumnOrderings<bool> get mediaStored => $composableBuilder(
|
ColumnOrderings<bool> get mediaStored => $composableBuilder(
|
||||||
column: $table.mediaStored, builder: (column) => ColumnOrderings(column));
|
column: $table.mediaStored, builder: (column) => ColumnOrderings(column));
|
||||||
|
|
||||||
|
ColumnOrderings<bool> get mediaReopened => $composableBuilder(
|
||||||
|
column: $table.mediaReopened,
|
||||||
|
builder: (column) => ColumnOrderings(column));
|
||||||
|
|
||||||
ColumnOrderings<Uint8List> get downloadToken => $composableBuilder(
|
ColumnOrderings<Uint8List> get downloadToken => $composableBuilder(
|
||||||
column: $table.downloadToken,
|
column: $table.downloadToken,
|
||||||
builder: (column) => ColumnOrderings(column));
|
builder: (column) => ColumnOrderings(column));
|
||||||
|
|
@ -10124,6 +10116,9 @@ class $$MessagesTableAnnotationComposer
|
||||||
GeneratedColumn<bool> get mediaStored => $composableBuilder(
|
GeneratedColumn<bool> get mediaStored => $composableBuilder(
|
||||||
column: $table.mediaStored, builder: (column) => column);
|
column: $table.mediaStored, builder: (column) => column);
|
||||||
|
|
||||||
|
GeneratedColumn<bool> get mediaReopened => $composableBuilder(
|
||||||
|
column: $table.mediaReopened, builder: (column) => column);
|
||||||
|
|
||||||
GeneratedColumn<Uint8List> get downloadToken => $composableBuilder(
|
GeneratedColumn<Uint8List> get downloadToken => $composableBuilder(
|
||||||
column: $table.downloadToken, builder: (column) => column);
|
column: $table.downloadToken, builder: (column) => column);
|
||||||
|
|
||||||
|
|
@ -10333,6 +10328,7 @@ class $$MessagesTableTableManager extends RootTableManager<
|
||||||
Value<String?> content = const Value.absent(),
|
Value<String?> content = const Value.absent(),
|
||||||
Value<String?> mediaId = const Value.absent(),
|
Value<String?> mediaId = const Value.absent(),
|
||||||
Value<bool> mediaStored = const Value.absent(),
|
Value<bool> mediaStored = const Value.absent(),
|
||||||
|
Value<bool> mediaReopened = const Value.absent(),
|
||||||
Value<Uint8List?> downloadToken = const Value.absent(),
|
Value<Uint8List?> downloadToken = const Value.absent(),
|
||||||
Value<String?> quotesMessageId = const Value.absent(),
|
Value<String?> quotesMessageId = const Value.absent(),
|
||||||
Value<bool> isDeletedFromSender = const Value.absent(),
|
Value<bool> isDeletedFromSender = const Value.absent(),
|
||||||
|
|
@ -10352,6 +10348,7 @@ class $$MessagesTableTableManager extends RootTableManager<
|
||||||
content: content,
|
content: content,
|
||||||
mediaId: mediaId,
|
mediaId: mediaId,
|
||||||
mediaStored: mediaStored,
|
mediaStored: mediaStored,
|
||||||
|
mediaReopened: mediaReopened,
|
||||||
downloadToken: downloadToken,
|
downloadToken: downloadToken,
|
||||||
quotesMessageId: quotesMessageId,
|
quotesMessageId: quotesMessageId,
|
||||||
isDeletedFromSender: isDeletedFromSender,
|
isDeletedFromSender: isDeletedFromSender,
|
||||||
|
|
@ -10371,6 +10368,7 @@ class $$MessagesTableTableManager extends RootTableManager<
|
||||||
Value<String?> content = const Value.absent(),
|
Value<String?> content = const Value.absent(),
|
||||||
Value<String?> mediaId = const Value.absent(),
|
Value<String?> mediaId = const Value.absent(),
|
||||||
Value<bool> mediaStored = const Value.absent(),
|
Value<bool> mediaStored = const Value.absent(),
|
||||||
|
Value<bool> mediaReopened = const Value.absent(),
|
||||||
Value<Uint8List?> downloadToken = const Value.absent(),
|
Value<Uint8List?> downloadToken = const Value.absent(),
|
||||||
Value<String?> quotesMessageId = const Value.absent(),
|
Value<String?> quotesMessageId = const Value.absent(),
|
||||||
Value<bool> isDeletedFromSender = const Value.absent(),
|
Value<bool> isDeletedFromSender = const Value.absent(),
|
||||||
|
|
@ -10390,6 +10388,7 @@ class $$MessagesTableTableManager extends RootTableManager<
|
||||||
content: content,
|
content: content,
|
||||||
mediaId: mediaId,
|
mediaId: mediaId,
|
||||||
mediaStored: mediaStored,
|
mediaStored: mediaStored,
|
||||||
|
mediaReopened: mediaReopened,
|
||||||
downloadToken: downloadToken,
|
downloadToken: downloadToken,
|
||||||
quotesMessageId: quotesMessageId,
|
quotesMessageId: quotesMessageId,
|
||||||
isDeletedFromSender: isDeletedFromSender,
|
isDeletedFromSender: isDeletedFromSender,
|
||||||
|
|
|
||||||
1153
lib/src/database/twonly.db.steps.dart
Normal file
1153
lib/src/database/twonly.db.steps.dart
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -148,16 +148,22 @@ Future<void> handleMediaUpdate(
|
||||||
switch (mediaUpdate.type) {
|
switch (mediaUpdate.type) {
|
||||||
case EncryptedContent_MediaUpdate_Type.REOPENED:
|
case EncryptedContent_MediaUpdate_Type.REOPENED:
|
||||||
Log.info('Got media file reopened ${mediaFile.mediaId}');
|
Log.info('Got media file reopened ${mediaFile.mediaId}');
|
||||||
await twonlyDB.mediaFilesDao.updateMedia(
|
await twonlyDB.messagesDao.updateMessageId(
|
||||||
mediaFile.mediaId,
|
message.messageId,
|
||||||
const MediaFilesCompanion(
|
const MessagesCompanion(
|
||||||
reopenByContact: Value(true),
|
mediaReopened: Value(true),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
case EncryptedContent_MediaUpdate_Type.STORED:
|
case EncryptedContent_MediaUpdate_Type.STORED:
|
||||||
Log.info('Got media file stored ${mediaFile.mediaId}');
|
Log.info('Got media file stored ${mediaFile.mediaId}');
|
||||||
final mediaService = await MediaFileService.fromMedia(mediaFile);
|
final mediaService = await MediaFileService.fromMedia(mediaFile);
|
||||||
await mediaService.storeMediaFile();
|
await mediaService.storeMediaFile();
|
||||||
|
await twonlyDB.messagesDao.updateMessageId(
|
||||||
|
message.messageId,
|
||||||
|
const MessagesCompanion(
|
||||||
|
mediaStored: Value(true),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
case EncryptedContent_MediaUpdate_Type.DECRYPTION_ERROR:
|
case EncryptedContent_MediaUpdate_Type.DECRYPTION_ERROR:
|
||||||
Log.info('Got media file decryption error ${mediaFile.mediaId}');
|
Log.info('Got media file decryption error ${mediaFile.mediaId}');
|
||||||
|
|
|
||||||
|
|
@ -224,12 +224,6 @@ class MediaFileService {
|
||||||
stored: Value(true),
|
stored: Value(true),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
await twonlyDB.messagesDao.updateMessagesByMediaId(
|
|
||||||
mediaFile.mediaId,
|
|
||||||
const MessagesCompanion(
|
|
||||||
mediaStored: Value(true),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
if (originalPath.existsSync() && !tempPath.existsSync()) {
|
if (originalPath.existsSync() && !tempPath.existsSync()) {
|
||||||
await compressMedia();
|
await compressMedia();
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,7 @@ class _MessageSendStateIconState extends State<MessageSendStateIcon> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mediaFile != null) {
|
if (mediaFile != null) {
|
||||||
if (mediaFile.reopenByContact) {
|
if (message.mediaReopened) {
|
||||||
icon = FaIcon(FontAwesomeIcons.repeat, size: 12, color: color);
|
icon = FaIcon(FontAwesomeIcons.repeat, size: 12, color: color);
|
||||||
text = context.lang.messageReopened;
|
text = context.lang.messageReopened;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
23
test/drift/twonly_db/generated/schema.dart
Normal file
23
test/drift/twonly_db/generated/schema.dart
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
// dart format width=80
|
||||||
|
// GENERATED CODE, DO NOT EDIT BY HAND.
|
||||||
|
// ignore_for_file: type=lint
|
||||||
|
import 'package:drift/drift.dart';
|
||||||
|
import 'package:drift/internal/migrations.dart';
|
||||||
|
import 'schema_v1.dart' as v1;
|
||||||
|
import 'schema_v2.dart' as v2;
|
||||||
|
|
||||||
|
class GeneratedHelper implements SchemaInstantiationHelper {
|
||||||
|
@override
|
||||||
|
GeneratedDatabase databaseForVersion(QueryExecutor db, int version) {
|
||||||
|
switch (version) {
|
||||||
|
case 1:
|
||||||
|
return v1.DatabaseAtV1(db);
|
||||||
|
case 2:
|
||||||
|
return v2.DatabaseAtV2(db);
|
||||||
|
default:
|
||||||
|
throw MissingSchemaException(version, versions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static const versions = const [1, 2];
|
||||||
|
}
|
||||||
6384
test/drift/twonly_db/generated/schema_v1.dart
Normal file
6384
test/drift/twonly_db/generated/schema_v1.dart
Normal file
File diff suppressed because it is too large
Load diff
6384
test/drift/twonly_db/generated/schema_v2.dart
Normal file
6384
test/drift/twonly_db/generated/schema_v2.dart
Normal file
File diff suppressed because it is too large
Load diff
172
test/drift/twonly_db/migration_test.dart
Normal file
172
test/drift/twonly_db/migration_test.dart
Normal file
|
|
@ -0,0 +1,172 @@
|
||||||
|
// dart format width=80
|
||||||
|
// ignore_for_file: unused_local_variable, unused_import
|
||||||
|
import 'package:drift/drift.dart';
|
||||||
|
import 'package:drift_dev/api/migrations_native.dart';
|
||||||
|
import 'package:twonly/src/database/twonly.db.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'generated/schema.dart';
|
||||||
|
|
||||||
|
import 'generated/schema_v1.dart' as v1;
|
||||||
|
import 'generated/schema_v2.dart' as v2;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
driftRuntimeOptions.dontWarnAboutMultipleDatabases = true;
|
||||||
|
late SchemaVerifier verifier;
|
||||||
|
|
||||||
|
setUpAll(() {
|
||||||
|
verifier = SchemaVerifier(GeneratedHelper());
|
||||||
|
});
|
||||||
|
|
||||||
|
group('simple database migrations', () {
|
||||||
|
// These simple tests verify all possible schema updates with a simple (no
|
||||||
|
// data) migration. This is a quick way to ensure that written database
|
||||||
|
// migrations properly alter the schema.
|
||||||
|
const versions = GeneratedHelper.versions;
|
||||||
|
for (final (i, fromVersion) in versions.indexed) {
|
||||||
|
group('from $fromVersion', () {
|
||||||
|
for (final toVersion in versions.skip(i + 1)) {
|
||||||
|
test('to $toVersion', () async {
|
||||||
|
final schema = await verifier.schemaAt(fromVersion);
|
||||||
|
final db = TwonlyDB(schema.newConnection());
|
||||||
|
await verifier.migrateAndValidate(db, toVersion);
|
||||||
|
await db.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// The following template shows how to write tests ensuring your migrations
|
||||||
|
// preserve existing data.
|
||||||
|
// Testing this can be useful for migrations that change existing columns
|
||||||
|
// (e.g. by alterating their type or constraints). Migrations that only add
|
||||||
|
// tables or columns typically don't need these advanced tests. For more
|
||||||
|
// information, see https://drift.simonbinder.eu/migrations/tests/#verifying-data-integrity
|
||||||
|
// TODO: This generated template shows how these tests could be written. Adopt
|
||||||
|
// it to your own needs when testing migrations with data integrity.
|
||||||
|
test('migration from v1 to v2 does not corrupt data', () async {
|
||||||
|
// Add data to insert into the old database, and the expected rows after the
|
||||||
|
// migration.
|
||||||
|
// TODO: Fill these lists
|
||||||
|
final oldContactsData = <v1.ContactsData>[];
|
||||||
|
final expectedNewContactsData = <v2.ContactsData>[];
|
||||||
|
|
||||||
|
final oldGroupsData = <v1.GroupsData>[];
|
||||||
|
final expectedNewGroupsData = <v2.GroupsData>[];
|
||||||
|
|
||||||
|
final oldMediaFilesData = <v1.MediaFilesData>[];
|
||||||
|
final expectedNewMediaFilesData = <v2.MediaFilesData>[];
|
||||||
|
|
||||||
|
final oldMessagesData = <v1.MessagesData>[];
|
||||||
|
final expectedNewMessagesData = <v2.MessagesData>[];
|
||||||
|
|
||||||
|
final oldMessageHistoriesData = <v1.MessageHistoriesData>[];
|
||||||
|
final expectedNewMessageHistoriesData = <v2.MessageHistoriesData>[];
|
||||||
|
|
||||||
|
final oldReactionsData = <v1.ReactionsData>[];
|
||||||
|
final expectedNewReactionsData = <v2.ReactionsData>[];
|
||||||
|
|
||||||
|
final oldGroupMembersData = <v1.GroupMembersData>[];
|
||||||
|
final expectedNewGroupMembersData = <v2.GroupMembersData>[];
|
||||||
|
|
||||||
|
final oldReceiptsData = <v1.ReceiptsData>[];
|
||||||
|
final expectedNewReceiptsData = <v2.ReceiptsData>[];
|
||||||
|
|
||||||
|
final oldReceivedReceiptsData = <v1.ReceivedReceiptsData>[];
|
||||||
|
final expectedNewReceivedReceiptsData = <v2.ReceivedReceiptsData>[];
|
||||||
|
|
||||||
|
final oldSignalIdentityKeyStoresData = <v1.SignalIdentityKeyStoresData>[];
|
||||||
|
final expectedNewSignalIdentityKeyStoresData =
|
||||||
|
<v2.SignalIdentityKeyStoresData>[];
|
||||||
|
|
||||||
|
final oldSignalPreKeyStoresData = <v1.SignalPreKeyStoresData>[];
|
||||||
|
final expectedNewSignalPreKeyStoresData = <v2.SignalPreKeyStoresData>[];
|
||||||
|
|
||||||
|
final oldSignalSenderKeyStoresData = <v1.SignalSenderKeyStoresData>[];
|
||||||
|
final expectedNewSignalSenderKeyStoresData =
|
||||||
|
<v2.SignalSenderKeyStoresData>[];
|
||||||
|
|
||||||
|
final oldSignalSessionStoresData = <v1.SignalSessionStoresData>[];
|
||||||
|
final expectedNewSignalSessionStoresData = <v2.SignalSessionStoresData>[];
|
||||||
|
|
||||||
|
final oldSignalContactPreKeysData = <v1.SignalContactPreKeysData>[];
|
||||||
|
final expectedNewSignalContactPreKeysData = <v2.SignalContactPreKeysData>[];
|
||||||
|
|
||||||
|
final oldSignalContactSignedPreKeysData =
|
||||||
|
<v1.SignalContactSignedPreKeysData>[];
|
||||||
|
final expectedNewSignalContactSignedPreKeysData =
|
||||||
|
<v2.SignalContactSignedPreKeysData>[];
|
||||||
|
|
||||||
|
final oldMessageActionsData = <v1.MessageActionsData>[];
|
||||||
|
final expectedNewMessageActionsData = <v2.MessageActionsData>[];
|
||||||
|
|
||||||
|
final oldGroupHistoriesData = <v1.GroupHistoriesData>[];
|
||||||
|
final expectedNewGroupHistoriesData = <v2.GroupHistoriesData>[];
|
||||||
|
|
||||||
|
await verifier.testWithDataIntegrity(
|
||||||
|
oldVersion: 1,
|
||||||
|
newVersion: 2,
|
||||||
|
createOld: v1.DatabaseAtV1.new,
|
||||||
|
createNew: v2.DatabaseAtV2.new,
|
||||||
|
openTestedDatabase: TwonlyDB.new,
|
||||||
|
createItems: (batch, oldDb) {
|
||||||
|
batch.insertAll(oldDb.contacts, oldContactsData);
|
||||||
|
batch.insertAll(oldDb.groups, oldGroupsData);
|
||||||
|
batch.insertAll(oldDb.mediaFiles, oldMediaFilesData);
|
||||||
|
batch.insertAll(oldDb.messages, oldMessagesData);
|
||||||
|
batch.insertAll(oldDb.messageHistories, oldMessageHistoriesData);
|
||||||
|
batch.insertAll(oldDb.reactions, oldReactionsData);
|
||||||
|
batch.insertAll(oldDb.groupMembers, oldGroupMembersData);
|
||||||
|
batch.insertAll(oldDb.receipts, oldReceiptsData);
|
||||||
|
batch.insertAll(oldDb.receivedReceipts, oldReceivedReceiptsData);
|
||||||
|
batch.insertAll(
|
||||||
|
oldDb.signalIdentityKeyStores, oldSignalIdentityKeyStoresData);
|
||||||
|
batch.insertAll(oldDb.signalPreKeyStores, oldSignalPreKeyStoresData);
|
||||||
|
batch.insertAll(
|
||||||
|
oldDb.signalSenderKeyStores, oldSignalSenderKeyStoresData);
|
||||||
|
batch.insertAll(oldDb.signalSessionStores, oldSignalSessionStoresData);
|
||||||
|
batch.insertAll(
|
||||||
|
oldDb.signalContactPreKeys, oldSignalContactPreKeysData);
|
||||||
|
batch.insertAll(oldDb.signalContactSignedPreKeys,
|
||||||
|
oldSignalContactSignedPreKeysData);
|
||||||
|
batch.insertAll(oldDb.messageActions, oldMessageActionsData);
|
||||||
|
batch.insertAll(oldDb.groupHistories, oldGroupHistoriesData);
|
||||||
|
},
|
||||||
|
validateItems: (newDb) async {
|
||||||
|
expect(
|
||||||
|
expectedNewContactsData, await newDb.select(newDb.contacts).get());
|
||||||
|
expect(expectedNewGroupsData, await newDb.select(newDb.groups).get());
|
||||||
|
expect(expectedNewMediaFilesData,
|
||||||
|
await newDb.select(newDb.mediaFiles).get());
|
||||||
|
expect(
|
||||||
|
expectedNewMessagesData, await newDb.select(newDb.messages).get());
|
||||||
|
expect(expectedNewMessageHistoriesData,
|
||||||
|
await newDb.select(newDb.messageHistories).get());
|
||||||
|
expect(expectedNewReactionsData,
|
||||||
|
await newDb.select(newDb.reactions).get());
|
||||||
|
expect(expectedNewGroupMembersData,
|
||||||
|
await newDb.select(newDb.groupMembers).get());
|
||||||
|
expect(
|
||||||
|
expectedNewReceiptsData, await newDb.select(newDb.receipts).get());
|
||||||
|
expect(expectedNewReceivedReceiptsData,
|
||||||
|
await newDb.select(newDb.receivedReceipts).get());
|
||||||
|
expect(expectedNewSignalIdentityKeyStoresData,
|
||||||
|
await newDb.select(newDb.signalIdentityKeyStores).get());
|
||||||
|
expect(expectedNewSignalPreKeyStoresData,
|
||||||
|
await newDb.select(newDb.signalPreKeyStores).get());
|
||||||
|
expect(expectedNewSignalSenderKeyStoresData,
|
||||||
|
await newDb.select(newDb.signalSenderKeyStores).get());
|
||||||
|
expect(expectedNewSignalSessionStoresData,
|
||||||
|
await newDb.select(newDb.signalSessionStores).get());
|
||||||
|
expect(expectedNewSignalContactPreKeysData,
|
||||||
|
await newDb.select(newDb.signalContactPreKeys).get());
|
||||||
|
expect(expectedNewSignalContactSignedPreKeysData,
|
||||||
|
await newDb.select(newDb.signalContactSignedPreKeys).get());
|
||||||
|
expect(expectedNewMessageActionsData,
|
||||||
|
await newDb.select(newDb.messageActions).get());
|
||||||
|
expect(expectedNewGroupHistoriesData,
|
||||||
|
await newDb.select(newDb.groupHistories).get());
|
||||||
|
},
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue