mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 09:28:41 +00:00
updating to new api version
This commit is contained in:
parent
5243fd609f
commit
d871e04f0e
37 changed files with 563 additions and 885 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Isolate.run(() {
|
||||
purgeReceivedMediaFiles();
|
||||
purgeSendMediaFiles();
|
||||
});
|
||||
|
||||
runApp(
|
||||
MultiProvider(
|
||||
|
|
|
|||
163
lib/src/model/protobuf/api/http/http_requests.pb.dart
Normal file
163
lib/src/model/protobuf/api/http/http_requests.pb.dart
Normal file
|
|
@ -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<TextMessage> createRepeated() => $pb.PbList<TextMessage>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static TextMessage getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<TextMessage>(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<TextMessage>? 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<TextMessage>(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<UploadRequest> createRepeated() => $pb.PbList<UploadRequest>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UploadRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<UploadRequest>(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<TextMessage> get messagesOnSuccess => $_getList(2);
|
||||
}
|
||||
|
||||
|
||||
const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names');
|
||||
const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names');
|
||||
11
lib/src/model/protobuf/api/http/http_requests.pbenum.dart
Normal file
11
lib/src/model/protobuf/api/http/http_requests.pbenum.dart
Normal file
|
|
@ -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
|
||||
|
||||
50
lib/src/model/protobuf/api/http/http_requests.pbjson.dart
Normal file
50
lib/src/model/protobuf/api/http/http_requests.pbjson.dart
Normal file
|
|
@ -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');
|
||||
|
||||
14
lib/src/model/protobuf/api/http/http_requests.pbserver.dart
Normal file
14
lib/src/model/protobuf/api/http/http_requests.pbserver.dart
Normal file
|
|
@ -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';
|
||||
|
||||
|
|
@ -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<ApplicationData_GetUploadToken> createRepeated() => $pb.PbList<ApplicationData_GetUploadToken>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetUploadToken getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ApplicationData_GetUploadToken>(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<ApplicationData_UploadData> createRepeated() => $pb.PbList<ApplicationData_UploadData>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_UploadData getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ApplicationData_UploadData>(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<ApplicationData_UploadDone> createRepeated() => $pb.PbList<ApplicationData_UploadDone>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_UploadDone getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ApplicationData_UploadDone>(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<ApplicationData_DownloadData> createRepeated() => $pb.PbList<ApplicationData_DownloadData>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_DownloadData getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ApplicationData_DownloadData>(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<ApplicationData_TextMessage>(1, _omitFieldNames ? '' : 'textmessage', subBuilder: ApplicationData_TextMessage.create)
|
||||
..aOM<ApplicationData_GetUserByUsername>(2, _omitFieldNames ? '' : 'getuserbyusername', subBuilder: ApplicationData_GetUserByUsername.create)
|
||||
..aOM<ApplicationData_GetPrekeysByUserId>(3, _omitFieldNames ? '' : 'getprekeysbyuserid', subBuilder: ApplicationData_GetPrekeysByUserId.create)
|
||||
..aOM<ApplicationData_GetUploadToken>(4, _omitFieldNames ? '' : 'getuploadtoken', subBuilder: ApplicationData_GetUploadToken.create)
|
||||
..aOM<ApplicationData_UploadData>(5, _omitFieldNames ? '' : 'uploaddata', subBuilder: ApplicationData_UploadData.create)
|
||||
..aOM<ApplicationData_GetUserById>(6, _omitFieldNames ? '' : 'getuserbyid', subBuilder: ApplicationData_GetUserById.create)
|
||||
..aOM<ApplicationData_DownloadData>(7, _omitFieldNames ? '' : 'downloaddata', subBuilder: ApplicationData_DownloadData.create)
|
||||
..aOM<ApplicationData_UpdateGoogleFcmToken>(8, _omitFieldNames ? '' : 'updategooglefcmtoken', subBuilder: ApplicationData_UpdateGoogleFcmToken.create)
|
||||
..aOM<ApplicationData_GetLocation>(9, _omitFieldNames ? '' : 'getlocation', subBuilder: ApplicationData_GetLocation.create)
|
||||
..aOM<ApplicationData_GetCurrentPlanInfos>(10, _omitFieldNames ? '' : 'getcurrentplaninfos', subBuilder: ApplicationData_GetCurrentPlanInfos.create)
|
||||
|
|
@ -2066,7 +1769,6 @@ class ApplicationData extends $pb.GeneratedMessage {
|
|||
..aOM<ApplicationData_RemoveAdditionalUser>(18, _omitFieldNames ? '' : 'removeadditionaluser', subBuilder: ApplicationData_RemoveAdditionalUser.create)
|
||||
..aOM<ApplicationData_UpdatePlanOptions>(19, _omitFieldNames ? '' : 'updateplanoptions', subBuilder: ApplicationData_UpdatePlanOptions.create)
|
||||
..aOM<ApplicationData_DownloadDone>(20, _omitFieldNames ? '' : 'downloaddone', subBuilder: ApplicationData_DownloadDone.create)
|
||||
..aOM<ApplicationData_UploadDone>(21, _omitFieldNames ? '' : 'uploaddone', subBuilder: ApplicationData_UploadDone.create)
|
||||
..aOM<ApplicationData_GetSignedPreKeyByUserId>(22, _omitFieldNames ? '' : 'getsignedprekeybyuserid', subBuilder: ApplicationData_GetSignedPreKeyByUserId.create)
|
||||
..aOM<ApplicationData_UpdateSignedPreKey>(23, _omitFieldNames ? '' : 'updatesignedprekey', subBuilder: ApplicationData_UpdateSignedPreKey.create)
|
||||
..aOM<ApplicationData_DeleteAccount>(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 {
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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 = {
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: api/error.proto
|
||||
// source: api/websocket/error.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: api/error.proto
|
||||
// source: api/websocket/error.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: api/error.proto
|
||||
// source: api/websocket/error.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: api/error.proto
|
||||
// source: api/websocket/error.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
|
|
@ -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<Response>(2, _omitFieldNames ? '' : 'response', subBuilder: Response.create)
|
||||
..aOM<NewMessage>(3, _omitFieldNames ? '' : 'newMessage', protoName: 'newMessage', subBuilder: NewMessage.create)
|
||||
..aOB(4, _omitFieldNames ? '' : 'RequestNewPreKeys', protoName: 'RequestNewPreKeys')
|
||||
..aOM<DownloadData>(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<DownloadData> createRepeated() => $pb.PbList<DownloadData>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static DownloadData getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DownloadData>(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,
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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',
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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<Result> getUploadToken(int recipientsCount) async {
|
||||
var get = ApplicationData_GetUploadToken()
|
||||
..recipientsCount = recipientsCount;
|
||||
var appData = ApplicationData()..getuploadtoken = get;
|
||||
var req = createClientToServerFromApplicationData(appData);
|
||||
return await sendRequestSync(req);
|
||||
}
|
||||
|
||||
Future<Result> getDownloadTokens(List<int> 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<Result> downloadDone(List<int> token) async {
|
||||
var get = ApplicationData_DownloadDone()..downloadToken = token;
|
||||
var appData = ApplicationData()..downloaddone = get;
|
||||
|
|
@ -468,21 +449,6 @@ class ApiService {
|
|||
return await sendRequestSync(req);
|
||||
}
|
||||
|
||||
Future<Result> uploadData(List<int> uploadToken, Uint8List data, int offset,
|
||||
List<int>? 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<Result> getUserData(String username) async {
|
||||
var get = ApplicationData_GetUserByUsername()..username = username;
|
||||
var appData = ApplicationData()..getuserbyusername = get;
|
||||
|
|
|
|||
|
|
@ -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<bool> 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<Uint8List> 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<bool>? videoHandler,
|
||||
|
|
@ -237,10 +230,12 @@ Future encryptAndPreUploadMediaFiles(
|
|||
state.encryptionKey = secretKey.bytes;
|
||||
state.encryptionNonce = xchacha20.newNonce();
|
||||
|
||||
final secretBox = await xchacha20.encrypt(
|
||||
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<int> contactIds,
|
||||
|
|
@ -318,6 +313,8 @@ Future finalizeUpload(int mediaUploadId, List<int> 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<bool> handleUploadDone(MediaUpload media) async {
|
||||
Result res = await apiService.getDownloadTokens(
|
||||
media.uploadTokens!.uploadToken, media.messageIds!.length);
|
||||
Future<bool> 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");
|
||||
}
|
||||
}
|
||||
Log.error("Upload done will be tried again when reconnected to server!");
|
||||
return false;
|
||||
}
|
||||
if (media.messageIds == null) return false;
|
||||
|
||||
Response_DownloadTokens tokens = res.value.downloadtokens;
|
||||
var token = MediaUploadTokens();
|
||||
token.uploadToken = media.uploadTokens!.uploadToken;
|
||||
token.downloadTokens = tokens.downloadTokens;
|
||||
List<Uint8List> downloadTokens =
|
||||
createDownloadTokens(media.messageIds!.length);
|
||||
|
||||
await twonlyDB.mediaUploadsDao.updateMediaUpload(
|
||||
media.mediaUploadId,
|
||||
MediaUploadsCompanion(
|
||||
uploadTokens: Value(token),
|
||||
List<TextMessage> 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,
|
||||
);
|
||||
return true;
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
Future<bool> handleMediaUpload(int mediaUploadId) async {
|
||||
Uint8List bytesToUpload = await readMediaFile(mediaUploadId, "encrypted");
|
||||
messagesOnSuccess.add(messageOnSuccess);
|
||||
}
|
||||
|
||||
final uploadRequest = UploadRequest(
|
||||
messagesOnSuccess: messagesOnSuccess,
|
||||
downloadTokens: downloadTokens,
|
||||
encryptedData: bytesToUpload,
|
||||
);
|
||||
|
||||
final uploadRequestBytes = uploadRequest.writeToBuffer();
|
||||
|
||||
final storage = FlutterSecureStorage();
|
||||
String? apiAuthToken = await storage.read(key: "api_auth_token");
|
||||
|
|
@ -445,11 +468,11 @@ Future<bool> 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,86 +480,7 @@ Future<bool> 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 = [];
|
||||
|
||||
await twonlyDB.mediaUploadsDao.updateMediaUpload(
|
||||
mediaUploadId,
|
||||
MediaUploadsCompanion(
|
||||
uploadTokens: Value(token),
|
||||
),
|
||||
);
|
||||
return true;
|
||||
}
|
||||
} catch (e) {
|
||||
Log.error("Exception during upload: $e");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Future<bool> handleNotifyReceiver(MediaUpload media) async {
|
||||
List<int> 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),
|
||||
),
|
||||
);
|
||||
}
|
||||
Log.info("Upload was success!");
|
||||
|
||||
await twonlyDB.mediaUploadsDao.updateMediaUpload(
|
||||
media.mediaUploadId,
|
||||
|
|
@ -544,7 +488,35 @@ Future<bool> handleNotifyReceiver(MediaUpload media) async {
|
|||
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");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Future<bool> compressVideoIfExists(int mediaUploadId) async {
|
||||
|
|
@ -562,8 +534,8 @@ Future<bool> compressVideoIfExists(int mediaUploadId) async {
|
|||
return false;
|
||||
}
|
||||
|
||||
return await Isolate.run(() async {
|
||||
MediaInfo? mediaInfo;
|
||||
|
||||
try {
|
||||
mediaInfo = await VideoCompress.compressVideo(
|
||||
videoOriginalFile.path,
|
||||
|
|
@ -596,6 +568,7 @@ Future<bool> compressVideoIfExists(int mediaUploadId) async {
|
|||
await mediaInfo.file!.delete();
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
/// --- helper functions ---
|
||||
|
|
@ -676,3 +649,18 @@ String uint8ListToHex(List<int> bytes) {
|
|||
Uint8List hexToUint8List(String hex) => Uint8List.fromList(List<int>.generate(
|
||||
hex.length ~/ 2,
|
||||
(i) => int.parse(hex.substring(i * 2, i * 2 + 2), radix: 16)));
|
||||
|
||||
List<Uint8List> createDownloadTokens(int n) {
|
||||
final Random random = Random();
|
||||
List<Uint8List> 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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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<ShareImageEditorView> {
|
|||
);
|
||||
|
||||
/// then call the upload process in the background
|
||||
encryptAndPreUploadMediaFiles(
|
||||
encryptMediaFiles(
|
||||
mediaUploadId!,
|
||||
imageHandler,
|
||||
videoUploadHandler,
|
||||
|
|
|
|||
|
|
@ -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<ShareImageView> {
|
|||
final imageHandler =
|
||||
addOrModifyImageToUpload(widget.mediaUploadId, imageBytes!);
|
||||
// start with the pre upload of the media file...
|
||||
encryptAndPreUploadMediaFiles(
|
||||
encryptMediaFiles(
|
||||
widget.mediaUploadId, imageHandler, widget.videoUploadHandler);
|
||||
}
|
||||
setState(() {});
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Reference in a new issue