diff --git a/generate_proto.sh b/generate_proto.sh index ec563ed..6cfa149 100755 --- a/generate_proto.sh +++ b/generate_proto.sh @@ -16,7 +16,7 @@ cd "$SRC_DIR" || { } # Iterate over all .proto files in the source directory -for proto_file in "api/"*.proto; do +for proto_file in "api/"**/*.proto; do # Check if the file exists to avoid errors if no .proto files are found if [[ -f "$proto_file" ]]; then diff --git a/lib/main.dart b/lib/main.dart index b797d01..7d7d3f7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,5 @@ +import 'dart:isolate'; + import 'package:camera/camera.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; @@ -45,8 +47,10 @@ void main() async { await twonlyDB.messagesDao.handleMediaFilesOlderThan7Days(); // purge media files in the background - purgeReceivedMediaFiles(); - purgeSendMediaFiles(); + Isolate.run(() { + purgeReceivedMediaFiles(); + purgeSendMediaFiles(); + }); runApp( MultiProvider( diff --git a/lib/src/model/protobuf/api/http/http_requests.pb.dart b/lib/src/model/protobuf/api/http/http_requests.pb.dart new file mode 100644 index 0000000..ad378f0 --- /dev/null +++ b/lib/src/model/protobuf/api/http/http_requests.pb.dart @@ -0,0 +1,163 @@ +// +// Generated code. Do not modify. +// source: api/http/http_requests.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:core' as $core; + +import 'package:fixnum/fixnum.dart' as $fixnum; +import 'package:protobuf/protobuf.dart' as $pb; + +class TextMessage extends $pb.GeneratedMessage { + factory TextMessage({ + $fixnum.Int64? userId, + $core.List<$core.int>? body, + $core.List<$core.int>? pushData, + }) { + final $result = create(); + if (userId != null) { + $result.userId = userId; + } + if (body != null) { + $result.body = body; + } + if (pushData != null) { + $result.pushData = pushData; + } + return $result; + } + TextMessage._() : super(); + factory TextMessage.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory TextMessage.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'TextMessage', package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'), createEmptyInstance: create) + ..aInt64(1, _omitFieldNames ? '' : 'userId') + ..a<$core.List<$core.int>>(2, _omitFieldNames ? '' : 'body', $pb.PbFieldType.OY) + ..a<$core.List<$core.int>>(3, _omitFieldNames ? '' : 'pushData', $pb.PbFieldType.OY) + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + TextMessage clone() => TextMessage()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + TextMessage copyWith(void Function(TextMessage) updates) => super.copyWith((message) => updates(message as TextMessage)) as TextMessage; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static TextMessage create() => TextMessage._(); + TextMessage createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static TextMessage getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static TextMessage? _defaultInstance; + + @$pb.TagNumber(1) + $fixnum.Int64 get userId => $_getI64(0); + @$pb.TagNumber(1) + set userId($fixnum.Int64 v) { $_setInt64(0, v); } + @$pb.TagNumber(1) + $core.bool hasUserId() => $_has(0); + @$pb.TagNumber(1) + void clearUserId() => clearField(1); + + @$pb.TagNumber(2) + $core.List<$core.int> get body => $_getN(1); + @$pb.TagNumber(2) + set body($core.List<$core.int> v) { $_setBytes(1, v); } + @$pb.TagNumber(2) + $core.bool hasBody() => $_has(1); + @$pb.TagNumber(2) + void clearBody() => clearField(2); + + @$pb.TagNumber(3) + $core.List<$core.int> get pushData => $_getN(2); + @$pb.TagNumber(3) + set pushData($core.List<$core.int> v) { $_setBytes(2, v); } + @$pb.TagNumber(3) + $core.bool hasPushData() => $_has(2); + @$pb.TagNumber(3) + void clearPushData() => clearField(3); +} + +class UploadRequest extends $pb.GeneratedMessage { + factory UploadRequest({ + $core.List<$core.int>? encryptedData, + $core.Iterable<$core.List<$core.int>>? downloadTokens, + $core.Iterable? messagesOnSuccess, + }) { + final $result = create(); + if (encryptedData != null) { + $result.encryptedData = encryptedData; + } + if (downloadTokens != null) { + $result.downloadTokens.addAll(downloadTokens); + } + if (messagesOnSuccess != null) { + $result.messagesOnSuccess.addAll(messagesOnSuccess); + } + return $result; + } + UploadRequest._() : super(); + factory UploadRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory UploadRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UploadRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'), createEmptyInstance: create) + ..a<$core.List<$core.int>>(1, _omitFieldNames ? '' : 'encryptedData', $pb.PbFieldType.OY) + ..p<$core.List<$core.int>>(2, _omitFieldNames ? '' : 'downloadTokens', $pb.PbFieldType.PY) + ..pc(3, _omitFieldNames ? '' : 'messagesOnSuccess', $pb.PbFieldType.PM, subBuilder: TextMessage.create) + ..hasRequiredFields = false + ; + + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + UploadRequest clone() => UploadRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + UploadRequest copyWith(void Function(UploadRequest) updates) => super.copyWith((message) => updates(message as UploadRequest)) as UploadRequest; + + $pb.BuilderInfo get info_ => _i; + + @$core.pragma('dart2js:noInline') + static UploadRequest create() => UploadRequest._(); + UploadRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static UploadRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static UploadRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.List<$core.int> get encryptedData => $_getN(0); + @$pb.TagNumber(1) + set encryptedData($core.List<$core.int> v) { $_setBytes(0, v); } + @$pb.TagNumber(1) + $core.bool hasEncryptedData() => $_has(0); + @$pb.TagNumber(1) + void clearEncryptedData() => clearField(1); + + @$pb.TagNumber(2) + $core.List<$core.List<$core.int>> get downloadTokens => $_getList(1); + + @$pb.TagNumber(3) + $core.List get messagesOnSuccess => $_getList(2); +} + + +const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); +const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/lib/src/model/protobuf/api/http/http_requests.pbenum.dart b/lib/src/model/protobuf/api/http/http_requests.pbenum.dart new file mode 100644 index 0000000..32a9e2a --- /dev/null +++ b/lib/src/model/protobuf/api/http/http_requests.pbenum.dart @@ -0,0 +1,11 @@ +// +// Generated code. Do not modify. +// source: api/http/http_requests.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + diff --git a/lib/src/model/protobuf/api/http/http_requests.pbjson.dart b/lib/src/model/protobuf/api/http/http_requests.pbjson.dart new file mode 100644 index 0000000..d4c43f8 --- /dev/null +++ b/lib/src/model/protobuf/api/http/http_requests.pbjson.dart @@ -0,0 +1,50 @@ +// +// Generated code. Do not modify. +// source: api/http/http_requests.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use textMessageDescriptor instead') +const TextMessage$json = { + '1': 'TextMessage', + '2': [ + {'1': 'user_id', '3': 1, '4': 1, '5': 3, '10': 'userId'}, + {'1': 'body', '3': 2, '4': 1, '5': 12, '10': 'body'}, + {'1': 'push_data', '3': 3, '4': 1, '5': 12, '9': 0, '10': 'pushData', '17': true}, + ], + '8': [ + {'1': '_push_data'}, + ], +}; + +/// Descriptor for `TextMessage`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List textMessageDescriptor = $convert.base64Decode( + 'CgtUZXh0TWVzc2FnZRIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQSEgoEYm9keRgCIAEoDFIEYm' + '9keRIgCglwdXNoX2RhdGEYAyABKAxIAFIIcHVzaERhdGGIAQFCDAoKX3B1c2hfZGF0YQ=='); + +@$core.Deprecated('Use uploadRequestDescriptor instead') +const UploadRequest$json = { + '1': 'UploadRequest', + '2': [ + {'1': 'encrypted_data', '3': 1, '4': 1, '5': 12, '10': 'encryptedData'}, + {'1': 'download_tokens', '3': 2, '4': 3, '5': 12, '10': 'downloadTokens'}, + {'1': 'messages_on_success', '3': 3, '4': 3, '5': 11, '6': '.http_requests.TextMessage', '10': 'messagesOnSuccess'}, + ], +}; + +/// Descriptor for `UploadRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List uploadRequestDescriptor = $convert.base64Decode( + 'Cg1VcGxvYWRSZXF1ZXN0EiUKDmVuY3J5cHRlZF9kYXRhGAEgASgMUg1lbmNyeXB0ZWREYXRhEi' + 'cKD2Rvd25sb2FkX3Rva2VucxgCIAMoDFIOZG93bmxvYWRUb2tlbnMSSgoTbWVzc2FnZXNfb25f' + 'c3VjY2VzcxgDIAMoCzIaLmh0dHBfcmVxdWVzdHMuVGV4dE1lc3NhZ2VSEW1lc3NhZ2VzT25TdW' + 'NjZXNz'); + diff --git a/lib/src/model/protobuf/api/http/http_requests.pbserver.dart b/lib/src/model/protobuf/api/http/http_requests.pbserver.dart new file mode 100644 index 0000000..38180fc --- /dev/null +++ b/lib/src/model/protobuf/api/http/http_requests.pbserver.dart @@ -0,0 +1,14 @@ +// +// Generated code. Do not modify. +// source: api/http/http_requests.proto +// +// @dart = 2.12 + +// ignore_for_file: annotate_overrides, camel_case_types, comment_references +// ignore_for_file: constant_identifier_names +// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes +// ignore_for_file: non_constant_identifier_names, prefer_final_fields +// ignore_for_file: unnecessary_import, unnecessary_this, unused_import + +export 'http_requests.pb.dart'; + diff --git a/lib/src/model/protobuf/api/client_to_server.pb.dart b/lib/src/model/protobuf/api/websocket/client_to_server.pb.dart similarity index 85% rename from lib/src/model/protobuf/api/client_to_server.pb.dart rename to lib/src/model/protobuf/api/websocket/client_to_server.pb.dart index e42a96a..41519e9 100644 --- a/lib/src/model/protobuf/api/client_to_server.pb.dart +++ b/lib/src/model/protobuf/api/websocket/client_to_server.pb.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/client_to_server.proto +// source: api/websocket/client_to_server.proto // // @dart = 2.12 @@ -1531,276 +1531,6 @@ class ApplicationData_UpdateSignedPreKey extends $pb.GeneratedMessage { void clearSignedPrekeySignature() => clearField(3); } -class ApplicationData_GetUploadToken extends $pb.GeneratedMessage { - factory ApplicationData_GetUploadToken({ - $core.int? recipientsCount, - }) { - final $result = create(); - if (recipientsCount != null) { - $result.recipientsCount = recipientsCount; - } - return $result; - } - ApplicationData_GetUploadToken._() : super(); - factory ApplicationData_GetUploadToken.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory ApplicationData_GetUploadToken.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); - - static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ApplicationData.GetUploadToken', package: const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), createEmptyInstance: create) - ..a<$core.int>(1, _omitFieldNames ? '' : 'recipientsCount', $pb.PbFieldType.OU3) - ..hasRequiredFields = false - ; - - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' - 'Will be removed in next major version') - ApplicationData_GetUploadToken clone() => ApplicationData_GetUploadToken()..mergeFromMessage(this); - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' - 'Will be removed in next major version') - ApplicationData_GetUploadToken copyWith(void Function(ApplicationData_GetUploadToken) updates) => super.copyWith((message) => updates(message as ApplicationData_GetUploadToken)) as ApplicationData_GetUploadToken; - - $pb.BuilderInfo get info_ => _i; - - @$core.pragma('dart2js:noInline') - static ApplicationData_GetUploadToken create() => ApplicationData_GetUploadToken._(); - ApplicationData_GetUploadToken createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); - @$core.pragma('dart2js:noInline') - static ApplicationData_GetUploadToken getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); - static ApplicationData_GetUploadToken? _defaultInstance; - - @$pb.TagNumber(1) - $core.int get recipientsCount => $_getIZ(0); - @$pb.TagNumber(1) - set recipientsCount($core.int v) { $_setUnsignedInt32(0, v); } - @$pb.TagNumber(1) - $core.bool hasRecipientsCount() => $_has(0); - @$pb.TagNumber(1) - void clearRecipientsCount() => clearField(1); -} - -class ApplicationData_UploadData extends $pb.GeneratedMessage { - factory ApplicationData_UploadData({ - $core.List<$core.int>? uploadToken, - $core.int? offset, - $core.List<$core.int>? data, - $core.List<$core.int>? checksum, - }) { - final $result = create(); - if (uploadToken != null) { - $result.uploadToken = uploadToken; - } - if (offset != null) { - $result.offset = offset; - } - if (data != null) { - $result.data = data; - } - if (checksum != null) { - $result.checksum = checksum; - } - return $result; - } - ApplicationData_UploadData._() : super(); - factory ApplicationData_UploadData.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory ApplicationData_UploadData.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); - - static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ApplicationData.UploadData', package: const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), createEmptyInstance: create) - ..a<$core.List<$core.int>>(1, _omitFieldNames ? '' : 'uploadToken', $pb.PbFieldType.OY) - ..a<$core.int>(2, _omitFieldNames ? '' : 'offset', $pb.PbFieldType.OU3) - ..a<$core.List<$core.int>>(3, _omitFieldNames ? '' : 'data', $pb.PbFieldType.OY) - ..a<$core.List<$core.int>>(4, _omitFieldNames ? '' : 'checksum', $pb.PbFieldType.OY) - ..hasRequiredFields = false - ; - - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' - 'Will be removed in next major version') - ApplicationData_UploadData clone() => ApplicationData_UploadData()..mergeFromMessage(this); - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' - 'Will be removed in next major version') - ApplicationData_UploadData copyWith(void Function(ApplicationData_UploadData) updates) => super.copyWith((message) => updates(message as ApplicationData_UploadData)) as ApplicationData_UploadData; - - $pb.BuilderInfo get info_ => _i; - - @$core.pragma('dart2js:noInline') - static ApplicationData_UploadData create() => ApplicationData_UploadData._(); - ApplicationData_UploadData createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); - @$core.pragma('dart2js:noInline') - static ApplicationData_UploadData getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); - static ApplicationData_UploadData? _defaultInstance; - - @$pb.TagNumber(1) - $core.List<$core.int> get uploadToken => $_getN(0); - @$pb.TagNumber(1) - set uploadToken($core.List<$core.int> v) { $_setBytes(0, v); } - @$pb.TagNumber(1) - $core.bool hasUploadToken() => $_has(0); - @$pb.TagNumber(1) - void clearUploadToken() => clearField(1); - - @$pb.TagNumber(2) - $core.int get offset => $_getIZ(1); - @$pb.TagNumber(2) - set offset($core.int v) { $_setUnsignedInt32(1, v); } - @$pb.TagNumber(2) - $core.bool hasOffset() => $_has(1); - @$pb.TagNumber(2) - void clearOffset() => clearField(2); - - @$pb.TagNumber(3) - $core.List<$core.int> get data => $_getN(2); - @$pb.TagNumber(3) - set data($core.List<$core.int> v) { $_setBytes(2, v); } - @$pb.TagNumber(3) - $core.bool hasData() => $_has(2); - @$pb.TagNumber(3) - void clearData() => clearField(3); - - @$pb.TagNumber(4) - $core.List<$core.int> get checksum => $_getN(3); - @$pb.TagNumber(4) - set checksum($core.List<$core.int> v) { $_setBytes(3, v); } - @$pb.TagNumber(4) - $core.bool hasChecksum() => $_has(3); - @$pb.TagNumber(4) - void clearChecksum() => clearField(4); -} - -class ApplicationData_UploadDone extends $pb.GeneratedMessage { - factory ApplicationData_UploadDone({ - $core.List<$core.int>? uploadToken, - $core.int? recipientsCount, - }) { - final $result = create(); - if (uploadToken != null) { - $result.uploadToken = uploadToken; - } - if (recipientsCount != null) { - $result.recipientsCount = recipientsCount; - } - return $result; - } - ApplicationData_UploadDone._() : super(); - factory ApplicationData_UploadDone.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory ApplicationData_UploadDone.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); - - static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ApplicationData.UploadDone', package: const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), createEmptyInstance: create) - ..a<$core.List<$core.int>>(1, _omitFieldNames ? '' : 'uploadToken', $pb.PbFieldType.OY) - ..a<$core.int>(2, _omitFieldNames ? '' : 'recipientsCount', $pb.PbFieldType.OU3) - ..hasRequiredFields = false - ; - - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' - 'Will be removed in next major version') - ApplicationData_UploadDone clone() => ApplicationData_UploadDone()..mergeFromMessage(this); - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' - 'Will be removed in next major version') - ApplicationData_UploadDone copyWith(void Function(ApplicationData_UploadDone) updates) => super.copyWith((message) => updates(message as ApplicationData_UploadDone)) as ApplicationData_UploadDone; - - $pb.BuilderInfo get info_ => _i; - - @$core.pragma('dart2js:noInline') - static ApplicationData_UploadDone create() => ApplicationData_UploadDone._(); - ApplicationData_UploadDone createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); - @$core.pragma('dart2js:noInline') - static ApplicationData_UploadDone getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); - static ApplicationData_UploadDone? _defaultInstance; - - @$pb.TagNumber(1) - $core.List<$core.int> get uploadToken => $_getN(0); - @$pb.TagNumber(1) - set uploadToken($core.List<$core.int> v) { $_setBytes(0, v); } - @$pb.TagNumber(1) - $core.bool hasUploadToken() => $_has(0); - @$pb.TagNumber(1) - void clearUploadToken() => clearField(1); - - @$pb.TagNumber(2) - $core.int get recipientsCount => $_getIZ(1); - @$pb.TagNumber(2) - set recipientsCount($core.int v) { $_setUnsignedInt32(1, v); } - @$pb.TagNumber(2) - $core.bool hasRecipientsCount() => $_has(1); - @$pb.TagNumber(2) - void clearRecipientsCount() => clearField(2); -} - -class ApplicationData_DownloadData extends $pb.GeneratedMessage { - factory ApplicationData_DownloadData({ - $core.List<$core.int>? downloadToken, - $core.int? offset, - }) { - final $result = create(); - if (downloadToken != null) { - $result.downloadToken = downloadToken; - } - if (offset != null) { - $result.offset = offset; - } - return $result; - } - ApplicationData_DownloadData._() : super(); - factory ApplicationData_DownloadData.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory ApplicationData_DownloadData.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); - - static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ApplicationData.DownloadData', package: const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), createEmptyInstance: create) - ..a<$core.List<$core.int>>(1, _omitFieldNames ? '' : 'downloadToken', $pb.PbFieldType.OY) - ..a<$core.int>(2, _omitFieldNames ? '' : 'offset', $pb.PbFieldType.OU3) - ..hasRequiredFields = false - ; - - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' - 'Will be removed in next major version') - ApplicationData_DownloadData clone() => ApplicationData_DownloadData()..mergeFromMessage(this); - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' - 'Will be removed in next major version') - ApplicationData_DownloadData copyWith(void Function(ApplicationData_DownloadData) updates) => super.copyWith((message) => updates(message as ApplicationData_DownloadData)) as ApplicationData_DownloadData; - - $pb.BuilderInfo get info_ => _i; - - @$core.pragma('dart2js:noInline') - static ApplicationData_DownloadData create() => ApplicationData_DownloadData._(); - ApplicationData_DownloadData createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); - @$core.pragma('dart2js:noInline') - static ApplicationData_DownloadData getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); - static ApplicationData_DownloadData? _defaultInstance; - - @$pb.TagNumber(1) - $core.List<$core.int> get downloadToken => $_getN(0); - @$pb.TagNumber(1) - set downloadToken($core.List<$core.int> v) { $_setBytes(0, v); } - @$pb.TagNumber(1) - $core.bool hasDownloadToken() => $_has(0); - @$pb.TagNumber(1) - void clearDownloadToken() => clearField(1); - - @$pb.TagNumber(2) - $core.int get offset => $_getIZ(1); - @$pb.TagNumber(2) - set offset($core.int v) { $_setUnsignedInt32(1, v); } - @$pb.TagNumber(2) - $core.bool hasOffset() => $_has(1); - @$pb.TagNumber(2) - void clearOffset() => clearField(2); -} - class ApplicationData_DownloadDone extends $pb.GeneratedMessage { factory ApplicationData_DownloadDone({ $core.List<$core.int>? downloadToken, @@ -1887,10 +1617,7 @@ enum ApplicationData_ApplicationData { textmessage, getuserbyusername, getprekeysbyuserid, - getuploadtoken, - uploaddata, getuserbyid, - downloaddata, updategooglefcmtoken, getlocation, getcurrentplaninfos, @@ -1904,7 +1631,6 @@ enum ApplicationData_ApplicationData { removeadditionaluser, updateplanoptions, downloaddone, - uploaddone, getsignedprekeybyuserid, updatesignedprekey, deleteaccount, @@ -1916,10 +1642,7 @@ class ApplicationData extends $pb.GeneratedMessage { ApplicationData_TextMessage? textmessage, ApplicationData_GetUserByUsername? getuserbyusername, ApplicationData_GetPrekeysByUserId? getprekeysbyuserid, - ApplicationData_GetUploadToken? getuploadtoken, - ApplicationData_UploadData? uploaddata, ApplicationData_GetUserById? getuserbyid, - ApplicationData_DownloadData? downloaddata, ApplicationData_UpdateGoogleFcmToken? updategooglefcmtoken, ApplicationData_GetLocation? getlocation, ApplicationData_GetCurrentPlanInfos? getcurrentplaninfos, @@ -1933,7 +1656,6 @@ class ApplicationData extends $pb.GeneratedMessage { ApplicationData_RemoveAdditionalUser? removeadditionaluser, ApplicationData_UpdatePlanOptions? updateplanoptions, ApplicationData_DownloadDone? downloaddone, - ApplicationData_UploadDone? uploaddone, ApplicationData_GetSignedPreKeyByUserId? getsignedprekeybyuserid, ApplicationData_UpdateSignedPreKey? updatesignedprekey, ApplicationData_DeleteAccount? deleteaccount, @@ -1948,18 +1670,9 @@ class ApplicationData extends $pb.GeneratedMessage { if (getprekeysbyuserid != null) { $result.getprekeysbyuserid = getprekeysbyuserid; } - if (getuploadtoken != null) { - $result.getuploadtoken = getuploadtoken; - } - if (uploaddata != null) { - $result.uploaddata = uploaddata; - } if (getuserbyid != null) { $result.getuserbyid = getuserbyid; } - if (downloaddata != null) { - $result.downloaddata = downloaddata; - } if (updategooglefcmtoken != null) { $result.updategooglefcmtoken = updategooglefcmtoken; } @@ -1999,9 +1712,6 @@ class ApplicationData extends $pb.GeneratedMessage { if (downloaddone != null) { $result.downloaddone = downloaddone; } - if (uploaddone != null) { - $result.uploaddone = uploaddone; - } if (getsignedprekeybyuserid != null) { $result.getsignedprekeybyuserid = getsignedprekeybyuserid; } @@ -2021,10 +1731,7 @@ class ApplicationData extends $pb.GeneratedMessage { 1 : ApplicationData_ApplicationData.textmessage, 2 : ApplicationData_ApplicationData.getuserbyusername, 3 : ApplicationData_ApplicationData.getprekeysbyuserid, - 4 : ApplicationData_ApplicationData.getuploadtoken, - 5 : ApplicationData_ApplicationData.uploaddata, 6 : ApplicationData_ApplicationData.getuserbyid, - 7 : ApplicationData_ApplicationData.downloaddata, 8 : ApplicationData_ApplicationData.updategooglefcmtoken, 9 : ApplicationData_ApplicationData.getlocation, 10 : ApplicationData_ApplicationData.getcurrentplaninfos, @@ -2038,21 +1745,17 @@ class ApplicationData extends $pb.GeneratedMessage { 18 : ApplicationData_ApplicationData.removeadditionaluser, 19 : ApplicationData_ApplicationData.updateplanoptions, 20 : ApplicationData_ApplicationData.downloaddone, - 21 : ApplicationData_ApplicationData.uploaddone, 22 : ApplicationData_ApplicationData.getsignedprekeybyuserid, 23 : ApplicationData_ApplicationData.updatesignedprekey, 24 : ApplicationData_ApplicationData.deleteaccount, 0 : ApplicationData_ApplicationData.notSet }; static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ApplicationData', package: const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), createEmptyInstance: create) - ..oo(0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]) + ..oo(0, [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24]) ..aOM(1, _omitFieldNames ? '' : 'textmessage', subBuilder: ApplicationData_TextMessage.create) ..aOM(2, _omitFieldNames ? '' : 'getuserbyusername', subBuilder: ApplicationData_GetUserByUsername.create) ..aOM(3, _omitFieldNames ? '' : 'getprekeysbyuserid', subBuilder: ApplicationData_GetPrekeysByUserId.create) - ..aOM(4, _omitFieldNames ? '' : 'getuploadtoken', subBuilder: ApplicationData_GetUploadToken.create) - ..aOM(5, _omitFieldNames ? '' : 'uploaddata', subBuilder: ApplicationData_UploadData.create) ..aOM(6, _omitFieldNames ? '' : 'getuserbyid', subBuilder: ApplicationData_GetUserById.create) - ..aOM(7, _omitFieldNames ? '' : 'downloaddata', subBuilder: ApplicationData_DownloadData.create) ..aOM(8, _omitFieldNames ? '' : 'updategooglefcmtoken', subBuilder: ApplicationData_UpdateGoogleFcmToken.create) ..aOM(9, _omitFieldNames ? '' : 'getlocation', subBuilder: ApplicationData_GetLocation.create) ..aOM(10, _omitFieldNames ? '' : 'getcurrentplaninfos', subBuilder: ApplicationData_GetCurrentPlanInfos.create) @@ -2066,7 +1769,6 @@ class ApplicationData extends $pb.GeneratedMessage { ..aOM(18, _omitFieldNames ? '' : 'removeadditionaluser', subBuilder: ApplicationData_RemoveAdditionalUser.create) ..aOM(19, _omitFieldNames ? '' : 'updateplanoptions', subBuilder: ApplicationData_UpdatePlanOptions.create) ..aOM(20, _omitFieldNames ? '' : 'downloaddone', subBuilder: ApplicationData_DownloadDone.create) - ..aOM(21, _omitFieldNames ? '' : 'uploaddone', subBuilder: ApplicationData_UploadDone.create) ..aOM(22, _omitFieldNames ? '' : 'getsignedprekeybyuserid', subBuilder: ApplicationData_GetSignedPreKeyByUserId.create) ..aOM(23, _omitFieldNames ? '' : 'updatesignedprekey', subBuilder: ApplicationData_UpdateSignedPreKey.create) ..aOM(24, _omitFieldNames ? '' : 'deleteaccount', subBuilder: ApplicationData_DeleteAccount.create) @@ -2130,236 +1832,192 @@ class ApplicationData extends $pb.GeneratedMessage { @$pb.TagNumber(3) ApplicationData_GetPrekeysByUserId ensureGetprekeysbyuserid() => $_ensure(2); - @$pb.TagNumber(4) - ApplicationData_GetUploadToken get getuploadtoken => $_getN(3); - @$pb.TagNumber(4) - set getuploadtoken(ApplicationData_GetUploadToken v) { setField(4, v); } - @$pb.TagNumber(4) - $core.bool hasGetuploadtoken() => $_has(3); - @$pb.TagNumber(4) - void clearGetuploadtoken() => clearField(4); - @$pb.TagNumber(4) - ApplicationData_GetUploadToken ensureGetuploadtoken() => $_ensure(3); - - @$pb.TagNumber(5) - ApplicationData_UploadData get uploaddata => $_getN(4); - @$pb.TagNumber(5) - set uploaddata(ApplicationData_UploadData v) { setField(5, v); } - @$pb.TagNumber(5) - $core.bool hasUploaddata() => $_has(4); - @$pb.TagNumber(5) - void clearUploaddata() => clearField(5); - @$pb.TagNumber(5) - ApplicationData_UploadData ensureUploaddata() => $_ensure(4); - @$pb.TagNumber(6) - ApplicationData_GetUserById get getuserbyid => $_getN(5); + ApplicationData_GetUserById get getuserbyid => $_getN(3); @$pb.TagNumber(6) set getuserbyid(ApplicationData_GetUserById v) { setField(6, v); } @$pb.TagNumber(6) - $core.bool hasGetuserbyid() => $_has(5); + $core.bool hasGetuserbyid() => $_has(3); @$pb.TagNumber(6) void clearGetuserbyid() => clearField(6); @$pb.TagNumber(6) - ApplicationData_GetUserById ensureGetuserbyid() => $_ensure(5); - - @$pb.TagNumber(7) - ApplicationData_DownloadData get downloaddata => $_getN(6); - @$pb.TagNumber(7) - set downloaddata(ApplicationData_DownloadData v) { setField(7, v); } - @$pb.TagNumber(7) - $core.bool hasDownloaddata() => $_has(6); - @$pb.TagNumber(7) - void clearDownloaddata() => clearField(7); - @$pb.TagNumber(7) - ApplicationData_DownloadData ensureDownloaddata() => $_ensure(6); + ApplicationData_GetUserById ensureGetuserbyid() => $_ensure(3); @$pb.TagNumber(8) - ApplicationData_UpdateGoogleFcmToken get updategooglefcmtoken => $_getN(7); + ApplicationData_UpdateGoogleFcmToken get updategooglefcmtoken => $_getN(4); @$pb.TagNumber(8) set updategooglefcmtoken(ApplicationData_UpdateGoogleFcmToken v) { setField(8, v); } @$pb.TagNumber(8) - $core.bool hasUpdategooglefcmtoken() => $_has(7); + $core.bool hasUpdategooglefcmtoken() => $_has(4); @$pb.TagNumber(8) void clearUpdategooglefcmtoken() => clearField(8); @$pb.TagNumber(8) - ApplicationData_UpdateGoogleFcmToken ensureUpdategooglefcmtoken() => $_ensure(7); + ApplicationData_UpdateGoogleFcmToken ensureUpdategooglefcmtoken() => $_ensure(4); @$pb.TagNumber(9) - ApplicationData_GetLocation get getlocation => $_getN(8); + ApplicationData_GetLocation get getlocation => $_getN(5); @$pb.TagNumber(9) set getlocation(ApplicationData_GetLocation v) { setField(9, v); } @$pb.TagNumber(9) - $core.bool hasGetlocation() => $_has(8); + $core.bool hasGetlocation() => $_has(5); @$pb.TagNumber(9) void clearGetlocation() => clearField(9); @$pb.TagNumber(9) - ApplicationData_GetLocation ensureGetlocation() => $_ensure(8); + ApplicationData_GetLocation ensureGetlocation() => $_ensure(5); @$pb.TagNumber(10) - ApplicationData_GetCurrentPlanInfos get getcurrentplaninfos => $_getN(9); + ApplicationData_GetCurrentPlanInfos get getcurrentplaninfos => $_getN(6); @$pb.TagNumber(10) set getcurrentplaninfos(ApplicationData_GetCurrentPlanInfos v) { setField(10, v); } @$pb.TagNumber(10) - $core.bool hasGetcurrentplaninfos() => $_has(9); + $core.bool hasGetcurrentplaninfos() => $_has(6); @$pb.TagNumber(10) void clearGetcurrentplaninfos() => clearField(10); @$pb.TagNumber(10) - ApplicationData_GetCurrentPlanInfos ensureGetcurrentplaninfos() => $_ensure(9); + ApplicationData_GetCurrentPlanInfos ensureGetcurrentplaninfos() => $_ensure(6); @$pb.TagNumber(11) - ApplicationData_RedeemVoucher get redeemvoucher => $_getN(10); + ApplicationData_RedeemVoucher get redeemvoucher => $_getN(7); @$pb.TagNumber(11) set redeemvoucher(ApplicationData_RedeemVoucher v) { setField(11, v); } @$pb.TagNumber(11) - $core.bool hasRedeemvoucher() => $_has(10); + $core.bool hasRedeemvoucher() => $_has(7); @$pb.TagNumber(11) void clearRedeemvoucher() => clearField(11); @$pb.TagNumber(11) - ApplicationData_RedeemVoucher ensureRedeemvoucher() => $_ensure(10); + ApplicationData_RedeemVoucher ensureRedeemvoucher() => $_ensure(7); @$pb.TagNumber(12) - ApplicationData_GetAvailablePlans get getavailableplans => $_getN(11); + ApplicationData_GetAvailablePlans get getavailableplans => $_getN(8); @$pb.TagNumber(12) set getavailableplans(ApplicationData_GetAvailablePlans v) { setField(12, v); } @$pb.TagNumber(12) - $core.bool hasGetavailableplans() => $_has(11); + $core.bool hasGetavailableplans() => $_has(8); @$pb.TagNumber(12) void clearGetavailableplans() => clearField(12); @$pb.TagNumber(12) - ApplicationData_GetAvailablePlans ensureGetavailableplans() => $_ensure(11); + ApplicationData_GetAvailablePlans ensureGetavailableplans() => $_ensure(8); @$pb.TagNumber(13) - ApplicationData_CreateVoucher get createvoucher => $_getN(12); + ApplicationData_CreateVoucher get createvoucher => $_getN(9); @$pb.TagNumber(13) set createvoucher(ApplicationData_CreateVoucher v) { setField(13, v); } @$pb.TagNumber(13) - $core.bool hasCreatevoucher() => $_has(12); + $core.bool hasCreatevoucher() => $_has(9); @$pb.TagNumber(13) void clearCreatevoucher() => clearField(13); @$pb.TagNumber(13) - ApplicationData_CreateVoucher ensureCreatevoucher() => $_ensure(12); + ApplicationData_CreateVoucher ensureCreatevoucher() => $_ensure(9); @$pb.TagNumber(14) - ApplicationData_GetVouchers get getvouchers => $_getN(13); + ApplicationData_GetVouchers get getvouchers => $_getN(10); @$pb.TagNumber(14) set getvouchers(ApplicationData_GetVouchers v) { setField(14, v); } @$pb.TagNumber(14) - $core.bool hasGetvouchers() => $_has(13); + $core.bool hasGetvouchers() => $_has(10); @$pb.TagNumber(14) void clearGetvouchers() => clearField(14); @$pb.TagNumber(14) - ApplicationData_GetVouchers ensureGetvouchers() => $_ensure(13); + ApplicationData_GetVouchers ensureGetvouchers() => $_ensure(10); @$pb.TagNumber(15) - ApplicationData_SwitchToPayedPlan get switchtopayedplan => $_getN(14); + ApplicationData_SwitchToPayedPlan get switchtopayedplan => $_getN(11); @$pb.TagNumber(15) set switchtopayedplan(ApplicationData_SwitchToPayedPlan v) { setField(15, v); } @$pb.TagNumber(15) - $core.bool hasSwitchtopayedplan() => $_has(14); + $core.bool hasSwitchtopayedplan() => $_has(11); @$pb.TagNumber(15) void clearSwitchtopayedplan() => clearField(15); @$pb.TagNumber(15) - ApplicationData_SwitchToPayedPlan ensureSwitchtopayedplan() => $_ensure(14); + ApplicationData_SwitchToPayedPlan ensureSwitchtopayedplan() => $_ensure(11); @$pb.TagNumber(16) - ApplicationData_GetAddAccountsInvites get getaddaccountsinvites => $_getN(15); + ApplicationData_GetAddAccountsInvites get getaddaccountsinvites => $_getN(12); @$pb.TagNumber(16) set getaddaccountsinvites(ApplicationData_GetAddAccountsInvites v) { setField(16, v); } @$pb.TagNumber(16) - $core.bool hasGetaddaccountsinvites() => $_has(15); + $core.bool hasGetaddaccountsinvites() => $_has(12); @$pb.TagNumber(16) void clearGetaddaccountsinvites() => clearField(16); @$pb.TagNumber(16) - ApplicationData_GetAddAccountsInvites ensureGetaddaccountsinvites() => $_ensure(15); + ApplicationData_GetAddAccountsInvites ensureGetaddaccountsinvites() => $_ensure(12); @$pb.TagNumber(17) - ApplicationData_RedeemAdditionalCode get redeemadditionalcode => $_getN(16); + ApplicationData_RedeemAdditionalCode get redeemadditionalcode => $_getN(13); @$pb.TagNumber(17) set redeemadditionalcode(ApplicationData_RedeemAdditionalCode v) { setField(17, v); } @$pb.TagNumber(17) - $core.bool hasRedeemadditionalcode() => $_has(16); + $core.bool hasRedeemadditionalcode() => $_has(13); @$pb.TagNumber(17) void clearRedeemadditionalcode() => clearField(17); @$pb.TagNumber(17) - ApplicationData_RedeemAdditionalCode ensureRedeemadditionalcode() => $_ensure(16); + ApplicationData_RedeemAdditionalCode ensureRedeemadditionalcode() => $_ensure(13); @$pb.TagNumber(18) - ApplicationData_RemoveAdditionalUser get removeadditionaluser => $_getN(17); + ApplicationData_RemoveAdditionalUser get removeadditionaluser => $_getN(14); @$pb.TagNumber(18) set removeadditionaluser(ApplicationData_RemoveAdditionalUser v) { setField(18, v); } @$pb.TagNumber(18) - $core.bool hasRemoveadditionaluser() => $_has(17); + $core.bool hasRemoveadditionaluser() => $_has(14); @$pb.TagNumber(18) void clearRemoveadditionaluser() => clearField(18); @$pb.TagNumber(18) - ApplicationData_RemoveAdditionalUser ensureRemoveadditionaluser() => $_ensure(17); + ApplicationData_RemoveAdditionalUser ensureRemoveadditionaluser() => $_ensure(14); @$pb.TagNumber(19) - ApplicationData_UpdatePlanOptions get updateplanoptions => $_getN(18); + ApplicationData_UpdatePlanOptions get updateplanoptions => $_getN(15); @$pb.TagNumber(19) set updateplanoptions(ApplicationData_UpdatePlanOptions v) { setField(19, v); } @$pb.TagNumber(19) - $core.bool hasUpdateplanoptions() => $_has(18); + $core.bool hasUpdateplanoptions() => $_has(15); @$pb.TagNumber(19) void clearUpdateplanoptions() => clearField(19); @$pb.TagNumber(19) - ApplicationData_UpdatePlanOptions ensureUpdateplanoptions() => $_ensure(18); + ApplicationData_UpdatePlanOptions ensureUpdateplanoptions() => $_ensure(15); @$pb.TagNumber(20) - ApplicationData_DownloadDone get downloaddone => $_getN(19); + ApplicationData_DownloadDone get downloaddone => $_getN(16); @$pb.TagNumber(20) set downloaddone(ApplicationData_DownloadDone v) { setField(20, v); } @$pb.TagNumber(20) - $core.bool hasDownloaddone() => $_has(19); + $core.bool hasDownloaddone() => $_has(16); @$pb.TagNumber(20) void clearDownloaddone() => clearField(20); @$pb.TagNumber(20) - ApplicationData_DownloadDone ensureDownloaddone() => $_ensure(19); - - @$pb.TagNumber(21) - ApplicationData_UploadDone get uploaddone => $_getN(20); - @$pb.TagNumber(21) - set uploaddone(ApplicationData_UploadDone v) { setField(21, v); } - @$pb.TagNumber(21) - $core.bool hasUploaddone() => $_has(20); - @$pb.TagNumber(21) - void clearUploaddone() => clearField(21); - @$pb.TagNumber(21) - ApplicationData_UploadDone ensureUploaddone() => $_ensure(20); + ApplicationData_DownloadDone ensureDownloaddone() => $_ensure(16); @$pb.TagNumber(22) - ApplicationData_GetSignedPreKeyByUserId get getsignedprekeybyuserid => $_getN(21); + ApplicationData_GetSignedPreKeyByUserId get getsignedprekeybyuserid => $_getN(17); @$pb.TagNumber(22) set getsignedprekeybyuserid(ApplicationData_GetSignedPreKeyByUserId v) { setField(22, v); } @$pb.TagNumber(22) - $core.bool hasGetsignedprekeybyuserid() => $_has(21); + $core.bool hasGetsignedprekeybyuserid() => $_has(17); @$pb.TagNumber(22) void clearGetsignedprekeybyuserid() => clearField(22); @$pb.TagNumber(22) - ApplicationData_GetSignedPreKeyByUserId ensureGetsignedprekeybyuserid() => $_ensure(21); + ApplicationData_GetSignedPreKeyByUserId ensureGetsignedprekeybyuserid() => $_ensure(17); @$pb.TagNumber(23) - ApplicationData_UpdateSignedPreKey get updatesignedprekey => $_getN(22); + ApplicationData_UpdateSignedPreKey get updatesignedprekey => $_getN(18); @$pb.TagNumber(23) set updatesignedprekey(ApplicationData_UpdateSignedPreKey v) { setField(23, v); } @$pb.TagNumber(23) - $core.bool hasUpdatesignedprekey() => $_has(22); + $core.bool hasUpdatesignedprekey() => $_has(18); @$pb.TagNumber(23) void clearUpdatesignedprekey() => clearField(23); @$pb.TagNumber(23) - ApplicationData_UpdateSignedPreKey ensureUpdatesignedprekey() => $_ensure(22); + ApplicationData_UpdateSignedPreKey ensureUpdatesignedprekey() => $_ensure(18); @$pb.TagNumber(24) - ApplicationData_DeleteAccount get deleteaccount => $_getN(23); + ApplicationData_DeleteAccount get deleteaccount => $_getN(19); @$pb.TagNumber(24) set deleteaccount(ApplicationData_DeleteAccount v) { setField(24, v); } @$pb.TagNumber(24) - $core.bool hasDeleteaccount() => $_has(23); + $core.bool hasDeleteaccount() => $_has(19); @$pb.TagNumber(24) void clearDeleteaccount() => clearField(24); @$pb.TagNumber(24) - ApplicationData_DeleteAccount ensureDeleteaccount() => $_ensure(23); + ApplicationData_DeleteAccount ensureDeleteaccount() => $_ensure(19); } class Response_PreKey extends $pb.GeneratedMessage { diff --git a/lib/src/model/protobuf/api/client_to_server.pbenum.dart b/lib/src/model/protobuf/api/websocket/client_to_server.pbenum.dart similarity index 87% rename from lib/src/model/protobuf/api/client_to_server.pbenum.dart rename to lib/src/model/protobuf/api/websocket/client_to_server.pbenum.dart index 2f4ab00..b555299 100644 --- a/lib/src/model/protobuf/api/client_to_server.pbenum.dart +++ b/lib/src/model/protobuf/api/websocket/client_to_server.pbenum.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/client_to_server.proto +// source: api/websocket/client_to_server.proto // // @dart = 2.12 diff --git a/lib/src/model/protobuf/api/client_to_server.pbjson.dart b/lib/src/model/protobuf/api/websocket/client_to_server.pbjson.dart similarity index 69% rename from lib/src/model/protobuf/api/client_to_server.pbjson.dart rename to lib/src/model/protobuf/api/websocket/client_to_server.pbjson.dart index 851e03c..89eee11 100644 --- a/lib/src/model/protobuf/api/client_to_server.pbjson.dart +++ b/lib/src/model/protobuf/api/websocket/client_to_server.pbjson.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/client_to_server.proto +// source: api/websocket/client_to_server.proto // // @dart = 2.12 @@ -139,10 +139,7 @@ const ApplicationData$json = { {'1': 'textmessage', '3': 1, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.TextMessage', '9': 0, '10': 'textmessage'}, {'1': 'getuserbyusername', '3': 2, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetUserByUsername', '9': 0, '10': 'getuserbyusername'}, {'1': 'getprekeysbyuserid', '3': 3, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetPrekeysByUserId', '9': 0, '10': 'getprekeysbyuserid'}, - {'1': 'getuploadtoken', '3': 4, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetUploadToken', '9': 0, '10': 'getuploadtoken'}, - {'1': 'uploaddata', '3': 5, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UploadData', '9': 0, '10': 'uploaddata'}, {'1': 'getuserbyid', '3': 6, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetUserById', '9': 0, '10': 'getuserbyid'}, - {'1': 'downloaddata', '3': 7, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.DownloadData', '9': 0, '10': 'downloaddata'}, {'1': 'updategooglefcmtoken', '3': 8, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UpdateGoogleFcmToken', '9': 0, '10': 'updategooglefcmtoken'}, {'1': 'getlocation', '3': 9, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetLocation', '9': 0, '10': 'getlocation'}, {'1': 'getcurrentplaninfos', '3': 10, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetCurrentPlanInfos', '9': 0, '10': 'getcurrentplaninfos'}, @@ -156,12 +153,11 @@ const ApplicationData$json = { {'1': 'removeadditionaluser', '3': 18, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.RemoveAdditionalUser', '9': 0, '10': 'removeadditionaluser'}, {'1': 'updateplanoptions', '3': 19, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UpdatePlanOptions', '9': 0, '10': 'updateplanoptions'}, {'1': 'downloaddone', '3': 20, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.DownloadDone', '9': 0, '10': 'downloaddone'}, - {'1': 'uploaddone', '3': 21, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UploadDone', '9': 0, '10': 'uploaddone'}, {'1': 'getsignedprekeybyuserid', '3': 22, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetSignedPreKeyByUserId', '9': 0, '10': 'getsignedprekeybyuserid'}, {'1': 'updatesignedprekey', '3': 23, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UpdateSignedPreKey', '9': 0, '10': 'updatesignedprekey'}, {'1': 'deleteaccount', '3': 24, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.DeleteAccount', '9': 0, '10': 'deleteaccount'}, ], - '3': [ApplicationData_TextMessage$json, ApplicationData_GetUserByUsername$json, ApplicationData_UpdateGoogleFcmToken$json, ApplicationData_GetUserById$json, ApplicationData_RedeemVoucher$json, ApplicationData_SwitchToPayedPlan$json, ApplicationData_UpdatePlanOptions$json, ApplicationData_CreateVoucher$json, ApplicationData_GetLocation$json, ApplicationData_GetVouchers$json, ApplicationData_GetAvailablePlans$json, ApplicationData_GetAddAccountsInvites$json, ApplicationData_GetCurrentPlanInfos$json, ApplicationData_RedeemAdditionalCode$json, ApplicationData_RemoveAdditionalUser$json, ApplicationData_GetPrekeysByUserId$json, ApplicationData_GetSignedPreKeyByUserId$json, ApplicationData_UpdateSignedPreKey$json, ApplicationData_GetUploadToken$json, ApplicationData_UploadData$json, ApplicationData_UploadDone$json, ApplicationData_DownloadData$json, ApplicationData_DownloadDone$json, ApplicationData_DeleteAccount$json], + '3': [ApplicationData_TextMessage$json, ApplicationData_GetUserByUsername$json, ApplicationData_UpdateGoogleFcmToken$json, ApplicationData_GetUserById$json, ApplicationData_RedeemVoucher$json, ApplicationData_SwitchToPayedPlan$json, ApplicationData_UpdatePlanOptions$json, ApplicationData_CreateVoucher$json, ApplicationData_GetLocation$json, ApplicationData_GetVouchers$json, ApplicationData_GetAvailablePlans$json, ApplicationData_GetAddAccountsInvites$json, ApplicationData_GetCurrentPlanInfos$json, ApplicationData_RedeemAdditionalCode$json, ApplicationData_RemoveAdditionalUser$json, ApplicationData_GetPrekeysByUserId$json, ApplicationData_GetSignedPreKeyByUserId$json, ApplicationData_UpdateSignedPreKey$json, ApplicationData_DownloadDone$json, ApplicationData_DeleteAccount$json], '8': [ {'1': 'ApplicationData'}, ], @@ -305,46 +301,6 @@ const ApplicationData_UpdateSignedPreKey$json = { ], }; -@$core.Deprecated('Use applicationDataDescriptor instead') -const ApplicationData_GetUploadToken$json = { - '1': 'GetUploadToken', - '2': [ - {'1': 'recipients_count', '3': 1, '4': 1, '5': 13, '10': 'recipientsCount'}, - ], -}; - -@$core.Deprecated('Use applicationDataDescriptor instead') -const ApplicationData_UploadData$json = { - '1': 'UploadData', - '2': [ - {'1': 'upload_token', '3': 1, '4': 1, '5': 12, '10': 'uploadToken'}, - {'1': 'offset', '3': 2, '4': 1, '5': 13, '10': 'offset'}, - {'1': 'data', '3': 3, '4': 1, '5': 12, '10': 'data'}, - {'1': 'checksum', '3': 4, '4': 1, '5': 12, '9': 0, '10': 'checksum', '17': true}, - ], - '8': [ - {'1': '_checksum'}, - ], -}; - -@$core.Deprecated('Use applicationDataDescriptor instead') -const ApplicationData_UploadDone$json = { - '1': 'UploadDone', - '2': [ - {'1': 'upload_token', '3': 1, '4': 1, '5': 12, '10': 'uploadToken'}, - {'1': 'recipients_count', '3': 2, '4': 1, '5': 13, '10': 'recipientsCount'}, - ], -}; - -@$core.Deprecated('Use applicationDataDescriptor instead') -const ApplicationData_DownloadData$json = { - '1': 'DownloadData', - '2': [ - {'1': 'download_token', '3': 1, '4': 1, '5': 12, '10': 'downloadToken'}, - {'1': 'offset', '3': 2, '4': 1, '5': 13, '10': 'offset'}, - ], -}; - @$core.Deprecated('Use applicationDataDescriptor instead') const ApplicationData_DownloadDone$json = { '1': 'DownloadDone', @@ -365,69 +321,56 @@ final $typed_data.Uint8List applicationDataDescriptor = $convert.base64Decode( 'Ynl1c2VybmFtZRgCIAEoCzIzLmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldF' 'VzZXJCeVVzZXJuYW1lSABSEWdldHVzZXJieXVzZXJuYW1lEmYKEmdldHByZWtleXNieXVzZXJp' 'ZBgDIAEoCzI0LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldFByZWtleXNCeV' - 'VzZXJJZEgAUhJnZXRwcmVrZXlzYnl1c2VyaWQSWgoOZ2V0dXBsb2FkdG9rZW4YBCABKAsyMC5j' - 'bGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5HZXRVcGxvYWRUb2tlbkgAUg5nZXR1cG' - 'xvYWR0b2tlbhJOCgp1cGxvYWRkYXRhGAUgASgLMiwuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNh' - 'dGlvbkRhdGEuVXBsb2FkRGF0YUgAUgp1cGxvYWRkYXRhElEKC2dldHVzZXJieWlkGAYgASgLMi' - '0uY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuR2V0VXNlckJ5SWRIAFILZ2V0dXNl' - 'cmJ5aWQSVAoMZG93bmxvYWRkYXRhGAcgASgLMi4uY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdG' - 'lvbkRhdGEuRG93bmxvYWREYXRhSABSDGRvd25sb2FkZGF0YRJsChR1cGRhdGVnb29nbGVmY210' - 'b2tlbhgIIAEoCzI2LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLlVwZGF0ZUdvb2' - 'dsZUZjbVRva2VuSABSFHVwZGF0ZWdvb2dsZWZjbXRva2VuElEKC2dldGxvY2F0aW9uGAkgASgL' - 'Mi0uY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuR2V0TG9jYXRpb25IAFILZ2V0bG' - '9jYXRpb24SaQoTZ2V0Y3VycmVudHBsYW5pbmZvcxgKIAEoCzI1LmNsaWVudF90b19zZXJ2ZXIu' - 'QXBwbGljYXRpb25EYXRhLkdldEN1cnJlbnRQbGFuSW5mb3NIAFITZ2V0Y3VycmVudHBsYW5pbm' - 'ZvcxJXCg1yZWRlZW12b3VjaGVyGAsgASgLMi8uY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlv' - 'bkRhdGEuUmVkZWVtVm91Y2hlckgAUg1yZWRlZW12b3VjaGVyEmMKEWdldGF2YWlsYWJsZXBsYW' - '5zGAwgASgLMjMuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuR2V0QXZhaWxhYmxl' - 'UGxhbnNIAFIRZ2V0YXZhaWxhYmxlcGxhbnMSVwoNY3JlYXRldm91Y2hlchgNIAEoCzIvLmNsaW' - 'VudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkNyZWF0ZVZvdWNoZXJIAFINY3JlYXRldm91' - 'Y2hlchJRCgtnZXR2b3VjaGVycxgOIAEoCzItLmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb2' - '5EYXRhLkdldFZvdWNoZXJzSABSC2dldHZvdWNoZXJzEmMKEVN3aXRjaHRvcGF5ZWRwbGFuGA8g' - 'ASgLMjMuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuU3dpdGNoVG9QYXllZFBsYW' - '5IAFIRU3dpdGNodG9wYXllZHBsYW4SbwoVZ2V0YWRkYWNjb3VudHNpbnZpdGVzGBAgASgLMjcu' - 'Y2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuR2V0QWRkQWNjb3VudHNJbnZpdGVzSA' - 'BSFWdldGFkZGFjY291bnRzaW52aXRlcxJsChRyZWRlZW1hZGRpdGlvbmFsY29kZRgRIAEoCzI2' - 'LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLlJlZGVlbUFkZGl0aW9uYWxDb2RlSA' - 'BSFHJlZGVlbWFkZGl0aW9uYWxjb2RlEmwKFHJlbW92ZWFkZGl0aW9uYWx1c2VyGBIgASgLMjYu' - 'Y2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuUmVtb3ZlQWRkaXRpb25hbFVzZXJIAF' - 'IUcmVtb3ZlYWRkaXRpb25hbHVzZXISYwoRdXBkYXRlcGxhbm9wdGlvbnMYEyABKAsyMy5jbGll' - 'bnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5VcGRhdGVQbGFuT3B0aW9uc0gAUhF1cGRhdG' - 'VwbGFub3B0aW9ucxJUCgxkb3dubG9hZGRvbmUYFCABKAsyLi5jbGllbnRfdG9fc2VydmVyLkFw' - 'cGxpY2F0aW9uRGF0YS5Eb3dubG9hZERvbmVIAFIMZG93bmxvYWRkb25lEk4KCnVwbG9hZGRvbm' - 'UYFSABKAsyLC5jbGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5VcGxvYWREb25lSABS' - 'CnVwbG9hZGRvbmUSdQoXZ2V0c2lnbmVkcHJla2V5Ynl1c2VyaWQYFiABKAsyOS5jbGllbnRfdG' - '9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5HZXRTaWduZWRQcmVLZXlCeVVzZXJJZEgAUhdnZXRz' - 'aWduZWRwcmVrZXlieXVzZXJpZBJmChJ1cGRhdGVzaWduZWRwcmVrZXkYFyABKAsyNC5jbGllbn' - 'RfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5VcGRhdGVTaWduZWRQcmVLZXlIAFISdXBkYXRl' - 'c2lnbmVkcHJla2V5ElcKDWRlbGV0ZWFjY291bnQYGCABKAsyLy5jbGllbnRfdG9fc2VydmVyLk' - 'FwcGxpY2F0aW9uRGF0YS5EZWxldGVBY2NvdW50SABSDWRlbGV0ZWFjY291bnQaagoLVGV4dE1l' - 'c3NhZ2USFwoHdXNlcl9pZBgBIAEoA1IGdXNlcklkEhIKBGJvZHkYAyABKAxSBGJvZHkSIAoJcH' - 'VzaF9kYXRhGAQgASgMSABSCHB1c2hEYXRhiAEBQgwKCl9wdXNoX2RhdGEaLwoRR2V0VXNlckJ5' - 'VXNlcm5hbWUSGgoIdXNlcm5hbWUYASABKAlSCHVzZXJuYW1lGjUKFFVwZGF0ZUdvb2dsZUZjbV' - 'Rva2VuEh0KCmdvb2dsZV9mY20YASABKAlSCWdvb2dsZUZjbRomCgtHZXRVc2VyQnlJZBIXCgd1' - 'c2VyX2lkGAEgASgDUgZ1c2VySWQaKQoNUmVkZWVtVm91Y2hlchIYCgd2b3VjaGVyGAEgASgJUg' - 'd2b3VjaGVyGnAKEVN3aXRjaFRvUGF5ZWRQbGFuEhcKB3BsYW5faWQYASABKAlSBnBsYW5JZBIf' - 'CgtwYXlfbW9udGhseRgCIAEoCFIKcGF5TW9udGhseRIhCgxhdXRvX3JlbmV3YWwYAyABKAhSC2' - 'F1dG9SZW5ld2FsGjYKEVVwZGF0ZVBsYW5PcHRpb25zEiEKDGF1dG9fcmVuZXdhbBgBIAEoCFIL' - 'YXV0b1JlbmV3YWwaMAoNQ3JlYXRlVm91Y2hlchIfCgt2YWx1ZV9jZW50cxgBIAEoDVIKdmFsdW' - 'VDZW50cxoNCgtHZXRMb2NhdGlvbhoNCgtHZXRWb3VjaGVycxoTChFHZXRBdmFpbGFibGVQbGFu' - 'cxoXChVHZXRBZGRBY2NvdW50c0ludml0ZXMaFQoTR2V0Q3VycmVudFBsYW5JbmZvcxo3ChRSZW' - 'RlZW1BZGRpdGlvbmFsQ29kZRIfCgtpbnZpdGVfY29kZRgCIAEoCVIKaW52aXRlQ29kZRovChRS' - 'ZW1vdmVBZGRpdGlvbmFsVXNlchIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQaLQoSR2V0UHJla2' - 'V5c0J5VXNlcklkEhcKB3VzZXJfaWQYASABKANSBnVzZXJJZBoyChdHZXRTaWduZWRQcmVLZXlC' - 'eVVzZXJJZBIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQamwEKElVwZGF0ZVNpZ25lZFByZUtleR' - 'IoChBzaWduZWRfcHJla2V5X2lkGAEgASgDUg5zaWduZWRQcmVrZXlJZBIjCg1zaWduZWRfcHJl' - 'a2V5GAIgASgMUgxzaWduZWRQcmVrZXkSNgoXc2lnbmVkX3ByZWtleV9zaWduYXR1cmUYAyABKA' - 'xSFXNpZ25lZFByZWtleVNpZ25hdHVyZRo7Cg5HZXRVcGxvYWRUb2tlbhIpChByZWNpcGllbnRz' - 'X2NvdW50GAEgASgNUg9yZWNpcGllbnRzQ291bnQaiQEKClVwbG9hZERhdGESIQoMdXBsb2FkX3' - 'Rva2VuGAEgASgMUgt1cGxvYWRUb2tlbhIWCgZvZmZzZXQYAiABKA1SBm9mZnNldBISCgRkYXRh' - 'GAMgASgMUgRkYXRhEh8KCGNoZWNrc3VtGAQgASgMSABSCGNoZWNrc3VtiAEBQgsKCV9jaGVja3' - 'N1bRpaCgpVcGxvYWREb25lEiEKDHVwbG9hZF90b2tlbhgBIAEoDFILdXBsb2FkVG9rZW4SKQoQ' - 'cmVjaXBpZW50c19jb3VudBgCIAEoDVIPcmVjaXBpZW50c0NvdW50Gk0KDERvd25sb2FkRGF0YR' - 'IlCg5kb3dubG9hZF90b2tlbhgBIAEoDFINZG93bmxvYWRUb2tlbhIWCgZvZmZzZXQYAiABKA1S' - 'Bm9mZnNldBo1CgxEb3dubG9hZERvbmUSJQoOZG93bmxvYWRfdG9rZW4YASABKAxSDWRvd25sb2' - 'FkVG9rZW4aDwoNRGVsZXRlQWNjb3VudEIRCg9BcHBsaWNhdGlvbkRhdGE='); + 'VzZXJJZEgAUhJnZXRwcmVrZXlzYnl1c2VyaWQSUQoLZ2V0dXNlcmJ5aWQYBiABKAsyLS5jbGll' + 'bnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5HZXRVc2VyQnlJZEgAUgtnZXR1c2VyYnlpZB' + 'JsChR1cGRhdGVnb29nbGVmY210b2tlbhgIIAEoCzI2LmNsaWVudF90b19zZXJ2ZXIuQXBwbGlj' + 'YXRpb25EYXRhLlVwZGF0ZUdvb2dsZUZjbVRva2VuSABSFHVwZGF0ZWdvb2dsZWZjbXRva2VuEl' + 'EKC2dldGxvY2F0aW9uGAkgASgLMi0uY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEu' + 'R2V0TG9jYXRpb25IAFILZ2V0bG9jYXRpb24SaQoTZ2V0Y3VycmVudHBsYW5pbmZvcxgKIAEoCz' + 'I1LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldEN1cnJlbnRQbGFuSW5mb3NI' + 'AFITZ2V0Y3VycmVudHBsYW5pbmZvcxJXCg1yZWRlZW12b3VjaGVyGAsgASgLMi8uY2xpZW50X3' + 'RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuUmVkZWVtVm91Y2hlckgAUg1yZWRlZW12b3VjaGVy' + 'EmMKEWdldGF2YWlsYWJsZXBsYW5zGAwgASgLMjMuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdG' + 'lvbkRhdGEuR2V0QXZhaWxhYmxlUGxhbnNIAFIRZ2V0YXZhaWxhYmxlcGxhbnMSVwoNY3JlYXRl' + 'dm91Y2hlchgNIAEoCzIvLmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkNyZWF0ZV' + 'ZvdWNoZXJIAFINY3JlYXRldm91Y2hlchJRCgtnZXR2b3VjaGVycxgOIAEoCzItLmNsaWVudF90' + 'b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldFZvdWNoZXJzSABSC2dldHZvdWNoZXJzEmMKEV' + 'N3aXRjaHRvcGF5ZWRwbGFuGA8gASgLMjMuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRh' + 'dGEuU3dpdGNoVG9QYXllZFBsYW5IAFIRU3dpdGNodG9wYXllZHBsYW4SbwoVZ2V0YWRkYWNjb3' + 'VudHNpbnZpdGVzGBAgASgLMjcuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuR2V0' + 'QWRkQWNjb3VudHNJbnZpdGVzSABSFWdldGFkZGFjY291bnRzaW52aXRlcxJsChRyZWRlZW1hZG' + 'RpdGlvbmFsY29kZRgRIAEoCzI2LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLlJl' + 'ZGVlbUFkZGl0aW9uYWxDb2RlSABSFHJlZGVlbWFkZGl0aW9uYWxjb2RlEmwKFHJlbW92ZWFkZG' + 'l0aW9uYWx1c2VyGBIgASgLMjYuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuUmVt' + 'b3ZlQWRkaXRpb25hbFVzZXJIAFIUcmVtb3ZlYWRkaXRpb25hbHVzZXISYwoRdXBkYXRlcGxhbm' + '9wdGlvbnMYEyABKAsyMy5jbGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5VcGRhdGVQ' + 'bGFuT3B0aW9uc0gAUhF1cGRhdGVwbGFub3B0aW9ucxJUCgxkb3dubG9hZGRvbmUYFCABKAsyLi' + '5jbGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5Eb3dubG9hZERvbmVIAFIMZG93bmxv' + 'YWRkb25lEnUKF2dldHNpZ25lZHByZWtleWJ5dXNlcmlkGBYgASgLMjkuY2xpZW50X3RvX3Nlcn' + 'Zlci5BcHBsaWNhdGlvbkRhdGEuR2V0U2lnbmVkUHJlS2V5QnlVc2VySWRIAFIXZ2V0c2lnbmVk' + 'cHJla2V5Ynl1c2VyaWQSZgoSdXBkYXRlc2lnbmVkcHJla2V5GBcgASgLMjQuY2xpZW50X3RvX3' + 'NlcnZlci5BcHBsaWNhdGlvbkRhdGEuVXBkYXRlU2lnbmVkUHJlS2V5SABSEnVwZGF0ZXNpZ25l' + 'ZHByZWtleRJXCg1kZWxldGVhY2NvdW50GBggASgLMi8uY2xpZW50X3RvX3NlcnZlci5BcHBsaW' + 'NhdGlvbkRhdGEuRGVsZXRlQWNjb3VudEgAUg1kZWxldGVhY2NvdW50GmoKC1RleHRNZXNzYWdl' + 'EhcKB3VzZXJfaWQYASABKANSBnVzZXJJZBISCgRib2R5GAMgASgMUgRib2R5EiAKCXB1c2hfZG' + 'F0YRgEIAEoDEgAUghwdXNoRGF0YYgBAUIMCgpfcHVzaF9kYXRhGi8KEUdldFVzZXJCeVVzZXJu' + 'YW1lEhoKCHVzZXJuYW1lGAEgASgJUgh1c2VybmFtZRo1ChRVcGRhdGVHb29nbGVGY21Ub2tlbh' + 'IdCgpnb29nbGVfZmNtGAEgASgJUglnb29nbGVGY20aJgoLR2V0VXNlckJ5SWQSFwoHdXNlcl9p' + 'ZBgBIAEoA1IGdXNlcklkGikKDVJlZGVlbVZvdWNoZXISGAoHdm91Y2hlchgBIAEoCVIHdm91Y2' + 'hlchpwChFTd2l0Y2hUb1BheWVkUGxhbhIXCgdwbGFuX2lkGAEgASgJUgZwbGFuSWQSHwoLcGF5' + 'X21vbnRobHkYAiABKAhSCnBheU1vbnRobHkSIQoMYXV0b19yZW5ld2FsGAMgASgIUgthdXRvUm' + 'VuZXdhbBo2ChFVcGRhdGVQbGFuT3B0aW9ucxIhCgxhdXRvX3JlbmV3YWwYASABKAhSC2F1dG9S' + 'ZW5ld2FsGjAKDUNyZWF0ZVZvdWNoZXISHwoLdmFsdWVfY2VudHMYASABKA1SCnZhbHVlQ2VudH' + 'MaDQoLR2V0TG9jYXRpb24aDQoLR2V0Vm91Y2hlcnMaEwoRR2V0QXZhaWxhYmxlUGxhbnMaFwoV' + 'R2V0QWRkQWNjb3VudHNJbnZpdGVzGhUKE0dldEN1cnJlbnRQbGFuSW5mb3MaNwoUUmVkZWVtQW' + 'RkaXRpb25hbENvZGUSHwoLaW52aXRlX2NvZGUYAiABKAlSCmludml0ZUNvZGUaLwoUUmVtb3Zl' + 'QWRkaXRpb25hbFVzZXISFwoHdXNlcl9pZBgBIAEoA1IGdXNlcklkGi0KEkdldFByZWtleXNCeV' + 'VzZXJJZBIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQaMgoXR2V0U2lnbmVkUHJlS2V5QnlVc2Vy' + 'SWQSFwoHdXNlcl9pZBgBIAEoA1IGdXNlcklkGpsBChJVcGRhdGVTaWduZWRQcmVLZXkSKAoQc2' + 'lnbmVkX3ByZWtleV9pZBgBIAEoA1IOc2lnbmVkUHJla2V5SWQSIwoNc2lnbmVkX3ByZWtleRgC' + 'IAEoDFIMc2lnbmVkUHJla2V5EjYKF3NpZ25lZF9wcmVrZXlfc2lnbmF0dXJlGAMgASgMUhVzaW' + 'duZWRQcmVrZXlTaWduYXR1cmUaNQoMRG93bmxvYWREb25lEiUKDmRvd25sb2FkX3Rva2VuGAEg' + 'ASgMUg1kb3dubG9hZFRva2VuGg8KDURlbGV0ZUFjY291bnRCEQoPQXBwbGljYXRpb25EYXRh'); @$core.Deprecated('Use responseDescriptor instead') const Response$json = { diff --git a/lib/src/model/protobuf/api/client_to_server.pbserver.dart b/lib/src/model/protobuf/api/websocket/client_to_server.pbserver.dart similarity index 89% rename from lib/src/model/protobuf/api/client_to_server.pbserver.dart rename to lib/src/model/protobuf/api/websocket/client_to_server.pbserver.dart index 58443e2..e071285 100644 --- a/lib/src/model/protobuf/api/client_to_server.pbserver.dart +++ b/lib/src/model/protobuf/api/websocket/client_to_server.pbserver.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/client_to_server.proto +// source: api/websocket/client_to_server.proto // // @dart = 2.12 diff --git a/lib/src/model/protobuf/api/error.pb.dart b/lib/src/model/protobuf/api/websocket/error.pb.dart similarity index 91% rename from lib/src/model/protobuf/api/error.pb.dart rename to lib/src/model/protobuf/api/websocket/error.pb.dart index 7229879..803db3c 100644 --- a/lib/src/model/protobuf/api/error.pb.dart +++ b/lib/src/model/protobuf/api/websocket/error.pb.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/error.proto +// source: api/websocket/error.proto // // @dart = 2.12 diff --git a/lib/src/model/protobuf/api/error.pbenum.dart b/lib/src/model/protobuf/api/websocket/error.pbenum.dart similarity index 99% rename from lib/src/model/protobuf/api/error.pbenum.dart rename to lib/src/model/protobuf/api/websocket/error.pbenum.dart index 434e359..8ba71da 100644 --- a/lib/src/model/protobuf/api/error.pbenum.dart +++ b/lib/src/model/protobuf/api/websocket/error.pbenum.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/error.proto +// source: api/websocket/error.proto // // @dart = 2.12 diff --git a/lib/src/model/protobuf/api/error.pbjson.dart b/lib/src/model/protobuf/api/websocket/error.pbjson.dart similarity index 98% rename from lib/src/model/protobuf/api/error.pbjson.dart rename to lib/src/model/protobuf/api/websocket/error.pbjson.dart index b8c7bdb..9d71562 100644 --- a/lib/src/model/protobuf/api/error.pbjson.dart +++ b/lib/src/model/protobuf/api/websocket/error.pbjson.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/error.proto +// source: api/websocket/error.proto // // @dart = 2.12 diff --git a/lib/src/model/protobuf/api/error.pbserver.dart b/lib/src/model/protobuf/api/websocket/error.pbserver.dart similarity index 91% rename from lib/src/model/protobuf/api/error.pbserver.dart rename to lib/src/model/protobuf/api/websocket/error.pbserver.dart index 89b76b4..0586ca9 100644 --- a/lib/src/model/protobuf/api/error.pbserver.dart +++ b/lib/src/model/protobuf/api/websocket/error.pbserver.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/error.proto +// source: api/websocket/error.proto // // @dart = 2.12 diff --git a/lib/src/model/protobuf/api/server_to_client.pb.dart b/lib/src/model/protobuf/api/websocket/server_to_client.pb.dart similarity index 94% rename from lib/src/model/protobuf/api/server_to_client.pb.dart rename to lib/src/model/protobuf/api/websocket/server_to_client.pb.dart index df6db0f..8d67382 100644 --- a/lib/src/model/protobuf/api/server_to_client.pb.dart +++ b/lib/src/model/protobuf/api/websocket/server_to_client.pb.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/server_to_client.proto +// source: api/websocket/server_to_client.proto // // @dart = 2.12 @@ -88,7 +88,6 @@ enum V0_Kind { response, newMessage, requestNewPreKeys, - downloaddata, error, notSet } @@ -99,7 +98,6 @@ class V0 extends $pb.GeneratedMessage { Response? response, NewMessage? newMessage, $core.bool? requestNewPreKeys, - DownloadData? downloaddata, $0.ErrorCode? error, }) { final $result = create(); @@ -115,9 +113,6 @@ class V0 extends $pb.GeneratedMessage { if (requestNewPreKeys != null) { $result.requestNewPreKeys = requestNewPreKeys; } - if (downloaddata != null) { - $result.downloaddata = downloaddata; - } if (error != null) { $result.error = error; } @@ -131,17 +126,15 @@ class V0 extends $pb.GeneratedMessage { 2 : V0_Kind.response, 3 : V0_Kind.newMessage, 4 : V0_Kind.requestNewPreKeys, - 5 : V0_Kind.downloaddata, 6 : V0_Kind.error, 0 : V0_Kind.notSet }; static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'V0', package: const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'), createEmptyInstance: create) - ..oo(0, [2, 3, 4, 5, 6]) + ..oo(0, [2, 3, 4, 6]) ..a<$fixnum.Int64>(1, _omitFieldNames ? '' : 'seq', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO) ..aOM(2, _omitFieldNames ? '' : 'response', subBuilder: Response.create) ..aOM(3, _omitFieldNames ? '' : 'newMessage', protoName: 'newMessage', subBuilder: NewMessage.create) ..aOB(4, _omitFieldNames ? '' : 'RequestNewPreKeys', protoName: 'RequestNewPreKeys') - ..aOM(5, _omitFieldNames ? '' : 'downloaddata', subBuilder: DownloadData.create) ..e<$0.ErrorCode>(6, _omitFieldNames ? '' : 'error', $pb.PbFieldType.OE, defaultOrMaker: $0.ErrorCode.Unknown, valueOf: $0.ErrorCode.valueOf, enumValues: $0.ErrorCode.values) ..hasRequiredFields = false ; @@ -210,23 +203,12 @@ class V0 extends $pb.GeneratedMessage { @$pb.TagNumber(4) void clearRequestNewPreKeys() => clearField(4); - @$pb.TagNumber(5) - DownloadData get downloaddata => $_getN(4); - @$pb.TagNumber(5) - set downloaddata(DownloadData v) { setField(5, v); } - @$pb.TagNumber(5) - $core.bool hasDownloaddata() => $_has(4); - @$pb.TagNumber(5) - void clearDownloaddata() => clearField(5); - @$pb.TagNumber(5) - DownloadData ensureDownloaddata() => $_ensure(4); - @$pb.TagNumber(6) - $0.ErrorCode get error => $_getN(5); + $0.ErrorCode get error => $_getN(4); @$pb.TagNumber(6) set error($0.ErrorCode v) { setField(6, v); } @$pb.TagNumber(6) - $core.bool hasError() => $_has(5); + $core.bool hasError() => $_has(4); @$pb.TagNumber(6) void clearError() => clearField(6); } @@ -295,98 +277,6 @@ class NewMessage extends $pb.GeneratedMessage { void clearFromUserId() => clearField(2); } -class DownloadData extends $pb.GeneratedMessage { - factory DownloadData({ - $core.List<$core.int>? downloadToken, - $core.int? offset, - $core.List<$core.int>? data, - $core.bool? fin, - }) { - final $result = create(); - if (downloadToken != null) { - $result.downloadToken = downloadToken; - } - if (offset != null) { - $result.offset = offset; - } - if (data != null) { - $result.data = data; - } - if (fin != null) { - $result.fin = fin; - } - return $result; - } - DownloadData._() : super(); - factory DownloadData.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory DownloadData.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); - - static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'DownloadData', package: const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'), createEmptyInstance: create) - ..a<$core.List<$core.int>>(1, _omitFieldNames ? '' : 'downloadToken', $pb.PbFieldType.OY) - ..a<$core.int>(2, _omitFieldNames ? '' : 'offset', $pb.PbFieldType.OU3) - ..a<$core.List<$core.int>>(3, _omitFieldNames ? '' : 'data', $pb.PbFieldType.OY) - ..aOB(4, _omitFieldNames ? '' : 'fin') - ..hasRequiredFields = false - ; - - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' - 'Will be removed in next major version') - DownloadData clone() => DownloadData()..mergeFromMessage(this); - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' - 'Will be removed in next major version') - DownloadData copyWith(void Function(DownloadData) updates) => super.copyWith((message) => updates(message as DownloadData)) as DownloadData; - - $pb.BuilderInfo get info_ => _i; - - @$core.pragma('dart2js:noInline') - static DownloadData create() => DownloadData._(); - DownloadData createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); - @$core.pragma('dart2js:noInline') - static DownloadData getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); - static DownloadData? _defaultInstance; - - @$pb.TagNumber(1) - $core.List<$core.int> get downloadToken => $_getN(0); - @$pb.TagNumber(1) - set downloadToken($core.List<$core.int> v) { $_setBytes(0, v); } - @$pb.TagNumber(1) - $core.bool hasDownloadToken() => $_has(0); - @$pb.TagNumber(1) - void clearDownloadToken() => clearField(1); - - @$pb.TagNumber(2) - $core.int get offset => $_getIZ(1); - @$pb.TagNumber(2) - set offset($core.int v) { $_setUnsignedInt32(1, v); } - @$pb.TagNumber(2) - $core.bool hasOffset() => $_has(1); - @$pb.TagNumber(2) - void clearOffset() => clearField(2); - - @$pb.TagNumber(3) - $core.List<$core.int> get data => $_getN(2); - @$pb.TagNumber(3) - set data($core.List<$core.int> v) { $_setBytes(2, v); } - @$pb.TagNumber(3) - $core.bool hasData() => $_has(2); - @$pb.TagNumber(3) - void clearData() => clearField(3); - - @$pb.TagNumber(4) - $core.bool get fin => $_getBF(3); - @$pb.TagNumber(4) - set fin($core.bool v) { $_setBool(3, v); } - @$pb.TagNumber(4) - $core.bool hasFin() => $_has(3); - @$pb.TagNumber(4) - void clearFin() => clearField(4); -} - class Response_Authenticated extends $pb.GeneratedMessage { factory Response_Authenticated({ $core.String? plan, diff --git a/lib/src/model/protobuf/api/server_to_client.pbenum.dart b/lib/src/model/protobuf/api/websocket/server_to_client.pbenum.dart similarity index 97% rename from lib/src/model/protobuf/api/server_to_client.pbenum.dart rename to lib/src/model/protobuf/api/websocket/server_to_client.pbenum.dart index 46f3077..936b601 100644 --- a/lib/src/model/protobuf/api/server_to_client.pbenum.dart +++ b/lib/src/model/protobuf/api/websocket/server_to_client.pbenum.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/server_to_client.proto +// source: api/websocket/server_to_client.proto // // @dart = 2.12 diff --git a/lib/src/model/protobuf/api/server_to_client.pbjson.dart b/lib/src/model/protobuf/api/websocket/server_to_client.pbjson.dart similarity index 94% rename from lib/src/model/protobuf/api/server_to_client.pbjson.dart rename to lib/src/model/protobuf/api/websocket/server_to_client.pbjson.dart index 2fe535a..eabade8 100644 --- a/lib/src/model/protobuf/api/server_to_client.pbjson.dart +++ b/lib/src/model/protobuf/api/websocket/server_to_client.pbjson.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/server_to_client.proto +// source: api/websocket/server_to_client.proto // // @dart = 2.12 @@ -37,7 +37,6 @@ const V0$json = { {'1': 'response', '3': 2, '4': 1, '5': 11, '6': '.server_to_client.Response', '9': 0, '10': 'response'}, {'1': 'newMessage', '3': 3, '4': 1, '5': 11, '6': '.server_to_client.NewMessage', '9': 0, '10': 'newMessage'}, {'1': 'RequestNewPreKeys', '3': 4, '4': 1, '5': 8, '9': 0, '10': 'RequestNewPreKeys'}, - {'1': 'downloaddata', '3': 5, '4': 1, '5': 11, '6': '.server_to_client.DownloadData', '9': 0, '10': 'downloaddata'}, {'1': 'error', '3': 6, '4': 1, '5': 14, '6': '.error.ErrorCode', '9': 0, '10': 'error'}, ], '8': [ @@ -50,9 +49,8 @@ final $typed_data.Uint8List v0Descriptor = $convert.base64Decode( 'CgJWMBIQCgNzZXEYASABKARSA3NlcRI4CghyZXNwb25zZRgCIAEoCzIaLnNlcnZlcl90b19jbG' 'llbnQuUmVzcG9uc2VIAFIIcmVzcG9uc2USPgoKbmV3TWVzc2FnZRgDIAEoCzIcLnNlcnZlcl90' 'b19jbGllbnQuTmV3TWVzc2FnZUgAUgpuZXdNZXNzYWdlEi4KEVJlcXVlc3ROZXdQcmVLZXlzGA' - 'QgASgISABSEVJlcXVlc3ROZXdQcmVLZXlzEkQKDGRvd25sb2FkZGF0YRgFIAEoCzIeLnNlcnZl' - 'cl90b19jbGllbnQuRG93bmxvYWREYXRhSABSDGRvd25sb2FkZGF0YRIoCgVlcnJvchgGIAEoDj' - 'IQLmVycm9yLkVycm9yQ29kZUgAUgVlcnJvckIGCgRLaW5k'); + 'QgASgISABSEVJlcXVlc3ROZXdQcmVLZXlzEigKBWVycm9yGAYgASgOMhAuZXJyb3IuRXJyb3JD' + 'b2RlSABSBWVycm9yQgYKBEtpbmQ='); @$core.Deprecated('Use newMessageDescriptor instead') const NewMessage$json = { @@ -68,23 +66,6 @@ final $typed_data.Uint8List newMessageDescriptor = $convert.base64Decode( 'CgpOZXdNZXNzYWdlEiAKDGZyb21fdXNlcl9pZBgCIAEoA1IKZnJvbVVzZXJJZBISCgRib2R5GA' 'EgASgMUgRib2R5'); -@$core.Deprecated('Use downloadDataDescriptor instead') -const DownloadData$json = { - '1': 'DownloadData', - '2': [ - {'1': 'download_token', '3': 1, '4': 1, '5': 12, '10': 'downloadToken'}, - {'1': 'offset', '3': 2, '4': 1, '5': 13, '10': 'offset'}, - {'1': 'data', '3': 3, '4': 1, '5': 12, '10': 'data'}, - {'1': 'fin', '3': 4, '4': 1, '5': 8, '10': 'fin'}, - ], -}; - -/// Descriptor for `DownloadData`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List downloadDataDescriptor = $convert.base64Decode( - 'CgxEb3dubG9hZERhdGESJQoOZG93bmxvYWRfdG9rZW4YASABKAxSDWRvd25sb2FkVG9rZW4SFg' - 'oGb2Zmc2V0GAIgASgNUgZvZmZzZXQSEgoEZGF0YRgDIAEoDFIEZGF0YRIQCgNmaW4YBCABKAhS' - 'A2Zpbg=='); - @$core.Deprecated('Use responseDescriptor instead') const Response$json = { '1': 'Response', diff --git a/lib/src/model/protobuf/api/server_to_client.pbserver.dart b/lib/src/model/protobuf/api/websocket/server_to_client.pbserver.dart similarity index 89% rename from lib/src/model/protobuf/api/server_to_client.pbserver.dart rename to lib/src/model/protobuf/api/websocket/server_to_client.pbserver.dart index 3cc0b47..66482f4 100644 --- a/lib/src/model/protobuf/api/server_to_client.pbserver.dart +++ b/lib/src/model/protobuf/api/websocket/server_to_client.pbserver.dart @@ -1,6 +1,6 @@ // // Generated code. Do not modify. -// source: api/server_to_client.proto +// source: api/websocket/server_to_client.proto // // @dart = 2.12 diff --git a/lib/src/services/api.service.dart b/lib/src/services/api.service.dart index 921e7e8..61eae4d 100644 --- a/lib/src/services/api.service.dart +++ b/lib/src/services/api.service.dart @@ -13,11 +13,11 @@ import 'package:twonly/globals.dart'; import 'package:twonly/app.dart'; import 'package:twonly/src/database/twonly_database.dart'; import 'package:twonly/src/model/json/userdata.dart'; -import 'package:twonly/src/model/protobuf/api/client_to_server.pbserver.dart'; -import 'package:twonly/src/model/protobuf/api/error.pb.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart' +import 'package:twonly/src/model/protobuf/api/websocket/client_to_server.pbserver.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart' as server; -import 'package:twonly/src/model/protobuf/api/server_to_client.pbserver.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pbserver.dart'; import 'package:twonly/src/services/api/messages.dart'; import 'package:twonly/src/services/api/utils.dart'; import 'package:twonly/src/services/api/media_received.dart'; @@ -435,25 +435,6 @@ class ApiService { return await sendRequestSync(req, contactId: userId); } - Future getUploadToken(int recipientsCount) async { - var get = ApplicationData_GetUploadToken() - ..recipientsCount = recipientsCount; - var appData = ApplicationData()..getuploadtoken = get; - var req = createClientToServerFromApplicationData(appData); - return await sendRequestSync(req); - } - - Future getDownloadTokens(List uploadToken, int recipientsCount, - {bool ensureRetransmission = false}) async { - var get = ApplicationData_UploadDone() - ..uploadToken = uploadToken - ..recipientsCount = recipientsCount; - var appData = ApplicationData()..uploaddone = get; - var req = createClientToServerFromApplicationData(appData); - return await sendRequestSync(req, - ensureRetransmission: ensureRetransmission); - } - Future downloadDone(List token) async { var get = ApplicationData_DownloadDone()..downloadToken = token; var appData = ApplicationData()..downloaddone = get; @@ -468,21 +449,6 @@ class ApiService { return await sendRequestSync(req); } - Future uploadData(List uploadToken, Uint8List data, int offset, - List? checksum) async { - var get = ApplicationData_UploadData() - ..uploadToken = uploadToken - ..data = data - ..offset = offset; - if (checksum != null) { - get.checksum = checksum; - } - var appData = ApplicationData()..uploaddata = get; - var req = createClientToServerFromApplicationData(appData); - final result = await sendRequestSync(req); - return result; - } - Future getUserData(String username) async { var get = ApplicationData_GetUserByUsername()..username = username; var appData = ApplicationData()..getuserbyusername = get; diff --git a/lib/src/services/api/media_send.dart b/lib/src/services/api/media_send.dart index 4ff5527..35f755f 100644 --- a/lib/src/services/api/media_send.dart +++ b/lib/src/services/api/media_send.dart @@ -1,5 +1,9 @@ import 'dart:async'; import 'dart:convert'; +import 'dart:isolate'; +import 'dart:math'; +import 'package:fixnum/fixnum.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:http/http.dart' as http; import 'dart:io'; @@ -15,12 +19,11 @@ import 'package:twonly/src/database/tables/media_uploads_table.dart'; import 'package:twonly/src/database/tables/messages_table.dart'; import 'package:twonly/src/database/twonly_database.dart'; import 'package:twonly/src/model/json/message.dart'; -import 'package:twonly/src/model/protobuf/api/error.pb.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; -import 'package:twonly/src/services/api/messages.dart'; -import 'package:twonly/src/services/api/utils.dart'; +import 'package:twonly/src/model/protobuf/api/http/http_requests.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart'; import 'package:twonly/src/services/api/media_received.dart'; import 'package:twonly/src/services/notification.service.dart'; +import 'package:twonly/src/services/signal/encryption.signal.dart'; import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/misc.dart'; import 'package:twonly/src/utils/storage.dart'; @@ -73,7 +76,6 @@ Future checkForFailedUploads() async { int affectedRows = await twonlyDB.mediaUploadsDao.updateMediaUpload( message.mediaUploadId!, MediaUploadsCompanion( - uploadTokens: Value(null), // reupload them state: Value(UploadState.pending), encryptionData: Value( null, // start from scratch e.q. encrypt the files again if already happen @@ -119,14 +121,6 @@ Future retryMediaUpload(bool appRestarted, {int maxRetries = 3}) async { if (appRestarted) { /// When the app got restarted and the messageIds or the metadata is not /// set then the app was closed before the images was send. - - // the media upload was canceled, - if (mediaFile.uploadTokens != null) { - /// the file was already uploaded. - /// notify the server to remove the upload - apiService.getDownloadTokens( - mediaFile.uploadTokens!.uploadToken, 0); - } await twonlyDB.mediaUploadsDao .deleteMediaUpload(mediaFile.mediaUploadId); Log.info( @@ -192,7 +186,6 @@ Future addOrModifyImageToUpload( mediaUploadId, MediaUploadsCompanion( encryptionData: Value(null), - uploadTokens: Value(null), ), ); return imageBytesCompressed; @@ -202,7 +195,7 @@ Future handlePreProcessingState(MediaUpload media) async { try { final imageHandler = readMediaFile(media.mediaUploadId, "png"); final videoHandler = compressVideoIfExists(media.mediaUploadId); - await encryptAndPreUploadMediaFiles( + await encryptMediaFiles( media.mediaUploadId, imageHandler, videoHandler, @@ -213,7 +206,7 @@ Future handlePreProcessingState(MediaUpload media) async { } } -Future encryptAndPreUploadMediaFiles( +Future encryptMediaFiles( int mediaUploadId, Future imageHandler, Future? videoHandler, @@ -237,10 +230,12 @@ Future encryptAndPreUploadMediaFiles( state.encryptionKey = secretKey.bytes; state.encryptionNonce = xchacha20.newNonce(); - final secretBox = await xchacha20.encrypt( - dataToEncrypt, - secretKey: secretKey, - nonce: state.encryptionNonce, + final secretBox = await Isolate.run( + () => xchacha20.encrypt( + dataToEncrypt, + secretKey: secretKey, + nonce: state.encryptionNonce, + ), ); state.encryptionMac = secretBox.mac.bytes; @@ -262,7 +257,7 @@ Future encryptAndPreUploadMediaFiles( encryptionData: Value(state), ), ); - await handleNextMediaUploadSteps(mediaUploadId); + handleNextMediaUploadSteps(mediaUploadId); } Future finalizeUpload(int mediaUploadId, List contactIds, @@ -318,6 +313,8 @@ Future finalizeUpload(int mediaUploadId, List contactIds, metadata: Value(metadata), ), ); + + handleNextMediaUploadSteps(mediaUploadId); } final lockingHandleNextMediaUploadStep = Mutex(); @@ -340,27 +337,12 @@ Future handleNextMediaUploadSteps(int mediaUploadId) async { return false; } - if (mediaUpload.uploadTokens == null) { - /// the files are not yet uploaded, handle upload... - /// if the upload succeed the uploadTokens was updated and this function - /// can be called again to processed the upload done - return await handleMediaUpload(mediaUploadId); - } - if (mediaUpload.messageIds == null || mediaUpload.metadata == null) { /// the finalize function was not called yet... return false; } - // at this point the media file is uploaded and the receiver are known. - final downloadTokens = mediaUpload.uploadTokens!.downloadTokens; - if (downloadTokens.isEmpty) { - /// there are no download tokens yet, request them... - return await handleUploadDone(mediaUpload); - } - - // download tokens are known so send the media file to the receivers - await handleNotifyReceiver(mediaUpload); + return await handleMediaUpload(mediaUpload); } catch (e) { Log.error("Non recoverable error while sending media file: $e"); await handleUploadError(mediaUpload); @@ -392,39 +374,80 @@ Future handleUploadError(MediaUpload mediaUpload) async { await twonlyDB.mediaUploadsDao.deleteMediaUpload(mediaUpload.mediaUploadId); } -Future handleUploadDone(MediaUpload media) async { - Result res = await apiService.getDownloadTokens( - media.uploadTokens!.uploadToken, media.messageIds!.length); +Future handleMediaUpload(MediaUpload media) async { + Uint8List bytesToUpload = + await readMediaFile(media.mediaUploadId, "encrypted"); - if (res.isError || !res.value.hasDownloadtokens()) { - if (res.isError) { - if (res.error == ErrorCode.PlanNotAllowed) { - throw Exception("PlanNotAllowed"); - } - if (res.error == ErrorCode.PlanLimitReached) { - throw Exception("PlanLimitReached"); - } + if (media.messageIds == null) return false; + + List downloadTokens = + createDownloadTokens(media.messageIds!.length); + + List messagesOnSuccess = []; + + for (var i = 0; i < media.messageIds!.length; i++) { + MessageJson msg = MessageJson( + kind: MessageKind.media, + messageId: media.messageIds![i], + content: MediaMessageContent( + downloadToken: downloadTokens[i], + maxShowTime: media.metadata!.maxShowTime, + isRealTwonly: media.metadata!.isRealTwonly, + isVideo: media.metadata!.isVideo, + mirrorVideo: media.metadata!.mirrorVideo, + encryptionKey: media.encryptionData!.encryptionKey, + encryptionMac: media.encryptionData!.encryptionMac, + encryptionNonce: media.encryptionData!.encryptionNonce, + ), + timestamp: media.metadata!.messageSendAt, + ); + + Uint8List plaintextContent = + Uint8List.fromList(gzip.encode(utf8.encode(jsonEncode(msg.toJson())))); + + Message? message = await twonlyDB.messagesDao + .getMessageByMessageId(media.messageIds![i]) + .getSingleOrNull(); + + if (message == null) continue; + + await twonlyDB.contactsDao.incFlameCounter( + message.contactId, + false, + message.sendAt, + ); + + Uint8List? encryptedBytes = await signalEncryptMessage( + message.contactId, + plaintextContent, + ); + + if (encryptedBytes == null) continue; + final pushKind = (media.metadata!.isRealTwonly) + ? PushKind.twonly + : (media.metadata!.isVideo) + ? PushKind.video + : PushKind.image; + + var messageOnSuccess = TextMessage() + ..body = encryptedBytes + ..userId = Int64(message.contactId); + + var pushData = await getPushData(message.contactId, pushKind); + if (pushData != null) { + messageOnSuccess.pushData = pushData.toList(); } - Log.error("Upload done will be tried again when reconnected to server!"); - return false; + + messagesOnSuccess.add(messageOnSuccess); } - Response_DownloadTokens tokens = res.value.downloadtokens; - var token = MediaUploadTokens(); - token.uploadToken = media.uploadTokens!.uploadToken; - token.downloadTokens = tokens.downloadTokens; - - await twonlyDB.mediaUploadsDao.updateMediaUpload( - media.mediaUploadId, - MediaUploadsCompanion( - uploadTokens: Value(token), - ), + final uploadRequest = UploadRequest( + messagesOnSuccess: messagesOnSuccess, + downloadTokens: downloadTokens, + encryptedData: bytesToUpload, ); - return true; -} -Future handleMediaUpload(int mediaUploadId) async { - Uint8List bytesToUpload = await readMediaFile(mediaUploadId, "encrypted"); + final uploadRequestBytes = uploadRequest.writeToBuffer(); final storage = FlutterSecureStorage(); String? apiAuthToken = await storage.read(key: "api_auth_token"); @@ -445,11 +468,11 @@ Future handleMediaUpload(int mediaUploadId) async { requestMultipart.files.add(http.MultipartFile.fromBytes( "file", - bytesToUpload, + uploadRequestBytes, filename: "upload", )); - Log.info("Starting upload from $mediaUploadId "); + Log.info("Starting upload from ${media.mediaUploadId}"); try { var streamedResponse = await requestMultipart.send(); @@ -457,24 +480,38 @@ Future handleMediaUpload(int mediaUploadId) async { final response = await http.Response.fromStream(streamedResponse); if (response.statusCode == 200) { - if (response.body.length != 64) { - Log.error("Got invalid upload token."); - return false; - } - - final uploadToken = hexToUint8List(response.body); - - var token = MediaUploadTokens(); - token.uploadToken = uploadToken; - token.downloadTokens = []; + Log.info("Upload was success!"); await twonlyDB.mediaUploadsDao.updateMediaUpload( - mediaUploadId, + media.mediaUploadId, MediaUploadsCompanion( - uploadTokens: Value(token), + state: Value(UploadState.receiverNotified), ), ); + + for (final messageId in media.messageIds!) { + await twonlyDB.messagesDao.updateMessageByMessageId( + messageId, + MessagesCompanion( + acknowledgeByServer: Value(true), + errorWhileSending: Value(false), + ), + ); + } return true; + } else { + if (response.statusCode >= 400 && response.statusCode < 500) { + for (final messageId in media.messageIds!) { + await twonlyDB.messagesDao.updateMessageByMessageId( + messageId, + MessagesCompanion( + acknowledgeByServer: Value(true), + errorWhileSending: Value(true), + ), + ); + } + } + Log.error("Got error while uploading: ${response.statusCode}"); } } catch (e) { Log.error("Exception during upload: $e"); @@ -482,71 +519,6 @@ Future handleMediaUpload(int mediaUploadId) async { return false; } -Future handleNotifyReceiver(MediaUpload media) async { - List alreadyNotified = media.alreadyNotified; - - for (var i = 0; i < media.messageIds!.length; i++) { - int messageId = media.messageIds![i]; - - if (alreadyNotified.contains(messageId)) { - continue; - } - - Message? message = await twonlyDB.messagesDao - .getMessageByMessageId(messageId) - .getSingleOrNull(); - if (message == null) continue; - - await twonlyDB.contactsDao.incFlameCounter( - message.contactId, - false, - message.sendAt, - ); - - // Ensures the retransmit of the message - await encryptAndSendMessageAsync( - messageId, - message.contactId, - MessageJson( - kind: MessageKind.media, - messageId: messageId, - content: MediaMessageContent( - downloadToken: media.uploadTokens!.downloadTokens[i], - maxShowTime: media.metadata!.maxShowTime, - isRealTwonly: media.metadata!.isRealTwonly, - isVideo: media.metadata!.isVideo, - mirrorVideo: media.metadata!.mirrorVideo, - encryptionKey: media.encryptionData!.encryptionKey, - encryptionMac: media.encryptionData!.encryptionMac, - encryptionNonce: media.encryptionData!.encryptionNonce, - ), - timestamp: media.metadata!.messageSendAt, - ), - pushKind: (media.metadata!.isRealTwonly) - ? PushKind.twonly - : (media.metadata!.isVideo) - ? PushKind.video - : PushKind.image, - ); - - alreadyNotified.add(messageId); - await twonlyDB.mediaUploadsDao.updateMediaUpload( - media.mediaUploadId, - MediaUploadsCompanion( - alreadyNotified: Value(alreadyNotified), - ), - ); - } - - await twonlyDB.mediaUploadsDao.updateMediaUpload( - media.mediaUploadId, - MediaUploadsCompanion( - state: Value(UploadState.receiverNotified), - ), - ); - return true; -} - Future compressVideoIfExists(int mediaUploadId) async { String basePath = await getMediaFilePath(mediaUploadId, "send"); File videoOriginalFile = File("$basePath.original.mp4"); @@ -562,40 +534,41 @@ Future compressVideoIfExists(int mediaUploadId) async { return false; } - MediaInfo? mediaInfo; - - try { - mediaInfo = await VideoCompress.compressVideo( - videoOriginalFile.path, - quality: VideoQuality.Res1280x720Quality, - deleteOrigin: false, - includeAudio: - true, // https://github.com/jonataslaw/VideoCompress/issues/184 - ); - - if (mediaInfo!.filesize! >= 30 * 1000 * 1000) { - // if the media file is over 20MB compress it with low quality + return await Isolate.run(() async { + MediaInfo? mediaInfo; + try { mediaInfo = await VideoCompress.compressVideo( videoOriginalFile.path, - quality: VideoQuality.Res960x540Quality, + quality: VideoQuality.Res1280x720Quality, deleteOrigin: false, - includeAudio: true, + includeAudio: + true, // https://github.com/jonataslaw/VideoCompress/issues/184 ); - } - } catch (e) { - Log.error("during video compression: $e"); - } - if (mediaInfo == null) { - Log.error("could not compress video."); - // as a fall back use the non compressed version - await videoOriginalFile.copy(videoCompressedFile.path); - await videoOriginalFile.delete(); - } else { - await mediaInfo.file!.copy(videoCompressedFile.path); - await mediaInfo.file!.delete(); - } - return true; + if (mediaInfo!.filesize! >= 30 * 1000 * 1000) { + // if the media file is over 20MB compress it with low quality + mediaInfo = await VideoCompress.compressVideo( + videoOriginalFile.path, + quality: VideoQuality.Res960x540Quality, + deleteOrigin: false, + includeAudio: true, + ); + } + } catch (e) { + Log.error("during video compression: $e"); + } + + if (mediaInfo == null) { + Log.error("could not compress video."); + // as a fall back use the non compressed version + await videoOriginalFile.copy(videoCompressedFile.path); + await videoOriginalFile.delete(); + } else { + await mediaInfo.file!.copy(videoCompressedFile.path); + await mediaInfo.file!.delete(); + } + return true; + }); } /// --- helper functions --- @@ -676,3 +649,18 @@ String uint8ListToHex(List bytes) { Uint8List hexToUint8List(String hex) => Uint8List.fromList(List.generate( hex.length ~/ 2, (i) => int.parse(hex.substring(i * 2, i * 2 + 2), radix: 16))); + +List createDownloadTokens(int n) { + final Random random = Random(); + List tokens = []; + + for (int i = 0; i < n; i++) { + Uint8List token = Uint8List(32); + for (int j = 0; j < 32; j++) { + token[j] = random.nextInt(256); // Generate a random byte (0-255) + } + tokens.add(token); + } + + return tokens; +} diff --git a/lib/src/services/api/messages.dart b/lib/src/services/api/messages.dart index 0c685ec..c42a31e 100644 --- a/lib/src/services/api/messages.dart +++ b/lib/src/services/api/messages.dart @@ -6,7 +6,7 @@ import 'package:twonly/src/database/twonly_database.dart'; import 'package:twonly/src/database/tables/messages_table.dart'; import 'package:twonly/src/model/json/message.dart'; import 'package:twonly/src/model/json/userdata.dart'; -import 'package:twonly/src/model/protobuf/api/error.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart'; import 'package:twonly/src/services/api/utils.dart'; import 'package:twonly/src/services/signal/encryption.signal.dart'; import 'package:twonly/src/services/notification.service.dart'; diff --git a/lib/src/services/api/server_messages.dart b/lib/src/services/api/server_messages.dart index 4385dbd..875ebd6 100644 --- a/lib/src/services/api/server_messages.dart +++ b/lib/src/services/api/server_messages.dart @@ -7,11 +7,11 @@ import 'package:twonly/globals.dart'; import 'package:twonly/src/database/twonly_database.dart'; import 'package:twonly/src/database/tables/messages_table.dart'; import 'package:twonly/src/model/json/message.dart'; -import 'package:twonly/src/model/protobuf/api/client_to_server.pb.dart' +import 'package:twonly/src/model/protobuf/api/websocket/client_to_server.pb.dart' as client; -import 'package:twonly/src/model/protobuf/api/client_to_server.pbserver.dart'; -import 'package:twonly/src/model/protobuf/api/error.pb.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart' +import 'package:twonly/src/model/protobuf/api/websocket/client_to_server.pbserver.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart' as server; import 'package:twonly/src/services/api/messages.dart'; import 'package:twonly/src/services/api/utils.dart'; diff --git a/lib/src/services/api/utils.dart b/lib/src/services/api/utils.dart index a88111b..2458916 100644 --- a/lib/src/services/api/utils.dart +++ b/lib/src/services/api/utils.dart @@ -4,11 +4,11 @@ import 'package:twonly/globals.dart'; import 'package:twonly/src/database/tables/messages_table.dart'; import 'package:twonly/src/database/twonly_database.dart'; import 'package:twonly/src/model/json/message.dart'; -import 'package:twonly/src/model/protobuf/api/client_to_server.pb.dart' +import 'package:twonly/src/model/protobuf/api/websocket/client_to_server.pb.dart' as client; -import 'package:twonly/src/model/protobuf/api/client_to_server.pbserver.dart'; -import 'package:twonly/src/model/protobuf/api/error.pb.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart' +import 'package:twonly/src/model/protobuf/api/websocket/client_to_server.pbserver.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart' as server; import 'package:twonly/src/services/api/messages.dart'; import 'package:twonly/src/services/signal/session.signal.dart'; diff --git a/lib/src/services/signal/prekeys.signal.dart b/lib/src/services/signal/prekeys.signal.dart index fb2fb6a..405e3c1 100644 --- a/lib/src/services/signal/prekeys.signal.dart +++ b/lib/src/services/signal/prekeys.signal.dart @@ -2,7 +2,7 @@ import 'package:drift/drift.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/database/twonly_database.dart'; import 'package:twonly/src/utils/log.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart' +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart' as server; class OtherPreKeys { diff --git a/lib/src/services/signal/session.signal.dart b/lib/src/services/signal/session.signal.dart index ebbf12b..020c1a3 100644 --- a/lib/src/services/signal/session.signal.dart +++ b/lib/src/services/signal/session.signal.dart @@ -1,7 +1,7 @@ import 'dart:typed_data'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; import 'package:twonly/src/model/json/userdata.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart'; import 'package:twonly/src/database/signal/connect_signal_protocol_store.dart'; import 'package:twonly/src/services/signal/consts.signal.dart'; import 'package:twonly/src/services/signal/utils.signal.dart'; diff --git a/lib/src/utils/misc.dart b/lib/src/utils/misc.dart index ad22f17..37b01e1 100644 --- a/lib/src/utils/misc.dart +++ b/lib/src/utils/misc.dart @@ -14,7 +14,7 @@ import 'package:twonly/globals.dart'; import 'package:twonly/src/database/tables/messages_table.dart'; import 'package:twonly/src/database/twonly_database.dart'; import 'package:twonly/src/model/json/message.dart'; -import 'package:twonly/src/model/protobuf/api/error.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart'; import 'package:twonly/src/localization/generated/app_localizations.dart'; import 'package:twonly/src/providers/settings.provider.dart'; diff --git a/lib/src/views/camera/image_editor/layers/filters/location_filter.dart b/lib/src/views/camera/image_editor/layers/filters/location_filter.dart index edc387f..b295262 100644 --- a/lib/src/views/camera/image_editor/layers/filters/location_filter.dart +++ b/lib/src/views/camera/image_editor/layers/filters/location_filter.dart @@ -4,7 +4,7 @@ import 'package:twonly/globals.dart'; import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/views/camera/image_editor/layers/filter_layer.dart'; import 'package:twonly/src/views/camera/image_editor/layers/filters/datetime_filter.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart'; import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:path_provider/path_provider.dart'; diff --git a/lib/src/views/camera/share_image_editor_view.dart b/lib/src/views/camera/share_image_editor_view.dart index 9289642..f1cdde9 100644 --- a/lib/src/views/camera/share_image_editor_view.dart +++ b/lib/src/views/camera/share_image_editor_view.dart @@ -4,7 +4,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:twonly/globals.dart'; -import 'package:twonly/src/model/protobuf/api/error.pb.dart' show ErrorCode; +import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart' + show ErrorCode; import 'package:twonly/src/services/api/media_send.dart'; import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/views/camera/camera_preview_components/save_to_gallery.dart'; @@ -430,7 +431,7 @@ class _ShareImageEditorView extends State { ); /// then call the upload process in the background - encryptAndPreUploadMediaFiles( + encryptMediaFiles( mediaUploadId!, imageHandler, videoUploadHandler, diff --git a/lib/src/views/camera/share_image_view.dart b/lib/src/views/camera/share_image_view.dart index 7ae79c4..6797e9b 100644 --- a/lib/src/views/camera/share_image_view.dart +++ b/lib/src/views/camera/share_image_view.dart @@ -4,7 +4,7 @@ import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:twonly/globals.dart'; -import 'package:twonly/src/model/protobuf/api/error.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart'; import 'package:twonly/src/services/api/media_send.dart'; import 'package:twonly/src/views/camera/share_image_components/best_friends_selector.dart'; import 'package:twonly/src/views/components/flame.dart'; @@ -79,7 +79,7 @@ class _ShareImageView extends State { final imageHandler = addOrModifyImageToUpload(widget.mediaUploadId, imageBytes!); // start with the pre upload of the media file... - encryptAndPreUploadMediaFiles( + encryptMediaFiles( widget.mediaUploadId, imageHandler, widget.videoUploadHandler); } setState(() {}); diff --git a/lib/src/views/settings/account.view.dart b/lib/src/views/settings/account.view.dart index 90d98de..7d95944 100644 --- a/lib/src/views/settings/account.view.dart +++ b/lib/src/views/settings/account.view.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:restart_app/restart_app.dart'; import 'package:flutter/material.dart'; import 'package:twonly/globals.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart'; import 'package:twonly/src/views/components/alert_dialog.dart'; import 'package:twonly/src/utils/misc.dart'; import 'package:twonly/src/utils/storage.dart'; diff --git a/lib/src/views/settings/subscription/additional_users.view.dart b/lib/src/views/settings/subscription/additional_users.view.dart index 2527af8..5eedd91 100644 --- a/lib/src/views/settings/subscription/additional_users.view.dart +++ b/lib/src/views/settings/subscription/additional_users.view.dart @@ -5,7 +5,7 @@ import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/database/daos/contacts_dao.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart'; import 'package:twonly/src/services/api/utils.dart'; import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/misc.dart'; diff --git a/lib/src/views/settings/subscription/manage_subscription.view.dart b/lib/src/views/settings/subscription/manage_subscription.view.dart index 7de41c8..0ccae66 100644 --- a/lib/src/views/settings/subscription/manage_subscription.view.dart +++ b/lib/src/views/settings/subscription/manage_subscription.view.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import 'package:twonly/globals.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart'; import 'package:twonly/src/services/api/utils.dart'; import 'package:twonly/src/providers/connection.provider.dart'; import 'package:twonly/src/utils/misc.dart'; diff --git a/lib/src/views/settings/subscription/subscription.view.dart b/lib/src/views/settings/subscription/subscription.view.dart index 028018e..02cd6de 100644 --- a/lib/src/views/settings/subscription/subscription.view.dart +++ b/lib/src/views/settings/subscription/subscription.view.dart @@ -6,8 +6,8 @@ import 'package:provider/provider.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/database/daos/contacts_dao.dart'; import 'package:twonly/src/database/twonly_database.dart'; -import 'package:twonly/src/model/protobuf/api/error.pb.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart'; import 'package:twonly/src/providers/connection.provider.dart'; import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/misc.dart'; diff --git a/lib/src/views/settings/subscription/transaction.view.dart b/lib/src/views/settings/subscription/transaction.view.dart index b79064e..c8c8b56 100644 --- a/lib/src/views/settings/subscription/transaction.view.dart +++ b/lib/src/views/settings/subscription/transaction.view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart'; import 'package:twonly/src/utils/misc.dart'; class TransactionView extends StatefulWidget { diff --git a/lib/src/views/settings/subscription/voucher.view.dart b/lib/src/views/settings/subscription/voucher.view.dart index cf6da99..e73aed6 100644 --- a/lib/src/views/settings/subscription/voucher.view.dart +++ b/lib/src/views/settings/subscription/voucher.view.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:intl/intl.dart'; import 'package:twonly/globals.dart'; -import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; +import 'package:twonly/src/model/protobuf/api/websocket/server_to_client.pb.dart'; import 'package:twonly/src/utils/misc.dart'; class VoucherView extends StatefulWidget { diff --git a/pubspec.lock b/pubspec.lock index 7ea300d..3b17aaf 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -65,6 +65,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.1" + background_downloader: + dependency: "direct main" + description: + name: background_downloader + sha256: d3016a9eb584f6cb16384c8b4a008943c39119730d60046044349b5dbbda4ccb + url: "https://pub.dev" + source: hosted + version: "9.2.2" boolean_selector: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0687b70..61fe527 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -65,6 +65,7 @@ dependencies: share_plus: ^11.0.0 photo_view: ^0.15.0 tutorial_coach_mark: ^1.3.0 + background_downloader: ^9.2.2 dev_dependencies: flutter_test: