mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-05-25 03:42:13 +00:00
Merge pull request #401 from twonlyapp/rust_integration
Some checks failed
Publish on Github / build_and_publish (push) Has been cancelled
Some checks failed
Publish on Github / build_and_publish (push) Has been cancelled
- New: Feature to find friends without a phone number
- New: The verification state is now transferred to the scanned user
- New: Registration setup to configure the most important configurations
- Improved: Show ⌛ instead of the flame icon when it is about to expire
- Improved: FAQ is now in the app rather than opening in the browser
- Improved: Videos can now be paused
- Improved: Lock to record hands-free
- Fix: Many smaller issues
This commit is contained in:
commit
ddc7c00c7d
472 changed files with 78512 additions and 11817 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -47,3 +47,5 @@ app.*.map.json
|
|||
/android/app/.cxx/
|
||||
android/.kotlin/
|
||||
devtools_options.yaml
|
||||
rust/target
|
||||
rust_dependencies/target
|
||||
11
CHANGELOG.md
11
CHANGELOG.md
|
|
@ -1,5 +1,16 @@
|
|||
# Changelog
|
||||
|
||||
## 0.2.0
|
||||
|
||||
- New: Feature to find friends without a phone number
|
||||
- New: The verification state is now transferred to the scanned user
|
||||
- New: Registration setup to configure the most important configurations
|
||||
- Improved: Show ⌛ instead of the flame icon when it is about to expire
|
||||
- Improved: FAQ is now in the app rather than opening in the browser
|
||||
- Improved: Videos can now be paused
|
||||
- Improved: Lock to record hands-free
|
||||
- Fix: Many smaller issues
|
||||
|
||||
## 0.1.8
|
||||
|
||||
- Improved: Typos and grammar issues thanks to @AlbertUnruh
|
||||
|
|
|
|||
|
|
@ -16,9 +16,11 @@ analyzer:
|
|||
- "lib/src/model/protobuf/**"
|
||||
- "lib/src/model/protobuf/api/websocket/**"
|
||||
- "lib/generated/**"
|
||||
- "lib/core/**"
|
||||
- "lib/src/localization/**"
|
||||
- "dependencies/**"
|
||||
- "pubspec.yaml"
|
||||
- "*.arb"
|
||||
- "**.arb"
|
||||
- "test/drift/**"
|
||||
- "**.g.dart"
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
<!-- Set the background color to the primary color so the white logo is visible -->
|
||||
<item name="android:colorBackground">#FF57CC99</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
|
|
|
|||
1
assets/animated_icons/hourglass.json
Normal file
1
assets/animated_icons/hourglass.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
Subproject commit 24d048b4abbe5c266b09965cc6f3ebdf83f97855
|
||||
Subproject commit e0c6a9617a20a8d6bc1ad4c6b9c2e229feb5f37a
|
||||
3
flutter_rust_bridge.yaml
Normal file
3
flutter_rust_bridge.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
rust_input: crate::bridge
|
||||
rust_root: rust
|
||||
dart_output: lib/core
|
||||
31
integration_test/api_service.test.dart
Normal file
31
integration_test/api_service.test.dart
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:integration_test/integration_test.dart';
|
||||
import 'package:twonly/core/frb_generated.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/services/background/callback_dispatcher.background.dart';
|
||||
|
||||
void main() {
|
||||
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||
setUpAll(() async => RustLib.init());
|
||||
|
||||
test('Can initialize twonlyDB and connect to api server', () async {
|
||||
// Initialize global variables
|
||||
await initBackgroundExecution();
|
||||
|
||||
// Try to connect to the API server
|
||||
final connected = await apiService.connect();
|
||||
|
||||
// Print out the result or test it
|
||||
expect(connected, isA<bool>());
|
||||
|
||||
// We can also check if it's connected
|
||||
// Depending on your test environment, this might be true or false
|
||||
// if the server is unreachable without further setup
|
||||
// expect(apiService.isConnected, isA<bool>());
|
||||
|
||||
// Close the connection after the test
|
||||
if (apiService.isConnected) {
|
||||
await apiService.close(() {});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -230,12 +230,12 @@ struct PushKey: Sendable {
|
|||
// MARK: - Code below here is support for the SwiftProtobuf runtime.
|
||||
|
||||
extension PushKind: SwiftProtobuf._ProtoNameProviding {
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0reaction\0\u{1}response\0\u{1}text\0\u{1}video\0\u{1}twonly\0\u{1}image\0\u{1}contactRequest\0\u{1}acceptRequest\0\u{1}storedMediaFile\0\u{1}testNotification\0\u{1}reopenedMedia\0\u{1}reactionToVideo\0\u{1}reactionToText\0\u{1}reactionToImage\0\u{1}reactionToAudio\0\u{1}addedToGroup\0\u{1}audio\0")
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0REACTION\0\u{1}RESPONSE\0\u{1}TEXT\0\u{1}VIDEO\0\u{1}TWONLY\0\u{1}IMAGE\0\u{1}CONTACT_REQUEST\0\u{1}ACCEPT_REQUEST\0\u{1}STORED_MEDIA_FILE\0\u{1}TEST_NOTIFICATION\0\u{1}REOPENED_MEDIA\0\u{1}REACTION_TO_VIDEO\0\u{1}REACTION_TO_TEXT\0\u{1}REACTION_TO_IMAGE\0\u{1}REACTION_TO_AUDIO\0\u{1}ADDED_TO_GROUP\0\u{1}AUDIO\0")
|
||||
}
|
||||
|
||||
extension EncryptedPushNotification: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = "EncryptedPushNotification"
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}keyId\0\u{1}nonce\0\u{1}ciphertext\0\u{1}mac\0")
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{3}key_id\0\u{1}nonce\0\u{1}ciphertext\0\u{1}mac\0")
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
|
|
@ -280,7 +280,7 @@ extension EncryptedPushNotification: SwiftProtobuf.Message, SwiftProtobuf._Messa
|
|||
|
||||
extension PushNotification: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = "PushNotification"
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}kind\0\u{1}messageId\0\u{1}additionalContent\0")
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}kind\0\u{3}message_id\0\u{3}additional_content\0")
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
|
|
@ -354,7 +354,7 @@ extension PushUsers: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementation
|
|||
|
||||
extension PushUser: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = "PushUser"
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}userId\0\u{1}displayName\0\u{1}blocked\0\u{1}lastMessageId\0\u{1}pushKeys\0")
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{3}user_id\0\u{3}display_name\0\u{1}blocked\0\u{3}last_message_id\0\u{3}push_keys\0")
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
|
|
@ -408,7 +408,7 @@ extension PushUser: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationB
|
|||
|
||||
extension PushKey: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = "PushKey"
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}id\0\u{1}key\0\u{1}createdAtUnixTimestamp\0")
|
||||
static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}id\0\u{1}key\0\u{3}created_at_unix_timestamp\0")
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
|
|
|
|||
|
|
@ -231,6 +231,8 @@ PODS:
|
|||
- in_app_purchase_storekit (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- integration_test (0.0.1):
|
||||
- Flutter
|
||||
- libwebp (1.5.0):
|
||||
- libwebp/demux (= 1.5.0)
|
||||
- libwebp/mux (= 1.5.0)
|
||||
|
|
@ -274,8 +276,6 @@ PODS:
|
|||
- nanopb/encode (= 3.30910.0)
|
||||
- nanopb/decode (3.30910.0)
|
||||
- nanopb/encode (3.30910.0)
|
||||
- no_screenshot (0.10.0):
|
||||
- Flutter
|
||||
- package_info_plus (0.4.5):
|
||||
- Flutter
|
||||
- permission_handler_apple (9.3.0):
|
||||
|
|
@ -285,6 +285,12 @@ PODS:
|
|||
- PromisesObjC (2.4.0)
|
||||
- restart_app (1.7.3):
|
||||
- Flutter
|
||||
- rust_lib_twonly (0.0.1):
|
||||
- Flutter
|
||||
- screen_protector (1.5.1):
|
||||
- Flutter
|
||||
- ScreenProtectorKit (= 1.5.1)
|
||||
- ScreenProtectorKit (1.5.1)
|
||||
- SDWebImage (5.21.7):
|
||||
- SDWebImage/Core (= 5.21.7)
|
||||
- SDWebImage/Core (5.21.7)
|
||||
|
|
@ -304,31 +310,6 @@ PODS:
|
|||
- sqflite_darwin (0.0.4):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- sqlite3 (3.52.0):
|
||||
- sqlite3/common (= 3.52.0)
|
||||
- sqlite3/common (3.52.0)
|
||||
- sqlite3/dbstatvtab (3.52.0):
|
||||
- sqlite3/common
|
||||
- sqlite3/fts5 (3.52.0):
|
||||
- sqlite3/common
|
||||
- sqlite3/math (3.52.0):
|
||||
- sqlite3/common
|
||||
- sqlite3/perf-threadsafe (3.52.0):
|
||||
- sqlite3/common
|
||||
- sqlite3/rtree (3.52.0):
|
||||
- sqlite3/common
|
||||
- sqlite3/session (3.52.0):
|
||||
- sqlite3/common
|
||||
- sqlite3_flutter_libs (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- sqlite3 (~> 3.52.0)
|
||||
- sqlite3/dbstatvtab
|
||||
- sqlite3/fts5
|
||||
- sqlite3/math
|
||||
- sqlite3/perf-threadsafe
|
||||
- sqlite3/rtree
|
||||
- sqlite3/session
|
||||
- SwiftProtobuf (1.36.1)
|
||||
- SwiftyGif (5.4.5)
|
||||
- url_launcher_ios (0.0.1):
|
||||
|
|
@ -370,17 +351,18 @@ DEPENDENCIES:
|
|||
- GoogleUtilities
|
||||
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||
- in_app_purchase_storekit (from `.symlinks/plugins/in_app_purchase_storekit/darwin`)
|
||||
- integration_test (from `.symlinks/plugins/integration_test/ios`)
|
||||
- local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`)
|
||||
- no_screenshot (from `.symlinks/plugins/no_screenshot/ios`)
|
||||
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
|
||||
- pro_video_editor (from `.symlinks/plugins/pro_video_editor/ios`)
|
||||
- restart_app (from `.symlinks/plugins/restart_app/ios`)
|
||||
- rust_lib_twonly (from `.symlinks/plugins/rust_lib_twonly/ios`)
|
||||
- screen_protector (from `.symlinks/plugins/screen_protector/ios`)
|
||||
- sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`)
|
||||
- share_plus (from `.symlinks/plugins/share_plus/ios`)
|
||||
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
|
||||
- sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
|
||||
- sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/darwin`)
|
||||
- SwiftProtobuf
|
||||
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
|
||||
|
|
@ -412,10 +394,10 @@ SPEC REPOS:
|
|||
- MLKitVision
|
||||
- nanopb
|
||||
- PromisesObjC
|
||||
- ScreenProtectorKit
|
||||
- SDWebImage
|
||||
- SDWebImageWebPCoder
|
||||
- Sentry
|
||||
- sqlite3
|
||||
- SwiftProtobuf
|
||||
- SwiftyGif
|
||||
|
||||
|
|
@ -470,10 +452,10 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/image_picker_ios/ios"
|
||||
in_app_purchase_storekit:
|
||||
:path: ".symlinks/plugins/in_app_purchase_storekit/darwin"
|
||||
integration_test:
|
||||
:path: ".symlinks/plugins/integration_test/ios"
|
||||
local_auth_darwin:
|
||||
:path: ".symlinks/plugins/local_auth_darwin/darwin"
|
||||
no_screenshot:
|
||||
:path: ".symlinks/plugins/no_screenshot/ios"
|
||||
package_info_plus:
|
||||
:path: ".symlinks/plugins/package_info_plus/ios"
|
||||
permission_handler_apple:
|
||||
|
|
@ -482,6 +464,10 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/pro_video_editor/ios"
|
||||
restart_app:
|
||||
:path: ".symlinks/plugins/restart_app/ios"
|
||||
rust_lib_twonly:
|
||||
:path: ".symlinks/plugins/rust_lib_twonly/ios"
|
||||
screen_protector:
|
||||
:path: ".symlinks/plugins/screen_protector/ios"
|
||||
sentry_flutter:
|
||||
:path: ".symlinks/plugins/sentry_flutter/ios"
|
||||
share_plus:
|
||||
|
|
@ -490,8 +476,6 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
|
||||
sqflite_darwin:
|
||||
:path: ".symlinks/plugins/sqflite_darwin/darwin"
|
||||
sqlite3_flutter_libs:
|
||||
:path: ".symlinks/plugins/sqlite3_flutter_libs/darwin"
|
||||
url_launcher_ios:
|
||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||
video_player_avfoundation:
|
||||
|
|
@ -540,6 +524,7 @@ SPEC CHECKSUMS:
|
|||
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
|
||||
image_picker_ios: e0ece4aa2a75771a7de3fa735d26d90817041326
|
||||
in_app_purchase_storekit: 22cca7d08eebca9babdf4d07d0baccb73325d3c8
|
||||
integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e
|
||||
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
|
||||
local_auth_darwin: c3ee6cce0a8d56be34c8ccb66ba31f7f180aaebb
|
||||
Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d
|
||||
|
|
@ -549,12 +534,14 @@ SPEC CHECKSUMS:
|
|||
MLKitFaceDetection: 32549f1e70e6e7731261bf9cea2b74095e2531cb
|
||||
MLKitVision: 39a5a812db83c4a0794445088e567f3631c11961
|
||||
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
|
||||
no_screenshot: 03c8ac6586f9652cd45e3d12d74e5992256403ac
|
||||
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
|
||||
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
|
||||
pro_video_editor: 44ef9a6d48dbd757ed428cf35396dd05f35c7830
|
||||
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||
restart_app: 0714144901e260eae68f7afc2fc4aacc1a323ad2
|
||||
rust_lib_twonly: 73165b05d0cda50db45852db63f49caa7f319520
|
||||
screen_protector: 18c6aca2dc5d2a832f6787a5318f97f03e9d3150
|
||||
ScreenProtectorKit: 6ceb3e0808341a9bc15d175bff40dfdd4b32da71
|
||||
SDWebImage: e9fc87c1aab89a8ab1bbd74eba378c6f53be8abf
|
||||
SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377
|
||||
Sentry: d587a8fe91ca13503ecd69a1905f3e8a0fcf61be
|
||||
|
|
@ -562,8 +549,6 @@ SPEC CHECKSUMS:
|
|||
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
|
||||
shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb
|
||||
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
|
||||
sqlite3: a51c07cf16e023d6c48abd5e5791a61a47354921
|
||||
sqlite3_flutter_libs: b3e120efe9a82017e5552a620f696589ed4f62ab
|
||||
SwiftProtobuf: 9e106a71456f4d3f6a3b0c8fd87ef0be085efc38
|
||||
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
||||
url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b
|
||||
|
|
|
|||
|
|
@ -20,6 +20,10 @@ import workmanager_apple
|
|||
|
||||
WorkmanagerDebug.setCurrent(LoggingDebugHandler())
|
||||
|
||||
WorkmanagerPlugin.setPluginRegistrantCallback { registry in
|
||||
GeneratedPluginRegistrant.register(with: registry)
|
||||
}
|
||||
|
||||
WorkmanagerPlugin.registerPeriodicTask(
|
||||
withIdentifier: "eu.twonly.periodic_task",
|
||||
frequency: NSNumber(value: 20 * 60)
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="backgroundColor" red="0.341176" green="0.8" blue="0.6" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
|
||||
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
|
||||
|
|
|
|||
152
lib/app.dart
152
lib/app.dart
|
|
@ -1,118 +1,105 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/localization/generated/app_localizations.dart';
|
||||
import 'package:twonly/src/providers/connection.provider.dart';
|
||||
import 'package:twonly/src/providers/purchases.provider.dart';
|
||||
import 'package:twonly/src/providers/routing.provider.dart';
|
||||
import 'package:twonly/src/providers/settings.provider.dart';
|
||||
import 'package:twonly/src/services/subscription.service.dart';
|
||||
import 'package:twonly/src/themes/dark.dart';
|
||||
import 'package:twonly/src/themes/light.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
import 'package:twonly/src/utils/pow.dart';
|
||||
import 'package:twonly/src/utils/storage.dart';
|
||||
import 'package:twonly/src/views/components/app_outdated.dart';
|
||||
import 'package:twonly/src/views/home.view.dart';
|
||||
import 'package:twonly/src/views/onboarding/onboarding.view.dart';
|
||||
import 'package:twonly/src/views/onboarding/register.view.dart';
|
||||
import 'package:twonly/src/views/settings/backup/setup_backup.view.dart';
|
||||
import 'package:twonly/src/views/unlock_twonly.view.dart';
|
||||
import 'package:twonly/src/visual/components/app_outdated.comp.dart';
|
||||
import 'package:twonly/src/visual/themes/dark.dart';
|
||||
import 'package:twonly/src/visual/themes/light.dart';
|
||||
import 'package:twonly/src/visual/views/critical_error.view.dart';
|
||||
import 'package:twonly/src/visual/views/home.view.dart';
|
||||
import 'package:twonly/src/visual/views/onboarding/onboarding.view.dart';
|
||||
import 'package:twonly/src/visual/views/onboarding/register.view.dart';
|
||||
import 'package:twonly/src/visual/views/onboarding/setup.view.dart';
|
||||
import 'package:twonly/src/visual/views/unlock_twonly.view.dart';
|
||||
|
||||
class App extends StatefulWidget {
|
||||
const App({super.key});
|
||||
const App({required this.storageError, super.key});
|
||||
final bool storageError;
|
||||
@override
|
||||
State<App> createState() => _AppState();
|
||||
}
|
||||
|
||||
class _AppState extends State<App> with WidgetsBindingObserver {
|
||||
bool wasPaused = false;
|
||||
bool _wasPaused = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
globalIsAppInBackground = false;
|
||||
AppState.isAppInBackground = false;
|
||||
WidgetsBinding.instance.addObserver(this);
|
||||
|
||||
globalCallbackConnectionState = ({required isConnected}) async {
|
||||
await context.read<CustomChangeProvider>().updateConnectionState(
|
||||
isConnected,
|
||||
);
|
||||
await setUserPlan();
|
||||
};
|
||||
|
||||
globalCallbackUpdatePlan = (plan) {
|
||||
context.read<PurchasesProvider>().updatePlan(plan);
|
||||
};
|
||||
|
||||
unawaited(initAsync());
|
||||
}
|
||||
|
||||
Future<void> setUserPlan() async {
|
||||
final user = await getUser();
|
||||
if (user != null && mounted) {
|
||||
if (mounted) {
|
||||
context.read<PurchasesProvider>().updatePlan(
|
||||
planFromString(user.subscriptionPlan),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> initAsync() async {
|
||||
await setUserPlan();
|
||||
await apiService.connect();
|
||||
await apiService.listenToNetworkChanges();
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||
super.didChangeAppLifecycleState(state);
|
||||
if (state == AppLifecycleState.resumed) {
|
||||
if (wasPaused) {
|
||||
globalIsAppInBackground = false;
|
||||
if (_wasPaused) {
|
||||
AppState.isAppInBackground = false;
|
||||
twonlyDB.markUpdated();
|
||||
unawaited(apiService.connect());
|
||||
}
|
||||
} else if (state == AppLifecycleState.paused) {
|
||||
wasPaused = true;
|
||||
globalIsAppInBackground = true;
|
||||
_wasPaused = true;
|
||||
AppState.isAppInBackground = true;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
WidgetsBinding.instance.removeObserver(this);
|
||||
globalCallbackConnectionState = ({required isConnected}) {};
|
||||
globalCallbackUpdatePlan = (planId) {};
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ListenableBuilder(
|
||||
listenable: context.watch<SettingsChangeProvider>(),
|
||||
listenable: context.read<SettingsChangeProvider>(),
|
||||
builder: (context, child) {
|
||||
const localizationsDelegates = [
|
||||
AppLocalizations.delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
];
|
||||
|
||||
const supportedLocales = [
|
||||
Locale('en', ''),
|
||||
Locale('de', ''),
|
||||
];
|
||||
|
||||
if (widget.storageError) {
|
||||
return MaterialApp(
|
||||
scaffoldMessengerKey: AppGlobalKeys.scaffoldMessengerKey,
|
||||
localizationsDelegates: localizationsDelegates,
|
||||
debugShowCheckedModeBanner: false,
|
||||
supportedLocales: supportedLocales,
|
||||
title: 'twonly',
|
||||
theme: lightTheme,
|
||||
darkTheme: darkTheme,
|
||||
themeMode: context.read<SettingsChangeProvider>().themeMode,
|
||||
home: const CriticalErrorView(),
|
||||
);
|
||||
}
|
||||
|
||||
return MaterialApp.router(
|
||||
routerConfig: routerProvider,
|
||||
scaffoldMessengerKey: globalRootScaffoldMessengerKey,
|
||||
localizationsDelegates: const [
|
||||
AppLocalizations.delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
],
|
||||
scaffoldMessengerKey: AppGlobalKeys.scaffoldMessengerKey,
|
||||
localizationsDelegates: localizationsDelegates,
|
||||
debugShowCheckedModeBanner: false,
|
||||
supportedLocales: const [
|
||||
Locale('en', ''),
|
||||
Locale('de', ''),
|
||||
],
|
||||
supportedLocales: supportedLocales,
|
||||
title: 'twonly',
|
||||
theme: lightTheme,
|
||||
darkTheme: darkTheme,
|
||||
themeMode: context.watch<SettingsChangeProvider>().themeMode,
|
||||
themeMode: context.read<SettingsChangeProvider>().themeMode,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
|
@ -130,11 +117,8 @@ class AppMainWidget extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _AppMainWidgetState extends State<AppMainWidget> {
|
||||
bool _isUserCreated = false;
|
||||
bool _showDatabaseMigration = false;
|
||||
bool _showOnboarding = true;
|
||||
bool _isLoaded = false;
|
||||
bool _skipBackup = false;
|
||||
bool _isTwonlyLocked = true;
|
||||
|
||||
(Future<int>?, bool) _proofOfWork = (null, false);
|
||||
|
|
@ -146,25 +130,18 @@ class _AppMainWidgetState extends State<AppMainWidget> {
|
|||
}
|
||||
|
||||
Future<void> initAsync() async {
|
||||
_isUserCreated = await isUserCreated();
|
||||
|
||||
if (_isUserCreated) {
|
||||
if (userService.isUserCreated) {
|
||||
await FirebaseMessaging.instance.requestPermission();
|
||||
if (_isTwonlyLocked) {
|
||||
// do not change in case twonly was already unlocked at some point
|
||||
_isTwonlyLocked = gUser.screenLockEnabled;
|
||||
_isTwonlyLocked = userService.currentUser.screenLockEnabled;
|
||||
}
|
||||
if (gUser.appVersion < 62) {
|
||||
_showDatabaseMigration = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!_isUserCreated && !_showDatabaseMigration) {
|
||||
} else {
|
||||
// This means the user is in the onboarding screen, so start with the Proof of Work.
|
||||
|
||||
final (proof, disabled) = await apiService.getProofOfWork();
|
||||
if (proof != null) {
|
||||
Log.info('Starting with proof of work calculation.');
|
||||
// Starting with the proof of work.
|
||||
_proofOfWork = (
|
||||
calculatePoW(proof.prefix, proof.difficulty.toInt()),
|
||||
false,
|
||||
|
|
@ -187,21 +164,20 @@ class _AppMainWidgetState extends State<AppMainWidget> {
|
|||
|
||||
late Widget child;
|
||||
|
||||
if (_showDatabaseMigration) {
|
||||
child = const Center(child: Text('Please reinstall twonly.'));
|
||||
} else if (_isUserCreated) {
|
||||
if (userService.isUserCreated) {
|
||||
if (_isTwonlyLocked) {
|
||||
child = UnlockTwonlyView(
|
||||
callbackOnSuccess: () => setState(() {
|
||||
_isTwonlyLocked = false;
|
||||
}),
|
||||
);
|
||||
} else if (gUser.twonlySafeBackup == null && !_skipBackup) {
|
||||
child = SetupBackupView(
|
||||
callBack: () {
|
||||
_skipBackup = true;
|
||||
setState(() {});
|
||||
},
|
||||
} else if (!userService.currentUser.skipSetupPages &&
|
||||
userService.currentUser.currentSetupPage != null) {
|
||||
// This will only be shown in case the user have not skipped
|
||||
child = SetupView(
|
||||
onUpdate: () => setState(() {
|
||||
// userService.currentUser has updated...
|
||||
}),
|
||||
);
|
||||
} else {
|
||||
child = HomeView(
|
||||
|
|
@ -224,7 +200,7 @@ class _AppMainWidgetState extends State<AppMainWidget> {
|
|||
return Stack(
|
||||
children: [
|
||||
child,
|
||||
const AppOutdated(),
|
||||
const AppOutdatedComp(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
|
|
|||
97
lib/core/bridge.dart
Normal file
97
lib/core/bridge.dart
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
// This file is automatically generated, so please do not edit it.
|
||||
// @generated by `flutter_rust_bridge`@ 2.12.0.
|
||||
|
||||
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
||||
|
||||
import 'frb_generated.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||
|
||||
// These functions are ignored because they are not marked as `pub`: `get_twonly_flutter`
|
||||
// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `TwonlyFlutter`
|
||||
|
||||
Future<void> initializeTwonlyFlutter({required TwonlyConfig config}) =>
|
||||
RustLib.instance.api.crateBridgeInitializeTwonlyFlutter(config: config);
|
||||
|
||||
class AnnouncedUser {
|
||||
final PlatformInt64 userId;
|
||||
final Uint8List publicKey;
|
||||
final PlatformInt64 publicId;
|
||||
|
||||
const AnnouncedUser({
|
||||
required this.userId,
|
||||
required this.publicKey,
|
||||
required this.publicId,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode => userId.hashCode ^ publicKey.hashCode ^ publicId.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is AnnouncedUser &&
|
||||
runtimeType == other.runtimeType &&
|
||||
userId == other.userId &&
|
||||
publicKey == other.publicKey &&
|
||||
publicId == other.publicId;
|
||||
}
|
||||
|
||||
class OtherPromotion {
|
||||
final int promotionId;
|
||||
final PlatformInt64 publicId;
|
||||
final PlatformInt64 fromContactId;
|
||||
final int threshold;
|
||||
final Uint8List announcementShare;
|
||||
final PlatformInt64? publicKeyVerifiedTimestamp;
|
||||
|
||||
const OtherPromotion({
|
||||
required this.promotionId,
|
||||
required this.publicId,
|
||||
required this.fromContactId,
|
||||
required this.threshold,
|
||||
required this.announcementShare,
|
||||
this.publicKeyVerifiedTimestamp,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
promotionId.hashCode ^
|
||||
publicId.hashCode ^
|
||||
fromContactId.hashCode ^
|
||||
threshold.hashCode ^
|
||||
announcementShare.hashCode ^
|
||||
publicKeyVerifiedTimestamp.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is OtherPromotion &&
|
||||
runtimeType == other.runtimeType &&
|
||||
promotionId == other.promotionId &&
|
||||
publicId == other.publicId &&
|
||||
fromContactId == other.fromContactId &&
|
||||
threshold == other.threshold &&
|
||||
announcementShare == other.announcementShare &&
|
||||
publicKeyVerifiedTimestamp == other.publicKeyVerifiedTimestamp;
|
||||
}
|
||||
|
||||
class TwonlyConfig {
|
||||
final String databasePath;
|
||||
final String dataDirectory;
|
||||
|
||||
const TwonlyConfig({
|
||||
required this.databasePath,
|
||||
required this.dataDirectory,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode => databasePath.hashCode ^ dataDirectory.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is TwonlyConfig &&
|
||||
runtimeType == other.runtimeType &&
|
||||
databasePath == other.databasePath &&
|
||||
dataDirectory == other.dataDirectory;
|
||||
}
|
||||
61
lib/core/bridge/callbacks.dart
Normal file
61
lib/core/bridge/callbacks.dart
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
// This file is automatically generated, so please do not edit it.
|
||||
// @generated by `flutter_rust_bridge`@ 2.12.0.
|
||||
|
||||
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
||||
|
||||
import '../bridge.dart';
|
||||
import '../frb_generated.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||
|
||||
// These functions are ignored because they are not marked as `pub`: `get_callbacks`
|
||||
// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `FlutterCallbacks`, `Logging`, `UserDiscoveryCallbacks`
|
||||
|
||||
Future<void> initFlutterCallbacks({
|
||||
required FutureOr<RustStreamSink<String>> Function() loggingGetStreamSink,
|
||||
required FutureOr<Uint8List?> Function(Uint8List) userDiscoverySignData,
|
||||
required FutureOr<bool> Function(Uint8List, Uint8List, Uint8List)
|
||||
userDiscoveryVerifySignature,
|
||||
required FutureOr<bool> Function(PlatformInt64, Uint8List)
|
||||
userDiscoveryVerifyStoredPubkey,
|
||||
required FutureOr<bool> Function(List<Uint8List>) userDiscoverySetShares,
|
||||
required FutureOr<Uint8List?> Function(PlatformInt64)
|
||||
userDiscoveryGetShareForContact,
|
||||
required FutureOr<bool> Function(PlatformInt64, PlatformInt64, Uint8List)
|
||||
userDiscoveryPushOwnPromotionAndClearOldVersion,
|
||||
required FutureOr<List<Uint8List>?> Function(PlatformInt64)
|
||||
userDiscoveryGetOwnPromotionsAfterVersion,
|
||||
required FutureOr<bool> Function(OtherPromotion)
|
||||
userDiscoveryStoreOtherPromotion,
|
||||
required FutureOr<List<OtherPromotion>?> Function(PlatformInt64)
|
||||
userDiscoveryGetOtherPromotionsByPublicId,
|
||||
required FutureOr<AnnouncedUser?> Function(PlatformInt64)
|
||||
userDiscoveryGetAnnouncedUserByPublicId,
|
||||
required FutureOr<Uint8List?> Function(PlatformInt64)
|
||||
userDiscoveryGetContactVersion,
|
||||
required FutureOr<bool> Function(PlatformInt64, Uint8List)
|
||||
userDiscoverySetContactVersion,
|
||||
required FutureOr<bool> Function(PlatformInt64, AnnouncedUser, PlatformInt64?)
|
||||
userDiscoveryPushNewUserRelation,
|
||||
required FutureOr<Uint8List?> Function(PlatformInt64)
|
||||
userDiscoveryGetContactPromotion,
|
||||
}) => RustLib.instance.api.crateBridgeCallbacksInitFlutterCallbacks(
|
||||
loggingGetStreamSink: loggingGetStreamSink,
|
||||
userDiscoverySignData: userDiscoverySignData,
|
||||
userDiscoveryVerifySignature: userDiscoveryVerifySignature,
|
||||
userDiscoveryVerifyStoredPubkey: userDiscoveryVerifyStoredPubkey,
|
||||
userDiscoverySetShares: userDiscoverySetShares,
|
||||
userDiscoveryGetShareForContact: userDiscoveryGetShareForContact,
|
||||
userDiscoveryPushOwnPromotionAndClearOldVersion:
|
||||
userDiscoveryPushOwnPromotionAndClearOldVersion,
|
||||
userDiscoveryGetOwnPromotionsAfterVersion:
|
||||
userDiscoveryGetOwnPromotionsAfterVersion,
|
||||
userDiscoveryStoreOtherPromotion: userDiscoveryStoreOtherPromotion,
|
||||
userDiscoveryGetOtherPromotionsByPublicId:
|
||||
userDiscoveryGetOtherPromotionsByPublicId,
|
||||
userDiscoveryGetAnnouncedUserByPublicId:
|
||||
userDiscoveryGetAnnouncedUserByPublicId,
|
||||
userDiscoveryGetContactVersion: userDiscoveryGetContactVersion,
|
||||
userDiscoverySetContactVersion: userDiscoverySetContactVersion,
|
||||
userDiscoveryPushNewUserRelation: userDiscoveryPushNewUserRelation,
|
||||
userDiscoveryGetContactPromotion: userDiscoveryGetContactPromotion,
|
||||
);
|
||||
73
lib/core/bridge/wrapper/user_discovery.dart
Normal file
73
lib/core/bridge/wrapper/user_discovery.dart
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
// This file is automatically generated, so please do not edit it.
|
||||
// @generated by `flutter_rust_bridge`@ 2.12.0.
|
||||
|
||||
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
||||
|
||||
import '../../frb_generated.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||
|
||||
class FlutterUserDiscovery {
|
||||
const FlutterUserDiscovery();
|
||||
|
||||
static Future<Uint8List> getCurrentVersion() => RustLib.instance.api
|
||||
.crateBridgeWrapperUserDiscoveryFlutterUserDiscoveryGetCurrentVersion();
|
||||
|
||||
static Future<List<Uint8List>> getNewMessages({
|
||||
required PlatformInt64 contactId,
|
||||
required List<int> receivedVersion,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeWrapperUserDiscoveryFlutterUserDiscoveryGetNewMessages(
|
||||
contactId: contactId,
|
||||
receivedVersion: receivedVersion,
|
||||
);
|
||||
|
||||
static Future<void> handleNewMessages({
|
||||
required PlatformInt64 contactId,
|
||||
PlatformInt64? publicKeyVerifiedTimestamp,
|
||||
required List<Uint8List> messages,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeWrapperUserDiscoveryFlutterUserDiscoveryHandleNewMessages(
|
||||
contactId: contactId,
|
||||
publicKeyVerifiedTimestamp: publicKeyVerifiedTimestamp,
|
||||
messages: messages,
|
||||
);
|
||||
|
||||
static Future<void> initializeOrUpdate({
|
||||
required int threshold,
|
||||
required PlatformInt64 userId,
|
||||
required List<int> publicKey,
|
||||
required bool sharePromotion,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeWrapperUserDiscoveryFlutterUserDiscoveryInitializeOrUpdate(
|
||||
threshold: threshold,
|
||||
userId: userId,
|
||||
publicKey: publicKey,
|
||||
sharePromotion: sharePromotion,
|
||||
);
|
||||
|
||||
static Future<Uint8List?> shouldRequestNewMessages({
|
||||
required PlatformInt64 contactId,
|
||||
required List<int> version,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeWrapperUserDiscoveryFlutterUserDiscoveryShouldRequestNewMessages(
|
||||
contactId: contactId,
|
||||
version: version,
|
||||
);
|
||||
|
||||
static Future<void> updateVerificationStateForUser({
|
||||
required PlatformInt64 contactId,
|
||||
PlatformInt64? publicKeyVerifiedTimestamp,
|
||||
}) => RustLib.instance.api
|
||||
.crateBridgeWrapperUserDiscoveryFlutterUserDiscoveryUpdateVerificationStateForUser(
|
||||
contactId: contactId,
|
||||
publicKeyVerifiedTimestamp: publicKeyVerifiedTimestamp,
|
||||
);
|
||||
|
||||
@override
|
||||
int get hashCode => 0;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is FlutterUserDiscovery && runtimeType == other.runtimeType;
|
||||
}
|
||||
2014
lib/core/frb_generated.dart
Normal file
2014
lib/core/frb_generated.dart
Normal file
File diff suppressed because it is too large
Load diff
503
lib/core/frb_generated.io.dart
Normal file
503
lib/core/frb_generated.io.dart
Normal file
|
|
@ -0,0 +1,503 @@
|
|||
// This file is automatically generated, so please do not edit it.
|
||||
// @generated by `flutter_rust_bridge`@ 2.12.0.
|
||||
|
||||
// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field
|
||||
|
||||
import 'bridge.dart';
|
||||
import 'bridge/callbacks.dart';
|
||||
import 'bridge/wrapper/user_discovery.dart';
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:ffi' as ffi;
|
||||
import 'frb_generated.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_io.dart';
|
||||
|
||||
abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
RustLibApiImplPlatform({
|
||||
required super.handler,
|
||||
required super.wire,
|
||||
required super.generalizedFrbRustBinding,
|
||||
required super.portManager,
|
||||
});
|
||||
|
||||
@protected
|
||||
AnyhowException dco_decode_AnyhowException(dynamic raw);
|
||||
|
||||
@protected
|
||||
FutureOr<RustStreamSink<String>> Function()
|
||||
dco_decode_DartFn_Inputs__Output_StreamSink_String_Sse_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<AnnouncedUser?> Function(PlatformInt64)
|
||||
dco_decode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<List<Uint8List>?> Function(PlatformInt64)
|
||||
dco_decode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<List<OtherPromotion>?> Function(PlatformInt64)
|
||||
dco_decode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<Uint8List?> Function(PlatformInt64)
|
||||
dco_decode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(PlatformInt64, AnnouncedUser, PlatformInt64?)
|
||||
dco_decode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(PlatformInt64, PlatformInt64, Uint8List)
|
||||
dco_decode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(PlatformInt64, Uint8List)
|
||||
dco_decode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(List<Uint8List>)
|
||||
dco_decode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<Uint8List?> Function(Uint8List)
|
||||
dco_decode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(Uint8List, Uint8List, Uint8List)
|
||||
dco_decode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(OtherPromotion)
|
||||
dco_decode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
Object dco_decode_DartOpaque(dynamic raw);
|
||||
|
||||
@protected
|
||||
RustStreamSink<String> dco_decode_StreamSink_String_Sse(dynamic raw);
|
||||
|
||||
@protected
|
||||
String dco_decode_String(dynamic raw);
|
||||
|
||||
@protected
|
||||
AnnouncedUser dco_decode_announced_user(dynamic raw);
|
||||
|
||||
@protected
|
||||
bool dco_decode_bool(dynamic raw);
|
||||
|
||||
@protected
|
||||
AnnouncedUser dco_decode_box_autoadd_announced_user(dynamic raw);
|
||||
|
||||
@protected
|
||||
PlatformInt64 dco_decode_box_autoadd_i_64(dynamic raw);
|
||||
|
||||
@protected
|
||||
TwonlyConfig dco_decode_box_autoadd_twonly_config(dynamic raw);
|
||||
|
||||
@protected
|
||||
FlutterUserDiscovery dco_decode_flutter_user_discovery(dynamic raw);
|
||||
|
||||
@protected
|
||||
PlatformInt64 dco_decode_i_64(dynamic raw);
|
||||
|
||||
@protected
|
||||
PlatformInt64 dco_decode_isize(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<Uint8List> dco_decode_list_list_prim_u_8_strict(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<OtherPromotion> dco_decode_list_other_promotion(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<int> dco_decode_list_prim_u_8_loose(dynamic raw);
|
||||
|
||||
@protected
|
||||
Uint8List dco_decode_list_prim_u_8_strict(dynamic raw);
|
||||
|
||||
@protected
|
||||
AnnouncedUser? dco_decode_opt_box_autoadd_announced_user(dynamic raw);
|
||||
|
||||
@protected
|
||||
PlatformInt64? dco_decode_opt_box_autoadd_i_64(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<Uint8List>? dco_decode_opt_list_list_prim_u_8_strict(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<OtherPromotion>? dco_decode_opt_list_other_promotion(dynamic raw);
|
||||
|
||||
@protected
|
||||
Uint8List? dco_decode_opt_list_prim_u_8_strict(dynamic raw);
|
||||
|
||||
@protected
|
||||
OtherPromotion dco_decode_other_promotion(dynamic raw);
|
||||
|
||||
@protected
|
||||
TwonlyConfig dco_decode_twonly_config(dynamic raw);
|
||||
|
||||
@protected
|
||||
int dco_decode_u_32(dynamic raw);
|
||||
|
||||
@protected
|
||||
int dco_decode_u_8(dynamic raw);
|
||||
|
||||
@protected
|
||||
void dco_decode_unit(dynamic raw);
|
||||
|
||||
@protected
|
||||
BigInt dco_decode_usize(dynamic raw);
|
||||
|
||||
@protected
|
||||
AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
Object sse_decode_DartOpaque(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
RustStreamSink<String> sse_decode_StreamSink_String_Sse(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
String sse_decode_String(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
AnnouncedUser sse_decode_announced_user(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
bool sse_decode_bool(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
AnnouncedUser sse_decode_box_autoadd_announced_user(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
PlatformInt64 sse_decode_box_autoadd_i_64(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
TwonlyConfig sse_decode_box_autoadd_twonly_config(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
FlutterUserDiscovery sse_decode_flutter_user_discovery(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
PlatformInt64 sse_decode_i_64(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
PlatformInt64 sse_decode_isize(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
List<Uint8List> sse_decode_list_list_prim_u_8_strict(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
List<OtherPromotion> sse_decode_list_other_promotion(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
List<int> sse_decode_list_prim_u_8_loose(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
AnnouncedUser? sse_decode_opt_box_autoadd_announced_user(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
PlatformInt64? sse_decode_opt_box_autoadd_i_64(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
List<Uint8List>? sse_decode_opt_list_list_prim_u_8_strict(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
List<OtherPromotion>? sse_decode_opt_list_other_promotion(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
Uint8List? sse_decode_opt_list_prim_u_8_strict(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
OtherPromotion sse_decode_other_promotion(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
TwonlyConfig sse_decode_twonly_config(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
int sse_decode_u_32(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
int sse_decode_u_8(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
void sse_decode_unit(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BigInt sse_decode_usize(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
int sse_decode_i_32(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_AnyhowException(
|
||||
AnyhowException self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_DartFn_Inputs__Output_StreamSink_String_Sse_AnyhowException(
|
||||
FutureOr<RustStreamSink<String>> Function() self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException(
|
||||
FutureOr<AnnouncedUser?> Function(PlatformInt64) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException(
|
||||
FutureOr<List<Uint8List>?> Function(PlatformInt64) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException(
|
||||
FutureOr<List<OtherPromotion>?> Function(PlatformInt64) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException(
|
||||
FutureOr<Uint8List?> Function(PlatformInt64) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(PlatformInt64, AnnouncedUser, PlatformInt64?) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(PlatformInt64, PlatformInt64, Uint8List) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(PlatformInt64, Uint8List) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(List<Uint8List>) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException(
|
||||
FutureOr<Uint8List?> Function(Uint8List) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(Uint8List, Uint8List, Uint8List) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(OtherPromotion) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_DartOpaque(Object self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_StreamSink_String_Sse(
|
||||
RustStreamSink<String> self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_String(String self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_announced_user(AnnouncedUser self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bool(bool self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_announced_user(
|
||||
AnnouncedUser self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_i_64(
|
||||
PlatformInt64 self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_twonly_config(
|
||||
TwonlyConfig self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_flutter_user_discovery(
|
||||
FlutterUserDiscovery self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_i_64(PlatformInt64 self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_isize(PlatformInt64 self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_list_list_prim_u_8_strict(
|
||||
List<Uint8List> self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_list_other_promotion(
|
||||
List<OtherPromotion> self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_list_prim_u_8_loose(List<int> self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_list_prim_u_8_strict(
|
||||
Uint8List self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_box_autoadd_announced_user(
|
||||
AnnouncedUser? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_box_autoadd_i_64(
|
||||
PlatformInt64? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_list_list_prim_u_8_strict(
|
||||
List<Uint8List>? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_list_other_promotion(
|
||||
List<OtherPromotion>? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_list_prim_u_8_strict(
|
||||
Uint8List? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_other_promotion(
|
||||
OtherPromotion self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_twonly_config(TwonlyConfig self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_u_32(int self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_u_8(int self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_unit(void self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_usize(BigInt self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_i_32(int self, SseSerializer serializer);
|
||||
}
|
||||
|
||||
// Section: wire_class
|
||||
|
||||
class RustLibWire implements BaseWire {
|
||||
factory RustLibWire.fromExternalLibrary(ExternalLibrary lib) =>
|
||||
RustLibWire(lib.ffiDynamicLibrary);
|
||||
|
||||
/// Holds the symbol lookup function.
|
||||
final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
|
||||
_lookup;
|
||||
|
||||
/// The symbols are looked up in [dynamicLibrary].
|
||||
RustLibWire(ffi.DynamicLibrary dynamicLibrary)
|
||||
: _lookup = dynamicLibrary.lookup;
|
||||
}
|
||||
503
lib/core/frb_generated.web.dart
Normal file
503
lib/core/frb_generated.web.dart
Normal file
|
|
@ -0,0 +1,503 @@
|
|||
// This file is automatically generated, so please do not edit it.
|
||||
// @generated by `flutter_rust_bridge`@ 2.12.0.
|
||||
|
||||
// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field
|
||||
|
||||
// Static analysis wrongly picks the IO variant, thus ignore this
|
||||
// ignore_for_file: argument_type_not_assignable
|
||||
|
||||
import 'bridge.dart';
|
||||
import 'bridge/callbacks.dart';
|
||||
import 'bridge/wrapper/user_discovery.dart';
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'frb_generated.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_web.dart';
|
||||
|
||||
abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
RustLibApiImplPlatform({
|
||||
required super.handler,
|
||||
required super.wire,
|
||||
required super.generalizedFrbRustBinding,
|
||||
required super.portManager,
|
||||
});
|
||||
|
||||
@protected
|
||||
AnyhowException dco_decode_AnyhowException(dynamic raw);
|
||||
|
||||
@protected
|
||||
FutureOr<RustStreamSink<String>> Function()
|
||||
dco_decode_DartFn_Inputs__Output_StreamSink_String_Sse_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<AnnouncedUser?> Function(PlatformInt64)
|
||||
dco_decode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<List<Uint8List>?> Function(PlatformInt64)
|
||||
dco_decode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<List<OtherPromotion>?> Function(PlatformInt64)
|
||||
dco_decode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<Uint8List?> Function(PlatformInt64)
|
||||
dco_decode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(PlatformInt64, AnnouncedUser, PlatformInt64?)
|
||||
dco_decode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(PlatformInt64, PlatformInt64, Uint8List)
|
||||
dco_decode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(PlatformInt64, Uint8List)
|
||||
dco_decode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(List<Uint8List>)
|
||||
dco_decode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<Uint8List?> Function(Uint8List)
|
||||
dco_decode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(Uint8List, Uint8List, Uint8List)
|
||||
dco_decode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
FutureOr<bool> Function(OtherPromotion)
|
||||
dco_decode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
Object dco_decode_DartOpaque(dynamic raw);
|
||||
|
||||
@protected
|
||||
RustStreamSink<String> dco_decode_StreamSink_String_Sse(dynamic raw);
|
||||
|
||||
@protected
|
||||
String dco_decode_String(dynamic raw);
|
||||
|
||||
@protected
|
||||
AnnouncedUser dco_decode_announced_user(dynamic raw);
|
||||
|
||||
@protected
|
||||
bool dco_decode_bool(dynamic raw);
|
||||
|
||||
@protected
|
||||
AnnouncedUser dco_decode_box_autoadd_announced_user(dynamic raw);
|
||||
|
||||
@protected
|
||||
PlatformInt64 dco_decode_box_autoadd_i_64(dynamic raw);
|
||||
|
||||
@protected
|
||||
TwonlyConfig dco_decode_box_autoadd_twonly_config(dynamic raw);
|
||||
|
||||
@protected
|
||||
FlutterUserDiscovery dco_decode_flutter_user_discovery(dynamic raw);
|
||||
|
||||
@protected
|
||||
PlatformInt64 dco_decode_i_64(dynamic raw);
|
||||
|
||||
@protected
|
||||
PlatformInt64 dco_decode_isize(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<Uint8List> dco_decode_list_list_prim_u_8_strict(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<OtherPromotion> dco_decode_list_other_promotion(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<int> dco_decode_list_prim_u_8_loose(dynamic raw);
|
||||
|
||||
@protected
|
||||
Uint8List dco_decode_list_prim_u_8_strict(dynamic raw);
|
||||
|
||||
@protected
|
||||
AnnouncedUser? dco_decode_opt_box_autoadd_announced_user(dynamic raw);
|
||||
|
||||
@protected
|
||||
PlatformInt64? dco_decode_opt_box_autoadd_i_64(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<Uint8List>? dco_decode_opt_list_list_prim_u_8_strict(dynamic raw);
|
||||
|
||||
@protected
|
||||
List<OtherPromotion>? dco_decode_opt_list_other_promotion(dynamic raw);
|
||||
|
||||
@protected
|
||||
Uint8List? dco_decode_opt_list_prim_u_8_strict(dynamic raw);
|
||||
|
||||
@protected
|
||||
OtherPromotion dco_decode_other_promotion(dynamic raw);
|
||||
|
||||
@protected
|
||||
TwonlyConfig dco_decode_twonly_config(dynamic raw);
|
||||
|
||||
@protected
|
||||
int dco_decode_u_32(dynamic raw);
|
||||
|
||||
@protected
|
||||
int dco_decode_u_8(dynamic raw);
|
||||
|
||||
@protected
|
||||
void dco_decode_unit(dynamic raw);
|
||||
|
||||
@protected
|
||||
BigInt dco_decode_usize(dynamic raw);
|
||||
|
||||
@protected
|
||||
AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
Object sse_decode_DartOpaque(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
RustStreamSink<String> sse_decode_StreamSink_String_Sse(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
String sse_decode_String(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
AnnouncedUser sse_decode_announced_user(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
bool sse_decode_bool(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
AnnouncedUser sse_decode_box_autoadd_announced_user(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
PlatformInt64 sse_decode_box_autoadd_i_64(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
TwonlyConfig sse_decode_box_autoadd_twonly_config(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
FlutterUserDiscovery sse_decode_flutter_user_discovery(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
PlatformInt64 sse_decode_i_64(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
PlatformInt64 sse_decode_isize(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
List<Uint8List> sse_decode_list_list_prim_u_8_strict(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
List<OtherPromotion> sse_decode_list_other_promotion(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
List<int> sse_decode_list_prim_u_8_loose(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
AnnouncedUser? sse_decode_opt_box_autoadd_announced_user(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
PlatformInt64? sse_decode_opt_box_autoadd_i_64(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
List<Uint8List>? sse_decode_opt_list_list_prim_u_8_strict(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
List<OtherPromotion>? sse_decode_opt_list_other_promotion(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
Uint8List? sse_decode_opt_list_prim_u_8_strict(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
OtherPromotion sse_decode_other_promotion(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
TwonlyConfig sse_decode_twonly_config(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
int sse_decode_u_32(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
int sse_decode_u_8(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
void sse_decode_unit(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BigInt sse_decode_usize(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
int sse_decode_i_32(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_AnyhowException(
|
||||
AnyhowException self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_DartFn_Inputs__Output_StreamSink_String_Sse_AnyhowException(
|
||||
FutureOr<RustStreamSink<String>> Function() self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_Output_opt_box_autoadd_announced_user_AnyhowException(
|
||||
FutureOr<AnnouncedUser?> Function(PlatformInt64) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_Output_opt_list_list_prim_u_8_strict_AnyhowException(
|
||||
FutureOr<List<Uint8List>?> Function(PlatformInt64) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_Output_opt_list_other_promotion_AnyhowException(
|
||||
FutureOr<List<OtherPromotion>?> Function(PlatformInt64) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_Output_opt_list_prim_u_8_strict_AnyhowException(
|
||||
FutureOr<Uint8List?> Function(PlatformInt64) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_announced_user_opt_box_autoadd_i_64_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(PlatformInt64, AnnouncedUser, PlatformInt64?) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_i_64_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(PlatformInt64, PlatformInt64, Uint8List) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_i_64_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(PlatformInt64, Uint8List) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_list_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(List<Uint8List>) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_list_prim_u_8_strict_Output_opt_list_prim_u_8_strict_AnyhowException(
|
||||
FutureOr<Uint8List?> Function(Uint8List) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void
|
||||
sse_encode_DartFn_Inputs_list_prim_u_8_strict_list_prim_u_8_strict_list_prim_u_8_strict_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(Uint8List, Uint8List, Uint8List) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_DartFn_Inputs_other_promotion_Output_bool_AnyhowException(
|
||||
FutureOr<bool> Function(OtherPromotion) self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_DartOpaque(Object self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_StreamSink_String_Sse(
|
||||
RustStreamSink<String> self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_String(String self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_announced_user(AnnouncedUser self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bool(bool self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_announced_user(
|
||||
AnnouncedUser self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_i_64(
|
||||
PlatformInt64 self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_twonly_config(
|
||||
TwonlyConfig self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_flutter_user_discovery(
|
||||
FlutterUserDiscovery self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_i_64(PlatformInt64 self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_isize(PlatformInt64 self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_list_list_prim_u_8_strict(
|
||||
List<Uint8List> self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_list_other_promotion(
|
||||
List<OtherPromotion> self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_list_prim_u_8_loose(List<int> self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_list_prim_u_8_strict(
|
||||
Uint8List self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_box_autoadd_announced_user(
|
||||
AnnouncedUser? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_box_autoadd_i_64(
|
||||
PlatformInt64? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_list_list_prim_u_8_strict(
|
||||
List<Uint8List>? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_list_other_promotion(
|
||||
List<OtherPromotion>? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_opt_list_prim_u_8_strict(
|
||||
Uint8List? self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_other_promotion(
|
||||
OtherPromotion self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_twonly_config(TwonlyConfig self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_u_32(int self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_u_8(int self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_unit(void self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_usize(BigInt self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_i_32(int self, SseSerializer serializer);
|
||||
}
|
||||
|
||||
// Section: wire_class
|
||||
|
||||
class RustLibWire implements BaseWire {
|
||||
RustLibWire.fromExternalLibrary(ExternalLibrary lib);
|
||||
}
|
||||
|
||||
@JS('wasm_bindgen')
|
||||
external RustLibWasmModule get wasmModule;
|
||||
|
||||
@JS()
|
||||
@anonymous
|
||||
extension type RustLibWasmModule._(JSObject _) implements JSObject {}
|
||||
|
|
@ -1,43 +1,35 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:camera/camera.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/model/json/userdata.dart';
|
||||
import 'package:twonly/src/services/api.service.dart';
|
||||
import 'package:twonly/src/services/subscription.service.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
|
||||
late ApiService apiService;
|
||||
class AppEnvironment {
|
||||
static late final String cacheDir;
|
||||
static late final String supportDir;
|
||||
|
||||
// uses for background notification
|
||||
late TwonlyDB twonlyDB;
|
||||
// will be loaded in the main_camera_controller.dart
|
||||
static List<CameraDescription> cameras = [];
|
||||
|
||||
List<CameraDescription> gCameras = <CameraDescription>[];
|
||||
static Future<void> init() async {
|
||||
cacheDir = (await getApplicationCacheDirectory()).path;
|
||||
supportDir = (await getApplicationSupportDirectory()).path;
|
||||
}
|
||||
|
||||
// Cached UserData in the memory. Every time the user data is changed the `updateUserdata` function is called,
|
||||
// which will update this global variable. The variable is set in the main.dart and after the user has registered in the register.view.dart
|
||||
late UserData gUser;
|
||||
static void initTesting() {
|
||||
cacheDir = '/tmp/twonly_cache';
|
||||
supportDir = '/tmp/twonly_support';
|
||||
}
|
||||
}
|
||||
|
||||
// The following global function can be called from anywhere to update
|
||||
// the UI when something changed. The callbacks will be set by
|
||||
// App widget.
|
||||
class AppState {
|
||||
static bool isAppInBackground = true;
|
||||
static bool isInBackgroundTask = false;
|
||||
static bool allowErrorTrackingViaSentry = false;
|
||||
static bool gotMessageFromServer = false;
|
||||
static int latestAppVersionId = 110;
|
||||
}
|
||||
|
||||
// This callback called by the apiProvider
|
||||
void Function({required bool isConnected}) globalCallbackConnectionState =
|
||||
({
|
||||
required isConnected,
|
||||
}) {};
|
||||
void Function() globalCallbackAppIsOutdated = () {};
|
||||
void Function() globalCallbackNewDeviceRegistered = () {};
|
||||
void Function(SubscriptionPlan plan) globalCallbackUpdatePlan = (plan) {};
|
||||
|
||||
Map<String, VoidCallback> globalUserDataChangedCallBack = {};
|
||||
|
||||
bool globalIsAppInBackground = true;
|
||||
bool globalIsInBackgroundTask = false;
|
||||
bool globalAllowErrorTrackingViaSentry = false;
|
||||
bool globalGotMessageFromServer = false;
|
||||
|
||||
late String globalApplicationCacheDirectory;
|
||||
late String globalApplicationSupportDirectory;
|
||||
|
||||
final GlobalKey<ScaffoldMessengerState> globalRootScaffoldMessengerKey =
|
||||
GlobalKey<ScaffoldMessengerState>();
|
||||
class AppGlobalKeys {
|
||||
static final scaffoldMessengerKey = GlobalKey<ScaffoldMessengerState>();
|
||||
}
|
||||
|
|
|
|||
17
lib/locator.dart
Normal file
17
lib/locator.dart
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import 'package:get_it/get_it.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/services/api.service.dart';
|
||||
import 'package:twonly/src/services/user.service.dart';
|
||||
|
||||
final GetIt locator = GetIt.instance;
|
||||
|
||||
void setupLocator() {
|
||||
locator
|
||||
..registerLazySingleton<UserService>(UserService.new)
|
||||
..registerLazySingleton<ApiService>(ApiService.new)
|
||||
..registerLazySingleton<TwonlyDB>(TwonlyDB.new);
|
||||
}
|
||||
|
||||
UserService get userService => locator<UserService>();
|
||||
ApiService get apiService => locator<ApiService>();
|
||||
TwonlyDB get twonlyDB => locator<TwonlyDB>();
|
||||
175
lib/main.dart
175
lib/main.dart
|
|
@ -1,59 +1,91 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:camera/camera.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
import 'package:twonly/app.dart';
|
||||
import 'package:twonly/core/bridge.dart' as bridge;
|
||||
import 'package:twonly/core/frb_generated.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/callbacks/callbacks.dart';
|
||||
import 'package:twonly/src/database/tables/contacts.table.dart';
|
||||
import 'package:twonly/src/providers/connection.provider.dart';
|
||||
import 'package:twonly/src/providers/image_editor.provider.dart';
|
||||
import 'package:twonly/src/providers/purchases.provider.dart';
|
||||
import 'package:twonly/src/providers/settings.provider.dart';
|
||||
import 'package:twonly/src/services/api.service.dart';
|
||||
import 'package:twonly/src/services/api/mediafiles/download.service.dart';
|
||||
import 'package:twonly/src/services/api/mediafiles/media_background.service.dart';
|
||||
import 'package:twonly/src/services/api/mediafiles/upload.service.dart';
|
||||
import 'package:twonly/src/services/api/mediafiles/download.api.dart';
|
||||
import 'package:twonly/src/services/api/mediafiles/media_background.api.dart';
|
||||
import 'package:twonly/src/services/api/mediafiles/upload.api.dart';
|
||||
import 'package:twonly/src/services/background/callback_dispatcher.background.dart';
|
||||
import 'package:twonly/src/services/backup/create.backup.dart';
|
||||
import 'package:twonly/src/services/mediafiles/mediafile.service.dart';
|
||||
import 'package:twonly/src/services/notifications/fcm.notifications.dart';
|
||||
import 'package:twonly/src/services/notifications/setup.notifications.dart';
|
||||
import 'package:twonly/src/services/user.service.dart';
|
||||
import 'package:twonly/src/services/user_discovery.service.dart';
|
||||
import 'package:twonly/src/utils/avatars.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
import 'package:twonly/src/utils/storage.dart';
|
||||
import 'package:twonly/src/utils/secure_storage.dart';
|
||||
import 'package:twonly/src/visual/views/onboarding/setup.view.dart';
|
||||
|
||||
void main() async {
|
||||
/// This function is used to initialized the absolute minimum so it
|
||||
/// can also be used by the backend without the UI was loaded.
|
||||
Future<void> twonlyMinimumInitialization() async {
|
||||
SentryWidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
globalApplicationCacheDirectory = (await getApplicationCacheDirectory()).path;
|
||||
globalApplicationSupportDirectory =
|
||||
(await getApplicationSupportDirectory()).path;
|
||||
await AppEnvironment.init();
|
||||
Log.init();
|
||||
setupLocator();
|
||||
|
||||
initLogger();
|
||||
await initFCMService();
|
||||
await RustLib.init();
|
||||
|
||||
var user = await getUser();
|
||||
await initFlutterCallbacksForRust();
|
||||
|
||||
if (Platform.isIOS && user != null) {
|
||||
final db = File('$globalApplicationSupportDirectory/twonly.sqlite');
|
||||
if (!db.existsSync()) {
|
||||
await bridge.initializeTwonlyFlutter(
|
||||
config: bridge.TwonlyConfig(
|
||||
databasePath: '${AppEnvironment.supportDir}/twonly.sqlite',
|
||||
dataDirectory: AppEnvironment.supportDir,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void main() async {
|
||||
await twonlyMinimumInitialization();
|
||||
|
||||
unawaited(initFCMService());
|
||||
|
||||
var userExists = false;
|
||||
var storageError = false;
|
||||
|
||||
try {
|
||||
userExists = await userService.tryInit();
|
||||
} catch (e) {
|
||||
Log.error('Failed to initialize user session due to storage error: $e');
|
||||
storageError = true;
|
||||
}
|
||||
|
||||
final dbExists = File(
|
||||
'${AppEnvironment.supportDir}/twonly.sqlite',
|
||||
).existsSync();
|
||||
|
||||
if (Platform.isIOS && userExists) {
|
||||
if (!dbExists) {
|
||||
Log.error('[twonly] IOS: App was removed and then reinstalled again...');
|
||||
await const FlutterSecureStorage().deleteAll();
|
||||
user = await getUser();
|
||||
await SecureStorage.instance.deleteAll();
|
||||
userExists = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (user != null) {
|
||||
gUser = user;
|
||||
final settingsController = SettingsChangeProvider()..loadSettings();
|
||||
await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||
await initFileDownloader();
|
||||
|
||||
if (user.allowErrorTrackingViaSentry) {
|
||||
globalAllowErrorTrackingViaSentry = true;
|
||||
if (userExists) {
|
||||
if (userService.currentUser.allowErrorTrackingViaSentry) {
|
||||
AppState.allowErrorTrackingViaSentry = true;
|
||||
await SentryFlutter.init(
|
||||
(options) => options
|
||||
..dsn =
|
||||
|
|
@ -63,52 +95,23 @@ void main() async {
|
|||
);
|
||||
}
|
||||
|
||||
await runMigrations();
|
||||
|
||||
await twonlyDB.messagesDao.purgeMessageTable();
|
||||
await twonlyDB.receiptsDao.purgeReceivedReceipts();
|
||||
await UserDiscoveryService.removeDeletedContacts();
|
||||
|
||||
unawaited(MediaFileService.purgeTempFolder());
|
||||
|
||||
unawaited(setupPushNotification());
|
||||
unawaited(finishStartedPreprocessing());
|
||||
unawaited(createPushAvatars());
|
||||
unawaited(performTwonlySafeBackup());
|
||||
unawaited(initializeBackgroundTaskManager());
|
||||
} else {
|
||||
Log.info('User is not yet register. Ensure all local data is removed.');
|
||||
await deleteLocalUserData();
|
||||
}
|
||||
|
||||
final settingsController = SettingsChangeProvider();
|
||||
|
||||
await settingsController.loadSettings();
|
||||
await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||
|
||||
unawaited(setupPushNotification());
|
||||
|
||||
gCameras = await availableCameras();
|
||||
|
||||
apiService = ApiService();
|
||||
twonlyDB = TwonlyDB();
|
||||
|
||||
if (user != null) {
|
||||
if (gUser.appVersion < 90) {
|
||||
// BUG: Requested media files for reupload where not reuploaded because the wrong state...
|
||||
await twonlyDB.mediaFilesDao.updateAllRetransmissionUploadingState();
|
||||
await updateUserdata((u) {
|
||||
u.appVersion = 90;
|
||||
return u;
|
||||
});
|
||||
}
|
||||
if (gUser.appVersion < 91) {
|
||||
// BUG: Requested media files for reupload where not reuploaded because the wrong state...
|
||||
await makeMigrationToVersion91();
|
||||
await updateUserdata((u) {
|
||||
u.appVersion = 91;
|
||||
return u;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
await twonlyDB.messagesDao.purgeMessageTable();
|
||||
await twonlyDB.receiptsDao.purgeReceivedReceipts();
|
||||
unawaited(MediaFileService.purgeTempFolder());
|
||||
|
||||
await initFileDownloader();
|
||||
unawaited(finishStartedPreprocessing());
|
||||
|
||||
unawaited(createPushAvatars());
|
||||
await apiService.listenToNetworkChanges();
|
||||
unawaited(apiService.connect());
|
||||
|
||||
runApp(
|
||||
MultiProvider(
|
||||
|
|
@ -118,7 +121,43 @@ void main() async {
|
|||
ChangeNotifierProvider(create: (_) => ImageEditorProvider()),
|
||||
ChangeNotifierProvider(create: (_) => PurchasesProvider()),
|
||||
],
|
||||
child: const App(),
|
||||
child: App(storageError: storageError),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> runMigrations() async {
|
||||
if (userService.currentUser.appVersion < 90) {
|
||||
// BUG: Requested media files for reupload where not reuploaded because the wrong state...
|
||||
await twonlyDB.mediaFilesDao.updateAllRetransmissionUploadingState();
|
||||
await UserService.update((u) => u.appVersion = 90);
|
||||
}
|
||||
|
||||
if (userService.currentUser.appVersion < 91) {
|
||||
// BUG: Requested media files for reupload where not reuploaded because the wrong state...
|
||||
await makeMigrationToVersion91();
|
||||
await UserService.update((u) => u.appVersion = 91);
|
||||
}
|
||||
|
||||
if (userService.currentUser.appVersion < 109) {
|
||||
final contacts = await twonlyDB.contactsDao.getAllContacts();
|
||||
for (final contact in contacts) {
|
||||
if (contact.verified) {
|
||||
await twonlyDB.keyVerificationDao.addKeyVerification(
|
||||
contact.userId,
|
||||
VerificationType.migratedFromOldVersion,
|
||||
);
|
||||
}
|
||||
}
|
||||
await UserService.update((u) {
|
||||
u
|
||||
..appVersion = 109
|
||||
..skipSetupPages = true;
|
||||
if (u.avatarSvg == null) {
|
||||
u.currentSetupPage = SetupPages.profile.name;
|
||||
} else {
|
||||
u.currentSetupPage = SetupPages.shareYourFriends.name;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
31
lib/src/callbacks/callbacks.dart
Normal file
31
lib/src/callbacks/callbacks.dart
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
import 'package:twonly/core/bridge/callbacks.dart';
|
||||
import 'package:twonly/src/callbacks/logging.callbacks.dart';
|
||||
import 'package:twonly/src/callbacks/user_discovery.callbacks.dart';
|
||||
|
||||
Future<void> initFlutterCallbacksForRust() async {
|
||||
await initFlutterCallbacks(
|
||||
loggingGetStreamSink: LoggingCallbacks.getStreamSink,
|
||||
userDiscoverySetShares: UserDiscoveryCallbacks.setShares,
|
||||
userDiscoveryGetShareForContact:
|
||||
UserDiscoveryCallbacks.userDiscoveryGetShareForContact,
|
||||
userDiscoveryPushOwnPromotionAndClearOldVersion:
|
||||
UserDiscoveryCallbacks.userDiscoveryPushOwnPromotionAndClearOldVersion,
|
||||
userDiscoveryPushNewUserRelation:
|
||||
UserDiscoveryCallbacks.pushNewUserRelation,
|
||||
userDiscoveryGetOwnPromotionsAfterVersion:
|
||||
UserDiscoveryCallbacks.getOwnPromotionsAfterVersion,
|
||||
userDiscoveryStoreOtherPromotion:
|
||||
UserDiscoveryCallbacks.storeOtherPromotion,
|
||||
userDiscoveryGetOtherPromotionsByPublicId:
|
||||
UserDiscoveryCallbacks.getOtherPromotionsByPublicId,
|
||||
userDiscoveryGetAnnouncedUserByPublicId:
|
||||
UserDiscoveryCallbacks.getAnnouncedUserByPublicId,
|
||||
userDiscoveryGetContactVersion: UserDiscoveryCallbacks.getContactVersion,
|
||||
userDiscoverySetContactVersion: UserDiscoveryCallbacks.setContactVersion,
|
||||
userDiscoverySignData: UserDiscoveryCallbacks.signData,
|
||||
userDiscoveryVerifySignature: UserDiscoveryCallbacks.verifySignature,
|
||||
userDiscoveryVerifyStoredPubkey: UserDiscoveryCallbacks.verifyStoredPubKey,
|
||||
userDiscoveryGetContactPromotion:
|
||||
UserDiscoveryCallbacks.getContactPromotion,
|
||||
);
|
||||
}
|
||||
32
lib/src/callbacks/logging.callbacks.dart
Normal file
32
lib/src/callbacks/logging.callbacks.dart
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import 'dart:async';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
|
||||
class LoggingCallbacks {
|
||||
static Future<RustStreamSink<String>> getStreamSink() async {
|
||||
final dartLogSink = RustStreamSink<String>();
|
||||
|
||||
Timer.periodic(const Duration(milliseconds: 100), (timer) {
|
||||
try {
|
||||
dartLogSink.stream.listen(
|
||||
(log) {
|
||||
if (log.contains('INFO ')) {
|
||||
Log.info(log.split('INFO ')[1]);
|
||||
} else if (log.contains('DEBUG ')) {
|
||||
Log.info(log.split('DEBUG ')[1]);
|
||||
} else if (kDebugMode) {
|
||||
print(log);
|
||||
}
|
||||
},
|
||||
onDone: () => Log.info('Log stream closed'),
|
||||
);
|
||||
timer.cancel();
|
||||
} catch (e) {
|
||||
// stream not yet initialized
|
||||
}
|
||||
});
|
||||
|
||||
return dartLogSink;
|
||||
}
|
||||
}
|
||||
313
lib/src/callbacks/user_discovery.callbacks.dart
Normal file
313
lib/src/callbacks/user_discovery.callbacks.dart
Normal file
|
|
@ -0,0 +1,313 @@
|
|||
import 'package:collection/collection.dart';
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'
|
||||
show Curve, IdentityKey;
|
||||
// ignore: implementation_imports
|
||||
import 'package:libsignal_protocol_dart/src/ecc/ed25519.dart';
|
||||
import 'package:twonly/core/bridge.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/services/signal/identity.signal.dart';
|
||||
import 'package:twonly/src/services/signal/session.signal.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
import 'package:twonly/src/utils/misc.dart';
|
||||
|
||||
class UserDiscoveryCallbacks {
|
||||
static Future<Uint8List?> signData(
|
||||
Uint8List inputData,
|
||||
) async {
|
||||
var privKey = (await getSignalIdentityKeyPair())?.getPrivateKey();
|
||||
if (privKey == null) return null;
|
||||
final random = getRandomUint8List(32);
|
||||
final signature = sign(
|
||||
privKey.serialize(),
|
||||
inputData,
|
||||
random,
|
||||
);
|
||||
privKey = null;
|
||||
return signature;
|
||||
}
|
||||
|
||||
static Future<bool> verifySignature(
|
||||
Uint8List inputData,
|
||||
Uint8List pubKey,
|
||||
Uint8List signature,
|
||||
) async {
|
||||
return Curve.verifySignature(
|
||||
IdentityKey.fromBytes(pubKey, 0).publicKey,
|
||||
inputData,
|
||||
signature,
|
||||
);
|
||||
}
|
||||
|
||||
static Future<bool> verifyStoredPubKey(
|
||||
int contactId,
|
||||
Uint8List pubKey,
|
||||
) async {
|
||||
final storedPublicKey = await getPublicKeyFromContact(contactId);
|
||||
if (storedPublicKey != null) {
|
||||
return storedPublicKey.equals(pubKey);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static Future<bool> setShares(List<Uint8List> shares) async {
|
||||
try {
|
||||
// First remove all old shares then insert all the new shares
|
||||
await twonlyDB.delete(twonlyDB.userDiscoveryShares).go();
|
||||
await twonlyDB.batch((b) {
|
||||
b.insertAll(
|
||||
twonlyDB.userDiscoveryShares,
|
||||
shares
|
||||
.map((s) => UserDiscoverySharesCompanion(share: Value(s)))
|
||||
.toList(),
|
||||
);
|
||||
});
|
||||
return true;
|
||||
} catch (e) {
|
||||
Log.error(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static Future<Uint8List?> userDiscoveryGetShareForContact(
|
||||
int contactId,
|
||||
) async {
|
||||
return twonlyDB.transaction(() async {
|
||||
// 1. Check if this contact already has a share assigned
|
||||
final existing =
|
||||
await (twonlyDB.select(twonlyDB.userDiscoveryShares)
|
||||
..where((tbl) => tbl.contactId.equals(contactId))
|
||||
..limit(1))
|
||||
.getSingleOrNull();
|
||||
|
||||
if (existing != null) {
|
||||
return existing.share;
|
||||
}
|
||||
|
||||
// 2. No share found. Find an available one (where contactId is null)
|
||||
final available =
|
||||
await (twonlyDB.select(twonlyDB.userDiscoveryShares)
|
||||
..where((tbl) => tbl.contactId.isNull())
|
||||
..limit(1))
|
||||
.getSingleOrNull();
|
||||
|
||||
if (available != null) {
|
||||
// 3. Assign the contactId to this available share
|
||||
await (twonlyDB.update(
|
||||
twonlyDB.userDiscoveryShares,
|
||||
)..where((tbl) => tbl.shareId.equals(available.shareId))).write(
|
||||
UserDiscoverySharesCompanion(
|
||||
contactId: Value(contactId),
|
||||
),
|
||||
);
|
||||
|
||||
return available.share;
|
||||
}
|
||||
|
||||
return null; // 4. No existing or available shares found
|
||||
});
|
||||
}
|
||||
|
||||
static Future<bool> userDiscoveryPushOwnPromotionAndClearOldVersion(
|
||||
int contactId,
|
||||
int version,
|
||||
Uint8List promotion,
|
||||
) async {
|
||||
try {
|
||||
// Old promotions from this users should be removed...
|
||||
await (twonlyDB.update(
|
||||
twonlyDB.userDiscoveryOwnPromotions,
|
||||
)..where((t) => t.contactId.equals(contactId))).write(
|
||||
UserDiscoveryOwnPromotionsCompanion(promotion: Value(Uint8List(0))),
|
||||
);
|
||||
await twonlyDB
|
||||
.into(twonlyDB.userDiscoveryOwnPromotions)
|
||||
.insert(
|
||||
UserDiscoveryOwnPromotionsCompanion.insert(
|
||||
contactId: contactId,
|
||||
promotion: promotion,
|
||||
),
|
||||
);
|
||||
return true;
|
||||
} catch (e) {
|
||||
Log.error(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static Future<List<Uint8List>> getOwnPromotionsAfterVersion(
|
||||
int version,
|
||||
) async {
|
||||
final query = twonlyDB.select(twonlyDB.userDiscoveryOwnPromotions)
|
||||
..where((tbl) => tbl.versionId.isBiggerThanValue(version));
|
||||
|
||||
final rows = await query.get();
|
||||
return rows.map((r) => r.promotion).toList();
|
||||
}
|
||||
|
||||
static Future<bool> storeOtherPromotion(
|
||||
OtherPromotion promotion,
|
||||
) async {
|
||||
try {
|
||||
await twonlyDB
|
||||
.into(twonlyDB.userDiscoveryOtherPromotions)
|
||||
.insertOnConflictUpdate(
|
||||
UserDiscoveryOtherPromotionsCompanion(
|
||||
promotionId: Value(promotion.promotionId),
|
||||
publicId: Value(promotion.publicId),
|
||||
fromContactId: Value(promotion.fromContactId),
|
||||
threshold: Value(promotion.threshold),
|
||||
announcementShare: Value(promotion.announcementShare),
|
||||
publicKeyVerifiedTimestamp: Value(
|
||||
promotion.publicKeyVerifiedTimestamp == null
|
||||
? null
|
||||
: DateTime.fromMillisecondsSinceEpoch(
|
||||
promotion.publicKeyVerifiedTimestamp!,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
return true;
|
||||
} catch (e) {
|
||||
Log.error(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static Future<List<OtherPromotion>> getOtherPromotionsByPublicId(
|
||||
int publicId,
|
||||
) async {
|
||||
final rows = await (twonlyDB.select(
|
||||
twonlyDB.userDiscoveryOtherPromotions,
|
||||
)..where((tbl) => tbl.publicId.equals(publicId))).get();
|
||||
|
||||
return rows
|
||||
.map(
|
||||
(row) => OtherPromotion(
|
||||
promotionId: row.promotionId,
|
||||
publicId: row.publicId,
|
||||
fromContactId: row.fromContactId,
|
||||
threshold: row.threshold,
|
||||
announcementShare: row.announcementShare,
|
||||
publicKeyVerifiedTimestamp:
|
||||
row.publicKeyVerifiedTimestamp?.millisecondsSinceEpoch,
|
||||
),
|
||||
)
|
||||
.toList();
|
||||
}
|
||||
|
||||
static Future<AnnouncedUser?> getAnnouncedUserByPublicId(
|
||||
int publicId,
|
||||
) async {
|
||||
final row = await (twonlyDB.select(
|
||||
twonlyDB.userDiscoveryAnnouncedUsers,
|
||||
)..where((tbl) => tbl.publicId.equals(publicId))).getSingleOrNull();
|
||||
if (row == null) return null;
|
||||
return AnnouncedUser(
|
||||
userId: row.announcedUserId,
|
||||
publicKey: row.announcedPublicKey,
|
||||
publicId: row.publicId,
|
||||
);
|
||||
}
|
||||
|
||||
static Future<bool> pushNewUserRelation(
|
||||
int fromContactId,
|
||||
AnnouncedUser announcedUser,
|
||||
int? publicKeyVerifiedTimestamp,
|
||||
) async {
|
||||
try {
|
||||
await twonlyDB.transaction(() async {
|
||||
// 1. Ensure the user exists in the AnnouncedUsers table
|
||||
await twonlyDB
|
||||
.into(twonlyDB.userDiscoveryAnnouncedUsers)
|
||||
.insertOnConflictUpdate(
|
||||
UserDiscoveryAnnouncedUsersCompanion(
|
||||
announcedUserId: Value(announcedUser.userId),
|
||||
announcedPublicKey: Value(announcedUser.publicKey),
|
||||
publicId: Value(announcedUser.publicId),
|
||||
),
|
||||
);
|
||||
|
||||
// 2. Insert or update the relation
|
||||
await twonlyDB
|
||||
.into(twonlyDB.userDiscoveryUserRelations)
|
||||
.insertOnConflictUpdate(
|
||||
UserDiscoveryUserRelationsCompanion.insert(
|
||||
announcedUserId: announcedUser.userId,
|
||||
fromContactId: fromContactId,
|
||||
publicKeyVerifiedTimestamp: Value(
|
||||
publicKeyVerifiedTimestamp != null
|
||||
? DateTime.fromMillisecondsSinceEpoch(
|
||||
publicKeyVerifiedTimestamp,
|
||||
)
|
||||
: null,
|
||||
),
|
||||
),
|
||||
);
|
||||
});
|
||||
return true;
|
||||
} catch (e) {
|
||||
Log.error(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// static Future<Map<AnnouncedUser, List<(int, DateTime?)>>>
|
||||
// getAllAnnouncedUsers() async {
|
||||
// final query = twonlyDB.select(twonlyDB.userDiscoveryAnnouncedUsers).join([
|
||||
// innerJoin(
|
||||
// twonlyDB.userDiscoveryUserRelations,
|
||||
// twonlyDB.userDiscoveryUserRelations.announcedUserId.equalsExp(
|
||||
// twonlyDB.userDiscoveryAnnouncedUsers.announcedUserId,
|
||||
// ),
|
||||
// ),
|
||||
// ]);
|
||||
|
||||
// final results = await query.get();
|
||||
// final map = <UserDiscoveryAnnouncedUser, List<(int, DateTime?)>>{};
|
||||
|
||||
// for (final row in results) {
|
||||
// final user = row.readTable(twonlyDB.userDiscoveryAnnouncedUsers);
|
||||
// final relation = row.readTable(twonlyDB.userDiscoveryUserRelations);
|
||||
|
||||
// map.putIfAbsent(user, () => []).add(
|
||||
// (relation.fromContactId, relation.publicKeyVerifiedTimestamp),
|
||||
// );
|
||||
// }
|
||||
|
||||
// return map;
|
||||
// }
|
||||
|
||||
static Future<Uint8List?> getContactVersion(int contactId) async {
|
||||
final row = await (twonlyDB.select(
|
||||
twonlyDB.contacts,
|
||||
)..where((tbl) => tbl.userId.equals(contactId))).getSingleOrNull();
|
||||
return row?.userDiscoveryVersion;
|
||||
}
|
||||
|
||||
static Future<bool> setContactVersion(int contactId, Uint8List update) async {
|
||||
try {
|
||||
await (twonlyDB.update(twonlyDB.contacts)
|
||||
..where((tbl) => tbl.userId.equals(contactId)))
|
||||
.write(ContactsCompanion(userDiscoveryVersion: Value(update)));
|
||||
return true;
|
||||
} catch (e) {
|
||||
Log.error(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static Future<Uint8List?> getContactPromotion(int contactId) async {
|
||||
try {
|
||||
final row = await (twonlyDB.select(
|
||||
twonlyDB.userDiscoveryOwnPromotions,
|
||||
)..where((tbl) => tbl.contactId.equals(contactId))).getSingleOrNull();
|
||||
return row?.promotion;
|
||||
} catch (e) {
|
||||
Log.error(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -34,6 +34,8 @@ class Routes {
|
|||
static const String settingsPrivacy = '/settings/privacy';
|
||||
static const String settingsPrivacyBlockUsers =
|
||||
'/settings/privacy/block_users';
|
||||
static const String settingsPrivacyUserDiscovery =
|
||||
'/settings/privacy/user_discovery';
|
||||
static const String settingsNotification = '/settings/notification';
|
||||
static const String settingsStorage = '/settings/storage_data';
|
||||
static const String settingsStorageImport = '/settings/storage_data/import';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import 'package:drift/drift.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/tables/contacts.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/services/notifications/pushkeys.notifications.dart';
|
||||
|
|
@ -7,7 +7,7 @@ import 'package:twonly/src/utils/log.dart';
|
|||
|
||||
part 'contacts.dao.g.dart';
|
||||
|
||||
@DriftAccessor(tables: [Contacts])
|
||||
@DriftAccessor(tables: [Contacts, KeyVerifications])
|
||||
class ContactsDao extends DatabaseAccessor<TwonlyDB> with _$ContactsDaoMixin {
|
||||
// this constructor is required so that the main database can create an instance
|
||||
// of this object.
|
||||
|
|
@ -134,6 +134,44 @@ class ContactsDao extends DatabaseAccessor<TwonlyDB> with _$ContactsDaoMixin {
|
|||
.watch();
|
||||
}
|
||||
|
||||
Stream<List<Contact>> watchContactsAnnouncedViaUserDiscovery() {
|
||||
return (select(contacts)..where((t) {
|
||||
var expr =
|
||||
t.userDiscoveryVersion.isNotNull() &
|
||||
t.userDiscoveryExcluded.equals(false) &
|
||||
t.accountDeleted.equals(false) &
|
||||
t.mediaSendCounter.isBiggerOrEqualValue(
|
||||
userService.currentUser.requiredSendImages,
|
||||
);
|
||||
|
||||
if (userService.currentUser.userDiscoveryRequiresManualApproval) {
|
||||
expr = expr & t.userDiscoveryManualApproved.equals(true);
|
||||
}
|
||||
|
||||
return expr;
|
||||
}))
|
||||
.watch();
|
||||
}
|
||||
|
||||
Future<List<Contact>> getContactsAnnouncedViaUserDiscovery() async {
|
||||
return (select(contacts)..where((t) {
|
||||
var expr =
|
||||
t.userDiscoveryVersion.isNotNull() &
|
||||
t.userDiscoveryExcluded.equals(false) &
|
||||
t.accountDeleted.equals(false) &
|
||||
t.mediaSendCounter.isBiggerOrEqualValue(
|
||||
userService.currentUser.requiredSendImages,
|
||||
);
|
||||
|
||||
if (userService.currentUser.userDiscoveryRequiresManualApproval) {
|
||||
expr = expr & t.userDiscoveryManualApproved.equals(true);
|
||||
}
|
||||
|
||||
return expr;
|
||||
}))
|
||||
.get();
|
||||
}
|
||||
|
||||
Stream<List<Contact>> watchAllContacts() {
|
||||
return select(contacts).watch();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ part of 'contacts.dao.dart';
|
|||
// ignore_for_file: type=lint
|
||||
mixin _$ContactsDaoMixin on DatabaseAccessor<TwonlyDB> {
|
||||
$ContactsTable get contacts => attachedDatabase.contacts;
|
||||
$KeyVerificationsTable get keyVerifications =>
|
||||
attachedDatabase.keyVerifications;
|
||||
ContactsDaoManager get managers => ContactsDaoManager(this);
|
||||
}
|
||||
|
||||
|
|
@ -13,4 +15,9 @@ class ContactsDaoManager {
|
|||
ContactsDaoManager(this._db);
|
||||
$$ContactsTableTableManager get contacts =>
|
||||
$$ContactsTableTableManager(_db.attachedDatabase, _db.contacts);
|
||||
$$KeyVerificationsTableTableManager get keyVerifications =>
|
||||
$$KeyVerificationsTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.keyVerifications,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:drift/drift.dart';
|
||||
import 'package:hashlib/random.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/tables/groups.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/services/flame.service.dart';
|
||||
|
|
@ -113,7 +113,10 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
|
|||
int contactId,
|
||||
GroupsCompanion group,
|
||||
) async {
|
||||
final groupIdDirectChat = getUUIDforDirectChat(contactId, gUser.userId);
|
||||
final groupIdDirectChat = getUUIDforDirectChat(
|
||||
contactId,
|
||||
userService.currentUser.userId,
|
||||
);
|
||||
final insertGroup = group.copyWith(
|
||||
groupId: Value(groupIdDirectChat),
|
||||
isDirectChat: const Value(true),
|
||||
|
|
@ -209,7 +212,10 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
|
|||
}
|
||||
|
||||
Stream<Group?> watchDirectChat(int contactId) {
|
||||
final groupId = getUUIDforDirectChat(contactId, gUser.userId);
|
||||
final groupId = getUUIDforDirectChat(
|
||||
contactId,
|
||||
userService.currentUser.userId,
|
||||
);
|
||||
return (select(
|
||||
groups,
|
||||
)..where((t) => t.groupId.equals(groupId))).watchSingleOrNull();
|
||||
|
|
@ -235,7 +241,7 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
|
|||
)..where((t) => t.groupId.equals(groupId))).getSingleOrNull();
|
||||
}
|
||||
|
||||
Stream<int> watchFlameCounter(String groupId) {
|
||||
Stream<({int counter, bool isExpiring})> watchFlameCounter(String groupId) {
|
||||
return (select(groups)..where(
|
||||
(u) =>
|
||||
u.groupId.equals(groupId) &
|
||||
|
|
@ -243,7 +249,7 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
|
|||
u.lastMessageSend.isNotNull(),
|
||||
))
|
||||
.watchSingleOrNull()
|
||||
.asyncMap(getFlameCounterFromGroup);
|
||||
.map(getFlameCounterFromGroup);
|
||||
}
|
||||
|
||||
Future<List<Group>> getAllDirectChats() {
|
||||
|
|
@ -311,4 +317,19 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
|
|||
))
|
||||
.write(GroupsCompanion(lastMessageExchange: Value(newLastMessage)));
|
||||
}
|
||||
|
||||
Stream<List<Group>> watchNonDirectGroupsForMember(int contactId) {
|
||||
final query =
|
||||
select(groups).join([
|
||||
innerJoin(
|
||||
groupMembers,
|
||||
groupMembers.groupId.equalsExp(groups.groupId),
|
||||
),
|
||||
])..where(
|
||||
groups.isDirectChat.equals(false) &
|
||||
groupMembers.contactId.equals(contactId),
|
||||
);
|
||||
|
||||
return query.map((row) => row.readTable(groups)).watch();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
170
lib/src/database/daos/key_verification.dao.dart
Normal file
170
lib/src/database/daos/key_verification.dao.dart
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
import 'package:clock/clock.dart';
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:twonly/core/bridge/wrapper/user_discovery.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/tables/contacts.table.dart';
|
||||
import 'package:twonly/src/database/tables/groups.table.dart';
|
||||
import 'package:twonly/src/database/tables/user_discovery.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
|
||||
part 'key_verification.dao.g.dart';
|
||||
|
||||
enum VerificationStatus { trusted, partialTrusted, notTrusted }
|
||||
|
||||
@DriftAccessor(
|
||||
tables: [
|
||||
Contacts,
|
||||
VerificationTokens,
|
||||
KeyVerifications,
|
||||
GroupMembers,
|
||||
UserDiscoveryUserRelations,
|
||||
],
|
||||
)
|
||||
class KeyVerificationDao extends DatabaseAccessor<TwonlyDB>
|
||||
with _$KeyVerificationDaoMixin {
|
||||
// ignore: matching_super_parameters
|
||||
KeyVerificationDao(super.db);
|
||||
|
||||
Future<List<VerificationToken>> getRecentVerificationTokens() {
|
||||
final cutoff = DateTime.now().subtract(const Duration(hours: 24));
|
||||
return (select(
|
||||
verificationTokens,
|
||||
)..where((t) => t.createdAt.isBiggerOrEqualValue(cutoff))).get();
|
||||
}
|
||||
|
||||
Future<int> insertVerificationToken(Uint8List token) {
|
||||
return into(verificationTokens).insert(
|
||||
VerificationTokensCompanion.insert(token: token),
|
||||
);
|
||||
}
|
||||
|
||||
/// Returns a map of contactId → the verification type of the earliest
|
||||
/// [KeyVerification] row for that contact.
|
||||
Future<Map<int, VerificationType>>
|
||||
getFirstVerificationTypeByContacts() async {
|
||||
final rows = await (select(
|
||||
keyVerifications,
|
||||
)..orderBy([(kv) => OrderingTerm.asc(kv.createdAt)])).get();
|
||||
|
||||
final result = <int, VerificationType>{};
|
||||
for (final row in rows) {
|
||||
result.putIfAbsent(row.contactId, () => row.type);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Future<bool> isContactVerified(int contactId) async {
|
||||
final row =
|
||||
await (select(keyVerifications)
|
||||
..where((kv) => kv.contactId.equals(contactId))
|
||||
..limit(1))
|
||||
.getSingleOrNull();
|
||||
return row != null;
|
||||
}
|
||||
|
||||
Stream<List<KeyVerification>> watchContactVerification(int contactId) {
|
||||
return (select(
|
||||
keyVerifications,
|
||||
)..where((kv) => kv.contactId.equals(contactId))).watch();
|
||||
}
|
||||
|
||||
Future<List<KeyVerification>> getContactVerification(int contactId) async {
|
||||
return (select(
|
||||
keyVerifications,
|
||||
)..where((kv) => kv.contactId.equals(contactId))).get();
|
||||
}
|
||||
|
||||
Stream<List<(Contact, DateTime)>> watchTransferredTrustVerifications(
|
||||
int contactId,
|
||||
) {
|
||||
final kv = keyVerifications;
|
||||
final ur = userDiscoveryUserRelations;
|
||||
|
||||
final query =
|
||||
(select(contacts)..where((u) => u.userId.equals(contactId).not())).join(
|
||||
[
|
||||
innerJoin(
|
||||
ur,
|
||||
ur.fromContactId.equalsExp(contacts.userId),
|
||||
),
|
||||
innerJoin(kv, kv.contactId.equalsExp(ur.fromContactId)),
|
||||
],
|
||||
)..where(
|
||||
ur.announcedUserId.equals(contactId) &
|
||||
ur.publicKeyVerifiedTimestamp.isNotNull(),
|
||||
);
|
||||
|
||||
return query.watch().map((rows) {
|
||||
return rows.map((row) {
|
||||
final contact = row.readTable(contacts);
|
||||
final timestamp = row.readTable(ur).publicKeyVerifiedTimestamp!;
|
||||
return (contact, timestamp);
|
||||
}).toList();
|
||||
});
|
||||
}
|
||||
|
||||
Stream<VerificationStatus> watchAllGroupMembersVerified(String groupId) {
|
||||
final gm = groupMembers;
|
||||
final directKv = alias(keyVerifications, 'directKv');
|
||||
final ur = userDiscoveryUserRelations;
|
||||
final verifierKv = alias(keyVerifications, 'verifierKv');
|
||||
|
||||
final query = select(gm).join([
|
||||
leftOuterJoin(directKv, directKv.contactId.equalsExp(gm.contactId)),
|
||||
leftOuterJoin(
|
||||
ur,
|
||||
ur.announcedUserId.equalsExp(gm.contactId) &
|
||||
ur.publicKeyVerifiedTimestamp.isNotNull() &
|
||||
ur.fromContactId.equalsExp(gm.contactId).not(),
|
||||
),
|
||||
leftOuterJoin(
|
||||
verifierKv,
|
||||
verifierKv.contactId.equalsExp(ur.fromContactId),
|
||||
),
|
||||
])..where(gm.groupId.equals(groupId));
|
||||
|
||||
return query.watch().map((rows) {
|
||||
if (rows.isEmpty) return VerificationStatus.notTrusted;
|
||||
|
||||
final memberTrustMap = <int, ({bool direct, bool partial})>{};
|
||||
|
||||
for (final row in rows) {
|
||||
final contactId = row.readTable(gm).contactId;
|
||||
final isDirect = row.readTableOrNull(directKv) != null;
|
||||
final isPartial = row.readTableOrNull(verifierKv) != null;
|
||||
|
||||
final current =
|
||||
memberTrustMap[contactId] ?? (direct: false, partial: false);
|
||||
memberTrustMap[contactId] = (
|
||||
direct: current.direct || isDirect,
|
||||
partial: current.partial || isPartial,
|
||||
);
|
||||
}
|
||||
|
||||
final allDirect = memberTrustMap.values.every((m) => m.direct);
|
||||
if (allDirect) return VerificationStatus.trusted;
|
||||
|
||||
final allAtLeastPartial = memberTrustMap.values.every(
|
||||
(m) => m.direct || m.partial,
|
||||
);
|
||||
if (allAtLeastPartial) return VerificationStatus.partialTrusted;
|
||||
|
||||
return VerificationStatus.notTrusted;
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> addKeyVerification(int contactId, VerificationType type) async {
|
||||
await into(keyVerifications).insertOnConflictUpdate(
|
||||
KeyVerificationsCompanion(
|
||||
contactId: Value(contactId),
|
||||
type: Value(type),
|
||||
),
|
||||
);
|
||||
if (userService.currentUser.isUserDiscoveryEnabled) {
|
||||
await FlutterUserDiscovery.updateVerificationStateForUser(
|
||||
contactId: contactId,
|
||||
publicKeyVerifiedTimestamp: clock.now().millisecondsSinceEpoch,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
52
lib/src/database/daos/key_verification.dao.g.dart
Normal file
52
lib/src/database/daos/key_verification.dao.g.dart
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'key_verification.dao.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
mixin _$KeyVerificationDaoMixin on DatabaseAccessor<TwonlyDB> {
|
||||
$ContactsTable get contacts => attachedDatabase.contacts;
|
||||
$VerificationTokensTable get verificationTokens =>
|
||||
attachedDatabase.verificationTokens;
|
||||
$KeyVerificationsTable get keyVerifications =>
|
||||
attachedDatabase.keyVerifications;
|
||||
$GroupsTable get groups => attachedDatabase.groups;
|
||||
$GroupMembersTable get groupMembers => attachedDatabase.groupMembers;
|
||||
$UserDiscoveryAnnouncedUsersTable get userDiscoveryAnnouncedUsers =>
|
||||
attachedDatabase.userDiscoveryAnnouncedUsers;
|
||||
$UserDiscoveryUserRelationsTable get userDiscoveryUserRelations =>
|
||||
attachedDatabase.userDiscoveryUserRelations;
|
||||
KeyVerificationDaoManager get managers => KeyVerificationDaoManager(this);
|
||||
}
|
||||
|
||||
class KeyVerificationDaoManager {
|
||||
final _$KeyVerificationDaoMixin _db;
|
||||
KeyVerificationDaoManager(this._db);
|
||||
$$ContactsTableTableManager get contacts =>
|
||||
$$ContactsTableTableManager(_db.attachedDatabase, _db.contacts);
|
||||
$$VerificationTokensTableTableManager get verificationTokens =>
|
||||
$$VerificationTokensTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.verificationTokens,
|
||||
);
|
||||
$$KeyVerificationsTableTableManager get keyVerifications =>
|
||||
$$KeyVerificationsTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.keyVerifications,
|
||||
);
|
||||
$$GroupsTableTableManager get groups =>
|
||||
$$GroupsTableTableManager(_db.attachedDatabase, _db.groups);
|
||||
$$GroupMembersTableTableManager get groupMembers =>
|
||||
$$GroupMembersTableTableManager(_db.attachedDatabase, _db.groupMembers);
|
||||
$$UserDiscoveryAnnouncedUsersTableTableManager
|
||||
get userDiscoveryAnnouncedUsers =>
|
||||
$$UserDiscoveryAnnouncedUsersTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.userDiscoveryAnnouncedUsers,
|
||||
);
|
||||
$$UserDiscoveryUserRelationsTableTableManager
|
||||
get userDiscoveryUserRelations =>
|
||||
$$UserDiscoveryUserRelationsTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.userDiscoveryUserRelations,
|
||||
);
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:clock/clock.dart';
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:hashlib/random.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/tables/contacts.table.dart';
|
||||
import 'package:twonly/src/database/tables/groups.table.dart';
|
||||
import 'package:twonly/src/database/tables/mediafiles.table.dart';
|
||||
|
|
@ -161,18 +161,6 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
|
|||
}
|
||||
}
|
||||
|
||||
Future<void> openedAllTextMessages(String groupId) {
|
||||
final updates = MessagesCompanion(openedAt: Value(clock.now()));
|
||||
return (update(messages)..where(
|
||||
(t) =>
|
||||
t.groupId.equals(groupId) &
|
||||
t.senderId.isNotNull() &
|
||||
t.openedAt.isNull() &
|
||||
t.type.equals(MessageType.text.name),
|
||||
))
|
||||
.write(updates);
|
||||
}
|
||||
|
||||
Future<void> handleMessageDeletion(
|
||||
int? contactId,
|
||||
String messageId,
|
||||
|
|
@ -184,20 +172,35 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
|
|||
return;
|
||||
}
|
||||
if (msg.mediaId != null && contactId != null) {
|
||||
// contactId -> When a image is send to multiple and one message is delete the image should be still available...
|
||||
await (delete(
|
||||
mediaFiles,
|
||||
)..where((t) => t.mediaId.equals(msg.mediaId!))).go();
|
||||
final otherMessagesWithSameMedia =
|
||||
await (select(messages)..where(
|
||||
(t) =>
|
||||
t.mediaId.equals(msg.mediaId!) &
|
||||
t.messageId.equals(messageId).not(),
|
||||
))
|
||||
.get();
|
||||
|
||||
final mediaService = await MediaFileService.fromMediaId(msg.mediaId!);
|
||||
if (mediaService != null) {
|
||||
mediaService.fullMediaRemoval();
|
||||
if (otherMessagesWithSameMedia.isEmpty) {
|
||||
await (delete(
|
||||
mediaFiles,
|
||||
)..where((t) => t.mediaId.equals(msg.mediaId!))).go();
|
||||
|
||||
final mediaService = await MediaFileService.fromMediaId(msg.mediaId!);
|
||||
if (mediaService != null) {
|
||||
mediaService.fullMediaRemoval();
|
||||
}
|
||||
} else {
|
||||
Log.info(
|
||||
'Media ${msg.mediaId} is still used by ${otherMessagesWithSameMedia.length} other messages. Skipping physical deletion.',
|
||||
);
|
||||
}
|
||||
}
|
||||
await (delete(
|
||||
messageHistories,
|
||||
)..where((t) => t.messageId.equals(messageId))).go();
|
||||
|
||||
await twonlyDB.receiptsDao.deleteReceiptsByMessageId(messageId);
|
||||
|
||||
await (update(messages)..where(
|
||||
(t) => t.messageId.equals(messageId),
|
||||
))
|
||||
|
|
@ -344,7 +347,7 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
|
|||
);
|
||||
}
|
||||
|
||||
final rowId = await into(messages).insertOnConflictUpdate(insertMessage);
|
||||
await into(messages).insertOnConflictUpdate(insertMessage);
|
||||
|
||||
await twonlyDB.groupsDao.updateGroup(
|
||||
message.groupId.value,
|
||||
|
|
@ -365,9 +368,11 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
|
|||
);
|
||||
}
|
||||
|
||||
final messageId = insertMessage.messageId.value;
|
||||
|
||||
return await (select(
|
||||
messages,
|
||||
)..where((t) => t.rowId.equals(rowId))).getSingle();
|
||||
)..where((t) => t.messageId.equals(messageId))).getSingle();
|
||||
} catch (e) {
|
||||
Log.error('Could not insert message: $e');
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import 'package:drift/drift.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/tables/contacts.table.dart';
|
||||
import 'package:twonly/src/database/tables/reactions.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
import 'package:twonly/src/views/components/animate_icon.dart';
|
||||
import 'package:twonly/src/visual/components/animate_icon.comp.dart';
|
||||
|
||||
part 'reactions.dao.g.dart';
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import 'package:twonly/src/database/tables/contacts.table.dart';
|
|||
import 'package:twonly/src/database/tables/messages.table.dart';
|
||||
import 'package:twonly/src/database/tables/receipts.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/services/api/mediafiles/upload.service.dart';
|
||||
import 'package:twonly/src/services/api/mediafiles/upload.api.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
|
||||
part 'receipts.dao.g.dart';
|
||||
|
|
@ -54,6 +54,13 @@ class ReceiptsDao extends DatabaseAccessor<TwonlyDB> with _$ReceiptsDaoMixin {
|
|||
.go();
|
||||
}
|
||||
|
||||
Future<void> deleteReceiptsByMessageId(String messageId) async {
|
||||
await (delete(receipts)..where(
|
||||
(t) => t.messageId.equals(messageId),
|
||||
))
|
||||
.go();
|
||||
}
|
||||
|
||||
Future<void> deleteReceiptForUser(int contactId) async {
|
||||
await (delete(receipts)..where(
|
||||
(t) => t.contactId.equals(contactId),
|
||||
|
|
@ -91,10 +98,11 @@ class ReceiptsDao extends DatabaseAccessor<TwonlyDB> with _$ReceiptsDaoMixin {
|
|||
receiptId: Value(uuid.v4()),
|
||||
);
|
||||
}
|
||||
final id = await into(receipts).insert(insertEntry);
|
||||
await into(receipts).insert(insertEntry);
|
||||
final receiptId = insertEntry.receiptId.value;
|
||||
return await (select(
|
||||
receipts,
|
||||
)..where((t) => t.rowId.equals(id))).getSingle();
|
||||
)..where((t) => t.receiptId.equals(receiptId))).getSingle();
|
||||
} catch (e) {
|
||||
// ignore error, receipts is already in the database...
|
||||
return null;
|
||||
|
|
|
|||
245
lib/src/database/daos/user_discovery.dao.dart
Normal file
245
lib/src/database/daos/user_discovery.dao.dart
Normal file
|
|
@ -0,0 +1,245 @@
|
|||
import 'package:drift/drift.dart';
|
||||
import 'package:twonly/src/database/tables/contacts.table.dart';
|
||||
import 'package:twonly/src/database/tables/user_discovery.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
|
||||
part 'user_discovery.dao.g.dart';
|
||||
|
||||
typedef AnnouncedUsersWithRelations =
|
||||
Map<UserDiscoveryAnnouncedUser, List<(Contact, DateTime?)>>;
|
||||
|
||||
@DriftAccessor(
|
||||
tables: [
|
||||
UserDiscoveryAnnouncedUsers,
|
||||
UserDiscoveryUserRelations,
|
||||
UserDiscoveryOwnPromotions,
|
||||
UserDiscoveryOtherPromotions,
|
||||
UserDiscoveryShares,
|
||||
Contacts,
|
||||
],
|
||||
)
|
||||
class UserDiscoveryDao extends DatabaseAccessor<TwonlyDB>
|
||||
with _$UserDiscoveryDaoMixin {
|
||||
// this constructor is required so that the main database can create an instance
|
||||
// of this object.
|
||||
// ignore: matching_super_parameters
|
||||
UserDiscoveryDao(super.db);
|
||||
|
||||
/// 1. Get count for contacts which are in announced but not in the contacts table
|
||||
|
||||
/// Returns all users which are not yet in the contacts table but have no data loaded (e.g. Avatar, username and display name)
|
||||
Future<List<UserDiscoveryAnnouncedUser>>
|
||||
getNewAnnouncementsWithoutData() async {
|
||||
final query =
|
||||
select(userDiscoveryAnnouncedUsers).join([
|
||||
leftOuterJoin(
|
||||
contacts,
|
||||
contacts.userId.equalsExp(
|
||||
userDiscoveryAnnouncedUsers.announcedUserId,
|
||||
),
|
||||
),
|
||||
])
|
||||
// Apply filters:
|
||||
// 1. The user must NOT exist in the contacts table
|
||||
// 2. The username must be null
|
||||
..where(
|
||||
contacts.userId.isNull() &
|
||||
userDiscoveryAnnouncedUsers.username.isNull(),
|
||||
);
|
||||
|
||||
return (await query.get())
|
||||
.map((row) => row.readTable(userDiscoveryAnnouncedUsers))
|
||||
.toList();
|
||||
}
|
||||
|
||||
Future<AnnouncedUsersWithRelations>
|
||||
getAllAnnouncedUsersWithRelations() async {
|
||||
final query = select(userDiscoveryAnnouncedUsers).join([
|
||||
innerJoin(
|
||||
userDiscoveryUserRelations,
|
||||
userDiscoveryUserRelations.announcedUserId.equalsExp(
|
||||
userDiscoveryAnnouncedUsers.announcedUserId,
|
||||
),
|
||||
),
|
||||
innerJoin(
|
||||
contacts,
|
||||
contacts.userId.equalsExp(
|
||||
userDiscoveryUserRelations.fromContactId,
|
||||
),
|
||||
),
|
||||
])..where(userDiscoveryAnnouncedUsers.username.isNotNull());
|
||||
|
||||
final rows = await query.get();
|
||||
// ignore: omit_local_variable_types
|
||||
final AnnouncedUsersWithRelations results = {};
|
||||
|
||||
for (final row in rows) {
|
||||
final user = row.readTable(userDiscoveryAnnouncedUsers);
|
||||
final relation = row.readTable(userDiscoveryUserRelations);
|
||||
final contact = row.readTable(contacts);
|
||||
|
||||
final relationData = (
|
||||
contact,
|
||||
relation.publicKeyVerifiedTimestamp,
|
||||
);
|
||||
|
||||
if (!results.containsKey(user)) {
|
||||
results[user] = [];
|
||||
}
|
||||
results[user]!.add(relationData);
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
Stream<AnnouncedUsersWithRelations> watchAllAnnouncedUsersWithRelations() {
|
||||
final query = select(userDiscoveryAnnouncedUsers).join([
|
||||
innerJoin(
|
||||
userDiscoveryUserRelations,
|
||||
userDiscoveryUserRelations.announcedUserId.equalsExp(
|
||||
userDiscoveryAnnouncedUsers.announcedUserId,
|
||||
),
|
||||
),
|
||||
innerJoin(
|
||||
contacts,
|
||||
contacts.userId.equalsExp(
|
||||
userDiscoveryUserRelations.fromContactId,
|
||||
),
|
||||
),
|
||||
])..where(userDiscoveryAnnouncedUsers.username.isNotNull());
|
||||
|
||||
return query.watch().map((rows) {
|
||||
// ignore: omit_local_variable_types
|
||||
final AnnouncedUsersWithRelations results = {};
|
||||
|
||||
for (final row in rows) {
|
||||
final user = row.readTable(userDiscoveryAnnouncedUsers);
|
||||
final relation = row.readTable(userDiscoveryUserRelations);
|
||||
final contact = row.readTable(contacts);
|
||||
|
||||
final relationData = (
|
||||
contact,
|
||||
relation.publicKeyVerifiedTimestamp,
|
||||
);
|
||||
|
||||
if (!results.containsKey(user)) {
|
||||
results[user] = [];
|
||||
}
|
||||
results[user]!.add(relationData);
|
||||
}
|
||||
|
||||
Log.info('results = ${results.length}');
|
||||
|
||||
return results;
|
||||
});
|
||||
}
|
||||
|
||||
Stream<AnnouncedUsersWithRelations> watchNewAnnouncedUsersWithRelations() {
|
||||
final announcedContact = alias(contacts, 'announcedContact');
|
||||
final query =
|
||||
select(userDiscoveryAnnouncedUsers).join([
|
||||
innerJoin(
|
||||
userDiscoveryUserRelations,
|
||||
userDiscoveryUserRelations.announcedUserId.equalsExp(
|
||||
userDiscoveryAnnouncedUsers.announcedUserId,
|
||||
),
|
||||
),
|
||||
innerJoin(
|
||||
contacts,
|
||||
contacts.userId.equalsExp(
|
||||
userDiscoveryUserRelations.fromContactId,
|
||||
),
|
||||
),
|
||||
leftOuterJoin(
|
||||
announcedContact,
|
||||
announcedContact.userId.equalsExp(
|
||||
userDiscoveryAnnouncedUsers.announcedUserId,
|
||||
),
|
||||
),
|
||||
])..where(
|
||||
userDiscoveryAnnouncedUsers.username.isNotNull() &
|
||||
userDiscoveryAnnouncedUsers.isHidden.equals(false) &
|
||||
(announcedContact.userId.isNull() |
|
||||
announcedContact.deletedByUser.equals(true)),
|
||||
);
|
||||
|
||||
return query.watch().map((rows) {
|
||||
// ignore: omit_local_variable_types
|
||||
final AnnouncedUsersWithRelations results = {};
|
||||
|
||||
for (final row in rows) {
|
||||
final user = row.readTable(userDiscoveryAnnouncedUsers);
|
||||
final relation = row.readTable(userDiscoveryUserRelations);
|
||||
final contact = row.readTable(contacts);
|
||||
|
||||
final relationData = (
|
||||
contact,
|
||||
relation.publicKeyVerifiedTimestamp,
|
||||
);
|
||||
|
||||
if (!results.containsKey(user)) {
|
||||
results[user] = [];
|
||||
}
|
||||
results[user]!.add(relationData);
|
||||
}
|
||||
|
||||
return results;
|
||||
});
|
||||
}
|
||||
|
||||
Stream<int> watchNewAnnouncementsWithDataCount() {
|
||||
final countExp = userDiscoveryAnnouncedUsers.announcedUserId.count();
|
||||
|
||||
final query = selectOnly(userDiscoveryAnnouncedUsers)
|
||||
..addColumns([countExp])
|
||||
..where(
|
||||
// Filters: Has a username AND has not been shown to the user yet
|
||||
userDiscoveryAnnouncedUsers.username.isNotNull() &
|
||||
userDiscoveryAnnouncedUsers.wasShownToTheUser.equals(false) &
|
||||
userDiscoveryAnnouncedUsers.isHidden.equals(false),
|
||||
);
|
||||
|
||||
return query.watchSingle().map((row) => row.read(countExp) ?? 0);
|
||||
}
|
||||
|
||||
Future<void> markAllValidAnnouncedUsersAsShown() async {
|
||||
await (update(userDiscoveryAnnouncedUsers)..where(
|
||||
(t) =>
|
||||
t.username.isNotNull() &
|
||||
t.wasShownToTheUser.equals(false) &
|
||||
t.isHidden.equals(false),
|
||||
))
|
||||
.write(
|
||||
const UserDiscoveryAnnouncedUsersCompanion(
|
||||
wasShownToTheUser: Value(true),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> updateAnnouncedUser(
|
||||
int announcedUserId,
|
||||
UserDiscoveryAnnouncedUsersCompanion updatedValues,
|
||||
) async {
|
||||
await (update(
|
||||
userDiscoveryAnnouncedUsers,
|
||||
)..where((c) => c.announcedUserId.equals(announcedUserId))).write(
|
||||
updatedValues,
|
||||
);
|
||||
}
|
||||
|
||||
Stream<List<UserDiscoveryAnnouncedUser>> watchAllAnnouncedUsers() =>
|
||||
select(userDiscoveryAnnouncedUsers).watch();
|
||||
|
||||
Stream<List<UserDiscoveryUserRelation>> watchAllUserRelations() =>
|
||||
select(userDiscoveryUserRelations).watch();
|
||||
|
||||
Stream<List<UserDiscoveryOwnPromotion>> watchAllOwnPromotions() =>
|
||||
select(userDiscoveryOwnPromotions).watch();
|
||||
|
||||
Stream<List<UserDiscoveryOtherPromotion>> watchAllOtherPromotions() =>
|
||||
select(userDiscoveryOtherPromotions).watch();
|
||||
|
||||
Stream<List<UserDiscoveryShare>> watchAllShares() =>
|
||||
select(userDiscoveryShares).watch();
|
||||
}
|
||||
55
lib/src/database/daos/user_discovery.dao.g.dart
Normal file
55
lib/src/database/daos/user_discovery.dao.g.dart
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'user_discovery.dao.dart';
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
mixin _$UserDiscoveryDaoMixin on DatabaseAccessor<TwonlyDB> {
|
||||
$UserDiscoveryAnnouncedUsersTable get userDiscoveryAnnouncedUsers =>
|
||||
attachedDatabase.userDiscoveryAnnouncedUsers;
|
||||
$ContactsTable get contacts => attachedDatabase.contacts;
|
||||
$UserDiscoveryUserRelationsTable get userDiscoveryUserRelations =>
|
||||
attachedDatabase.userDiscoveryUserRelations;
|
||||
$UserDiscoveryOwnPromotionsTable get userDiscoveryOwnPromotions =>
|
||||
attachedDatabase.userDiscoveryOwnPromotions;
|
||||
$UserDiscoveryOtherPromotionsTable get userDiscoveryOtherPromotions =>
|
||||
attachedDatabase.userDiscoveryOtherPromotions;
|
||||
$UserDiscoverySharesTable get userDiscoveryShares =>
|
||||
attachedDatabase.userDiscoveryShares;
|
||||
UserDiscoveryDaoManager get managers => UserDiscoveryDaoManager(this);
|
||||
}
|
||||
|
||||
class UserDiscoveryDaoManager {
|
||||
final _$UserDiscoveryDaoMixin _db;
|
||||
UserDiscoveryDaoManager(this._db);
|
||||
$$UserDiscoveryAnnouncedUsersTableTableManager
|
||||
get userDiscoveryAnnouncedUsers =>
|
||||
$$UserDiscoveryAnnouncedUsersTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.userDiscoveryAnnouncedUsers,
|
||||
);
|
||||
$$ContactsTableTableManager get contacts =>
|
||||
$$ContactsTableTableManager(_db.attachedDatabase, _db.contacts);
|
||||
$$UserDiscoveryUserRelationsTableTableManager
|
||||
get userDiscoveryUserRelations =>
|
||||
$$UserDiscoveryUserRelationsTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.userDiscoveryUserRelations,
|
||||
);
|
||||
$$UserDiscoveryOwnPromotionsTableTableManager
|
||||
get userDiscoveryOwnPromotions =>
|
||||
$$UserDiscoveryOwnPromotionsTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.userDiscoveryOwnPromotions,
|
||||
);
|
||||
$$UserDiscoveryOtherPromotionsTableTableManager
|
||||
get userDiscoveryOtherPromotions =>
|
||||
$$UserDiscoveryOtherPromotionsTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.userDiscoveryOtherPromotions,
|
||||
);
|
||||
$$UserDiscoverySharesTableTableManager get userDiscoveryShares =>
|
||||
$$UserDiscoverySharesTableTableManager(
|
||||
_db.attachedDatabase,
|
||||
_db.userDiscoveryShares,
|
||||
);
|
||||
}
|
||||
2754
lib/src/database/schemas/twonly_db/drift_schema_v12.json
Normal file
2754
lib/src/database/schemas/twonly_db/drift_schema_v12.json
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,11 +1,11 @@
|
|||
import 'package:collection/collection.dart';
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
|
||||
class ConnectIdentityKeyStore extends IdentityKeyStore {
|
||||
ConnectIdentityKeyStore(this.identityKeyPair, this.localRegistrationId);
|
||||
class SignalIdentityKeyStore extends IdentityKeyStore {
|
||||
SignalIdentityKeyStore(this.identityKeyPair, this.localRegistrationId);
|
||||
|
||||
final IdentityKeyPair identityKeyPair;
|
||||
final int localRegistrationId;
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import 'package:drift/drift.dart';
|
||||
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
|
||||
class ConnectPreKeyStore extends PreKeyStore {
|
||||
class SignalPreKeyStore extends PreKeyStore {
|
||||
@override
|
||||
Future<bool> containsPreKey(int preKeyId) async {
|
||||
final preKeyRecord = await (twonlyDB.select(
|
||||
|
|
@ -1,23 +1,23 @@
|
|||
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
|
||||
import 'package:twonly/src/database/signal/connect_identity_key_store.dart';
|
||||
import 'package:twonly/src/database/signal/connect_pre_key_store.dart';
|
||||
import 'package:twonly/src/database/signal/connect_session_store.dart';
|
||||
import 'package:twonly/src/database/signal/connect_signed_pre_key_store.dart';
|
||||
import 'package:twonly/src/database/signal/signal_identity_key_store.dart';
|
||||
import 'package:twonly/src/database/signal/signal_pre_key_store.dart';
|
||||
import 'package:twonly/src/database/signal/signal_session_store.dart';
|
||||
import 'package:twonly/src/database/signal/signal_signed_pre_key_store.dart';
|
||||
|
||||
class ConnectSignalProtocolStore implements SignalProtocolStore {
|
||||
ConnectSignalProtocolStore(
|
||||
class SignalSignalProtocolStore implements SignalProtocolStore {
|
||||
SignalSignalProtocolStore(
|
||||
IdentityKeyPair identityKeyPair,
|
||||
int registrationId,
|
||||
) {
|
||||
_identityKeyStore = ConnectIdentityKeyStore(
|
||||
_identityKeyStore = SignalIdentityKeyStore(
|
||||
identityKeyPair,
|
||||
registrationId,
|
||||
);
|
||||
}
|
||||
|
||||
final preKeyStore = ConnectPreKeyStore();
|
||||
final sessionStore = ConnectSessionStore();
|
||||
final signedPreKeyStore = ConnectSignedPreKeyStore();
|
||||
final preKeyStore = SignalPreKeyStore();
|
||||
final sessionStore = SignalSessionStore();
|
||||
final signedPreKeyStore = SignalSignedPreKeyStore();
|
||||
|
||||
late IdentityKeyStore _identityKeyStore;
|
||||
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
import 'package:drift/drift.dart';
|
||||
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
|
||||
class ConnectSenderKeyStore extends SenderKeyStore {
|
||||
class SignalSenderKeyStore extends SenderKeyStore {
|
||||
@override
|
||||
Future<SenderKeyRecord> loadSenderKey(SenderKeyName senderKeyName) async {
|
||||
final identity =
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
import 'package:drift/drift.dart';
|
||||
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
|
||||
class ConnectSessionStore extends SessionStore {
|
||||
class SignalSessionStore extends SessionStore {
|
||||
@override
|
||||
Future<bool> containsSession(SignalProtocolAddress address) async {
|
||||
final sessions =
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
import 'dart:collection';
|
||||
import 'dart:convert';
|
||||
import 'dart:typed_data';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
|
||||
import 'package:twonly/src/constants/secure_storage_keys.dart';
|
||||
|
||||
class ConnectSignedPreKeyStore extends SignedPreKeyStore {
|
||||
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
|
||||
import 'package:twonly/src/constants/secure_storage.keys.dart';
|
||||
import 'package:twonly/src/utils/secure_storage.dart';
|
||||
|
||||
class SignalSignedPreKeyStore extends SignedPreKeyStore {
|
||||
Future<HashMap<int, Uint8List>> getStore() async {
|
||||
const storage = FlutterSecureStorage();
|
||||
final storeSerialized = await storage.read(
|
||||
final storeSerialized = await SecureStorage.instance.read(
|
||||
key: SecureStorageKeys.signalSignedPreKey,
|
||||
);
|
||||
final store = HashMap<int, Uint8List>();
|
||||
|
|
@ -24,13 +24,12 @@ class ConnectSignedPreKeyStore extends SignedPreKeyStore {
|
|||
}
|
||||
|
||||
Future<void> safeStore(HashMap<int, Uint8List> store) async {
|
||||
const storage = FlutterSecureStorage();
|
||||
final storeHashMap = <List<dynamic>>[];
|
||||
for (final item in store.entries) {
|
||||
storeHashMap.add([item.key, base64Encode(item.value)]);
|
||||
}
|
||||
final storeSerialized = json.encode(storeHashMap);
|
||||
await storage.write(
|
||||
await SecureStorage.instance.write(
|
||||
key: SecureStorageKeys.signalSignedPreKey,
|
||||
value: storeSerialized,
|
||||
);
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:drift/drift.dart';
|
||||
|
||||
@DataClassName('Contact')
|
||||
class Contacts extends Table {
|
||||
IntColumn get userId => integer()();
|
||||
|
||||
|
|
@ -22,6 +23,46 @@ class Contacts extends Table {
|
|||
|
||||
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
|
||||
|
||||
// contact_versions: HashMap<UserID, Vec<u8>>,
|
||||
BlobColumn get userDiscoveryVersion => blob().nullable()();
|
||||
|
||||
BoolColumn get userDiscoveryExcluded =>
|
||||
boolean().withDefault(const Constant(false))();
|
||||
|
||||
BoolColumn get userDiscoveryManualApproved =>
|
||||
boolean().nullable().withDefault(const Constant(false))();
|
||||
|
||||
IntColumn get mediaSendCounter => integer().withDefault(const Constant(0))();
|
||||
IntColumn get mediaReceivedCounter =>
|
||||
integer().withDefault(const Constant(0))();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {userId};
|
||||
}
|
||||
|
||||
enum VerificationType {
|
||||
migratedFromOldVersion,
|
||||
qrScanned,
|
||||
link,
|
||||
secretQrToken,
|
||||
contactSharedByVerified,
|
||||
}
|
||||
|
||||
@DataClassName('KeyVerification')
|
||||
class KeyVerifications extends Table {
|
||||
IntColumn get verificationId => integer().autoIncrement()();
|
||||
IntColumn get contactId => integer().references(
|
||||
Contacts,
|
||||
#userId,
|
||||
onDelete: KeyAction.cascade,
|
||||
)();
|
||||
TextColumn get type => textEnum<VerificationType>()();
|
||||
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
|
||||
}
|
||||
|
||||
@DataClassName('VerificationToken')
|
||||
class VerificationTokens extends Table {
|
||||
IntColumn get tokenId => integer().autoIncrement()();
|
||||
BlobColumn get token => blob()();
|
||||
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
|
||||
}
|
||||
|
|
|
|||
87
lib/src/database/tables/user_discovery.table.dart
Normal file
87
lib/src/database/tables/user_discovery.table.dart
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
import 'package:drift/drift.dart';
|
||||
import 'package:twonly/src/database/tables/contacts.table.dart';
|
||||
|
||||
// config: Option<Vec<u8>>,
|
||||
|
||||
// announced_users: HashMap<AnnouncedUser, Vec<(UserID, Option<i64>)>>,
|
||||
@DataClassName('UserDiscoveryAnnouncedUser')
|
||||
class UserDiscoveryAnnouncedUsers extends Table {
|
||||
IntColumn get announcedUserId => integer()();
|
||||
BlobColumn get announcedPublicKey => blob()();
|
||||
IntColumn get publicId => integer().unique()();
|
||||
|
||||
// When a new user got announced this data will be requested without adding the users to the contacts...
|
||||
TextColumn get username => text().nullable()();
|
||||
|
||||
BoolColumn get wasShownToTheUser =>
|
||||
boolean().withDefault(const Constant(false))();
|
||||
BoolColumn get isHidden => boolean().withDefault(const Constant(false))();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {announcedUserId};
|
||||
}
|
||||
|
||||
// announced_users: HashMap<AnnouncedUser, Vec<(UserID, Option<i64>)>>,
|
||||
@DataClassName('UserDiscoveryUserRelation')
|
||||
class UserDiscoveryUserRelations extends Table {
|
||||
IntColumn get announcedUserId => integer().references(
|
||||
UserDiscoveryAnnouncedUsers,
|
||||
#announcedUserId,
|
||||
onDelete: KeyAction.cascade,
|
||||
)();
|
||||
|
||||
IntColumn get fromContactId => integer().references(
|
||||
Contacts,
|
||||
#userId,
|
||||
onDelete: KeyAction.cascade,
|
||||
)();
|
||||
|
||||
DateTimeColumn get publicKeyVerifiedTimestamp => dateTime().nullable()();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {announcedUserId, fromContactId};
|
||||
}
|
||||
|
||||
// own_promotions: Vec<(UserID, Vec<u8>)>,
|
||||
@DataClassName('UserDiscoveryOwnPromotion')
|
||||
class UserDiscoveryOwnPromotions extends Table {
|
||||
IntColumn get versionId => integer().autoIncrement()();
|
||||
IntColumn get contactId => integer().references(
|
||||
Contacts,
|
||||
#userId,
|
||||
onDelete: KeyAction.cascade,
|
||||
)();
|
||||
BlobColumn get promotion => blob()();
|
||||
}
|
||||
|
||||
// other_promotions: Vec<OtherPromotion>,
|
||||
@DataClassName('UserDiscoveryOtherPromotion')
|
||||
class UserDiscoveryOtherPromotions extends Table {
|
||||
IntColumn get fromContactId => integer().references(
|
||||
Contacts,
|
||||
#userId,
|
||||
onDelete: KeyAction.cascade,
|
||||
)();
|
||||
|
||||
IntColumn get promotionId => integer()();
|
||||
IntColumn get publicId => integer()();
|
||||
IntColumn get threshold => integer()();
|
||||
BlobColumn get announcementShare => blob()();
|
||||
DateTimeColumn get publicKeyVerifiedTimestamp => dateTime().nullable()();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {fromContactId, publicId};
|
||||
}
|
||||
|
||||
// unused_shares: Vec<Vec<u8>>,
|
||||
// used_shares: HashMap<UserID, Vec<u8>>,
|
||||
@DataClassName('UserDiscoveryShare')
|
||||
class UserDiscoveryShares extends Table {
|
||||
IntColumn get shareId => integer().autoIncrement()();
|
||||
BlobColumn get share => blob()();
|
||||
IntColumn get contactId => integer().nullable().references(
|
||||
Contacts,
|
||||
#userId,
|
||||
onDelete: KeyAction.cascade,
|
||||
)();
|
||||
}
|
||||
|
|
@ -5,10 +5,12 @@ import 'package:drift_flutter/drift_flutter.dart'
|
|||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:twonly/src/database/daos/contacts.dao.dart';
|
||||
import 'package:twonly/src/database/daos/groups.dao.dart';
|
||||
import 'package:twonly/src/database/daos/key_verification.dao.dart';
|
||||
import 'package:twonly/src/database/daos/mediafiles.dao.dart';
|
||||
import 'package:twonly/src/database/daos/messages.dao.dart';
|
||||
import 'package:twonly/src/database/daos/reactions.dao.dart';
|
||||
import 'package:twonly/src/database/daos/receipts.dao.dart';
|
||||
import 'package:twonly/src/database/daos/user_discovery.dao.dart';
|
||||
import 'package:twonly/src/database/tables/contacts.table.dart';
|
||||
import 'package:twonly/src/database/tables/groups.table.dart';
|
||||
import 'package:twonly/src/database/tables/mediafiles.table.dart';
|
||||
|
|
@ -19,6 +21,7 @@ import 'package:twonly/src/database/tables/signal_identity_key_store.table.dart'
|
|||
import 'package:twonly/src/database/tables/signal_pre_key_store.table.dart';
|
||||
import 'package:twonly/src/database/tables/signal_sender_key_store.table.dart';
|
||||
import 'package:twonly/src/database/tables/signal_session_store.table.dart';
|
||||
import 'package:twonly/src/database/tables/user_discovery.table.dart';
|
||||
import 'package:twonly/src/database/twonly.db.steps.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
|
||||
|
|
@ -42,6 +45,13 @@ part 'twonly.db.g.dart';
|
|||
SignalSessionStores,
|
||||
MessageActions,
|
||||
GroupHistories,
|
||||
KeyVerifications,
|
||||
VerificationTokens,
|
||||
UserDiscoveryAnnouncedUsers,
|
||||
UserDiscoveryUserRelations,
|
||||
UserDiscoveryOtherPromotions,
|
||||
UserDiscoveryOwnPromotions,
|
||||
UserDiscoveryShares,
|
||||
],
|
||||
daos: [
|
||||
MessagesDao,
|
||||
|
|
@ -50,6 +60,8 @@ part 'twonly.db.g.dart';
|
|||
GroupsDao,
|
||||
ReactionsDao,
|
||||
MediaFilesDao,
|
||||
UserDiscoveryDao,
|
||||
KeyVerificationDao,
|
||||
],
|
||||
)
|
||||
class TwonlyDB extends _$TwonlyDB {
|
||||
|
|
@ -62,14 +74,19 @@ class TwonlyDB extends _$TwonlyDB {
|
|||
TwonlyDB.forTesting(DatabaseConnection super.connection);
|
||||
|
||||
@override
|
||||
int get schemaVersion => 11;
|
||||
int get schemaVersion => 12;
|
||||
|
||||
static QueryExecutor _openConnection() {
|
||||
return driftDatabase(
|
||||
name: 'twonly',
|
||||
native: const DriftNativeOptions(
|
||||
native: DriftNativeOptions(
|
||||
databaseDirectory: getApplicationSupportDirectory,
|
||||
shareAcrossIsolates: true,
|
||||
setup: (rawDb) {
|
||||
rawDb
|
||||
..execute('PRAGMA journal_mode=WAL;')
|
||||
..execute('PRAGMA busy_timeout=5000;');
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
@ -93,7 +110,6 @@ class TwonlyDB extends _$TwonlyDB {
|
|||
},
|
||||
from3To4: (m, schema) async {
|
||||
await m.alterTable(
|
||||
// ignore: experimental_member_use
|
||||
TableMigration(
|
||||
schema.groupHistories,
|
||||
columnTransformer: {
|
||||
|
|
@ -126,9 +142,7 @@ class TwonlyDB extends _$TwonlyDB {
|
|||
await m.deleteTable('signal_contact_pre_keys');
|
||||
await m.deleteTable('signal_contact_signed_pre_keys');
|
||||
// For message_actions
|
||||
// ignore: experimental_member_use
|
||||
await m.alterTable(TableMigration(schema.messageHistories));
|
||||
// ignore: experimental_member_use
|
||||
await m.alterTable(TableMigration(schema.messageActions));
|
||||
},
|
||||
from8To9: (m, schema) async {
|
||||
|
|
@ -153,6 +167,25 @@ class TwonlyDB extends _$TwonlyDB {
|
|||
schema.groupMembers.lastTypeIndicator,
|
||||
);
|
||||
},
|
||||
from11To12: (m, schema) async {
|
||||
await m.createTable(schema.verificationTokens);
|
||||
await m.createTable(schema.keyVerifications);
|
||||
await m.createTable(schema.userDiscoveryAnnouncedUsers);
|
||||
await m.createTable(schema.userDiscoveryOwnPromotions);
|
||||
await m.createTable(schema.userDiscoveryOtherPromotions);
|
||||
await m.createTable(schema.userDiscoveryShares);
|
||||
await m.createTable(schema.userDiscoveryUserRelations);
|
||||
final columns = [
|
||||
schema.contacts.userDiscoveryVersion,
|
||||
schema.contacts.mediaReceivedCounter,
|
||||
schema.contacts.mediaSendCounter,
|
||||
schema.contacts.userDiscoveryExcluded,
|
||||
schema.contacts.userDiscoveryManualApproved,
|
||||
];
|
||||
for (final column in columns) {
|
||||
await m.addColumn(schema.contacts, column);
|
||||
}
|
||||
},
|
||||
)(m, from, to);
|
||||
},
|
||||
);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -5823,6 +5823,765 @@ i1.GeneratedColumn<int> _column_210(String aliasedName) =>
|
|||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NULL',
|
||||
);
|
||||
|
||||
final class Schema12 extends i0.VersionedSchema {
|
||||
Schema12({required super.database}) : super(version: 12);
|
||||
@override
|
||||
late final List<i1.DatabaseSchemaEntity> entities = [
|
||||
contacts,
|
||||
groups,
|
||||
mediaFiles,
|
||||
messages,
|
||||
messageHistories,
|
||||
reactions,
|
||||
groupMembers,
|
||||
receipts,
|
||||
receivedReceipts,
|
||||
signalIdentityKeyStores,
|
||||
signalPreKeyStores,
|
||||
signalSenderKeyStores,
|
||||
signalSessionStores,
|
||||
messageActions,
|
||||
groupHistories,
|
||||
keyVerifications,
|
||||
verificationTokens,
|
||||
userDiscoveryAnnouncedUsers,
|
||||
userDiscoveryUserRelations,
|
||||
userDiscoveryOtherPromotions,
|
||||
userDiscoveryOwnPromotions,
|
||||
userDiscoveryShares,
|
||||
];
|
||||
late final Shape39 contacts = Shape39(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'contacts',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(user_id)'],
|
||||
columns: [
|
||||
_column_106,
|
||||
_column_107,
|
||||
_column_108,
|
||||
_column_109,
|
||||
_column_110,
|
||||
_column_111,
|
||||
_column_112,
|
||||
_column_113,
|
||||
_column_114,
|
||||
_column_115,
|
||||
_column_116,
|
||||
_column_117,
|
||||
_column_118,
|
||||
_column_211,
|
||||
_column_212,
|
||||
_column_213,
|
||||
_column_214,
|
||||
_column_215,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape23 groups = Shape23(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'groups',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(group_id)'],
|
||||
columns: [
|
||||
_column_119,
|
||||
_column_120,
|
||||
_column_121,
|
||||
_column_122,
|
||||
_column_123,
|
||||
_column_124,
|
||||
_column_125,
|
||||
_column_126,
|
||||
_column_127,
|
||||
_column_128,
|
||||
_column_129,
|
||||
_column_130,
|
||||
_column_131,
|
||||
_column_132,
|
||||
_column_133,
|
||||
_column_134,
|
||||
_column_118,
|
||||
_column_135,
|
||||
_column_136,
|
||||
_column_137,
|
||||
_column_138,
|
||||
_column_139,
|
||||
_column_140,
|
||||
_column_141,
|
||||
_column_142,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape36 mediaFiles = Shape36(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'media_files',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(media_id)'],
|
||||
columns: [
|
||||
_column_143,
|
||||
_column_144,
|
||||
_column_145,
|
||||
_column_146,
|
||||
_column_147,
|
||||
_column_148,
|
||||
_column_149,
|
||||
_column_207,
|
||||
_column_150,
|
||||
_column_151,
|
||||
_column_152,
|
||||
_column_153,
|
||||
_column_154,
|
||||
_column_155,
|
||||
_column_156,
|
||||
_column_157,
|
||||
_column_118,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape25 messages = Shape25(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'messages',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(message_id)'],
|
||||
columns: [
|
||||
_column_158,
|
||||
_column_159,
|
||||
_column_160,
|
||||
_column_144,
|
||||
_column_161,
|
||||
_column_162,
|
||||
_column_163,
|
||||
_column_164,
|
||||
_column_165,
|
||||
_column_153,
|
||||
_column_166,
|
||||
_column_167,
|
||||
_column_168,
|
||||
_column_169,
|
||||
_column_118,
|
||||
_column_170,
|
||||
_column_171,
|
||||
_column_172,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape26 messageHistories = Shape26(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'message_histories',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: [],
|
||||
columns: [
|
||||
_column_173,
|
||||
_column_174,
|
||||
_column_175,
|
||||
_column_161,
|
||||
_column_118,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape27 reactions = Shape27(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'reactions',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(message_id, sender_id, emoji)'],
|
||||
columns: [_column_174, _column_176, _column_177, _column_118],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape38 groupMembers = Shape38(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'group_members',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(group_id, contact_id)'],
|
||||
columns: [
|
||||
_column_158,
|
||||
_column_178,
|
||||
_column_179,
|
||||
_column_180,
|
||||
_column_209,
|
||||
_column_210,
|
||||
_column_181,
|
||||
_column_118,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape37 receipts = Shape37(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'receipts',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(receipt_id)'],
|
||||
columns: [
|
||||
_column_182,
|
||||
_column_183,
|
||||
_column_184,
|
||||
_column_185,
|
||||
_column_186,
|
||||
_column_208,
|
||||
_column_187,
|
||||
_column_188,
|
||||
_column_189,
|
||||
_column_190,
|
||||
_column_191,
|
||||
_column_118,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape30 receivedReceipts = Shape30(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'received_receipts',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(receipt_id)'],
|
||||
columns: [_column_182, _column_118],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape31 signalIdentityKeyStores = Shape31(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'signal_identity_key_stores',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(device_id, name)'],
|
||||
columns: [_column_192, _column_193, _column_194, _column_118],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape32 signalPreKeyStores = Shape32(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'signal_pre_key_stores',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(pre_key_id)'],
|
||||
columns: [_column_195, _column_196, _column_118],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape11 signalSenderKeyStores = Shape11(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'signal_sender_key_stores',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(sender_key_name)'],
|
||||
columns: [_column_197, _column_198],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape33 signalSessionStores = Shape33(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'signal_session_stores',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(device_id, name)'],
|
||||
columns: [_column_192, _column_193, _column_199, _column_118],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape34 messageActions = Shape34(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'message_actions',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(message_id, contact_id, type)'],
|
||||
columns: [_column_174, _column_183, _column_144, _column_200],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape35 groupHistories = Shape35(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'group_histories',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(group_history_id)'],
|
||||
columns: [
|
||||
_column_201,
|
||||
_column_158,
|
||||
_column_202,
|
||||
_column_203,
|
||||
_column_204,
|
||||
_column_205,
|
||||
_column_206,
|
||||
_column_144,
|
||||
_column_200,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape40 keyVerifications = Shape40(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'key_verifications',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: [],
|
||||
columns: [_column_216, _column_183, _column_144, _column_118],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape41 verificationTokens = Shape41(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'verification_tokens',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: [],
|
||||
columns: [_column_217, _column_218, _column_118],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape42 userDiscoveryAnnouncedUsers = Shape42(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'user_discovery_announced_users',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(announced_user_id)'],
|
||||
columns: [
|
||||
_column_219,
|
||||
_column_220,
|
||||
_column_221,
|
||||
_column_222,
|
||||
_column_223,
|
||||
_column_224,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape43 userDiscoveryUserRelations = Shape43(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'user_discovery_user_relations',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(announced_user_id, from_contact_id)'],
|
||||
columns: [_column_225, _column_226, _column_227],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape44 userDiscoveryOtherPromotions = Shape44(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'user_discovery_other_promotions',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: ['PRIMARY KEY(from_contact_id, public_id)'],
|
||||
columns: [
|
||||
_column_226,
|
||||
_column_228,
|
||||
_column_229,
|
||||
_column_230,
|
||||
_column_231,
|
||||
_column_227,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape45 userDiscoveryOwnPromotions = Shape45(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'user_discovery_own_promotions',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: [],
|
||||
columns: [_column_232, _column_183, _column_233],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape46 userDiscoveryShares = Shape46(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'user_discovery_shares',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: [],
|
||||
columns: [_column_234, _column_235, _column_175],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
}
|
||||
|
||||
class Shape39 extends i0.VersionedTable {
|
||||
Shape39({required super.source, required super.alias}) : super.aliased();
|
||||
i1.GeneratedColumn<int> get userId =>
|
||||
columnsByName['user_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<String> get username =>
|
||||
columnsByName['username']! as i1.GeneratedColumn<String>;
|
||||
i1.GeneratedColumn<String> get displayName =>
|
||||
columnsByName['display_name']! as i1.GeneratedColumn<String>;
|
||||
i1.GeneratedColumn<String> get nickName =>
|
||||
columnsByName['nick_name']! as i1.GeneratedColumn<String>;
|
||||
i1.GeneratedColumn<i2.Uint8List> get avatarSvgCompressed =>
|
||||
columnsByName['avatar_svg_compressed']!
|
||||
as i1.GeneratedColumn<i2.Uint8List>;
|
||||
i1.GeneratedColumn<int> get senderProfileCounter =>
|
||||
columnsByName['sender_profile_counter']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get accepted =>
|
||||
columnsByName['accepted']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get deletedByUser =>
|
||||
columnsByName['deleted_by_user']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get requested =>
|
||||
columnsByName['requested']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get blocked =>
|
||||
columnsByName['blocked']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get verified =>
|
||||
columnsByName['verified']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get accountDeleted =>
|
||||
columnsByName['account_deleted']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get createdAt =>
|
||||
columnsByName['created_at']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<i2.Uint8List> get userDiscoveryVersion =>
|
||||
columnsByName['user_discovery_version']!
|
||||
as i1.GeneratedColumn<i2.Uint8List>;
|
||||
i1.GeneratedColumn<int> get userDiscoveryExcluded =>
|
||||
columnsByName['user_discovery_excluded']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get userDiscoveryManualApproved =>
|
||||
columnsByName['user_discovery_manual_approved']!
|
||||
as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get mediaSendCounter =>
|
||||
columnsByName['media_send_counter']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get mediaReceivedCounter =>
|
||||
columnsByName['media_received_counter']! as i1.GeneratedColumn<int>;
|
||||
}
|
||||
|
||||
i1.GeneratedColumn<i2.Uint8List> _column_211(String aliasedName) =>
|
||||
i1.GeneratedColumn<i2.Uint8List>(
|
||||
'user_discovery_version',
|
||||
aliasedName,
|
||||
true,
|
||||
type: i1.DriftSqlType.blob,
|
||||
$customConstraints: 'NULL',
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_212(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'user_discovery_excluded',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints:
|
||||
'NOT NULL DEFAULT 0 CHECK (user_discovery_excluded IN (0, 1))',
|
||||
defaultValue: const i1.CustomExpression('0'),
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_213(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'user_discovery_manual_approved',
|
||||
aliasedName,
|
||||
true,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints:
|
||||
'NULL DEFAULT 0 CHECK (user_discovery_manual_approved IN (0, 1))',
|
||||
defaultValue: const i1.CustomExpression('0'),
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_214(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'media_send_counter',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL DEFAULT 0',
|
||||
defaultValue: const i1.CustomExpression('0'),
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_215(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'media_received_counter',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL DEFAULT 0',
|
||||
defaultValue: const i1.CustomExpression('0'),
|
||||
);
|
||||
|
||||
class Shape40 extends i0.VersionedTable {
|
||||
Shape40({required super.source, required super.alias}) : super.aliased();
|
||||
i1.GeneratedColumn<int> get verificationId =>
|
||||
columnsByName['verification_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get contactId =>
|
||||
columnsByName['contact_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<String> get type =>
|
||||
columnsByName['type']! as i1.GeneratedColumn<String>;
|
||||
i1.GeneratedColumn<int> get createdAt =>
|
||||
columnsByName['created_at']! as i1.GeneratedColumn<int>;
|
||||
}
|
||||
|
||||
i1.GeneratedColumn<int> _column_216(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'verification_id',
|
||||
aliasedName,
|
||||
false,
|
||||
hasAutoIncrement: true,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL PRIMARY KEY AUTOINCREMENT',
|
||||
);
|
||||
|
||||
class Shape41 extends i0.VersionedTable {
|
||||
Shape41({required super.source, required super.alias}) : super.aliased();
|
||||
i1.GeneratedColumn<int> get tokenId =>
|
||||
columnsByName['token_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<i2.Uint8List> get token =>
|
||||
columnsByName['token']! as i1.GeneratedColumn<i2.Uint8List>;
|
||||
i1.GeneratedColumn<int> get createdAt =>
|
||||
columnsByName['created_at']! as i1.GeneratedColumn<int>;
|
||||
}
|
||||
|
||||
i1.GeneratedColumn<int> _column_217(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'token_id',
|
||||
aliasedName,
|
||||
false,
|
||||
hasAutoIncrement: true,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL PRIMARY KEY AUTOINCREMENT',
|
||||
);
|
||||
i1.GeneratedColumn<i2.Uint8List> _column_218(String aliasedName) =>
|
||||
i1.GeneratedColumn<i2.Uint8List>(
|
||||
'token',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.blob,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
|
||||
class Shape42 extends i0.VersionedTable {
|
||||
Shape42({required super.source, required super.alias}) : super.aliased();
|
||||
i1.GeneratedColumn<int> get announcedUserId =>
|
||||
columnsByName['announced_user_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<i2.Uint8List> get announcedPublicKey =>
|
||||
columnsByName['announced_public_key']!
|
||||
as i1.GeneratedColumn<i2.Uint8List>;
|
||||
i1.GeneratedColumn<int> get publicId =>
|
||||
columnsByName['public_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<String> get username =>
|
||||
columnsByName['username']! as i1.GeneratedColumn<String>;
|
||||
i1.GeneratedColumn<int> get wasShownToTheUser =>
|
||||
columnsByName['was_shown_to_the_user']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get isHidden =>
|
||||
columnsByName['is_hidden']! as i1.GeneratedColumn<int>;
|
||||
}
|
||||
|
||||
i1.GeneratedColumn<int> _column_219(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'announced_user_id',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
i1.GeneratedColumn<i2.Uint8List> _column_220(String aliasedName) =>
|
||||
i1.GeneratedColumn<i2.Uint8List>(
|
||||
'announced_public_key',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.blob,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_221(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'public_id',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL UNIQUE',
|
||||
);
|
||||
i1.GeneratedColumn<String> _column_222(String aliasedName) =>
|
||||
i1.GeneratedColumn<String>(
|
||||
'username',
|
||||
aliasedName,
|
||||
true,
|
||||
type: i1.DriftSqlType.string,
|
||||
$customConstraints: 'NULL',
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_223(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'was_shown_to_the_user',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints:
|
||||
'NOT NULL DEFAULT 0 CHECK (was_shown_to_the_user IN (0, 1))',
|
||||
defaultValue: const i1.CustomExpression('0'),
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_224(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'is_hidden',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL DEFAULT 0 CHECK (is_hidden IN (0, 1))',
|
||||
defaultValue: const i1.CustomExpression('0'),
|
||||
);
|
||||
|
||||
class Shape43 extends i0.VersionedTable {
|
||||
Shape43({required super.source, required super.alias}) : super.aliased();
|
||||
i1.GeneratedColumn<int> get announcedUserId =>
|
||||
columnsByName['announced_user_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get fromContactId =>
|
||||
columnsByName['from_contact_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get publicKeyVerifiedTimestamp =>
|
||||
columnsByName['public_key_verified_timestamp']!
|
||||
as i1.GeneratedColumn<int>;
|
||||
}
|
||||
|
||||
i1.GeneratedColumn<int> _column_225(
|
||||
String aliasedName,
|
||||
) => i1.GeneratedColumn<int>(
|
||||
'announced_user_id',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints:
|
||||
'NOT NULL REFERENCES user_discovery_announced_users(announced_user_id)ON DELETE CASCADE',
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_226(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'from_contact_id',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints:
|
||||
'NOT NULL REFERENCES contacts(user_id)ON DELETE CASCADE',
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_227(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'public_key_verified_timestamp',
|
||||
aliasedName,
|
||||
true,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NULL',
|
||||
);
|
||||
|
||||
class Shape44 extends i0.VersionedTable {
|
||||
Shape44({required super.source, required super.alias}) : super.aliased();
|
||||
i1.GeneratedColumn<int> get fromContactId =>
|
||||
columnsByName['from_contact_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get promotionId =>
|
||||
columnsByName['promotion_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get publicId =>
|
||||
columnsByName['public_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get threshold =>
|
||||
columnsByName['threshold']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<i2.Uint8List> get announcementShare =>
|
||||
columnsByName['announcement_share']! as i1.GeneratedColumn<i2.Uint8List>;
|
||||
i1.GeneratedColumn<int> get publicKeyVerifiedTimestamp =>
|
||||
columnsByName['public_key_verified_timestamp']!
|
||||
as i1.GeneratedColumn<int>;
|
||||
}
|
||||
|
||||
i1.GeneratedColumn<int> _column_228(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'promotion_id',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_229(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'public_id',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
i1.GeneratedColumn<int> _column_230(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'threshold',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
i1.GeneratedColumn<i2.Uint8List> _column_231(String aliasedName) =>
|
||||
i1.GeneratedColumn<i2.Uint8List>(
|
||||
'announcement_share',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.blob,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
|
||||
class Shape45 extends i0.VersionedTable {
|
||||
Shape45({required super.source, required super.alias}) : super.aliased();
|
||||
i1.GeneratedColumn<int> get versionId =>
|
||||
columnsByName['version_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get contactId =>
|
||||
columnsByName['contact_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<i2.Uint8List> get promotion =>
|
||||
columnsByName['promotion']! as i1.GeneratedColumn<i2.Uint8List>;
|
||||
}
|
||||
|
||||
i1.GeneratedColumn<int> _column_232(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'version_id',
|
||||
aliasedName,
|
||||
false,
|
||||
hasAutoIncrement: true,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL PRIMARY KEY AUTOINCREMENT',
|
||||
);
|
||||
i1.GeneratedColumn<i2.Uint8List> _column_233(String aliasedName) =>
|
||||
i1.GeneratedColumn<i2.Uint8List>(
|
||||
'promotion',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.blob,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
|
||||
class Shape46 extends i0.VersionedTable {
|
||||
Shape46({required super.source, required super.alias}) : super.aliased();
|
||||
i1.GeneratedColumn<int> get shareId =>
|
||||
columnsByName['share_id']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<i2.Uint8List> get share =>
|
||||
columnsByName['share']! as i1.GeneratedColumn<i2.Uint8List>;
|
||||
i1.GeneratedColumn<int> get contactId =>
|
||||
columnsByName['contact_id']! as i1.GeneratedColumn<int>;
|
||||
}
|
||||
|
||||
i1.GeneratedColumn<int> _column_234(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'share_id',
|
||||
aliasedName,
|
||||
false,
|
||||
hasAutoIncrement: true,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL PRIMARY KEY AUTOINCREMENT',
|
||||
);
|
||||
i1.GeneratedColumn<i2.Uint8List> _column_235(String aliasedName) =>
|
||||
i1.GeneratedColumn<i2.Uint8List>(
|
||||
'share',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.blob,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
i0.MigrationStepWithVersion migrationSteps({
|
||||
required Future<void> Function(i1.Migrator m, Schema2 schema) from1To2,
|
||||
required Future<void> Function(i1.Migrator m, Schema3 schema) from2To3,
|
||||
|
|
@ -5834,6 +6593,7 @@ i0.MigrationStepWithVersion migrationSteps({
|
|||
required Future<void> Function(i1.Migrator m, Schema9 schema) from8To9,
|
||||
required Future<void> Function(i1.Migrator m, Schema10 schema) from9To10,
|
||||
required Future<void> Function(i1.Migrator m, Schema11 schema) from10To11,
|
||||
required Future<void> Function(i1.Migrator m, Schema12 schema) from11To12,
|
||||
}) {
|
||||
return (currentVersion, database) async {
|
||||
switch (currentVersion) {
|
||||
|
|
@ -5887,6 +6647,11 @@ i0.MigrationStepWithVersion migrationSteps({
|
|||
final migrator = i1.Migrator(database, schema);
|
||||
await from10To11(migrator, schema);
|
||||
return 11;
|
||||
case 11:
|
||||
final schema = Schema12(database: database);
|
||||
final migrator = i1.Migrator(database, schema);
|
||||
await from11To12(migrator, schema);
|
||||
return 12;
|
||||
default:
|
||||
throw ArgumentError.value('Unknown migration from $currentVersion');
|
||||
}
|
||||
|
|
@ -5904,6 +6669,7 @@ i1.OnUpgrade stepByStep({
|
|||
required Future<void> Function(i1.Migrator m, Schema9 schema) from8To9,
|
||||
required Future<void> Function(i1.Migrator m, Schema10 schema) from9To10,
|
||||
required Future<void> Function(i1.Migrator m, Schema11 schema) from10To11,
|
||||
required Future<void> Function(i1.Migrator m, Schema12 schema) from11To12,
|
||||
}) => i0.VersionedSchema.stepByStepHelper(
|
||||
step: migrationSteps(
|
||||
from1To2: from1To2,
|
||||
|
|
@ -5916,5 +6682,6 @@ i1.OnUpgrade stepByStep({
|
|||
from8To9: from8To9,
|
||||
from9To10: from9To10,
|
||||
from10To11: from10To11,
|
||||
from11To12: from11To12,
|
||||
),
|
||||
);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -51,23 +51,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get onboardingNotProductBody =>
|
||||
'twonly wird durch Spenden und ein optionales Abonnement finanziert. Deine Daten werden niemals verkauft.';
|
||||
|
||||
@override
|
||||
String get onboardingBuyOneGetTwoTitle => 'Kaufe eins, bekomme zwei';
|
||||
|
||||
@override
|
||||
String get onboardingBuyOneGetTwoBody =>
|
||||
'twonly benötigt immer mindestens zwei Personen, daher erhältst du beim Kauf eine zweite kostenlose Lizenz für deinen twonly-Partner.';
|
||||
|
||||
@override
|
||||
String get onboardingGetStartedTitle => 'Auf geht\'s';
|
||||
|
||||
@override
|
||||
String get onboardingGetStartedBody =>
|
||||
'Du kannst twonly kostenlos im Preview-Modus testen. In diesem Modus kannst du von anderen gefunden werden und Bilder oder Videos empfangen, aber du kannst selbst keine senden.';
|
||||
|
||||
@override
|
||||
String get onboardingTryForFree => 'Jetzt registrieren';
|
||||
|
||||
@override
|
||||
String get registerUsernameSlogan =>
|
||||
'Bitte wähle einen Benutzernamen, damit dich andere finden können!';
|
||||
|
|
@ -86,16 +72,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get registerSubmitButton => 'Jetzt registrieren!';
|
||||
|
||||
@override
|
||||
String get registerTwonlyCodeText =>
|
||||
'Hast du einen twonly-Code erhalten? Dann löse ihn entweder direkt hier oder später ein!';
|
||||
|
||||
@override
|
||||
String get registerTwonlyCodeLabel => 'twonly-Code';
|
||||
|
||||
@override
|
||||
String get newMessageTitle => 'Neue Nachricht';
|
||||
|
||||
@override
|
||||
String get chatsTapToSend => 'Klicke, um dein erstes Bild zu teilen.';
|
||||
|
||||
|
|
@ -138,23 +114,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get startNewChatNewContact => 'Neuer Kontakt';
|
||||
|
||||
@override
|
||||
String get startNewChatYourContacts => 'Deine Kontakte';
|
||||
|
||||
@override
|
||||
String get shareImageAllUsers => 'Alle Kontakte';
|
||||
|
||||
@override
|
||||
String get shareImageAllTwonlyWarning =>
|
||||
'twonlies können nur an verifizierte Kontakte gesendet werden!';
|
||||
|
||||
@override
|
||||
String get shareImageUserNotVerified => 'Benutzer ist nicht verifiziert';
|
||||
|
||||
@override
|
||||
String get shareImageUserNotVerifiedDesc =>
|
||||
'twonlies können nur an verifizierte Nutzer gesendet werden. Um einen Nutzer zu verifizieren, gehe auf deren Profil und auf „Sicherheitsnummer verifizieren“.';
|
||||
|
||||
@override
|
||||
String get shareImageShowArchived => 'Archivierte Benutzer anzeigen';
|
||||
|
||||
|
|
@ -164,13 +126,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get addFriendTitle => 'Freunde hinzufügen';
|
||||
|
||||
@override
|
||||
String get searchUserNamePreview =>
|
||||
'Um dich und andere twonly Benutzer vor Spam und Missbrauch zu schützen, ist es nicht möglich, im Preview-Modus nach anderen Personen zu suchen. Andere Benutzer können dich finden und deren Anfragen werden dann hier angezeigt!';
|
||||
|
||||
@override
|
||||
String get selectSubscription => 'Abo auswählen';
|
||||
|
||||
@override
|
||||
String get searchUserNamePending => 'Anfrage ausstehend';
|
||||
|
||||
|
|
@ -185,16 +140,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get searchUsernameNewFollowerTitle => 'Offene Anfragen';
|
||||
|
||||
@override
|
||||
String get searchUsernameQrCodeBtn => 'QR-Code scannen';
|
||||
|
||||
@override
|
||||
String get chatListViewSearchUserNameBtn =>
|
||||
'Füge deinen ersten twonly-Kontakt hinzu!';
|
||||
|
||||
@override
|
||||
String get chatListViewSendFirstTwonly => 'Sende dein erstes twonly!';
|
||||
|
||||
@override
|
||||
String get chatListDetailInput => 'Nachricht eingeben';
|
||||
|
||||
|
|
@ -204,9 +153,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get contextMenuUserProfile => 'Userprofil';
|
||||
|
||||
@override
|
||||
String get contextMenuVerifyUser => 'Verifizieren';
|
||||
|
||||
@override
|
||||
String get contextMenuArchiveUser => 'Archivieren';
|
||||
|
||||
|
|
@ -450,19 +396,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get settingsAccountDeleteAccount => 'Konto löschen';
|
||||
|
||||
@override
|
||||
String settingsAccountDeleteAccountWithBallance(Object credit) {
|
||||
return 'Im nächsten Schritt kannst du auswählen, was du mit dem Restguthaben ($credit) machen willst.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsAccountDeleteAccountNoBallance =>
|
||||
'Wenn du dein Konto gelöscht hast, gibt es keinen Weg zurück.';
|
||||
|
||||
@override
|
||||
String get settingsAccountDeleteAccountNoInternet =>
|
||||
'Zum Löschen deines Accounts ist eine Internetverbindung erforderlich.';
|
||||
|
||||
@override
|
||||
String get settingsAccountDeleteModalTitle => 'Bist du sicher?';
|
||||
|
||||
|
|
@ -474,19 +411,31 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get contactVerifyNumberTitle => 'Benutzer verifizieren';
|
||||
|
||||
@override
|
||||
String get contactVerifyNumberTapToScan => 'Zum Scannen tippen';
|
||||
String get userVerifiedTitle => 'Benutzer verifiziert';
|
||||
|
||||
@override
|
||||
String get contactVerifyNumberMarkAsVerified => 'Als verifiziert markieren';
|
||||
|
||||
@override
|
||||
String get contactVerifyNumberClearVerification => 'Verifizierung aufheben';
|
||||
|
||||
@override
|
||||
String contactVerifyNumberLongDesc(Object username) {
|
||||
return 'Um die Ende-zu-Ende-Verschlüsselung mit $username zu verifizieren, vergleiche die Zahlen mit deren Gerät. Die Person kann auch deinen Code mit deren Gerät scannen.';
|
||||
String contactVerifiedBy(Object username) {
|
||||
return 'Verifiziert von $username';
|
||||
}
|
||||
|
||||
@override
|
||||
String get verificationTypeQrScanned => 'Du hast den QR-Code gescannt.';
|
||||
|
||||
@override
|
||||
String get verificationTypeSecretQrToken =>
|
||||
'Die andere Person hat deinen QR-Code gescannt.';
|
||||
|
||||
@override
|
||||
String get verificationTypeLink => 'Per Link verifiziert.';
|
||||
|
||||
@override
|
||||
String get verificationTypeContactSharedByVerified =>
|
||||
'Von einem verifizierten Kontakt geteilt bekommen.';
|
||||
|
||||
@override
|
||||
String get verificationTypeMigratedFromOldVersion =>
|
||||
'Von alter Version migriert';
|
||||
|
||||
@override
|
||||
String get contactViewMessage => 'Nachricht';
|
||||
|
||||
|
|
@ -496,14 +445,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get contactNicknameNew => 'Neuer Spitzname';
|
||||
|
||||
@override
|
||||
String get deleteAllContactMessages => 'Textnachrichten löschen';
|
||||
|
||||
@override
|
||||
String deleteAllContactMessagesBody(Object username) {
|
||||
return 'Dadurch werden alle Nachrichten, ausgenommen gespeicherte Mediendateien, in deinem Chat mit $username gelöscht. Dies löscht NICHT die auf dem Gerät von $username gespeicherten Nachrichten!';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contactBlock => 'Blockieren';
|
||||
|
||||
|
|
@ -537,6 +478,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get next => 'Weiter';
|
||||
|
||||
@override
|
||||
String get finishSetup => 'Setup abschließen';
|
||||
|
||||
@override
|
||||
String get submit => 'Abschicken';
|
||||
|
||||
|
|
@ -607,9 +551,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get toggleFlashLight => 'Taschenlampe umschalten';
|
||||
|
||||
@override
|
||||
String get toggleHighQuality => 'Bessere Auflösung umschalten';
|
||||
|
||||
@override
|
||||
String userFound(Object username) {
|
||||
return '$username gefunden';
|
||||
|
|
@ -618,23 +559,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get userFoundBody => 'Möchtest du eine Folgeanfrage stellen?';
|
||||
|
||||
@override
|
||||
String searchUsernameNotFoundLong(Object username) {
|
||||
return '\"$username\" ist kein twonly-Benutzer. Bitte überprüfe den Benutzernamen und versuche es erneut.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get errorUnknown =>
|
||||
'Ein unerwarteter Fehler ist aufgetreten. Bitte versuche es später erneut.';
|
||||
|
||||
@override
|
||||
String get errorBadRequest =>
|
||||
'Die Anfrage konnte vom Server aufgrund einer fehlerhaften Syntax nicht verstanden werden. Bitte überprüfe deine Eingabe und versuche es erneut.';
|
||||
|
||||
@override
|
||||
String get errorTooManyRequests =>
|
||||
'Du hast in kurzer Zeit zu viele Anfragen gestellt. Bitte warte einen Moment, bevor du es erneut versuchst.';
|
||||
|
||||
@override
|
||||
String get errorInternalError =>
|
||||
'Der Server ist derzeit nicht verfügbar. Bitte versuche es später erneut.';
|
||||
|
|
@ -647,34 +571,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get errorUsernameAlreadyTaken =>
|
||||
'Der Benutzername ist bereits vergeben.';
|
||||
|
||||
@override
|
||||
String get errorSignatureNotValid =>
|
||||
'Die bereitgestellte Signatur ist nicht gültig. Bitte überprüfe deine Anmeldeinformationen und versuche es erneut.';
|
||||
|
||||
@override
|
||||
String get errorUsernameNotFound =>
|
||||
'Der eingegebene Benutzername existiert nicht. Bitte überprüfe die Schreibweise oder erstelle ein neues Konto.';
|
||||
|
||||
@override
|
||||
String get errorUsernameNotValid =>
|
||||
'Der von dir angegebene Benutzername entspricht nicht den erforderlichen Kriterien. Bitte wähle einen gültigen Benutzernamen.';
|
||||
|
||||
@override
|
||||
String get errorInvalidPublicKey =>
|
||||
'Der von dir angegebene öffentliche Schlüssel ist ungültig. Bitte überprüfe den Schlüssel und versuche es erneut.';
|
||||
|
||||
@override
|
||||
String get errorSessionAlreadyAuthenticated =>
|
||||
'Du bist bereits angemeldet. Bitte melde dich ab, wenn du dich mit einem anderen Konto anmelden möchtest.';
|
||||
|
||||
@override
|
||||
String get errorSessionNotAuthenticated =>
|
||||
'Deine Sitzung ist nicht authentifiziert. Bitte melde dich an, um fortzufahren.';
|
||||
|
||||
@override
|
||||
String get errorOnlyOneSessionAllowed =>
|
||||
'Es ist nur eine aktive Sitzung pro Benutzer erlaubt. Bitte melde dich von anderen Geräten ab, um fortzufahren.';
|
||||
|
||||
@override
|
||||
String get errorNotEnoughCredit => 'Du hast nicht genügend twonly-Guthaben.';
|
||||
|
||||
|
|
@ -752,144 +652,27 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get plusFeature2 => '✓ Zusatzfunktionen (coming-soon)';
|
||||
|
||||
@override
|
||||
String get transactionHistory => 'Transaktionshistorie';
|
||||
|
||||
@override
|
||||
String get manageSubscription => 'Abonnement verwalten';
|
||||
|
||||
@override
|
||||
String get nextPayment => 'Nächste Zahlung';
|
||||
|
||||
@override
|
||||
String get currentBalance => 'Dein Guthaben';
|
||||
|
||||
@override
|
||||
String get manageAdditionalUsers => 'Zusätzliche Benutzer verwalten';
|
||||
|
||||
@override
|
||||
String get open => 'Offene';
|
||||
|
||||
@override
|
||||
String get createOrRedeemVoucher => 'Gutschein erstellen oder einlösen';
|
||||
|
||||
@override
|
||||
String get createVoucher => 'Gutschein kaufen';
|
||||
|
||||
@override
|
||||
String get createVoucherDesc =>
|
||||
'Wähle den Wert des Gutscheins. Der Wert des Gutschein wird von deinem twonly-Guthaben abgezogen.';
|
||||
|
||||
@override
|
||||
String get redeemVoucher => 'Gutschein einlösen';
|
||||
|
||||
@override
|
||||
String get openVouchers => 'Offene Gutscheine';
|
||||
|
||||
@override
|
||||
String get voucherCreated => 'Gutschein wurde erstellt';
|
||||
|
||||
@override
|
||||
String get voucherRedeemed => 'Gutschein eingelöst';
|
||||
|
||||
@override
|
||||
String get enterVoucherCode => 'Gutschein Code eingeben';
|
||||
|
||||
@override
|
||||
String get requestedVouchers => 'Beantragte Gutscheine';
|
||||
|
||||
@override
|
||||
String get redeemedVouchers => 'Eingelöste Gutscheine';
|
||||
|
||||
@override
|
||||
String get buy => 'Kaufen';
|
||||
|
||||
@override
|
||||
String subscriptionRefund(Object refund) {
|
||||
return 'Wenn du ein Upgrade durchführst, erhältst du eine Rückerstattung von $refund für dein aktuelles Abonnement.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get transactionCash => 'Bargeldtransaktion';
|
||||
|
||||
@override
|
||||
String get transactionPlanUpgrade => 'Planupgrade';
|
||||
|
||||
@override
|
||||
String get transactionRefund => 'Rückerstattung';
|
||||
|
||||
@override
|
||||
String get transactionThanksForTesting => 'Danke fürs Testen';
|
||||
|
||||
@override
|
||||
String get transactionUnknown => 'Unbekannte Transaktion';
|
||||
|
||||
@override
|
||||
String get transactionVoucherCreated => 'Gutschein erstellt';
|
||||
|
||||
@override
|
||||
String get transactionVoucherRedeemed => 'Gutschein eingelöst';
|
||||
|
||||
@override
|
||||
String get transactionAutoRenewal => 'Automatische Verlängerung';
|
||||
|
||||
@override
|
||||
String get checkoutOptions => 'Optionen';
|
||||
|
||||
@override
|
||||
String get refund => 'Rückerstattung';
|
||||
|
||||
@override
|
||||
String get checkoutPayYearly => 'Jährlich bezahlen';
|
||||
|
||||
@override
|
||||
String get checkoutTotal => 'Gesamt';
|
||||
|
||||
@override
|
||||
String get selectPaymentMethod => 'Zahlungsmethode auswählen';
|
||||
|
||||
@override
|
||||
String get twonlyCredit => 'twonly-Guthaben';
|
||||
|
||||
@override
|
||||
String get notEnoughCredit => 'Du hast nicht genügend Guthaben!';
|
||||
|
||||
@override
|
||||
String get chargeCredit => 'Guthaben aufladen';
|
||||
|
||||
@override
|
||||
String get autoRenewal => 'Automatische Verlängerung';
|
||||
|
||||
@override
|
||||
String get autoRenewalDesc => 'Du kannst dies jederzeit ändern.';
|
||||
|
||||
@override
|
||||
String get autoRenewalLongDesc =>
|
||||
'Wenn dein Abonnement ausläuft, wirst du automatisch auf den Preview-Plan zurückgestuft. Wenn du die automatische Verlängerung aktivierst, vergewissere dich bitte, dass du über genügend Guthaben für die automatische Erneuerung verfügst. Wir werden dich rechtzeitig vor der automatischen Erneuerung benachrichtigen.';
|
||||
|
||||
@override
|
||||
String get planSuccessUpgraded => 'Dein Plan wurde erfolgreich aktualisiert.';
|
||||
|
||||
@override
|
||||
String get checkoutSubmit => 'Kostenpflichtig bestellen';
|
||||
|
||||
@override
|
||||
String get additionalUsersList => 'Deine zusätzlichen Benutzer';
|
||||
|
||||
@override
|
||||
String get additionalUsersPlusTokens => 'twonly-Codes für \"Plus\"-Benutzer';
|
||||
|
||||
@override
|
||||
String get additionalUsersFreeTokens => 'twonly-Codes für \"Free\"-Benutzer';
|
||||
|
||||
@override
|
||||
String get planLimitReached =>
|
||||
'Du hast dein Planlimit für heute erreicht. Aktualisiere deinen Plan jetzt, um die Mediendatei zu senden.';
|
||||
|
||||
@override
|
||||
String get planNotAllowed =>
|
||||
'In deinem aktuellen Plan kannst du keine Mediendateien versenden. Aktualisiere deinen Plan jetzt, um die Mediendatei zu senden.';
|
||||
|
||||
@override
|
||||
String get galleryDelete => 'Datei löschen';
|
||||
|
||||
|
|
@ -902,49 +685,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get galleryExportSuccess => 'Erfolgreich in der Gallery gespeichert.';
|
||||
|
||||
@override
|
||||
String get settingsResetTutorials => 'Tutorials erneut anzeigen';
|
||||
|
||||
@override
|
||||
String get settingsResetTutorialsDesc =>
|
||||
'Klicke hier, um bereits angezeigte Tutorials erneut anzuzeigen.';
|
||||
|
||||
@override
|
||||
String get settingsResetTutorialsSuccess =>
|
||||
'Tutorials werden erneut angezeigt.';
|
||||
|
||||
@override
|
||||
String get tutorialChatListSearchUsersTitle =>
|
||||
'Freunde finden und Freundschaftsanfragen verwalten';
|
||||
|
||||
@override
|
||||
String get tutorialChatListSearchUsersDesc =>
|
||||
'Wenn du die Benutzernamen deiner Freunde kennst, kannst du sie hier suchen und eine Freundschaftsanfrage senden. Außerdem siehst du hier alle Anfragen von anderen Nutzern, die du annehmen oder blockieren kannst.';
|
||||
|
||||
@override
|
||||
String get tutorialChatListContextMenuTitle =>
|
||||
'Klicke lange auf den Kontakt, um das Kontextmenü zu öffnen.';
|
||||
|
||||
@override
|
||||
String get tutorialChatListContextMenuDesc =>
|
||||
'Mit dem Kontextmenü kannst du deine Kontakte anheften, archivieren und verschiedene Aktionen durchführen. Halte dazu einfach den Kontakt lange gedrückt und bewege dann deinen Finger auf die gewünschte Option oder tippe direkt darauf.';
|
||||
|
||||
@override
|
||||
String get tutorialChatMessagesVerifyShieldTitle =>
|
||||
'Verifiziere deine Kontakte!';
|
||||
|
||||
@override
|
||||
String get tutorialChatMessagesVerifyShieldDesc =>
|
||||
'twonly nutzt das Signal-Protokoll für eine sichere Ende-zu-Ende Verschlüsselung. Bei der ersten Kontaktaufnahme wird dafür der öffentliche Identitätsschlüssel von deinem Kontakt heruntergeladen. Um sicherzustellen, dass dieser Schlüssel nicht von Dritten ausgetauscht wurde, solltest du ihn mit deinem Freund vergleichen, wenn ihr euch persönlich trefft. Sobald du den Benutzer verifiziert hast, kannst du auch beim verschicken von Bildern und Videos den twonly-Modus aktivieren.';
|
||||
|
||||
@override
|
||||
String get tutorialChatMessagesReopenMessageTitle =>
|
||||
'Bilder und Videos erneut öffnen';
|
||||
|
||||
@override
|
||||
String get tutorialChatMessagesReopenMessageDesc =>
|
||||
'Wenn dein Freund dir ein Bild oder Video mit unendlicher Anzeigezeit gesendet hat, kannst du es bis zum Neustart der App jederzeit erneut öffnen. Um dies zu tun, musst du einfach doppelt auf die Nachricht klicken. Dein Freund erhält dann eine Benachrichtigung, dass du das Bild erneut angesehen hast.';
|
||||
|
||||
@override
|
||||
String get memoriesEmpty =>
|
||||
'Sobald du Bilder oder Videos speicherst, landen sie hier in deinen Erinnerungen.';
|
||||
|
|
@ -967,19 +707,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get settingsBackup => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupNoticeTitle => 'Kein Backup konfiguriert';
|
||||
|
||||
@override
|
||||
String get backupNoticeDesc =>
|
||||
'Wenn du dein Gerät wechselst oder verlierst, kann ohne Backup niemand dein Account wiederherstellen. Sichere deshalb deine Daten.';
|
||||
|
||||
@override
|
||||
String get backupNoticeLater => 'Später erinnern';
|
||||
|
||||
@override
|
||||
String get backupNoticeOpenBackup => 'Backup erstellen';
|
||||
|
||||
@override
|
||||
String get backupPending => 'Ausstehend';
|
||||
|
||||
|
|
@ -1015,20 +742,9 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get backupLastBackupResult => 'Ergebnis';
|
||||
|
||||
@override
|
||||
String get deleteBackupTitle => 'Bist du sicher?';
|
||||
|
||||
@override
|
||||
String get deleteBackupBody =>
|
||||
'Ohne ein Backup kannst du dein Benutzerkonto nicht wiederherstellen.';
|
||||
|
||||
@override
|
||||
String get backupData => 'Daten-Backup';
|
||||
|
||||
@override
|
||||
String get backupDataDesc =>
|
||||
'Das Daten-Backup enthält neben deiner twonly-Identität auch alle deine Mediendateien. Dieses Backup ist ebenfalls verschlüsselt, wird jedoch lokal gespeichert. Du musst es dann manuell auf deinen Laptop oder ein Gerät deiner Wahl kopieren.';
|
||||
|
||||
@override
|
||||
String get backupInsecurePassword => 'Unsicheres Passwort';
|
||||
|
||||
|
|
@ -1125,10 +841,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get retransmissionRequested => 'Wird erneut versucht.';
|
||||
|
||||
@override
|
||||
String get testPaymentMethod =>
|
||||
'Vielen Dank für dein Interesse an einem kostenpflichtigen Tarif. Die kostenpflichtigen Pläne sind derzeit noch deaktiviert. Sie werden aber bald aktiviert!';
|
||||
|
||||
@override
|
||||
String get openChangeLog => 'Changelog automatisch öffnen';
|
||||
|
||||
|
|
@ -1562,6 +1274,92 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get skipForNow => 'Vorerst überspringen';
|
||||
|
||||
@override
|
||||
String get finishSetupCardTitle => 'Profil vervollständigen';
|
||||
|
||||
@override
|
||||
String get finishSetupCardDesc =>
|
||||
'Du hast es fast geschafft! Schließe die Einrichtung deines Kontos ab, um twonly optimal zu nutzen.';
|
||||
|
||||
@override
|
||||
String get finishSetupCardAction => 'Setup fortsetzen';
|
||||
|
||||
@override
|
||||
String get onboardingFinishLater => 'Später abschließen';
|
||||
|
||||
@override
|
||||
String get onboardingProfileTitle => 'Wähle deinen Look';
|
||||
|
||||
@override
|
||||
String get onboardingProfileBody =>
|
||||
'Wähle einen Avatar und einen Anzeigenamen, den deine Freunde sehen werden.';
|
||||
|
||||
@override
|
||||
String get onboardingBackupBody =>
|
||||
'Sichere deine twonly-Identität, da dies die einzige Möglichkeit ist, dein Konto wiederherzustellen, wenn du die App deinstallierst oder dein Handy verlierst.';
|
||||
|
||||
@override
|
||||
String get onboardingVerificationBadgeTitle => 'Verifizierungs-Haken';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryShareFriends => 'Freunde teilen';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryShareFriendsDesc =>
|
||||
'Teile deinen Freunden mit, wen du kennst und wen du verifiziert hast. Freunde können von deiner Freundesliste *nur gemeinsame Freunde sehen*.';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryContactsVerifiedBadge =>
|
||||
'Von Freunden verifizierte Kontakte erhalten einen Haken';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryWhoIsRequesting =>
|
||||
'Erfahre, wer dich anfragt';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsManualApproval => 'Manuelle Zustimmung';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsManualApprovalDesc =>
|
||||
'Bevor jemand geteilt wird, wirst du zuerst gefragt.';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryLetFriendsFindYou =>
|
||||
'Lass dich von deinen Freunden finden';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryBeRecommended =>
|
||||
'Anderen vorgeschlagen werden';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryWhatOthersSee => 'Was andere sehen werden';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryWhatYouSee =>
|
||||
'Wenn du angefragt wirst, wirst du das sehen';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsTitle => 'Neue Kontakte hinzufügen';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsAcceptDesc =>
|
||||
'In twonly muss jeder Kontakt zuerst akzeptiert werden, bevor ihr kommunizieren könnt.';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsMethodHeading => 'Kontakte hinzufügen';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsMethodScan =>
|
||||
'Den QR-Code des Kontaktes scannen.';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsMethodSearch =>
|
||||
'Nach dem Benutzernamen suchen.';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsMethodShare =>
|
||||
'Einen Kontakt in den Chats teilen.';
|
||||
|
||||
@override
|
||||
String linkFromUsername(Object username) {
|
||||
return 'Ist der Link von $username?';
|
||||
|
|
@ -1691,19 +1489,19 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get verificationBadgeGeneralDesc =>
|
||||
'Der grüne Haken gibt dir die Sicherheit, dass du mit der richtigen Person schreibst.';
|
||||
'Der Haken gibt dir die Sicherheit, dass du mit der richtigen Person schreibst. Scanne einen Kontakt, um diesen zu verifizieren.';
|
||||
|
||||
@override
|
||||
String get verificationBadgeGreenDesc =>
|
||||
'Kontakt, den du durch den QR-Code persönlich verifiziert hast. Dadurch wurde auch deren öffentlicher Schlüssel überprüft.';
|
||||
'Ein Kontakt, den du *persönlich verifiziert* hast.';
|
||||
|
||||
@override
|
||||
String get verificationBadgeYellowDesc =>
|
||||
'(Coming soon) Kontakt, dessen QR-Code von einem deiner persönlich verifizierten Kontakte gescannt wurde.';
|
||||
'Ein Kontakt, der von mind. einem *deiner Kontakte verifiziert* wurde.';
|
||||
|
||||
@override
|
||||
String get verificationBadgeRedDesc =>
|
||||
'Unbekannter Kontakt, dessen Identität bisher nicht verifiziert wurde.';
|
||||
'Ein Kontakt, dessen Identität noch *nicht überprüft* wurde.';
|
||||
|
||||
@override
|
||||
String chatEntryFlameRestored(Object count) {
|
||||
|
|
@ -1759,10 +1557,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get contactActionAccept => 'Annehmen';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsMinImages =>
|
||||
'Wähle die Mindestanzahl an Bildern, die du mit einer Person ausgetauscht haben musst, bevor du ihr deine Freunde sicher teilst.';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsMutualFriends =>
|
||||
'Wähle aus, wie viele gemeinsame Freunde eine Person haben muss, damit du ihr vorgeschlagen wirst.';
|
||||
|
|
@ -1772,47 +1566,21 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get userDiscoveryEnabledDisableWarning =>
|
||||
'Wenn du das Feature „Freunde finden“ deaktivierst, werden dir keine Vorschläge mehr angezeigt. Du teilst neuen Kontakten dann auch nicht mehr deine Freunde.';
|
||||
'Wenn du das Feature „Gemeinsame Freunde“ deaktivierst, werden dir keine Vorschläge mehr angezeigt. Du teilst neuen Kontakten dann auch nicht mehr deine Freunde.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryEnabledChangeSettings => 'Einstellungen ändern';
|
||||
|
||||
@override
|
||||
String get userDiscoveryEnabledFaq =>
|
||||
'In unserem FAQ erklären wir dir wie das Feature \"Freunde finden\" funktioniert.';
|
||||
'In unserem FAQ erklären wir dir wie das Feature \"Gemeinsame Freunde\" funktioniert.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledIntro =>
|
||||
'twonly verzichten auf Telefonnummern, daher schlagen wir dir Freunde stattdessen über gemeinsame Kontakte vor – sicher und privat.';
|
||||
'twonly kann *ohne Telefonnummer* oder den Zugriff auf dein Adressbuch verwendet werden. Stattdessen kannst du *deine Freunde über gemeinsame Freunde* finden.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledInvisible =>
|
||||
'Deine Freundesliste ist für *Fremde komplett unsichtbar*. Nur deine Freunde können Teile davon sehen – und zwar nur die Personen, mit denen sie selbst *gemeinsame Freunde* haben.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledDecide =>
|
||||
'Entscheide selbst, wer deine Freunde sehen darf. Du kannst deine Meinung jederzeit ändern oder bestimmte Personen verstecken.';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsTitle => 'Freunde finden';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsMinImagesTitle =>
|
||||
'Anzahl an geteilten Bildern';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsMutualFriendsTitle =>
|
||||
'Anzahl an gemeinsame Freunde';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledYouHaveControl => 'Du hast die Kontrolle';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledEnableWithDefault =>
|
||||
'Mit Standardeinstellungen aktivieren';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledCustomizeSettings => 'Einstellungen anpassen';
|
||||
String get userDiscoverySettingsTitle => 'Gemeinsame Freunde';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledLearnMore => 'Mehr erfahren';
|
||||
|
|
@ -1827,6 +1595,10 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get userDiscoveryEnabledFriendsSharedDesc =>
|
||||
'Du teilst nur Freunde, die diese Funktion ebenfalls aktiviert haben und die den von dir festgelegten Schwellenwert erreicht haben.';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsCurrentlyDisabled =>
|
||||
'Das Feature \"Gemeinsame Freunde\" ist derzeit deaktiviert.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryEnabledNoFriendsShared =>
|
||||
'Bisher teilst du noch niemanden.';
|
||||
|
|
@ -1870,4 +1642,31 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get userDiscoveryEnabledStopSharing => 'Nicht mehr teilen';
|
||||
|
||||
@override
|
||||
String userDiscoveryManualApprovalReachedThreshold(Object username) {
|
||||
return 'Möchtes du $username mit deinen Freunden teilen?';
|
||||
}
|
||||
|
||||
@override
|
||||
String get userDiscoveryManualApprovalHideContact => 'Kontakt verbergen';
|
||||
|
||||
@override
|
||||
String get userDiscoveryManualApprovalShareContact => 'Kontakt teilen';
|
||||
|
||||
@override
|
||||
String onboardingSetupCompleteTitle(Object username) {
|
||||
return 'Du bist startklar, $username!';
|
||||
}
|
||||
|
||||
@override
|
||||
String get onboardingSetupCompleteDesc =>
|
||||
'Du kannst jetzt deine Momente sicher mit deinen Freunden teilen, ohne Ablenkungen wie Werbung.';
|
||||
|
||||
@override
|
||||
String get contactUserDiscoveryManualApprovalPending =>
|
||||
'Der Kontakt wurde noch nicht manuell freigegeben.';
|
||||
|
||||
@override
|
||||
String get contactUserDiscoveryManualApprovalApprove => 'Freigeben';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,23 +50,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get onboardingNotProductBody =>
|
||||
'twonly is financed by donations and an optional subscription. Your data will never be sold.';
|
||||
|
||||
@override
|
||||
String get onboardingBuyOneGetTwoTitle => 'Buy one get two';
|
||||
|
||||
@override
|
||||
String get onboardingBuyOneGetTwoBody =>
|
||||
'twonly always requires at least two people, which is why you receive a second free license for your twonly partner with your purchase.';
|
||||
|
||||
@override
|
||||
String get onboardingGetStartedTitle => 'Let\'s go!';
|
||||
|
||||
@override
|
||||
String get onboardingGetStartedBody =>
|
||||
'You can test twonly free of charge in preview mode. In this mode you can be found by others and receive pictures or videos but you cannot send any yourself.';
|
||||
|
||||
@override
|
||||
String get onboardingTryForFree => 'Try for free';
|
||||
|
||||
@override
|
||||
String get registerUsernameSlogan =>
|
||||
'Please select a username so others can find you!';
|
||||
|
|
@ -85,16 +71,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get registerSubmitButton => 'Register now!';
|
||||
|
||||
@override
|
||||
String get registerTwonlyCodeText =>
|
||||
'Have you received a twonly code? Then redeem it either directly here or later!';
|
||||
|
||||
@override
|
||||
String get registerTwonlyCodeLabel => 'twonly-Code';
|
||||
|
||||
@override
|
||||
String get newMessageTitle => 'New message';
|
||||
|
||||
@override
|
||||
String get chatsTapToSend => 'Click to send your first image';
|
||||
|
||||
|
|
@ -137,23 +113,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get startNewChatNewContact => 'New Contact';
|
||||
|
||||
@override
|
||||
String get startNewChatYourContacts => 'Your Contacts';
|
||||
|
||||
@override
|
||||
String get shareImageAllUsers => 'All contacts';
|
||||
|
||||
@override
|
||||
String get shareImageAllTwonlyWarning =>
|
||||
'twonlies can only be send to verified contacts!';
|
||||
|
||||
@override
|
||||
String get shareImageUserNotVerified => 'User is not verified';
|
||||
|
||||
@override
|
||||
String get shareImageUserNotVerifiedDesc =>
|
||||
'twonlies can only be sent to verified users. To verify a user, go to their profile and to verify security number.';
|
||||
|
||||
@override
|
||||
String get shareImageShowArchived => 'Show archived users';
|
||||
|
||||
|
|
@ -163,13 +125,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get addFriendTitle => 'Add friends';
|
||||
|
||||
@override
|
||||
String get searchUserNamePreview =>
|
||||
'To protect you and other twonly users from spam and abuse, it is not possible to search for other people in preview mode. Other users can find you and their requests will be displayed here!';
|
||||
|
||||
@override
|
||||
String get selectSubscription => 'Select subscription';
|
||||
|
||||
@override
|
||||
String get searchUserNamePending => 'Request pending';
|
||||
|
||||
|
|
@ -184,15 +139,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get searchUsernameNewFollowerTitle => 'Open requests';
|
||||
|
||||
@override
|
||||
String get searchUsernameQrCodeBtn => 'Scan QR code';
|
||||
|
||||
@override
|
||||
String get chatListViewSearchUserNameBtn => 'Add your first twonly contact!';
|
||||
|
||||
@override
|
||||
String get chatListViewSendFirstTwonly => 'Send your first twonly!';
|
||||
|
||||
@override
|
||||
String get chatListDetailInput => 'Type a message';
|
||||
|
||||
|
|
@ -202,9 +151,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get contextMenuUserProfile => 'User profile';
|
||||
|
||||
@override
|
||||
String get contextMenuVerifyUser => 'Verify';
|
||||
|
||||
@override
|
||||
String get contextMenuArchiveUser => 'Archive';
|
||||
|
||||
|
|
@ -445,19 +391,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get settingsAccountDeleteAccount => 'Delete account';
|
||||
|
||||
@override
|
||||
String settingsAccountDeleteAccountWithBallance(Object credit) {
|
||||
return 'In the next step, you can select what you want to to with the remaining credit ($credit).';
|
||||
}
|
||||
|
||||
@override
|
||||
String get settingsAccountDeleteAccountNoBallance =>
|
||||
'Once you delete your account, there is no going back.';
|
||||
|
||||
@override
|
||||
String get settingsAccountDeleteAccountNoInternet =>
|
||||
'An Internet connection is required to delete your account.';
|
||||
|
||||
@override
|
||||
String get settingsAccountDeleteModalTitle => 'Are you sure?';
|
||||
|
||||
|
|
@ -469,19 +406,31 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get contactVerifyNumberTitle => 'Verify contact';
|
||||
|
||||
@override
|
||||
String get contactVerifyNumberTapToScan => 'Tap to scan';
|
||||
String get userVerifiedTitle => 'User verified';
|
||||
|
||||
@override
|
||||
String get contactVerifyNumberMarkAsVerified => 'Mark as verified';
|
||||
|
||||
@override
|
||||
String get contactVerifyNumberClearVerification => 'Clear verification';
|
||||
|
||||
@override
|
||||
String contactVerifyNumberLongDesc(Object username) {
|
||||
return 'To verify the end-to-end encryption with $username, compare the numbers with their device. The person can also scan your code with their device.';
|
||||
String contactVerifiedBy(Object username) {
|
||||
return 'Verified by $username';
|
||||
}
|
||||
|
||||
@override
|
||||
String get verificationTypeQrScanned => 'You scanned their QR code.';
|
||||
|
||||
@override
|
||||
String get verificationTypeSecretQrToken =>
|
||||
'The other person scanned your QR code.';
|
||||
|
||||
@override
|
||||
String get verificationTypeLink => 'Verified via link.';
|
||||
|
||||
@override
|
||||
String get verificationTypeContactSharedByVerified =>
|
||||
'Contact received from a verified contact.';
|
||||
|
||||
@override
|
||||
String get verificationTypeMigratedFromOldVersion =>
|
||||
'Migrated from old version.';
|
||||
|
||||
@override
|
||||
String get contactViewMessage => 'Message';
|
||||
|
||||
|
|
@ -491,14 +440,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get contactNicknameNew => 'New nickname';
|
||||
|
||||
@override
|
||||
String get deleteAllContactMessages => 'Delete all text-messages';
|
||||
|
||||
@override
|
||||
String deleteAllContactMessagesBody(Object username) {
|
||||
return 'This will remove all messages, except stored media files, in your chat with $username. This will NOT delete the messages stored at $username\'s device!';
|
||||
}
|
||||
|
||||
@override
|
||||
String get contactBlock => 'Block';
|
||||
|
||||
|
|
@ -532,6 +473,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get next => 'Next';
|
||||
|
||||
@override
|
||||
String get finishSetup => 'Complete setup';
|
||||
|
||||
@override
|
||||
String get submit => 'Submit';
|
||||
|
||||
|
|
@ -602,9 +546,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get toggleFlashLight => 'Toggle the flash light';
|
||||
|
||||
@override
|
||||
String get toggleHighQuality => 'Toggle better resolution';
|
||||
|
||||
@override
|
||||
String userFound(Object username) {
|
||||
return '$username found';
|
||||
|
|
@ -613,23 +554,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get userFoundBody => 'Do you want to create a follow request?';
|
||||
|
||||
@override
|
||||
String searchUsernameNotFoundLong(Object username) {
|
||||
return '\"$username\" is not a twonly user. Please check the username and try again.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get errorUnknown =>
|
||||
'An unexpected error has occurred. Please try again later.';
|
||||
|
||||
@override
|
||||
String get errorBadRequest =>
|
||||
'The request could not be understood by the server due to malformed syntax. Please check your input and try again.';
|
||||
|
||||
@override
|
||||
String get errorTooManyRequests =>
|
||||
'You have made too many requests in a short period. Please wait a moment before trying again.';
|
||||
|
||||
@override
|
||||
String get errorInternalError =>
|
||||
'The server is currently not available. Please try again later.';
|
||||
|
|
@ -641,34 +565,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get errorUsernameAlreadyTaken => 'The username is already taken.';
|
||||
|
||||
@override
|
||||
String get errorSignatureNotValid =>
|
||||
'The provided signature is not valid. Please check your credentials and try again.';
|
||||
|
||||
@override
|
||||
String get errorUsernameNotFound =>
|
||||
'The username you entered does not exist. Please check the spelling or create a new account.';
|
||||
|
||||
@override
|
||||
String get errorUsernameNotValid =>
|
||||
'The username you provided does not meet the required criteria. Please choose a valid username.';
|
||||
|
||||
@override
|
||||
String get errorInvalidPublicKey =>
|
||||
'The public key you provided is invalid. Please check the key and try again.';
|
||||
|
||||
@override
|
||||
String get errorSessionAlreadyAuthenticated =>
|
||||
'You are already logged in. Please log out if you want to log in with a different account.';
|
||||
|
||||
@override
|
||||
String get errorSessionNotAuthenticated =>
|
||||
'Your session is not authenticated. Please log in to continue.';
|
||||
|
||||
@override
|
||||
String get errorOnlyOneSessionAllowed =>
|
||||
'Only one active session is allowed per user. Please log out from other devices to continue.';
|
||||
|
||||
@override
|
||||
String get errorNotEnoughCredit => 'You do not have enough twonly-credit.';
|
||||
|
||||
|
|
@ -746,144 +646,27 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get plusFeature2 => '✓ Additional features (coming-soon)';
|
||||
|
||||
@override
|
||||
String get transactionHistory => 'Your transaction history';
|
||||
|
||||
@override
|
||||
String get manageSubscription => 'Manage subscription';
|
||||
|
||||
@override
|
||||
String get nextPayment => 'Next payment';
|
||||
|
||||
@override
|
||||
String get currentBalance => 'Current balance';
|
||||
|
||||
@override
|
||||
String get manageAdditionalUsers => 'Manage additional users';
|
||||
|
||||
@override
|
||||
String get open => 'Open';
|
||||
|
||||
@override
|
||||
String get createOrRedeemVoucher => 'Buy or redeem voucher';
|
||||
|
||||
@override
|
||||
String get createVoucher => 'Buy voucher';
|
||||
|
||||
@override
|
||||
String get createVoucherDesc =>
|
||||
'Choose the value of the voucher. The value of the voucher will be deducted from your twonly balance.';
|
||||
|
||||
@override
|
||||
String get redeemVoucher => 'Redeem voucher';
|
||||
|
||||
@override
|
||||
String get openVouchers => 'Open vouchers';
|
||||
|
||||
@override
|
||||
String get voucherCreated => 'Voucher created';
|
||||
|
||||
@override
|
||||
String get voucherRedeemed => 'Voucher redeemed';
|
||||
|
||||
@override
|
||||
String get enterVoucherCode => 'Enter Voucher Code';
|
||||
|
||||
@override
|
||||
String get requestedVouchers => 'Requested vouchers';
|
||||
|
||||
@override
|
||||
String get redeemedVouchers => 'Redeemed vouchers';
|
||||
|
||||
@override
|
||||
String get buy => 'Buy';
|
||||
|
||||
@override
|
||||
String subscriptionRefund(Object refund) {
|
||||
return 'When you upgrade, you will receive a refund of $refund for your current subscription.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get transactionCash => 'Cash transaction';
|
||||
|
||||
@override
|
||||
String get transactionPlanUpgrade => 'Plan upgrade';
|
||||
|
||||
@override
|
||||
String get transactionRefund => 'Refund transaction';
|
||||
|
||||
@override
|
||||
String get transactionThanksForTesting => 'Thank you for testing';
|
||||
|
||||
@override
|
||||
String get transactionUnknown => 'Unknown transaction';
|
||||
|
||||
@override
|
||||
String get transactionVoucherCreated => 'Voucher created';
|
||||
|
||||
@override
|
||||
String get transactionVoucherRedeemed => 'Voucher redeemed';
|
||||
|
||||
@override
|
||||
String get transactionAutoRenewal => 'Automatic renewal';
|
||||
|
||||
@override
|
||||
String get checkoutOptions => 'Options';
|
||||
|
||||
@override
|
||||
String get refund => 'Refund';
|
||||
|
||||
@override
|
||||
String get checkoutPayYearly => 'Pay yearly';
|
||||
|
||||
@override
|
||||
String get checkoutTotal => 'Total';
|
||||
|
||||
@override
|
||||
String get selectPaymentMethod => 'Select Payment Method';
|
||||
|
||||
@override
|
||||
String get twonlyCredit => 'twonly-Credit';
|
||||
|
||||
@override
|
||||
String get notEnoughCredit => 'You do not have enough credit!';
|
||||
|
||||
@override
|
||||
String get chargeCredit => 'Charge credit';
|
||||
|
||||
@override
|
||||
String get autoRenewal => 'Auto renewal';
|
||||
|
||||
@override
|
||||
String get autoRenewalDesc => 'You can change this at any time.';
|
||||
|
||||
@override
|
||||
String get autoRenewalLongDesc =>
|
||||
'When your subscription expires, you will automatically be downgraded to the Preview plan. If you activate the automatic renewal, please make sure that you have enough credit for the automatic renewal. We will notify you in good time before the automatic renewal.';
|
||||
|
||||
@override
|
||||
String get planSuccessUpgraded => 'Successfully upgraded your plan.';
|
||||
|
||||
@override
|
||||
String get checkoutSubmit => 'Order with a fee.';
|
||||
|
||||
@override
|
||||
String get additionalUsersList => 'Your additional users';
|
||||
|
||||
@override
|
||||
String get additionalUsersPlusTokens => 'twonly-codes for \"Plus\" user';
|
||||
|
||||
@override
|
||||
String get additionalUsersFreeTokens => 'twonly-codes for \"Free\" user';
|
||||
|
||||
@override
|
||||
String get planLimitReached =>
|
||||
'You have reached your plan limit for today. Upgrade your plan now to send the media file.';
|
||||
|
||||
@override
|
||||
String get planNotAllowed =>
|
||||
'You cannot send media files with your current tariff. Upgrade your plan now to send the media file.';
|
||||
|
||||
@override
|
||||
String get galleryDelete => 'Delete file';
|
||||
|
||||
|
|
@ -896,48 +679,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get galleryExportSuccess => 'Successfully saved in the Gallery.';
|
||||
|
||||
@override
|
||||
String get settingsResetTutorials => 'Show tutorials again';
|
||||
|
||||
@override
|
||||
String get settingsResetTutorialsDesc =>
|
||||
'Click here to show already displayed tutorials again.';
|
||||
|
||||
@override
|
||||
String get settingsResetTutorialsSuccess =>
|
||||
'Tutorials will be displayed again.';
|
||||
|
||||
@override
|
||||
String get tutorialChatListSearchUsersTitle =>
|
||||
'Find Friends and Manage Friend Requests';
|
||||
|
||||
@override
|
||||
String get tutorialChatListSearchUsersDesc =>
|
||||
'If you know your friends\' usernames, you can search for them here and send a friend request. You will also see all requests from other users that you can accept or block.';
|
||||
|
||||
@override
|
||||
String get tutorialChatListContextMenuTitle =>
|
||||
'Long press on the contact to open the context menu.';
|
||||
|
||||
@override
|
||||
String get tutorialChatListContextMenuDesc =>
|
||||
'With the context menu, you can pin, archive, and perform various actions on your contacts. Simply long press the contact and then move your finger to the desired option or tap directly on it.';
|
||||
|
||||
@override
|
||||
String get tutorialChatMessagesVerifyShieldTitle => 'Verify your contacts!';
|
||||
|
||||
@override
|
||||
String get tutorialChatMessagesVerifyShieldDesc =>
|
||||
'twonly uses the Signal protocol for secure end-to-end encryption. When you first contact someone, their public identity key is downloaded. To ensure that this key has not been tampered with by third parties, you should compare it with your friend when you meet in person. Once you have verified the user, you can also enable the twonly mode when sending images and videos.';
|
||||
|
||||
@override
|
||||
String get tutorialChatMessagesReopenMessageTitle =>
|
||||
'Reopen Images and Videos';
|
||||
|
||||
@override
|
||||
String get tutorialChatMessagesReopenMessageDesc =>
|
||||
'If your friend has sent you a picture or video with infinite display time, you can open it again at any time until you restart the app. To do this, simply double-click on the message. Your friend will then receive a notification that you have viewed the picture again.';
|
||||
|
||||
@override
|
||||
String get memoriesEmpty =>
|
||||
'As soon as you save pictures or videos, they end up here in your memories.';
|
||||
|
|
@ -960,19 +701,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get settingsBackup => 'Backup';
|
||||
|
||||
@override
|
||||
String get backupNoticeTitle => 'No backup configured';
|
||||
|
||||
@override
|
||||
String get backupNoticeDesc =>
|
||||
'If you change or lose your device, no one can restore your account without a backup. Therefore, back up your data.';
|
||||
|
||||
@override
|
||||
String get backupNoticeLater => 'Remind later';
|
||||
|
||||
@override
|
||||
String get backupNoticeOpenBackup => 'Create backup';
|
||||
|
||||
@override
|
||||
String get backupPending => 'Pending';
|
||||
|
||||
|
|
@ -1008,20 +736,9 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get backupLastBackupResult => 'Result';
|
||||
|
||||
@override
|
||||
String get deleteBackupTitle => 'Are you sure?';
|
||||
|
||||
@override
|
||||
String get deleteBackupBody =>
|
||||
'Without an backup, you can not restore your user account.';
|
||||
|
||||
@override
|
||||
String get backupData => 'Data-Backup';
|
||||
|
||||
@override
|
||||
String get backupDataDesc =>
|
||||
'This backup contains besides of your twonly-Identity also all of your media files. This backup will is also encrypted but stored locally. You then have to ensure to manually copy it onto your laptop or device of your choice.';
|
||||
|
||||
@override
|
||||
String get backupInsecurePassword => 'Insecure password';
|
||||
|
||||
|
|
@ -1118,10 +835,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get retransmissionRequested => 'Retransmission requested';
|
||||
|
||||
@override
|
||||
String get testPaymentMethod =>
|
||||
'Thanks for the interest in a paid plan. Currently the paid plans are still deactivated. But they will be activated soon!';
|
||||
|
||||
@override
|
||||
String get openChangeLog => 'Open changelog automatically';
|
||||
|
||||
|
|
@ -1552,6 +1265,88 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get skipForNow => 'Skip for now';
|
||||
|
||||
@override
|
||||
String get finishSetupCardTitle => 'Complete your profile';
|
||||
|
||||
@override
|
||||
String get finishSetupCardDesc =>
|
||||
'You are almost there! Finish setting up your account to get the most out of twonly.';
|
||||
|
||||
@override
|
||||
String get finishSetupCardAction => 'Resume Setup';
|
||||
|
||||
@override
|
||||
String get onboardingFinishLater => 'Finish later';
|
||||
|
||||
@override
|
||||
String get onboardingProfileTitle => 'Choose your look';
|
||||
|
||||
@override
|
||||
String get onboardingProfileBody =>
|
||||
'Select an avatar and a display name that friends will see.';
|
||||
|
||||
@override
|
||||
String get onboardingBackupBody =>
|
||||
'Back up your twonly identity, as this is the only way to restore your account if you uninstall the app or lose your phone.';
|
||||
|
||||
@override
|
||||
String get onboardingVerificationBadgeTitle => 'Verification Badge';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryShareFriends => 'Share your friends';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryShareFriendsDesc =>
|
||||
'Share with your friends who you know and who you have verified. Friends can *only see mutual friends* from your friend list. You can change your mind at *any time* or *hide specific people*.';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryContactsVerifiedBadge =>
|
||||
'Contacts verified by your friends get a badge';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryWhoIsRequesting =>
|
||||
'Be informed about who is requesting';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsManualApproval => 'Manual approval';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsManualApprovalDesc =>
|
||||
'Before someone is shared, you\'ll be asked first.';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryLetFriendsFindYou =>
|
||||
'Let your friends find you';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryBeRecommended => 'Be recommended to others';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryWhatOthersSee => 'What others will see';
|
||||
|
||||
@override
|
||||
String get onboardingUserDiscoveryWhatYouSee =>
|
||||
'If requested, that\'s what you will see';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsTitle => 'Add new contacts';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsAcceptDesc =>
|
||||
'In twonly, every contact must first be accepted before you can communicate.';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsMethodHeading => 'Add contacts';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsMethodScan => 'Scan the contact\'s QR code.';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsMethodSearch => 'Search for the username.';
|
||||
|
||||
@override
|
||||
String get onboardingAddContactsMethodShare => 'Share a contact in chats.';
|
||||
|
||||
@override
|
||||
String linkFromUsername(Object username) {
|
||||
return 'Is the link from $username?';
|
||||
|
|
@ -1679,19 +1474,19 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get verificationBadgeGeneralDesc =>
|
||||
'The green checkmark gives you the certainty that you are messaging the right person.';
|
||||
'The checkmark gives you the certainty that you are messaging the right person. Scan the contact\'s QR code to verify it.';
|
||||
|
||||
@override
|
||||
String get verificationBadgeGreenDesc =>
|
||||
'Contact that you have personally verified via QR code. This also verified their public key.';
|
||||
'A contact you have *personally* verified.';
|
||||
|
||||
@override
|
||||
String get verificationBadgeYellowDesc =>
|
||||
'(Coming soon) Contact whose QR code was scanned by one of your personally verified contacts.';
|
||||
'A contact who has been verified by at least one of *your contacts*.';
|
||||
|
||||
@override
|
||||
String get verificationBadgeRedDesc =>
|
||||
'Unknown contact whose identity has not yet been verified.';
|
||||
'A contact whose identity has *not* yet been verified.';
|
||||
|
||||
@override
|
||||
String chatEntryFlameRestored(Object count) {
|
||||
|
|
@ -1747,10 +1542,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get contactActionAccept => 'Accept';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsMinImages =>
|
||||
'Choose the minimum number of images you must have exchanged with a person before you securely share your friends with them.';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsMutualFriends =>
|
||||
'Choose how many mutual friends a person must have for you to be suggested to them.';
|
||||
|
|
@ -1760,46 +1551,21 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get userDiscoveryEnabledDisableWarning =>
|
||||
'If you disable the \"Find friends\" feature, you will no longer see suggestions. You will also stop sharing your friends with new contacts.';
|
||||
'If you disable the \"Mutual Friends\" feature, you will no longer see suggestions. You will also stop sharing your friends with new contacts.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryEnabledChangeSettings => 'Change settings';
|
||||
|
||||
@override
|
||||
String get userDiscoveryEnabledFaq =>
|
||||
'In our FAQ we explain how the \"Find friends\" feature works.';
|
||||
'In our FAQ we explain how the \"Mutual Friends\" feature works.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledIntro =>
|
||||
'twonly doesn\'t use phone numbers, so we suggest friends based on mutual contacts instead – securely and privately.';
|
||||
'twonly does *not* collect your phone number or needs access to your contacts. Instead, twonly can *find your friends through mutual friends*.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledInvisible =>
|
||||
'Your friend list is *completely invisible to strangers*. Only your friends can see parts of it – and only those people with whom they have *mutual friends* themselves.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledDecide =>
|
||||
'Decide for yourself who can see your friends. You can change your mind at any time or hide specific people.';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsTitle => 'Find friends';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsMinImagesTitle => 'Number of shared images';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsMutualFriendsTitle =>
|
||||
'Number of mutual friends';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledYouHaveControl => 'You are in control';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledEnableWithDefault =>
|
||||
'Enable with default settings';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledCustomizeSettings => 'Customize settings';
|
||||
String get userDiscoverySettingsTitle => 'Mutual Friends';
|
||||
|
||||
@override
|
||||
String get userDiscoveryDisabledLearnMore => 'Learn more';
|
||||
|
|
@ -1814,6 +1580,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get userDiscoveryEnabledFriendsSharedDesc =>
|
||||
'You only share friends who have also activated this feature and who have reached the threshold you set.';
|
||||
|
||||
@override
|
||||
String get userDiscoverySettingsCurrentlyDisabled =>
|
||||
'The feature \"Mutual Friends\" is currently disabled.';
|
||||
|
||||
@override
|
||||
String get userDiscoveryEnabledNoFriendsShared =>
|
||||
'You are not sharing anyone yet.';
|
||||
|
|
@ -1857,4 +1627,31 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get userDiscoveryEnabledStopSharing => 'Stop sharing';
|
||||
|
||||
@override
|
||||
String userDiscoveryManualApprovalReachedThreshold(Object username) {
|
||||
return 'Would you like to share $username with your friends?';
|
||||
}
|
||||
|
||||
@override
|
||||
String get userDiscoveryManualApprovalHideContact => 'Hide contact';
|
||||
|
||||
@override
|
||||
String get userDiscoveryManualApprovalShareContact => 'Share contact';
|
||||
|
||||
@override
|
||||
String onboardingSetupCompleteTitle(Object username) {
|
||||
return 'You\'re all set, $username!';
|
||||
}
|
||||
|
||||
@override
|
||||
String get onboardingSetupCompleteDesc =>
|
||||
'You can now share your moments with your friends securely without distractions like ads.';
|
||||
|
||||
@override
|
||||
String get contactUserDiscoveryManualApprovalPending =>
|
||||
'Contact was not yet manually approved.';
|
||||
|
||||
@override
|
||||
String get contactUserDiscoveryManualApprovalApprove => 'Approve';
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1 +1 @@
|
|||
Subproject commit 57ec512977e514fca6413622bb4a7e03701f09a0
|
||||
Subproject commit 03bf220400bf35002c77e153768bd0f963a97d89
|
||||
89
lib/src/model/json/faq.model.dart
Normal file
89
lib/src/model/json/faq.model.dart
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'faq.model.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class FaqData {
|
||||
const FaqData({required this.languages});
|
||||
|
||||
factory FaqData.fromJson(Map<String, dynamic> json) {
|
||||
return FaqData(
|
||||
languages: json.map(
|
||||
(key, value) => MapEntry(
|
||||
key,
|
||||
(value as Map<String, dynamic>).map(
|
||||
(catKey, catValue) => MapEntry(
|
||||
catKey,
|
||||
FaqCategory.fromJson(catValue as Map<String, dynamic>),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
final Map<String, Map<String, FaqCategory>> languages;
|
||||
|
||||
Map<String, dynamic> toJson() => languages.map(
|
||||
(key, value) => MapEntry(
|
||||
key,
|
||||
value.map((catKey, catValue) => MapEntry(catKey, catValue.toJson())),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class FaqCategory {
|
||||
const FaqCategory({
|
||||
required this.meta,
|
||||
required this.questions,
|
||||
});
|
||||
|
||||
factory FaqCategory.fromJson(Map<String, dynamic> json) =>
|
||||
_$FaqCategoryFromJson(json);
|
||||
|
||||
final FaqMeta meta;
|
||||
final List<FaqQuestion> questions;
|
||||
|
||||
Map<String, dynamic> toJson() => _$FaqCategoryToJson(this);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class FaqMeta {
|
||||
const FaqMeta({
|
||||
required this.title,
|
||||
required this.desc,
|
||||
this.priority = 0,
|
||||
});
|
||||
|
||||
factory FaqMeta.fromJson(Map<String, dynamic> json) =>
|
||||
_$FaqMetaFromJson(json);
|
||||
|
||||
final String title;
|
||||
final String desc;
|
||||
|
||||
@JsonKey(defaultValue: 0)
|
||||
final int priority;
|
||||
|
||||
Map<String, dynamic> toJson() => _$FaqMetaToJson(this);
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class FaqQuestion {
|
||||
const FaqQuestion({
|
||||
required this.id,
|
||||
required this.title,
|
||||
required this.body,
|
||||
required this.path,
|
||||
});
|
||||
|
||||
factory FaqQuestion.fromJson(Map<String, dynamic> json) =>
|
||||
_$FaqQuestionFromJson(json);
|
||||
|
||||
final String id;
|
||||
final String title;
|
||||
final String body;
|
||||
final String path;
|
||||
|
||||
Map<String, dynamic> toJson() => _$FaqQuestionToJson(this);
|
||||
}
|
||||
59
lib/src/model/json/faq.model.g.dart
Normal file
59
lib/src/model/json/faq.model.g.dart
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'faq.model.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
FaqData _$FaqDataFromJson(Map<String, dynamic> json) => FaqData(
|
||||
languages: (json['languages'] as Map<String, dynamic>).map(
|
||||
(k, e) => MapEntry(
|
||||
k,
|
||||
(e as Map<String, dynamic>).map(
|
||||
(k, e) => MapEntry(k, FaqCategory.fromJson(e as Map<String, dynamic>)),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$FaqDataToJson(FaqData instance) => <String, dynamic>{
|
||||
'languages': instance.languages,
|
||||
};
|
||||
|
||||
FaqCategory _$FaqCategoryFromJson(Map<String, dynamic> json) => FaqCategory(
|
||||
meta: FaqMeta.fromJson(json['meta'] as Map<String, dynamic>),
|
||||
questions: (json['questions'] as List<dynamic>)
|
||||
.map((e) => FaqQuestion.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$FaqCategoryToJson(FaqCategory instance) =>
|
||||
<String, dynamic>{'meta': instance.meta, 'questions': instance.questions};
|
||||
|
||||
FaqMeta _$FaqMetaFromJson(Map<String, dynamic> json) => FaqMeta(
|
||||
title: json['title'] as String,
|
||||
desc: json['desc'] as String,
|
||||
priority: (json['priority'] as num?)?.toInt() ?? 0,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$FaqMetaToJson(FaqMeta instance) => <String, dynamic>{
|
||||
'title': instance.title,
|
||||
'desc': instance.desc,
|
||||
'priority': instance.priority,
|
||||
};
|
||||
|
||||
FaqQuestion _$FaqQuestionFromJson(Map<String, dynamic> json) => FaqQuestion(
|
||||
id: json['id'] as String,
|
||||
title: json['title'] as String,
|
||||
body: json['body'] as String,
|
||||
path: json['path'] as String,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$FaqQuestionToJson(FaqQuestion instance) =>
|
||||
<String, dynamic>{
|
||||
'id': instance.id,
|
||||
'title': instance.title,
|
||||
'body': instance.body,
|
||||
'path': instance.path,
|
||||
};
|
||||
|
|
@ -3,7 +3,7 @@ import 'dart:typed_data';
|
|||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'signal_identity.g.dart';
|
||||
part 'signal_identity.model.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class SignalIdentity {
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'signal_identity.dart';
|
||||
part of 'signal_identity.model.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
part 'userdata.g.dart';
|
||||
part 'userdata.model.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class UserData {
|
||||
|
|
@ -9,6 +9,7 @@ class UserData {
|
|||
required this.username,
|
||||
required this.displayName,
|
||||
required this.subscriptionPlan,
|
||||
required this.currentSetupPage,
|
||||
});
|
||||
factory UserData.fromJson(Map<String, dynamic> json) =>
|
||||
_$UserDataFromJson(json);
|
||||
|
|
@ -43,6 +44,9 @@ class UserData {
|
|||
DateTime? lastImageSend;
|
||||
int? todaysImageCounter;
|
||||
|
||||
String? lastPlanBallance;
|
||||
String? additionalUserInvites;
|
||||
|
||||
// --- SETTINGS ---
|
||||
|
||||
@JsonKey(defaultValue: ThemeMode.system)
|
||||
|
|
@ -78,11 +82,6 @@ class UserData {
|
|||
@JsonKey(defaultValue: true)
|
||||
bool typingIndicators = true;
|
||||
|
||||
String? lastPlanBallance;
|
||||
String? additionalUserInvites;
|
||||
|
||||
List<String>? tutorialDisplayed;
|
||||
|
||||
String? myBestFriendGroupId;
|
||||
|
||||
DateTime? signalLastSignedPreKeyUpdated;
|
||||
|
|
@ -93,6 +92,23 @@ class UserData {
|
|||
@JsonKey(defaultValue: false)
|
||||
bool screenLockEnabled = false;
|
||||
|
||||
// > User Discovery Configurations
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
bool isUserDiscoveryEnabled = false;
|
||||
|
||||
@JsonKey(defaultValue: 4)
|
||||
int requiredSendImages = 4;
|
||||
|
||||
@JsonKey(defaultValue: 2)
|
||||
int userDiscoveryThreshold = 2;
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
bool userDiscoveryRequiresManualApproval = false;
|
||||
|
||||
@JsonKey(defaultValue: true)
|
||||
bool userDiscoverySharePromotion = true;
|
||||
|
||||
// -- Custom DATA --
|
||||
|
||||
@JsonKey(defaultValue: 100_000)
|
||||
|
|
@ -124,9 +140,17 @@ class UserData {
|
|||
// So update data can be assigned. If set the user choose to participate.
|
||||
String? userStudyParticipantsToken;
|
||||
|
||||
@JsonKey(defaultValue: 0)
|
||||
int userStudyCountNewFriendsViaSuggestion = 0;
|
||||
|
||||
// Once a day the anonymous data is collected and send to the server
|
||||
DateTime? lastUserStudyDataUpload;
|
||||
|
||||
String? currentSetupPage;
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
bool skipSetupPages = false;
|
||||
|
||||
Map<String, dynamic> toJson() => _$UserDataToJson(this);
|
||||
}
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'userdata.dart';
|
||||
part of 'userdata.model.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
|
|
@ -12,6 +12,7 @@ UserData _$UserDataFromJson(Map<String, dynamic> json) =>
|
|||
username: json['username'] as String,
|
||||
displayName: json['displayName'] as String,
|
||||
subscriptionPlan: json['subscriptionPlan'] as String? ?? 'Free',
|
||||
currentSetupPage: json['currentSetupPage'] as String?,
|
||||
)
|
||||
..avatarSvg = json['avatarSvg'] as String?
|
||||
..avatarJson = json['avatarJson'] as String?
|
||||
|
|
@ -24,6 +25,8 @@ UserData _$UserDataFromJson(Map<String, dynamic> json) =>
|
|||
? null
|
||||
: DateTime.parse(json['lastImageSend'] as String)
|
||||
..todaysImageCounter = (json['todaysImageCounter'] as num?)?.toInt()
|
||||
..lastPlanBallance = json['lastPlanBallance'] as String?
|
||||
..additionalUserInvites = json['additionalUserInvites'] as String?
|
||||
..themeMode =
|
||||
$enumDecodeNullable(_$ThemeModeEnumMap, json['themeMode']) ??
|
||||
ThemeMode.system
|
||||
|
|
@ -51,11 +54,6 @@ UserData _$UserDataFromJson(Map<String, dynamic> json) =>
|
|||
..autoStoreAllSendUnlimitedMediaFiles =
|
||||
json['autoStoreAllSendUnlimitedMediaFiles'] as bool? ?? false
|
||||
..typingIndicators = json['typingIndicators'] as bool? ?? true
|
||||
..lastPlanBallance = json['lastPlanBallance'] as String?
|
||||
..additionalUserInvites = json['additionalUserInvites'] as String?
|
||||
..tutorialDisplayed = (json['tutorialDisplayed'] as List<dynamic>?)
|
||||
?.map((e) => e as String)
|
||||
.toList()
|
||||
..myBestFriendGroupId = json['myBestFriendGroupId'] as String?
|
||||
..signalLastSignedPreKeyUpdated =
|
||||
json['signalLastSignedPreKeyUpdated'] == null
|
||||
|
|
@ -64,6 +62,15 @@ UserData _$UserDataFromJson(Map<String, dynamic> json) =>
|
|||
..allowErrorTrackingViaSentry =
|
||||
json['allowErrorTrackingViaSentry'] as bool? ?? false
|
||||
..screenLockEnabled = json['screenLockEnabled'] as bool? ?? false
|
||||
..isUserDiscoveryEnabled =
|
||||
json['isUserDiscoveryEnabled'] as bool? ?? false
|
||||
..requiredSendImages = (json['requiredSendImages'] as num?)?.toInt() ?? 4
|
||||
..userDiscoveryThreshold =
|
||||
(json['userDiscoveryThreshold'] as num?)?.toInt() ?? 2
|
||||
..userDiscoveryRequiresManualApproval =
|
||||
json['userDiscoveryRequiresManualApproval'] as bool? ?? false
|
||||
..userDiscoverySharePromotion =
|
||||
json['userDiscoverySharePromotion'] as bool? ?? true
|
||||
..currentPreKeyIndexStart =
|
||||
(json['currentPreKeyIndexStart'] as num?)?.toInt() ?? 100000
|
||||
..currentSignedPreKeyIndexStart =
|
||||
|
|
@ -88,9 +95,12 @@ UserData _$UserDataFromJson(Map<String, dynamic> json) =>
|
|||
json['askedForUserStudyPermission'] as bool? ?? false
|
||||
..userStudyParticipantsToken =
|
||||
json['userStudyParticipantsToken'] as String?
|
||||
..userStudyCountNewFriendsViaSuggestion =
|
||||
(json['userStudyCountNewFriendsViaSuggestion'] as num?)?.toInt() ?? 0
|
||||
..lastUserStudyDataUpload = json['lastUserStudyDataUpload'] == null
|
||||
? null
|
||||
: DateTime.parse(json['lastUserStudyDataUpload'] as String);
|
||||
: DateTime.parse(json['lastUserStudyDataUpload'] as String)
|
||||
..skipSetupPages = json['skipSetupPages'] as bool? ?? false;
|
||||
|
||||
Map<String, dynamic> _$UserDataToJson(UserData instance) => <String, dynamic>{
|
||||
'userId': instance.userId,
|
||||
|
|
@ -106,6 +116,8 @@ Map<String, dynamic> _$UserDataToJson(UserData instance) => <String, dynamic>{
|
|||
'subscriptionPlanIdStore': instance.subscriptionPlanIdStore,
|
||||
'lastImageSend': instance.lastImageSend?.toIso8601String(),
|
||||
'todaysImageCounter': instance.todaysImageCounter,
|
||||
'lastPlanBallance': instance.lastPlanBallance,
|
||||
'additionalUserInvites': instance.additionalUserInvites,
|
||||
'themeMode': _$ThemeModeEnumMap[instance.themeMode]!,
|
||||
'defaultShowTime': instance.defaultShowTime,
|
||||
'requestedAudioPermission': instance.requestedAudioPermission,
|
||||
|
|
@ -119,14 +131,17 @@ Map<String, dynamic> _$UserDataToJson(UserData instance) => <String, dynamic>{
|
|||
'autoStoreAllSendUnlimitedMediaFiles':
|
||||
instance.autoStoreAllSendUnlimitedMediaFiles,
|
||||
'typingIndicators': instance.typingIndicators,
|
||||
'lastPlanBallance': instance.lastPlanBallance,
|
||||
'additionalUserInvites': instance.additionalUserInvites,
|
||||
'tutorialDisplayed': instance.tutorialDisplayed,
|
||||
'myBestFriendGroupId': instance.myBestFriendGroupId,
|
||||
'signalLastSignedPreKeyUpdated': instance.signalLastSignedPreKeyUpdated
|
||||
?.toIso8601String(),
|
||||
'allowErrorTrackingViaSentry': instance.allowErrorTrackingViaSentry,
|
||||
'screenLockEnabled': instance.screenLockEnabled,
|
||||
'isUserDiscoveryEnabled': instance.isUserDiscoveryEnabled,
|
||||
'requiredSendImages': instance.requiredSendImages,
|
||||
'userDiscoveryThreshold': instance.userDiscoveryThreshold,
|
||||
'userDiscoveryRequiresManualApproval':
|
||||
instance.userDiscoveryRequiresManualApproval,
|
||||
'userDiscoverySharePromotion': instance.userDiscoverySharePromotion,
|
||||
'currentPreKeyIndexStart': instance.currentPreKeyIndexStart,
|
||||
'currentSignedPreKeyIndexStart': instance.currentSignedPreKeyIndexStart,
|
||||
'lastChangeLogHash': instance.lastChangeLogHash,
|
||||
|
|
@ -138,8 +153,12 @@ Map<String, dynamic> _$UserDataToJson(UserData instance) => <String, dynamic>{
|
|||
'twonlySafeBackup': instance.twonlySafeBackup,
|
||||
'askedForUserStudyPermission': instance.askedForUserStudyPermission,
|
||||
'userStudyParticipantsToken': instance.userStudyParticipantsToken,
|
||||
'userStudyCountNewFriendsViaSuggestion':
|
||||
instance.userStudyCountNewFriendsViaSuggestion,
|
||||
'lastUserStudyDataUpload': instance.lastUserStudyDataUpload
|
||||
?.toIso8601String(),
|
||||
'currentSetupPage': instance.currentSetupPage,
|
||||
'skipSetupPages': instance.skipSetupPages,
|
||||
};
|
||||
|
||||
const _$ThemeModeEnumMap = {
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
@ -51,7 +51,7 @@ class TextMessage extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TextMessage clone() => TextMessage()..mergeFromMessage(this);
|
||||
TextMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TextMessage copyWith(void Function(TextMessage) updates) =>
|
||||
super.copyWith((message) => updates(message as TextMessage))
|
||||
|
|
@ -64,7 +64,6 @@ class TextMessage extends $pb.GeneratedMessage {
|
|||
static TextMessage create() => TextMessage._();
|
||||
@$core.override
|
||||
TextMessage createEmptyInstance() => create();
|
||||
static $pb.PbList<TextMessage> createRepeated() => $pb.PbList<TextMessage>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static TextMessage getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<TextMessage>(create);
|
||||
|
|
@ -129,13 +128,12 @@ class UploadRequest extends $pb.GeneratedMessage {
|
|||
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,
|
||||
..pPM<TextMessage>(3, _omitFieldNames ? '' : 'messagesOnSuccess',
|
||||
subBuilder: TextMessage.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UploadRequest clone() => UploadRequest()..mergeFromMessage(this);
|
||||
UploadRequest clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UploadRequest copyWith(void Function(UploadRequest) updates) =>
|
||||
super.copyWith((message) => updates(message as UploadRequest))
|
||||
|
|
@ -148,8 +146,6 @@ class UploadRequest extends $pb.GeneratedMessage {
|
|||
static UploadRequest create() => UploadRequest._();
|
||||
@$core.override
|
||||
UploadRequest createEmptyInstance() => create();
|
||||
static $pb.PbList<UploadRequest> createRepeated() =>
|
||||
$pb.PbList<UploadRequest>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UploadRequest getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<UploadRequest>(create);
|
||||
|
|
@ -220,8 +216,7 @@ class UpdateGroupState_UpdateTBS extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UpdateGroupState_UpdateTBS clone() =>
|
||||
UpdateGroupState_UpdateTBS()..mergeFromMessage(this);
|
||||
UpdateGroupState_UpdateTBS clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UpdateGroupState_UpdateTBS copyWith(
|
||||
void Function(UpdateGroupState_UpdateTBS) updates) =>
|
||||
|
|
@ -236,8 +231,6 @@ class UpdateGroupState_UpdateTBS extends $pb.GeneratedMessage {
|
|||
static UpdateGroupState_UpdateTBS create() => UpdateGroupState_UpdateTBS._();
|
||||
@$core.override
|
||||
UpdateGroupState_UpdateTBS createEmptyInstance() => create();
|
||||
static $pb.PbList<UpdateGroupState_UpdateTBS> createRepeated() =>
|
||||
$pb.PbList<UpdateGroupState_UpdateTBS>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UpdateGroupState_UpdateTBS getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<UpdateGroupState_UpdateTBS>(create);
|
||||
|
|
@ -331,7 +324,7 @@ class UpdateGroupState extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UpdateGroupState clone() => UpdateGroupState()..mergeFromMessage(this);
|
||||
UpdateGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UpdateGroupState copyWith(void Function(UpdateGroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as UpdateGroupState))
|
||||
|
|
@ -344,8 +337,6 @@ class UpdateGroupState extends $pb.GeneratedMessage {
|
|||
static UpdateGroupState create() => UpdateGroupState._();
|
||||
@$core.override
|
||||
UpdateGroupState createEmptyInstance() => create();
|
||||
static $pb.PbList<UpdateGroupState> createRepeated() =>
|
||||
$pb.PbList<UpdateGroupState>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UpdateGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<UpdateGroupState>(create);
|
||||
|
|
@ -412,7 +403,7 @@ class NewGroupState extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
NewGroupState clone() => NewGroupState()..mergeFromMessage(this);
|
||||
NewGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
NewGroupState copyWith(void Function(NewGroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as NewGroupState))
|
||||
|
|
@ -425,8 +416,6 @@ class NewGroupState extends $pb.GeneratedMessage {
|
|||
static NewGroupState create() => NewGroupState._();
|
||||
@$core.override
|
||||
NewGroupState createEmptyInstance() => create();
|
||||
static $pb.PbList<NewGroupState> createRepeated() =>
|
||||
$pb.PbList<NewGroupState>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static NewGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<NewGroupState>(create);
|
||||
|
|
@ -508,8 +497,7 @@ class AppendGroupState_AppendTBS extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupState_AppendTBS clone() =>
|
||||
AppendGroupState_AppendTBS()..mergeFromMessage(this);
|
||||
AppendGroupState_AppendTBS clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupState_AppendTBS copyWith(
|
||||
void Function(AppendGroupState_AppendTBS) updates) =>
|
||||
|
|
@ -524,8 +512,6 @@ class AppendGroupState_AppendTBS extends $pb.GeneratedMessage {
|
|||
static AppendGroupState_AppendTBS create() => AppendGroupState_AppendTBS._();
|
||||
@$core.override
|
||||
AppendGroupState_AppendTBS createEmptyInstance() => create();
|
||||
static $pb.PbList<AppendGroupState_AppendTBS> createRepeated() =>
|
||||
$pb.PbList<AppendGroupState_AppendTBS>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AppendGroupState_AppendTBS getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<AppendGroupState_AppendTBS>(create);
|
||||
|
|
@ -605,7 +591,7 @@ class AppendGroupState extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupState clone() => AppendGroupState()..mergeFromMessage(this);
|
||||
AppendGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupState copyWith(void Function(AppendGroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as AppendGroupState))
|
||||
|
|
@ -618,8 +604,6 @@ class AppendGroupState extends $pb.GeneratedMessage {
|
|||
static AppendGroupState create() => AppendGroupState._();
|
||||
@$core.override
|
||||
AppendGroupState createEmptyInstance() => create();
|
||||
static $pb.PbList<AppendGroupState> createRepeated() =>
|
||||
$pb.PbList<AppendGroupState>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AppendGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<AppendGroupState>(create);
|
||||
|
|
@ -688,13 +672,12 @@ class GroupState extends $pb.GeneratedMessage {
|
|||
defaultOrMaker: $fixnum.Int64.ZERO)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'encryptedGroupState', $pb.PbFieldType.OY)
|
||||
..pc<AppendGroupState>(
|
||||
3, _omitFieldNames ? '' : 'appendedGroupStates', $pb.PbFieldType.PM,
|
||||
..pPM<AppendGroupState>(3, _omitFieldNames ? '' : 'appendedGroupStates',
|
||||
subBuilder: AppendGroupState.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
GroupState clone() => GroupState()..mergeFromMessage(this);
|
||||
GroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
GroupState copyWith(void Function(GroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as GroupState)) as GroupState;
|
||||
|
|
@ -706,7 +689,6 @@ class GroupState extends $pb.GeneratedMessage {
|
|||
static GroupState create() => GroupState._();
|
||||
@$core.override
|
||||
GroupState createEmptyInstance() => create();
|
||||
static $pb.PbList<GroupState> createRepeated() => $pb.PbList<GroupState>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static GroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<GroupState>(create);
|
||||
|
|
@ -758,14 +740,12 @@ class AppendGroupStateHelper extends $pb.GeneratedMessage {
|
|||
_omitMessageNames ? '' : 'AppendGroupStateHelper',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'http_requests'),
|
||||
createEmptyInstance: create)
|
||||
..pc<AppendGroupState>(
|
||||
1, _omitFieldNames ? '' : 'appendedGroupStates', $pb.PbFieldType.PM,
|
||||
..pPM<AppendGroupState>(1, _omitFieldNames ? '' : 'appendedGroupStates',
|
||||
subBuilder: AppendGroupState.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupStateHelper clone() =>
|
||||
AppendGroupStateHelper()..mergeFromMessage(this);
|
||||
AppendGroupStateHelper clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AppendGroupStateHelper copyWith(
|
||||
void Function(AppendGroupStateHelper) updates) =>
|
||||
|
|
@ -779,8 +759,6 @@ class AppendGroupStateHelper extends $pb.GeneratedMessage {
|
|||
static AppendGroupStateHelper create() => AppendGroupStateHelper._();
|
||||
@$core.override
|
||||
AppendGroupStateHelper createEmptyInstance() => create();
|
||||
static $pb.PbList<AppendGroupStateHelper> createRepeated() =>
|
||||
$pb.PbList<AppendGroupStateHelper>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AppendGroupStateHelper getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<AppendGroupStateHelper>(create);
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
@ -54,7 +54,7 @@ class ClientToServer extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ClientToServer clone() => ClientToServer()..mergeFromMessage(this);
|
||||
ClientToServer clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ClientToServer copyWith(void Function(ClientToServer) updates) =>
|
||||
super.copyWith((message) => updates(message as ClientToServer))
|
||||
|
|
@ -67,14 +67,14 @@ class ClientToServer extends $pb.GeneratedMessage {
|
|||
static ClientToServer create() => ClientToServer._();
|
||||
@$core.override
|
||||
ClientToServer createEmptyInstance() => create();
|
||||
static $pb.PbList<ClientToServer> createRepeated() =>
|
||||
$pb.PbList<ClientToServer>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ClientToServer getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ClientToServer>(create);
|
||||
static ClientToServer? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
ClientToServer_V whichV() => _ClientToServer_VByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
void clearV() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
@ -138,7 +138,7 @@ class V0 extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
V0 clone() => V0()..mergeFromMessage(this);
|
||||
V0 clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
V0 copyWith(void Function(V0) updates) =>
|
||||
super.copyWith((message) => updates(message as V0)) as V0;
|
||||
|
|
@ -150,13 +150,18 @@ class V0 extends $pb.GeneratedMessage {
|
|||
static V0 create() => V0._();
|
||||
@$core.override
|
||||
V0 createEmptyInstance() => create();
|
||||
static $pb.PbList<V0> createRepeated() => $pb.PbList<V0>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static V0 getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<V0>(create);
|
||||
static V0? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(4)
|
||||
V0_Kind whichKind() => _V0_KindByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(4)
|
||||
void clearKind() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
@ -222,8 +227,7 @@ class Handshake_RequestPOW extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_RequestPOW clone() =>
|
||||
Handshake_RequestPOW()..mergeFromMessage(this);
|
||||
Handshake_RequestPOW clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_RequestPOW copyWith(void Function(Handshake_RequestPOW) updates) =>
|
||||
super.copyWith((message) => updates(message as Handshake_RequestPOW))
|
||||
|
|
@ -236,8 +240,6 @@ class Handshake_RequestPOW extends $pb.GeneratedMessage {
|
|||
static Handshake_RequestPOW create() => Handshake_RequestPOW._();
|
||||
@$core.override
|
||||
Handshake_RequestPOW createEmptyInstance() => create();
|
||||
static $pb.PbList<Handshake_RequestPOW> createRepeated() =>
|
||||
$pb.PbList<Handshake_RequestPOW>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Handshake_RequestPOW getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Handshake_RequestPOW>(create);
|
||||
|
|
@ -302,7 +304,7 @@ class Handshake_Register extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_Register clone() => Handshake_Register()..mergeFromMessage(this);
|
||||
Handshake_Register clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_Register copyWith(void Function(Handshake_Register) updates) =>
|
||||
super.copyWith((message) => updates(message as Handshake_Register))
|
||||
|
|
@ -315,8 +317,6 @@ class Handshake_Register extends $pb.GeneratedMessage {
|
|||
static Handshake_Register create() => Handshake_Register._();
|
||||
@$core.override
|
||||
Handshake_Register createEmptyInstance() => create();
|
||||
static $pb.PbList<Handshake_Register> createRepeated() =>
|
||||
$pb.PbList<Handshake_Register>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Handshake_Register getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Handshake_Register>(create);
|
||||
|
|
@ -434,8 +434,7 @@ class Handshake_GetAuthChallenge extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_GetAuthChallenge clone() =>
|
||||
Handshake_GetAuthChallenge()..mergeFromMessage(this);
|
||||
Handshake_GetAuthChallenge clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_GetAuthChallenge copyWith(
|
||||
void Function(Handshake_GetAuthChallenge) updates) =>
|
||||
|
|
@ -450,8 +449,6 @@ class Handshake_GetAuthChallenge extends $pb.GeneratedMessage {
|
|||
static Handshake_GetAuthChallenge create() => Handshake_GetAuthChallenge._();
|
||||
@$core.override
|
||||
Handshake_GetAuthChallenge createEmptyInstance() => create();
|
||||
static $pb.PbList<Handshake_GetAuthChallenge> createRepeated() =>
|
||||
$pb.PbList<Handshake_GetAuthChallenge>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Handshake_GetAuthChallenge getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Handshake_GetAuthChallenge>(create);
|
||||
|
|
@ -489,8 +486,7 @@ class Handshake_GetAuthToken extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_GetAuthToken clone() =>
|
||||
Handshake_GetAuthToken()..mergeFromMessage(this);
|
||||
Handshake_GetAuthToken clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_GetAuthToken copyWith(
|
||||
void Function(Handshake_GetAuthToken) updates) =>
|
||||
|
|
@ -504,8 +500,6 @@ class Handshake_GetAuthToken extends $pb.GeneratedMessage {
|
|||
static Handshake_GetAuthToken create() => Handshake_GetAuthToken._();
|
||||
@$core.override
|
||||
Handshake_GetAuthToken createEmptyInstance() => create();
|
||||
static $pb.PbList<Handshake_GetAuthToken> createRepeated() =>
|
||||
$pb.PbList<Handshake_GetAuthToken>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Handshake_GetAuthToken getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Handshake_GetAuthToken>(create);
|
||||
|
|
@ -570,8 +564,7 @@ class Handshake_Authenticate extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_Authenticate clone() =>
|
||||
Handshake_Authenticate()..mergeFromMessage(this);
|
||||
Handshake_Authenticate clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake_Authenticate copyWith(
|
||||
void Function(Handshake_Authenticate) updates) =>
|
||||
|
|
@ -585,8 +578,6 @@ class Handshake_Authenticate extends $pb.GeneratedMessage {
|
|||
static Handshake_Authenticate create() => Handshake_Authenticate._();
|
||||
@$core.override
|
||||
Handshake_Authenticate createEmptyInstance() => create();
|
||||
static $pb.PbList<Handshake_Authenticate> createRepeated() =>
|
||||
$pb.PbList<Handshake_Authenticate>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Handshake_Authenticate getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Handshake_Authenticate>(create);
|
||||
|
|
@ -703,7 +694,7 @@ class Handshake extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake clone() => Handshake()..mergeFromMessage(this);
|
||||
Handshake clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Handshake copyWith(void Function(Handshake) updates) =>
|
||||
super.copyWith((message) => updates(message as Handshake)) as Handshake;
|
||||
|
|
@ -715,14 +706,23 @@ class Handshake extends $pb.GeneratedMessage {
|
|||
static Handshake create() => Handshake._();
|
||||
@$core.override
|
||||
Handshake createEmptyInstance() => create();
|
||||
static $pb.PbList<Handshake> createRepeated() => $pb.PbList<Handshake>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Handshake getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Handshake>(create);
|
||||
static Handshake? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(4)
|
||||
@$pb.TagNumber(5)
|
||||
Handshake_Handshake whichHandshake() =>
|
||||
_Handshake_HandshakeByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(4)
|
||||
@$pb.TagNumber(5)
|
||||
void clearHandshake() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
@ -817,8 +817,7 @@ class ApplicationData_TextMessage extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_TextMessage clone() =>
|
||||
ApplicationData_TextMessage()..mergeFromMessage(this);
|
||||
ApplicationData_TextMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_TextMessage copyWith(
|
||||
void Function(ApplicationData_TextMessage) updates) =>
|
||||
|
|
@ -834,8 +833,6 @@ class ApplicationData_TextMessage extends $pb.GeneratedMessage {
|
|||
ApplicationData_TextMessage._();
|
||||
@$core.override
|
||||
ApplicationData_TextMessage createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_TextMessage> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_TextMessage>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_TextMessage getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_TextMessage>(create);
|
||||
|
|
@ -897,8 +894,7 @@ class ApplicationData_GetUserByUsername extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetUserByUsername clone() =>
|
||||
ApplicationData_GetUserByUsername()..mergeFromMessage(this);
|
||||
ApplicationData_GetUserByUsername clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetUserByUsername copyWith(
|
||||
void Function(ApplicationData_GetUserByUsername) updates) =>
|
||||
|
|
@ -914,8 +910,6 @@ class ApplicationData_GetUserByUsername extends $pb.GeneratedMessage {
|
|||
ApplicationData_GetUserByUsername._();
|
||||
@$core.override
|
||||
ApplicationData_GetUserByUsername createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_GetUserByUsername> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_GetUserByUsername>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetUserByUsername getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_GetUserByUsername>(
|
||||
|
|
@ -959,8 +953,7 @@ class ApplicationData_ChangeUsername extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_ChangeUsername clone() =>
|
||||
ApplicationData_ChangeUsername()..mergeFromMessage(this);
|
||||
ApplicationData_ChangeUsername clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_ChangeUsername copyWith(
|
||||
void Function(ApplicationData_ChangeUsername) updates) =>
|
||||
|
|
@ -976,8 +969,6 @@ class ApplicationData_ChangeUsername extends $pb.GeneratedMessage {
|
|||
ApplicationData_ChangeUsername._();
|
||||
@$core.override
|
||||
ApplicationData_ChangeUsername createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_ChangeUsername> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_ChangeUsername>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_ChangeUsername getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_ChangeUsername>(create);
|
||||
|
|
@ -1021,8 +1012,7 @@ class ApplicationData_UpdateGoogleFcmToken extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_UpdateGoogleFcmToken clone() =>
|
||||
ApplicationData_UpdateGoogleFcmToken()..mergeFromMessage(this);
|
||||
ApplicationData_UpdateGoogleFcmToken clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_UpdateGoogleFcmToken copyWith(
|
||||
void Function(ApplicationData_UpdateGoogleFcmToken) updates) =>
|
||||
|
|
@ -1038,8 +1028,6 @@ class ApplicationData_UpdateGoogleFcmToken extends $pb.GeneratedMessage {
|
|||
ApplicationData_UpdateGoogleFcmToken._();
|
||||
@$core.override
|
||||
ApplicationData_UpdateGoogleFcmToken createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_UpdateGoogleFcmToken> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_UpdateGoogleFcmToken>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_UpdateGoogleFcmToken getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
|
|
@ -1083,8 +1071,7 @@ class ApplicationData_GetUserById extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetUserById clone() =>
|
||||
ApplicationData_GetUserById()..mergeFromMessage(this);
|
||||
ApplicationData_GetUserById clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetUserById copyWith(
|
||||
void Function(ApplicationData_GetUserById) updates) =>
|
||||
|
|
@ -1100,8 +1087,6 @@ class ApplicationData_GetUserById extends $pb.GeneratedMessage {
|
|||
ApplicationData_GetUserById._();
|
||||
@$core.override
|
||||
ApplicationData_GetUserById createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_GetUserById> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_GetUserById>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetUserById getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_GetUserById>(create);
|
||||
|
|
@ -1144,8 +1129,7 @@ class ApplicationData_RedeemVoucher extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_RedeemVoucher clone() =>
|
||||
ApplicationData_RedeemVoucher()..mergeFromMessage(this);
|
||||
ApplicationData_RedeemVoucher clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_RedeemVoucher copyWith(
|
||||
void Function(ApplicationData_RedeemVoucher) updates) =>
|
||||
|
|
@ -1161,8 +1145,6 @@ class ApplicationData_RedeemVoucher extends $pb.GeneratedMessage {
|
|||
ApplicationData_RedeemVoucher._();
|
||||
@$core.override
|
||||
ApplicationData_RedeemVoucher createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_RedeemVoucher> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_RedeemVoucher>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_RedeemVoucher getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_RedeemVoucher>(create);
|
||||
|
|
@ -1212,8 +1194,7 @@ class ApplicationData_SwitchToPayedPlan extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_SwitchToPayedPlan clone() =>
|
||||
ApplicationData_SwitchToPayedPlan()..mergeFromMessage(this);
|
||||
ApplicationData_SwitchToPayedPlan clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_SwitchToPayedPlan copyWith(
|
||||
void Function(ApplicationData_SwitchToPayedPlan) updates) =>
|
||||
|
|
@ -1229,8 +1210,6 @@ class ApplicationData_SwitchToPayedPlan extends $pb.GeneratedMessage {
|
|||
ApplicationData_SwitchToPayedPlan._();
|
||||
@$core.override
|
||||
ApplicationData_SwitchToPayedPlan createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_SwitchToPayedPlan> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_SwitchToPayedPlan>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_SwitchToPayedPlan getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_SwitchToPayedPlan>(
|
||||
|
|
@ -1293,8 +1272,7 @@ class ApplicationData_UpdatePlanOptions extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_UpdatePlanOptions clone() =>
|
||||
ApplicationData_UpdatePlanOptions()..mergeFromMessage(this);
|
||||
ApplicationData_UpdatePlanOptions clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_UpdatePlanOptions copyWith(
|
||||
void Function(ApplicationData_UpdatePlanOptions) updates) =>
|
||||
|
|
@ -1310,8 +1288,6 @@ class ApplicationData_UpdatePlanOptions extends $pb.GeneratedMessage {
|
|||
ApplicationData_UpdatePlanOptions._();
|
||||
@$core.override
|
||||
ApplicationData_UpdatePlanOptions createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_UpdatePlanOptions> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_UpdatePlanOptions>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_UpdatePlanOptions getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_UpdatePlanOptions>(
|
||||
|
|
@ -1351,12 +1327,11 @@ class ApplicationData_CreateVoucher extends $pb.GeneratedMessage {
|
|||
package:
|
||||
const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'),
|
||||
createEmptyInstance: create)
|
||||
..a<$core.int>(1, _omitFieldNames ? '' : 'valueCents', $pb.PbFieldType.OU3)
|
||||
..aI(1, _omitFieldNames ? '' : 'valueCents', fieldType: $pb.PbFieldType.OU3)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_CreateVoucher clone() =>
|
||||
ApplicationData_CreateVoucher()..mergeFromMessage(this);
|
||||
ApplicationData_CreateVoucher clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_CreateVoucher copyWith(
|
||||
void Function(ApplicationData_CreateVoucher) updates) =>
|
||||
|
|
@ -1372,8 +1347,6 @@ class ApplicationData_CreateVoucher extends $pb.GeneratedMessage {
|
|||
ApplicationData_CreateVoucher._();
|
||||
@$core.override
|
||||
ApplicationData_CreateVoucher createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_CreateVoucher> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_CreateVoucher>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_CreateVoucher getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_CreateVoucher>(create);
|
||||
|
|
@ -1409,8 +1382,7 @@ class ApplicationData_GetLocation extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetLocation clone() =>
|
||||
ApplicationData_GetLocation()..mergeFromMessage(this);
|
||||
ApplicationData_GetLocation clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetLocation copyWith(
|
||||
void Function(ApplicationData_GetLocation) updates) =>
|
||||
|
|
@ -1426,8 +1398,6 @@ class ApplicationData_GetLocation extends $pb.GeneratedMessage {
|
|||
ApplicationData_GetLocation._();
|
||||
@$core.override
|
||||
ApplicationData_GetLocation createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_GetLocation> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_GetLocation>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetLocation getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_GetLocation>(create);
|
||||
|
|
@ -1454,8 +1424,7 @@ class ApplicationData_GetVouchers extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetVouchers clone() =>
|
||||
ApplicationData_GetVouchers()..mergeFromMessage(this);
|
||||
ApplicationData_GetVouchers clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetVouchers copyWith(
|
||||
void Function(ApplicationData_GetVouchers) updates) =>
|
||||
|
|
@ -1471,8 +1440,6 @@ class ApplicationData_GetVouchers extends $pb.GeneratedMessage {
|
|||
ApplicationData_GetVouchers._();
|
||||
@$core.override
|
||||
ApplicationData_GetVouchers createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_GetVouchers> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_GetVouchers>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetVouchers getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_GetVouchers>(create);
|
||||
|
|
@ -1500,8 +1467,7 @@ class ApplicationData_GetAvailablePlans extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetAvailablePlans clone() =>
|
||||
ApplicationData_GetAvailablePlans()..mergeFromMessage(this);
|
||||
ApplicationData_GetAvailablePlans clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetAvailablePlans copyWith(
|
||||
void Function(ApplicationData_GetAvailablePlans) updates) =>
|
||||
|
|
@ -1517,8 +1483,6 @@ class ApplicationData_GetAvailablePlans extends $pb.GeneratedMessage {
|
|||
ApplicationData_GetAvailablePlans._();
|
||||
@$core.override
|
||||
ApplicationData_GetAvailablePlans createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_GetAvailablePlans> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_GetAvailablePlans>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetAvailablePlans getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_GetAvailablePlans>(
|
||||
|
|
@ -1547,8 +1511,7 @@ class ApplicationData_GetAddAccountsInvites extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetAddAccountsInvites clone() =>
|
||||
ApplicationData_GetAddAccountsInvites()..mergeFromMessage(this);
|
||||
ApplicationData_GetAddAccountsInvites clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetAddAccountsInvites copyWith(
|
||||
void Function(ApplicationData_GetAddAccountsInvites) updates) =>
|
||||
|
|
@ -1564,8 +1527,6 @@ class ApplicationData_GetAddAccountsInvites extends $pb.GeneratedMessage {
|
|||
ApplicationData_GetAddAccountsInvites._();
|
||||
@$core.override
|
||||
ApplicationData_GetAddAccountsInvites createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_GetAddAccountsInvites> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_GetAddAccountsInvites>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetAddAccountsInvites getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
|
|
@ -1594,8 +1555,7 @@ class ApplicationData_GetCurrentPlanInfos extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetCurrentPlanInfos clone() =>
|
||||
ApplicationData_GetCurrentPlanInfos()..mergeFromMessage(this);
|
||||
ApplicationData_GetCurrentPlanInfos clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetCurrentPlanInfos copyWith(
|
||||
void Function(ApplicationData_GetCurrentPlanInfos) updates) =>
|
||||
|
|
@ -1611,8 +1571,6 @@ class ApplicationData_GetCurrentPlanInfos extends $pb.GeneratedMessage {
|
|||
ApplicationData_GetCurrentPlanInfos._();
|
||||
@$core.override
|
||||
ApplicationData_GetCurrentPlanInfos createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_GetCurrentPlanInfos> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_GetCurrentPlanInfos>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetCurrentPlanInfos getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
|
|
@ -1648,8 +1606,7 @@ class ApplicationData_RedeemAdditionalCode extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_RedeemAdditionalCode clone() =>
|
||||
ApplicationData_RedeemAdditionalCode()..mergeFromMessage(this);
|
||||
ApplicationData_RedeemAdditionalCode clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_RedeemAdditionalCode copyWith(
|
||||
void Function(ApplicationData_RedeemAdditionalCode) updates) =>
|
||||
|
|
@ -1665,8 +1622,6 @@ class ApplicationData_RedeemAdditionalCode extends $pb.GeneratedMessage {
|
|||
ApplicationData_RedeemAdditionalCode._();
|
||||
@$core.override
|
||||
ApplicationData_RedeemAdditionalCode createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_RedeemAdditionalCode> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_RedeemAdditionalCode>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_RedeemAdditionalCode getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
|
|
@ -1711,8 +1666,7 @@ class ApplicationData_RemoveAdditionalUser extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_RemoveAdditionalUser clone() =>
|
||||
ApplicationData_RemoveAdditionalUser()..mergeFromMessage(this);
|
||||
ApplicationData_RemoveAdditionalUser clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_RemoveAdditionalUser copyWith(
|
||||
void Function(ApplicationData_RemoveAdditionalUser) updates) =>
|
||||
|
|
@ -1728,8 +1682,6 @@ class ApplicationData_RemoveAdditionalUser extends $pb.GeneratedMessage {
|
|||
ApplicationData_RemoveAdditionalUser._();
|
||||
@$core.override
|
||||
ApplicationData_RemoveAdditionalUser createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_RemoveAdditionalUser> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_RemoveAdditionalUser>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_RemoveAdditionalUser getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
|
|
@ -1774,8 +1726,7 @@ class ApplicationData_GetPrekeysByUserId extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetPrekeysByUserId clone() =>
|
||||
ApplicationData_GetPrekeysByUserId()..mergeFromMessage(this);
|
||||
ApplicationData_GetPrekeysByUserId clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetPrekeysByUserId copyWith(
|
||||
void Function(ApplicationData_GetPrekeysByUserId) updates) =>
|
||||
|
|
@ -1791,8 +1742,6 @@ class ApplicationData_GetPrekeysByUserId extends $pb.GeneratedMessage {
|
|||
ApplicationData_GetPrekeysByUserId._();
|
||||
@$core.override
|
||||
ApplicationData_GetPrekeysByUserId createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_GetPrekeysByUserId> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_GetPrekeysByUserId>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetPrekeysByUserId getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_GetPrekeysByUserId>(
|
||||
|
|
@ -1837,8 +1786,7 @@ class ApplicationData_GetSignedPreKeyByUserId extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetSignedPreKeyByUserId clone() =>
|
||||
ApplicationData_GetSignedPreKeyByUserId()..mergeFromMessage(this);
|
||||
ApplicationData_GetSignedPreKeyByUserId clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_GetSignedPreKeyByUserId copyWith(
|
||||
void Function(ApplicationData_GetSignedPreKeyByUserId) updates) =>
|
||||
|
|
@ -1854,8 +1802,6 @@ class ApplicationData_GetSignedPreKeyByUserId extends $pb.GeneratedMessage {
|
|||
ApplicationData_GetSignedPreKeyByUserId._();
|
||||
@$core.override
|
||||
ApplicationData_GetSignedPreKeyByUserId createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_GetSignedPreKeyByUserId> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_GetSignedPreKeyByUserId>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_GetSignedPreKeyByUserId getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
|
|
@ -1909,8 +1855,7 @@ class ApplicationData_UpdateSignedPreKey extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_UpdateSignedPreKey clone() =>
|
||||
ApplicationData_UpdateSignedPreKey()..mergeFromMessage(this);
|
||||
ApplicationData_UpdateSignedPreKey clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_UpdateSignedPreKey copyWith(
|
||||
void Function(ApplicationData_UpdateSignedPreKey) updates) =>
|
||||
|
|
@ -1926,8 +1871,6 @@ class ApplicationData_UpdateSignedPreKey extends $pb.GeneratedMessage {
|
|||
ApplicationData_UpdateSignedPreKey._();
|
||||
@$core.override
|
||||
ApplicationData_UpdateSignedPreKey createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_UpdateSignedPreKey> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_UpdateSignedPreKey>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_UpdateSignedPreKey getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_UpdateSignedPreKey>(
|
||||
|
|
@ -1991,8 +1934,7 @@ class ApplicationData_DownloadDone extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_DownloadDone clone() =>
|
||||
ApplicationData_DownloadDone()..mergeFromMessage(this);
|
||||
ApplicationData_DownloadDone clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_DownloadDone copyWith(
|
||||
void Function(ApplicationData_DownloadDone) updates) =>
|
||||
|
|
@ -2008,8 +1950,6 @@ class ApplicationData_DownloadDone extends $pb.GeneratedMessage {
|
|||
ApplicationData_DownloadDone._();
|
||||
@$core.override
|
||||
ApplicationData_DownloadDone createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_DownloadDone> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_DownloadDone>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_DownloadDone getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_DownloadDone>(create);
|
||||
|
|
@ -2055,8 +1995,7 @@ class ApplicationData_ReportUser extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_ReportUser clone() =>
|
||||
ApplicationData_ReportUser()..mergeFromMessage(this);
|
||||
ApplicationData_ReportUser clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_ReportUser copyWith(
|
||||
void Function(ApplicationData_ReportUser) updates) =>
|
||||
|
|
@ -2071,8 +2010,6 @@ class ApplicationData_ReportUser extends $pb.GeneratedMessage {
|
|||
static ApplicationData_ReportUser create() => ApplicationData_ReportUser._();
|
||||
@$core.override
|
||||
ApplicationData_ReportUser createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_ReportUser> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_ReportUser>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_ReportUser getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_ReportUser>(create);
|
||||
|
|
@ -2130,8 +2067,7 @@ class ApplicationData_IPAPurchase extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_IPAPurchase clone() =>
|
||||
ApplicationData_IPAPurchase()..mergeFromMessage(this);
|
||||
ApplicationData_IPAPurchase clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_IPAPurchase copyWith(
|
||||
void Function(ApplicationData_IPAPurchase) updates) =>
|
||||
|
|
@ -2147,8 +2083,6 @@ class ApplicationData_IPAPurchase extends $pb.GeneratedMessage {
|
|||
ApplicationData_IPAPurchase._();
|
||||
@$core.override
|
||||
ApplicationData_IPAPurchase createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_IPAPurchase> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_IPAPurchase>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_IPAPurchase getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_IPAPurchase>(create);
|
||||
|
|
@ -2202,8 +2136,7 @@ class ApplicationData_IPAForceCheck extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_IPAForceCheck clone() =>
|
||||
ApplicationData_IPAForceCheck()..mergeFromMessage(this);
|
||||
ApplicationData_IPAForceCheck clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_IPAForceCheck copyWith(
|
||||
void Function(ApplicationData_IPAForceCheck) updates) =>
|
||||
|
|
@ -2219,8 +2152,6 @@ class ApplicationData_IPAForceCheck extends $pb.GeneratedMessage {
|
|||
ApplicationData_IPAForceCheck._();
|
||||
@$core.override
|
||||
ApplicationData_IPAForceCheck createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_IPAForceCheck> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_IPAForceCheck>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_IPAForceCheck getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_IPAForceCheck>(create);
|
||||
|
|
@ -2247,8 +2178,7 @@ class ApplicationData_DeleteAccount extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_DeleteAccount clone() =>
|
||||
ApplicationData_DeleteAccount()..mergeFromMessage(this);
|
||||
ApplicationData_DeleteAccount clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_DeleteAccount copyWith(
|
||||
void Function(ApplicationData_DeleteAccount) updates) =>
|
||||
|
|
@ -2264,8 +2194,6 @@ class ApplicationData_DeleteAccount extends $pb.GeneratedMessage {
|
|||
ApplicationData_DeleteAccount._();
|
||||
@$core.override
|
||||
ApplicationData_DeleteAccount createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_DeleteAccount> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_DeleteAccount>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_DeleteAccount getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_DeleteAccount>(create);
|
||||
|
|
@ -2300,8 +2228,7 @@ class ApplicationData_AddAdditionalUser extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_AddAdditionalUser clone() =>
|
||||
ApplicationData_AddAdditionalUser()..mergeFromMessage(this);
|
||||
ApplicationData_AddAdditionalUser clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData_AddAdditionalUser copyWith(
|
||||
void Function(ApplicationData_AddAdditionalUser) updates) =>
|
||||
|
|
@ -2317,8 +2244,6 @@ class ApplicationData_AddAdditionalUser extends $pb.GeneratedMessage {
|
|||
ApplicationData_AddAdditionalUser._();
|
||||
@$core.override
|
||||
ApplicationData_AddAdditionalUser createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData_AddAdditionalUser> createRepeated() =>
|
||||
$pb.PbList<ApplicationData_AddAdditionalUser>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData_AddAdditionalUser getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData_AddAdditionalUser>(
|
||||
|
|
@ -2595,7 +2520,7 @@ class ApplicationData extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData clone() => ApplicationData()..mergeFromMessage(this);
|
||||
ApplicationData clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ApplicationData copyWith(void Function(ApplicationData) updates) =>
|
||||
super.copyWith((message) => updates(message as ApplicationData))
|
||||
|
|
@ -2608,15 +2533,63 @@ class ApplicationData extends $pb.GeneratedMessage {
|
|||
static ApplicationData create() => ApplicationData._();
|
||||
@$core.override
|
||||
ApplicationData createEmptyInstance() => create();
|
||||
static $pb.PbList<ApplicationData> createRepeated() =>
|
||||
$pb.PbList<ApplicationData>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ApplicationData getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ApplicationData>(create);
|
||||
static ApplicationData? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(8)
|
||||
@$pb.TagNumber(9)
|
||||
@$pb.TagNumber(10)
|
||||
@$pb.TagNumber(11)
|
||||
@$pb.TagNumber(12)
|
||||
@$pb.TagNumber(13)
|
||||
@$pb.TagNumber(14)
|
||||
@$pb.TagNumber(15)
|
||||
@$pb.TagNumber(16)
|
||||
@$pb.TagNumber(17)
|
||||
@$pb.TagNumber(18)
|
||||
@$pb.TagNumber(19)
|
||||
@$pb.TagNumber(20)
|
||||
@$pb.TagNumber(22)
|
||||
@$pb.TagNumber(23)
|
||||
@$pb.TagNumber(24)
|
||||
@$pb.TagNumber(25)
|
||||
@$pb.TagNumber(26)
|
||||
@$pb.TagNumber(27)
|
||||
@$pb.TagNumber(28)
|
||||
@$pb.TagNumber(29)
|
||||
ApplicationData_ApplicationData whichApplicationData() =>
|
||||
_ApplicationData_ApplicationDataByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(8)
|
||||
@$pb.TagNumber(9)
|
||||
@$pb.TagNumber(10)
|
||||
@$pb.TagNumber(11)
|
||||
@$pb.TagNumber(12)
|
||||
@$pb.TagNumber(13)
|
||||
@$pb.TagNumber(14)
|
||||
@$pb.TagNumber(15)
|
||||
@$pb.TagNumber(16)
|
||||
@$pb.TagNumber(17)
|
||||
@$pb.TagNumber(18)
|
||||
@$pb.TagNumber(19)
|
||||
@$pb.TagNumber(20)
|
||||
@$pb.TagNumber(22)
|
||||
@$pb.TagNumber(23)
|
||||
@$pb.TagNumber(24)
|
||||
@$pb.TagNumber(25)
|
||||
@$pb.TagNumber(26)
|
||||
@$pb.TagNumber(27)
|
||||
@$pb.TagNumber(28)
|
||||
@$pb.TagNumber(29)
|
||||
void clearApplicationData() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
@ -2951,7 +2924,7 @@ class Response_PreKey extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_PreKey clone() => Response_PreKey()..mergeFromMessage(this);
|
||||
Response_PreKey clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_PreKey copyWith(void Function(Response_PreKey) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_PreKey))
|
||||
|
|
@ -2964,8 +2937,6 @@ class Response_PreKey extends $pb.GeneratedMessage {
|
|||
static Response_PreKey create() => Response_PreKey._();
|
||||
@$core.override
|
||||
Response_PreKey createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_PreKey> createRepeated() =>
|
||||
$pb.PbList<Response_PreKey>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_PreKey getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_PreKey>(create);
|
||||
|
|
@ -3013,13 +2984,12 @@ class Response_Prekeys extends $pb.GeneratedMessage {
|
|||
package:
|
||||
const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'),
|
||||
createEmptyInstance: create)
|
||||
..pc<Response_PreKey>(
|
||||
1, _omitFieldNames ? '' : 'prekeys', $pb.PbFieldType.PM,
|
||||
..pPM<Response_PreKey>(1, _omitFieldNames ? '' : 'prekeys',
|
||||
subBuilder: Response_PreKey.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Prekeys clone() => Response_Prekeys()..mergeFromMessage(this);
|
||||
Response_Prekeys clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Prekeys copyWith(void Function(Response_Prekeys) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_Prekeys))
|
||||
|
|
@ -3032,8 +3002,6 @@ class Response_Prekeys extends $pb.GeneratedMessage {
|
|||
static Response_Prekeys create() => Response_Prekeys._();
|
||||
@$core.override
|
||||
Response_Prekeys createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Prekeys> createRepeated() =>
|
||||
$pb.PbList<Response_Prekeys>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Prekeys getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Prekeys>(create);
|
||||
|
|
@ -3082,7 +3050,7 @@ class Response_Ok extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Ok clone() => Response_Ok()..mergeFromMessage(this);
|
||||
Response_Ok clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Ok copyWith(void Function(Response_Ok) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_Ok))
|
||||
|
|
@ -3095,13 +3063,16 @@ class Response_Ok extends $pb.GeneratedMessage {
|
|||
static Response_Ok create() => Response_Ok._();
|
||||
@$core.override
|
||||
Response_Ok createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Ok> createRepeated() => $pb.PbList<Response_Ok>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Ok getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Ok>(create);
|
||||
static Response_Ok? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
Response_Ok_Ok whichOk() => _Response_Ok_OkByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
void clearOk() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
@ -3161,14 +3132,12 @@ class Response extends $pb.GeneratedMessage {
|
|||
..oo(0, [1, 2])
|
||||
..aOM<Response_Ok>(1, _omitFieldNames ? '' : 'ok',
|
||||
subBuilder: Response_Ok.create)
|
||||
..e<$0.ErrorCode>(2, _omitFieldNames ? '' : 'error', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: $0.ErrorCode.Unknown,
|
||||
valueOf: $0.ErrorCode.valueOf,
|
||||
..aE<$0.ErrorCode>(2, _omitFieldNames ? '' : 'error',
|
||||
enumValues: $0.ErrorCode.values)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response clone() => Response()..mergeFromMessage(this);
|
||||
Response clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response copyWith(void Function(Response) updates) =>
|
||||
super.copyWith((message) => updates(message as Response)) as Response;
|
||||
|
|
@ -3180,14 +3149,17 @@ class Response extends $pb.GeneratedMessage {
|
|||
static Response create() => Response._();
|
||||
@$core.override
|
||||
Response createEmptyInstance() => create();
|
||||
static $pb.PbList<Response> createRepeated() => $pb.PbList<Response>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Response>(create);
|
||||
static Response? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
Response_Response whichResponse() =>
|
||||
_Response_ResponseByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
void clearResponse() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ class ServerToClient extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ServerToClient clone() => ServerToClient()..mergeFromMessage(this);
|
||||
ServerToClient clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
ServerToClient copyWith(void Function(ServerToClient) updates) =>
|
||||
super.copyWith((message) => updates(message as ServerToClient))
|
||||
|
|
@ -70,14 +70,14 @@ class ServerToClient extends $pb.GeneratedMessage {
|
|||
static ServerToClient create() => ServerToClient._();
|
||||
@$core.override
|
||||
ServerToClient createEmptyInstance() => create();
|
||||
static $pb.PbList<ServerToClient> createRepeated() =>
|
||||
$pb.PbList<ServerToClient>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ServerToClient getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<ServerToClient>(create);
|
||||
static ServerToClient? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
ServerToClient_V whichV() => _ServerToClient_VByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
void clearV() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
@ -151,16 +151,14 @@ class V0 extends $pb.GeneratedMessage {
|
|||
protoName: 'newMessage', subBuilder: NewMessage.create)
|
||||
..aOB(4, _omitFieldNames ? '' : 'RequestNewPreKeys',
|
||||
protoName: 'RequestNewPreKeys')
|
||||
..e<$0.ErrorCode>(6, _omitFieldNames ? '' : 'error', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: $0.ErrorCode.Unknown,
|
||||
valueOf: $0.ErrorCode.valueOf,
|
||||
..aE<$0.ErrorCode>(6, _omitFieldNames ? '' : 'error',
|
||||
enumValues: $0.ErrorCode.values)
|
||||
..aOM<NewMessages>(7, _omitFieldNames ? '' : 'newMessages',
|
||||
protoName: 'newMessages', subBuilder: NewMessages.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
V0 clone() => V0()..mergeFromMessage(this);
|
||||
V0 clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
V0 copyWith(void Function(V0) updates) =>
|
||||
super.copyWith((message) => updates(message as V0)) as V0;
|
||||
|
|
@ -172,13 +170,22 @@ class V0 extends $pb.GeneratedMessage {
|
|||
static V0 create() => V0._();
|
||||
@$core.override
|
||||
V0 createEmptyInstance() => create();
|
||||
static $pb.PbList<V0> createRepeated() => $pb.PbList<V0>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static V0 getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<V0>(create);
|
||||
static V0? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(4)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(7)
|
||||
V0_Kind whichKind() => _V0_KindByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(4)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(7)
|
||||
void clearKind() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
@ -273,7 +280,7 @@ class NewMessage extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
NewMessage clone() => NewMessage()..mergeFromMessage(this);
|
||||
NewMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
NewMessage copyWith(void Function(NewMessage) updates) =>
|
||||
super.copyWith((message) => updates(message as NewMessage)) as NewMessage;
|
||||
|
|
@ -285,7 +292,6 @@ class NewMessage extends $pb.GeneratedMessage {
|
|||
static NewMessage create() => NewMessage._();
|
||||
@$core.override
|
||||
NewMessage createEmptyInstance() => create();
|
||||
static $pb.PbList<NewMessage> createRepeated() => $pb.PbList<NewMessage>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static NewMessage getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<NewMessage>(create);
|
||||
|
|
@ -333,13 +339,12 @@ class NewMessages extends $pb.GeneratedMessage {
|
|||
package:
|
||||
const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'),
|
||||
createEmptyInstance: create)
|
||||
..pc<NewMessage>(
|
||||
1, _omitFieldNames ? '' : 'newMessages', $pb.PbFieldType.PM,
|
||||
..pPM<NewMessage>(1, _omitFieldNames ? '' : 'newMessages',
|
||||
protoName: 'newMessages', subBuilder: NewMessage.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
NewMessages clone() => NewMessages()..mergeFromMessage(this);
|
||||
NewMessages clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
NewMessages copyWith(void Function(NewMessages) updates) =>
|
||||
super.copyWith((message) => updates(message as NewMessages))
|
||||
|
|
@ -352,7 +357,6 @@ class NewMessages extends $pb.GeneratedMessage {
|
|||
static NewMessages create() => NewMessages._();
|
||||
@$core.override
|
||||
NewMessages createEmptyInstance() => create();
|
||||
static $pb.PbList<NewMessages> createRepeated() => $pb.PbList<NewMessages>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static NewMessages getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<NewMessages>(create);
|
||||
|
|
@ -389,8 +393,7 @@ class Response_Authenticated extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Authenticated clone() =>
|
||||
Response_Authenticated()..mergeFromMessage(this);
|
||||
Response_Authenticated clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Authenticated copyWith(
|
||||
void Function(Response_Authenticated) updates) =>
|
||||
|
|
@ -404,8 +407,6 @@ class Response_Authenticated extends $pb.GeneratedMessage {
|
|||
static Response_Authenticated create() => Response_Authenticated._();
|
||||
@$core.override
|
||||
Response_Authenticated createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Authenticated> createRepeated() =>
|
||||
$pb.PbList<Response_Authenticated>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Authenticated getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Authenticated>(create);
|
||||
|
|
@ -478,7 +479,7 @@ class Response_Plan extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Plan clone() => Response_Plan()..mergeFromMessage(this);
|
||||
Response_Plan clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Plan copyWith(void Function(Response_Plan) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_Plan))
|
||||
|
|
@ -491,8 +492,6 @@ class Response_Plan extends $pb.GeneratedMessage {
|
|||
static Response_Plan create() => Response_Plan._();
|
||||
@$core.override
|
||||
Response_Plan createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Plan> createRepeated() =>
|
||||
$pb.PbList<Response_Plan>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Plan getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Plan>(create);
|
||||
|
|
@ -604,12 +603,12 @@ class Response_Plans extends $pb.GeneratedMessage {
|
|||
package:
|
||||
const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'),
|
||||
createEmptyInstance: create)
|
||||
..pc<Response_Plan>(1, _omitFieldNames ? '' : 'plans', $pb.PbFieldType.PM,
|
||||
..pPM<Response_Plan>(1, _omitFieldNames ? '' : 'plans',
|
||||
subBuilder: Response_Plan.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Plans clone() => Response_Plans()..mergeFromMessage(this);
|
||||
Response_Plans clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Plans copyWith(void Function(Response_Plans) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_Plans))
|
||||
|
|
@ -622,8 +621,6 @@ class Response_Plans extends $pb.GeneratedMessage {
|
|||
static Response_Plans create() => Response_Plans._();
|
||||
@$core.override
|
||||
Response_Plans createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Plans> createRepeated() =>
|
||||
$pb.PbList<Response_Plans>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Plans getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Plans>(create);
|
||||
|
|
@ -663,8 +660,7 @@ class Response_AddAccountsInvite extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_AddAccountsInvite clone() =>
|
||||
Response_AddAccountsInvite()..mergeFromMessage(this);
|
||||
Response_AddAccountsInvite clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_AddAccountsInvite copyWith(
|
||||
void Function(Response_AddAccountsInvite) updates) =>
|
||||
|
|
@ -679,8 +675,6 @@ class Response_AddAccountsInvite extends $pb.GeneratedMessage {
|
|||
static Response_AddAccountsInvite create() => Response_AddAccountsInvite._();
|
||||
@$core.override
|
||||
Response_AddAccountsInvite createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_AddAccountsInvite> createRepeated() =>
|
||||
$pb.PbList<Response_AddAccountsInvite>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_AddAccountsInvite getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_AddAccountsInvite>(create);
|
||||
|
|
@ -728,14 +722,12 @@ class Response_AddAccountsInvites extends $pb.GeneratedMessage {
|
|||
package:
|
||||
const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'),
|
||||
createEmptyInstance: create)
|
||||
..pc<Response_AddAccountsInvite>(
|
||||
1, _omitFieldNames ? '' : 'invites', $pb.PbFieldType.PM,
|
||||
..pPM<Response_AddAccountsInvite>(1, _omitFieldNames ? '' : 'invites',
|
||||
subBuilder: Response_AddAccountsInvite.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_AddAccountsInvites clone() =>
|
||||
Response_AddAccountsInvites()..mergeFromMessage(this);
|
||||
Response_AddAccountsInvites clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_AddAccountsInvites copyWith(
|
||||
void Function(Response_AddAccountsInvites) updates) =>
|
||||
|
|
@ -751,8 +743,6 @@ class Response_AddAccountsInvites extends $pb.GeneratedMessage {
|
|||
Response_AddAccountsInvites._();
|
||||
@$core.override
|
||||
Response_AddAccountsInvites createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_AddAccountsInvites> createRepeated() =>
|
||||
$pb.PbList<Response_AddAccountsInvites>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_AddAccountsInvites getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_AddAccountsInvites>(create);
|
||||
|
|
@ -791,17 +781,13 @@ class Response_Transaction extends $pb.GeneratedMessage {
|
|||
const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'),
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'depositCents')
|
||||
..e<Response_TransactionTypes>(
|
||||
2, _omitFieldNames ? '' : 'transactionType', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: Response_TransactionTypes.Refund,
|
||||
valueOf: Response_TransactionTypes.valueOf,
|
||||
..aE<Response_TransactionTypes>(2, _omitFieldNames ? '' : 'transactionType',
|
||||
enumValues: Response_TransactionTypes.values)
|
||||
..aInt64(3, _omitFieldNames ? '' : 'createdAtUnixTimestamp')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Transaction clone() =>
|
||||
Response_Transaction()..mergeFromMessage(this);
|
||||
Response_Transaction clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Transaction copyWith(void Function(Response_Transaction) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_Transaction))
|
||||
|
|
@ -814,8 +800,6 @@ class Response_Transaction extends $pb.GeneratedMessage {
|
|||
static Response_Transaction create() => Response_Transaction._();
|
||||
@$core.override
|
||||
Response_Transaction createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Transaction> createRepeated() =>
|
||||
$pb.PbList<Response_Transaction>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Transaction getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Transaction>(create);
|
||||
|
|
@ -882,8 +866,7 @@ class Response_AdditionalAccount extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_AdditionalAccount clone() =>
|
||||
Response_AdditionalAccount()..mergeFromMessage(this);
|
||||
Response_AdditionalAccount clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_AdditionalAccount copyWith(
|
||||
void Function(Response_AdditionalAccount) updates) =>
|
||||
|
|
@ -898,8 +881,6 @@ class Response_AdditionalAccount extends $pb.GeneratedMessage {
|
|||
static Response_AdditionalAccount create() => Response_AdditionalAccount._();
|
||||
@$core.override
|
||||
Response_AdditionalAccount createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_AdditionalAccount> createRepeated() =>
|
||||
$pb.PbList<Response_AdditionalAccount>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_AdditionalAccount getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_AdditionalAccount>(create);
|
||||
|
|
@ -964,7 +945,7 @@ class Response_Voucher extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Voucher clone() => Response_Voucher()..mergeFromMessage(this);
|
||||
Response_Voucher clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Voucher copyWith(void Function(Response_Voucher) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_Voucher))
|
||||
|
|
@ -977,8 +958,6 @@ class Response_Voucher extends $pb.GeneratedMessage {
|
|||
static Response_Voucher create() => Response_Voucher._();
|
||||
@$core.override
|
||||
Response_Voucher createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Voucher> createRepeated() =>
|
||||
$pb.PbList<Response_Voucher>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Voucher getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Voucher>(create);
|
||||
|
|
@ -1053,13 +1032,12 @@ class Response_Vouchers extends $pb.GeneratedMessage {
|
|||
package:
|
||||
const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'),
|
||||
createEmptyInstance: create)
|
||||
..pc<Response_Voucher>(
|
||||
1, _omitFieldNames ? '' : 'vouchers', $pb.PbFieldType.PM,
|
||||
..pPM<Response_Voucher>(1, _omitFieldNames ? '' : 'vouchers',
|
||||
subBuilder: Response_Voucher.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Vouchers clone() => Response_Vouchers()..mergeFromMessage(this);
|
||||
Response_Vouchers clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Vouchers copyWith(void Function(Response_Vouchers) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_Vouchers))
|
||||
|
|
@ -1072,8 +1050,6 @@ class Response_Vouchers extends $pb.GeneratedMessage {
|
|||
static Response_Vouchers create() => Response_Vouchers._();
|
||||
@$core.override
|
||||
Response_Vouchers createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Vouchers> createRepeated() =>
|
||||
$pb.PbList<Response_Vouchers>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Vouchers getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Vouchers>(create);
|
||||
|
|
@ -1129,19 +1105,17 @@ class Response_PlanBallance extends $pb.GeneratedMessage {
|
|||
..aInt64(2, _omitFieldNames ? '' : 'usedUploadMediaSizeLimit')
|
||||
..aInt64(3, _omitFieldNames ? '' : 'paymentPeriodDays')
|
||||
..aInt64(4, _omitFieldNames ? '' : 'lastPaymentDoneUnixTimestamp')
|
||||
..pc<Response_Transaction>(
|
||||
5, _omitFieldNames ? '' : 'transactions', $pb.PbFieldType.PM,
|
||||
..pPM<Response_Transaction>(5, _omitFieldNames ? '' : 'transactions',
|
||||
subBuilder: Response_Transaction.create)
|
||||
..pc<Response_AdditionalAccount>(
|
||||
6, _omitFieldNames ? '' : 'additionalAccounts', $pb.PbFieldType.PM,
|
||||
..pPM<Response_AdditionalAccount>(
|
||||
6, _omitFieldNames ? '' : 'additionalAccounts',
|
||||
subBuilder: Response_AdditionalAccount.create)
|
||||
..aOB(7, _omitFieldNames ? '' : 'autoRenewal')
|
||||
..aInt64(8, _omitFieldNames ? '' : 'additionalAccountOwnerId')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_PlanBallance clone() =>
|
||||
Response_PlanBallance()..mergeFromMessage(this);
|
||||
Response_PlanBallance clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_PlanBallance copyWith(
|
||||
void Function(Response_PlanBallance) updates) =>
|
||||
|
|
@ -1155,8 +1129,6 @@ class Response_PlanBallance extends $pb.GeneratedMessage {
|
|||
static Response_PlanBallance create() => Response_PlanBallance._();
|
||||
@$core.override
|
||||
Response_PlanBallance createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_PlanBallance> createRepeated() =>
|
||||
$pb.PbList<Response_PlanBallance>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_PlanBallance getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_PlanBallance>(create);
|
||||
|
|
@ -1256,7 +1228,7 @@ class Response_Location extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Location clone() => Response_Location()..mergeFromMessage(this);
|
||||
Response_Location clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Location copyWith(void Function(Response_Location) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_Location))
|
||||
|
|
@ -1269,8 +1241,6 @@ class Response_Location extends $pb.GeneratedMessage {
|
|||
static Response_Location create() => Response_Location._();
|
||||
@$core.override
|
||||
Response_Location createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Location> createRepeated() =>
|
||||
$pb.PbList<Response_Location>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Location getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Location>(create);
|
||||
|
|
@ -1335,7 +1305,7 @@ class Response_PreKey extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_PreKey clone() => Response_PreKey()..mergeFromMessage(this);
|
||||
Response_PreKey clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_PreKey copyWith(void Function(Response_PreKey) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_PreKey))
|
||||
|
|
@ -1348,8 +1318,6 @@ class Response_PreKey extends $pb.GeneratedMessage {
|
|||
static Response_PreKey create() => Response_PreKey._();
|
||||
@$core.override
|
||||
Response_PreKey createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_PreKey> createRepeated() =>
|
||||
$pb.PbList<Response_PreKey>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_PreKey getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_PreKey>(create);
|
||||
|
|
@ -1410,8 +1378,7 @@ class Response_SignedPreKey extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_SignedPreKey clone() =>
|
||||
Response_SignedPreKey()..mergeFromMessage(this);
|
||||
Response_SignedPreKey clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_SignedPreKey copyWith(
|
||||
void Function(Response_SignedPreKey) updates) =>
|
||||
|
|
@ -1425,8 +1392,6 @@ class Response_SignedPreKey extends $pb.GeneratedMessage {
|
|||
static Response_SignedPreKey create() => Response_SignedPreKey._();
|
||||
@$core.override
|
||||
Response_SignedPreKey createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_SignedPreKey> createRepeated() =>
|
||||
$pb.PbList<Response_SignedPreKey>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_SignedPreKey getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_SignedPreKey>(create);
|
||||
|
|
@ -1500,8 +1465,7 @@ class Response_UserData extends $pb.GeneratedMessage {
|
|||
const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'),
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'userId')
|
||||
..pc<Response_PreKey>(
|
||||
2, _omitFieldNames ? '' : 'prekeys', $pb.PbFieldType.PM,
|
||||
..pPM<Response_PreKey>(2, _omitFieldNames ? '' : 'prekeys',
|
||||
subBuilder: Response_PreKey.create)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'publicIdentityKey', $pb.PbFieldType.OY)
|
||||
|
|
@ -1516,7 +1480,7 @@ class Response_UserData extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_UserData clone() => Response_UserData()..mergeFromMessage(this);
|
||||
Response_UserData clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_UserData copyWith(void Function(Response_UserData) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_UserData))
|
||||
|
|
@ -1529,8 +1493,6 @@ class Response_UserData extends $pb.GeneratedMessage {
|
|||
static Response_UserData create() => Response_UserData._();
|
||||
@$core.override
|
||||
Response_UserData createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_UserData> createRepeated() =>
|
||||
$pb.PbList<Response_UserData>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_UserData getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_UserData>(create);
|
||||
|
|
@ -1636,8 +1598,7 @@ class Response_UploadToken extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_UploadToken clone() =>
|
||||
Response_UploadToken()..mergeFromMessage(this);
|
||||
Response_UploadToken clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_UploadToken copyWith(void Function(Response_UploadToken) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_UploadToken))
|
||||
|
|
@ -1650,8 +1611,6 @@ class Response_UploadToken extends $pb.GeneratedMessage {
|
|||
static Response_UploadToken create() => Response_UploadToken._();
|
||||
@$core.override
|
||||
Response_UploadToken createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_UploadToken> createRepeated() =>
|
||||
$pb.PbList<Response_UploadToken>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_UploadToken getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_UploadToken>(create);
|
||||
|
|
@ -1698,8 +1657,7 @@ class Response_DownloadTokens extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_DownloadTokens clone() =>
|
||||
Response_DownloadTokens()..mergeFromMessage(this);
|
||||
Response_DownloadTokens clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_DownloadTokens copyWith(
|
||||
void Function(Response_DownloadTokens) updates) =>
|
||||
|
|
@ -1713,8 +1671,6 @@ class Response_DownloadTokens extends $pb.GeneratedMessage {
|
|||
static Response_DownloadTokens create() => Response_DownloadTokens._();
|
||||
@$core.override
|
||||
Response_DownloadTokens createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_DownloadTokens> createRepeated() =>
|
||||
$pb.PbList<Response_DownloadTokens>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_DownloadTokens getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_DownloadTokens>(create);
|
||||
|
|
@ -1754,8 +1710,7 @@ class Response_ProofOfWork extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_ProofOfWork clone() =>
|
||||
Response_ProofOfWork()..mergeFromMessage(this);
|
||||
Response_ProofOfWork clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_ProofOfWork copyWith(void Function(Response_ProofOfWork) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_ProofOfWork))
|
||||
|
|
@ -1768,8 +1723,6 @@ class Response_ProofOfWork extends $pb.GeneratedMessage {
|
|||
static Response_ProofOfWork create() => Response_ProofOfWork._();
|
||||
@$core.override
|
||||
Response_ProofOfWork createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_ProofOfWork> createRepeated() =>
|
||||
$pb.PbList<Response_ProofOfWork>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_ProofOfWork getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_ProofOfWork>(create);
|
||||
|
|
@ -1916,7 +1869,7 @@ class Response_Ok extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Ok clone() => Response_Ok()..mergeFromMessage(this);
|
||||
Response_Ok clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response_Ok copyWith(void Function(Response_Ok) updates) =>
|
||||
super.copyWith((message) => updates(message as Response_Ok))
|
||||
|
|
@ -1929,13 +1882,42 @@ class Response_Ok extends $pb.GeneratedMessage {
|
|||
static Response_Ok create() => Response_Ok._();
|
||||
@$core.override
|
||||
Response_Ok createEmptyInstance() => create();
|
||||
static $pb.PbList<Response_Ok> createRepeated() => $pb.PbList<Response_Ok>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response_Ok getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<Response_Ok>(create);
|
||||
static Response_Ok? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(4)
|
||||
@$pb.TagNumber(5)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(7)
|
||||
@$pb.TagNumber(8)
|
||||
@$pb.TagNumber(9)
|
||||
@$pb.TagNumber(10)
|
||||
@$pb.TagNumber(11)
|
||||
@$pb.TagNumber(12)
|
||||
@$pb.TagNumber(13)
|
||||
@$pb.TagNumber(14)
|
||||
@$pb.TagNumber(15)
|
||||
Response_Ok_Ok whichOk() => _Response_Ok_OkByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
@$pb.TagNumber(3)
|
||||
@$pb.TagNumber(4)
|
||||
@$pb.TagNumber(5)
|
||||
@$pb.TagNumber(6)
|
||||
@$pb.TagNumber(7)
|
||||
@$pb.TagNumber(8)
|
||||
@$pb.TagNumber(9)
|
||||
@$pb.TagNumber(10)
|
||||
@$pb.TagNumber(11)
|
||||
@$pb.TagNumber(12)
|
||||
@$pb.TagNumber(13)
|
||||
@$pb.TagNumber(14)
|
||||
@$pb.TagNumber(15)
|
||||
void clearOk() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
@ -2133,14 +2115,12 @@ class Response extends $pb.GeneratedMessage {
|
|||
..oo(0, [1, 2])
|
||||
..aOM<Response_Ok>(1, _omitFieldNames ? '' : 'ok',
|
||||
subBuilder: Response_Ok.create)
|
||||
..e<$0.ErrorCode>(2, _omitFieldNames ? '' : 'error', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: $0.ErrorCode.Unknown,
|
||||
valueOf: $0.ErrorCode.valueOf,
|
||||
..aE<$0.ErrorCode>(2, _omitFieldNames ? '' : 'error',
|
||||
enumValues: $0.ErrorCode.values)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response clone() => Response()..mergeFromMessage(this);
|
||||
Response clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Response copyWith(void Function(Response) updates) =>
|
||||
super.copyWith((message) => updates(message as Response)) as Response;
|
||||
|
|
@ -2152,14 +2132,17 @@ class Response extends $pb.GeneratedMessage {
|
|||
static Response create() => Response._();
|
||||
@$core.override
|
||||
Response createEmptyInstance() => create();
|
||||
static $pb.PbList<Response> createRepeated() => $pb.PbList<Response>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Response getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Response>(create);
|
||||
static Response? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
Response_Response whichResponse() =>
|
||||
_Response_ResponseByTag[$_whichOneof(0)]!;
|
||||
@$pb.TagNumber(1)
|
||||
@$pb.TagNumber(2)
|
||||
void clearResponse() => $_clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
syntax = "proto3";
|
||||
|
||||
message TwonlySafeBackupContent {
|
||||
string secureStorageJson = 1;
|
||||
bytes twonlyDatabase = 2;
|
||||
string secure_storage_json = 1;
|
||||
bytes twonly_database = 2;
|
||||
}
|
||||
|
||||
message TwonlySafeBackupEncrypted {
|
||||
bytes mac = 1;
|
||||
bytes nonce = 2;
|
||||
bytes cipherText = 3;
|
||||
bytes mac = 1;
|
||||
bytes nonce = 2;
|
||||
bytes cipher_text = 3;
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
@ -39,16 +39,13 @@ class TwonlySafeBackupContent extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'TwonlySafeBackupContent',
|
||||
createEmptyInstance: create)
|
||||
..aOS(1, _omitFieldNames ? '' : 'secureStorageJson',
|
||||
protoName: 'secureStorageJson')
|
||||
..aOS(1, _omitFieldNames ? '' : 'secureStorageJson')
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'twonlyDatabase', $pb.PbFieldType.OY,
|
||||
protoName: 'twonlyDatabase')
|
||||
2, _omitFieldNames ? '' : 'twonlyDatabase', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TwonlySafeBackupContent clone() =>
|
||||
TwonlySafeBackupContent()..mergeFromMessage(this);
|
||||
TwonlySafeBackupContent clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TwonlySafeBackupContent copyWith(
|
||||
void Function(TwonlySafeBackupContent) updates) =>
|
||||
|
|
@ -62,8 +59,6 @@ class TwonlySafeBackupContent extends $pb.GeneratedMessage {
|
|||
static TwonlySafeBackupContent create() => TwonlySafeBackupContent._();
|
||||
@$core.override
|
||||
TwonlySafeBackupContent createEmptyInstance() => create();
|
||||
static $pb.PbList<TwonlySafeBackupContent> createRepeated() =>
|
||||
$pb.PbList<TwonlySafeBackupContent>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static TwonlySafeBackupContent getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<TwonlySafeBackupContent>(create);
|
||||
|
|
@ -118,13 +113,11 @@ class TwonlySafeBackupEncrypted extends $pb.GeneratedMessage {
|
|||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'nonce', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'cipherText', $pb.PbFieldType.OY,
|
||||
protoName: 'cipherText')
|
||||
3, _omitFieldNames ? '' : 'cipherText', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TwonlySafeBackupEncrypted clone() =>
|
||||
TwonlySafeBackupEncrypted()..mergeFromMessage(this);
|
||||
TwonlySafeBackupEncrypted clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
TwonlySafeBackupEncrypted copyWith(
|
||||
void Function(TwonlySafeBackupEncrypted) updates) =>
|
||||
|
|
@ -138,8 +131,6 @@ class TwonlySafeBackupEncrypted extends $pb.GeneratedMessage {
|
|||
static TwonlySafeBackupEncrypted create() => TwonlySafeBackupEncrypted._();
|
||||
@$core.override
|
||||
TwonlySafeBackupEncrypted createEmptyInstance() => create();
|
||||
static $pb.PbList<TwonlySafeBackupEncrypted> createRepeated() =>
|
||||
$pb.PbList<TwonlySafeBackupEncrypted>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static TwonlySafeBackupEncrypted getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<TwonlySafeBackupEncrypted>(create);
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
@ -19,20 +20,21 @@ const TwonlySafeBackupContent$json = {
|
|||
'1': 'TwonlySafeBackupContent',
|
||||
'2': [
|
||||
{
|
||||
'1': 'secureStorageJson',
|
||||
'1': 'secure_storage_json',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
'10': 'secureStorageJson'
|
||||
},
|
||||
{'1': 'twonlyDatabase', '3': 2, '4': 1, '5': 12, '10': 'twonlyDatabase'},
|
||||
{'1': 'twonly_database', '3': 2, '4': 1, '5': 12, '10': 'twonlyDatabase'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `TwonlySafeBackupContent`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List twonlySafeBackupContentDescriptor = $convert.base64Decode(
|
||||
'ChdUd29ubHlTYWZlQmFja3VwQ29udGVudBIsChFzZWN1cmVTdG9yYWdlSnNvbhgBIAEoCVIRc2'
|
||||
'VjdXJlU3RvcmFnZUpzb24SJgoOdHdvbmx5RGF0YWJhc2UYAiABKAxSDnR3b25seURhdGFiYXNl');
|
||||
'ChdUd29ubHlTYWZlQmFja3VwQ29udGVudBIuChNzZWN1cmVfc3RvcmFnZV9qc29uGAEgASgJUh'
|
||||
'FzZWN1cmVTdG9yYWdlSnNvbhInCg90d29ubHlfZGF0YWJhc2UYAiABKAxSDnR3b25seURhdGFi'
|
||||
'YXNl');
|
||||
|
||||
@$core.Deprecated('Use twonlySafeBackupEncryptedDescriptor instead')
|
||||
const TwonlySafeBackupEncrypted$json = {
|
||||
|
|
@ -40,7 +42,7 @@ const TwonlySafeBackupEncrypted$json = {
|
|||
'2': [
|
||||
{'1': 'mac', '3': 1, '4': 1, '5': 12, '10': 'mac'},
|
||||
{'1': 'nonce', '3': 2, '4': 1, '5': 12, '10': 'nonce'},
|
||||
{'1': 'cipherText', '3': 3, '4': 1, '5': 12, '10': 'cipherText'},
|
||||
{'1': 'cipher_text', '3': 3, '4': 1, '5': 12, '10': 'cipherText'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -48,4 +50,4 @@ const TwonlySafeBackupEncrypted$json = {
|
|||
final $typed_data.Uint8List twonlySafeBackupEncryptedDescriptor =
|
||||
$convert.base64Decode(
|
||||
'ChlUd29ubHlTYWZlQmFja3VwRW5jcnlwdGVkEhAKA21hYxgBIAEoDFIDbWFjEhQKBW5vbmNlGA'
|
||||
'IgASgMUgVub25jZRIeCgpjaXBoZXJUZXh0GAMgASgMUgpjaXBoZXJUZXh0');
|
||||
'IgASgMUgVub25jZRIfCgtjaXBoZXJfdGV4dBgDIAEoDFIKY2lwaGVyVGV4dA==');
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ class SharedContact extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
SharedContact clone() => SharedContact()..mergeFromMessage(this);
|
||||
SharedContact clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
SharedContact copyWith(void Function(SharedContact) updates) =>
|
||||
super.copyWith((message) => updates(message as SharedContact))
|
||||
|
|
@ -66,8 +66,6 @@ class SharedContact extends $pb.GeneratedMessage {
|
|||
static SharedContact create() => SharedContact._();
|
||||
@$core.override
|
||||
SharedContact createEmptyInstance() => create();
|
||||
static $pb.PbList<SharedContact> createRepeated() =>
|
||||
$pb.PbList<SharedContact>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static SharedContact getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<SharedContact>(create);
|
||||
|
|
@ -129,21 +127,16 @@ class AdditionalMessageData extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'AdditionalMessageData',
|
||||
createEmptyInstance: create)
|
||||
..e<AdditionalMessageData_Type>(
|
||||
1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: AdditionalMessageData_Type.LINK,
|
||||
valueOf: AdditionalMessageData_Type.valueOf,
|
||||
..aE<AdditionalMessageData_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: AdditionalMessageData_Type.values)
|
||||
..aOS(2, _omitFieldNames ? '' : 'link')
|
||||
..pc<SharedContact>(
|
||||
3, _omitFieldNames ? '' : 'contacts', $pb.PbFieldType.PM,
|
||||
..pPM<SharedContact>(3, _omitFieldNames ? '' : 'contacts',
|
||||
subBuilder: SharedContact.create)
|
||||
..aInt64(4, _omitFieldNames ? '' : 'restoredFlameCounter')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AdditionalMessageData clone() =>
|
||||
AdditionalMessageData()..mergeFromMessage(this);
|
||||
AdditionalMessageData clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
AdditionalMessageData copyWith(
|
||||
void Function(AdditionalMessageData) updates) =>
|
||||
|
|
@ -157,8 +150,6 @@ class AdditionalMessageData extends $pb.GeneratedMessage {
|
|||
static AdditionalMessageData create() => AdditionalMessageData._();
|
||||
@$core.override
|
||||
AdditionalMessageData createEmptyInstance() => create();
|
||||
static $pb.PbList<AdditionalMessageData> createRepeated() =>
|
||||
$pb.PbList<AdditionalMessageData>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static AdditionalMessageData getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<AdditionalMessageData>(create);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
@ -53,19 +53,16 @@ class EncryptedGroupState extends $pb.GeneratedMessage {
|
|||
_omitMessageNames ? '' : 'EncryptedGroupState',
|
||||
createEmptyInstance: create)
|
||||
..p<$fixnum.Int64>(
|
||||
1, _omitFieldNames ? '' : 'memberIds', $pb.PbFieldType.K6,
|
||||
protoName: 'memberIds')
|
||||
..p<$fixnum.Int64>(2, _omitFieldNames ? '' : 'adminIds', $pb.PbFieldType.K6,
|
||||
protoName: 'adminIds')
|
||||
..aOS(3, _omitFieldNames ? '' : 'groupName', protoName: 'groupName')
|
||||
..aInt64(4, _omitFieldNames ? '' : 'deleteMessagesAfterMilliseconds',
|
||||
protoName: 'deleteMessagesAfterMilliseconds')
|
||||
1, _omitFieldNames ? '' : 'memberIds', $pb.PbFieldType.K6)
|
||||
..p<$fixnum.Int64>(2, _omitFieldNames ? '' : 'adminIds', $pb.PbFieldType.K6)
|
||||
..aOS(3, _omitFieldNames ? '' : 'groupName')
|
||||
..aInt64(4, _omitFieldNames ? '' : 'deleteMessagesAfterMilliseconds')
|
||||
..a<$core.List<$core.int>>(
|
||||
5, _omitFieldNames ? '' : 'padding', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedGroupState clone() => EncryptedGroupState()..mergeFromMessage(this);
|
||||
EncryptedGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedGroupState copyWith(void Function(EncryptedGroupState) updates) =>
|
||||
super.copyWith((message) => updates(message as EncryptedGroupState))
|
||||
|
|
@ -78,8 +75,6 @@ class EncryptedGroupState extends $pb.GeneratedMessage {
|
|||
static EncryptedGroupState create() => EncryptedGroupState._();
|
||||
@$core.override
|
||||
EncryptedGroupState createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedGroupState> createRepeated() =>
|
||||
$pb.PbList<EncryptedGroupState>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedGroupState>(create);
|
||||
|
|
@ -141,16 +136,12 @@ class EncryptedAppendedGroupState extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedAppendedGroupState',
|
||||
createEmptyInstance: create)
|
||||
..e<EncryptedAppendedGroupState_Type>(
|
||||
1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: EncryptedAppendedGroupState_Type.LEFT_GROUP,
|
||||
valueOf: EncryptedAppendedGroupState_Type.valueOf,
|
||||
..aE<EncryptedAppendedGroupState_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: EncryptedAppendedGroupState_Type.values)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedAppendedGroupState clone() =>
|
||||
EncryptedAppendedGroupState()..mergeFromMessage(this);
|
||||
EncryptedAppendedGroupState clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedAppendedGroupState copyWith(
|
||||
void Function(EncryptedAppendedGroupState) updates) =>
|
||||
|
|
@ -166,8 +157,6 @@ class EncryptedAppendedGroupState extends $pb.GeneratedMessage {
|
|||
EncryptedAppendedGroupState._();
|
||||
@$core.override
|
||||
EncryptedAppendedGroupState createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedAppendedGroupState> createRepeated() =>
|
||||
$pb.PbList<EncryptedAppendedGroupState>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedAppendedGroupState getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedAppendedGroupState>(create);
|
||||
|
|
@ -212,15 +201,13 @@ class EncryptedGroupStateEnvelop extends $pb.GeneratedMessage {
|
|||
..a<$core.List<$core.int>>(
|
||||
1, _omitFieldNames ? '' : 'nonce', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'encryptedGroupState', $pb.PbFieldType.OY,
|
||||
protoName: 'encryptedGroupState')
|
||||
2, _omitFieldNames ? '' : 'encryptedGroupState', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'mac', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedGroupStateEnvelop clone() =>
|
||||
EncryptedGroupStateEnvelop()..mergeFromMessage(this);
|
||||
EncryptedGroupStateEnvelop clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedGroupStateEnvelop copyWith(
|
||||
void Function(EncryptedGroupStateEnvelop) updates) =>
|
||||
|
|
@ -235,8 +222,6 @@ class EncryptedGroupStateEnvelop extends $pb.GeneratedMessage {
|
|||
static EncryptedGroupStateEnvelop create() => EncryptedGroupStateEnvelop._();
|
||||
@$core.override
|
||||
EncryptedGroupStateEnvelop createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedGroupStateEnvelop> createRepeated() =>
|
||||
$pb.PbList<EncryptedGroupStateEnvelop>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedGroupStateEnvelop getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedGroupStateEnvelop>(create);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
@ -18,11 +19,11 @@ import 'dart:typed_data' as $typed_data;
|
|||
const EncryptedGroupState$json = {
|
||||
'1': 'EncryptedGroupState',
|
||||
'2': [
|
||||
{'1': 'memberIds', '3': 1, '4': 3, '5': 3, '10': 'memberIds'},
|
||||
{'1': 'adminIds', '3': 2, '4': 3, '5': 3, '10': 'adminIds'},
|
||||
{'1': 'groupName', '3': 3, '4': 1, '5': 9, '10': 'groupName'},
|
||||
{'1': 'member_ids', '3': 1, '4': 3, '5': 3, '10': 'memberIds'},
|
||||
{'1': 'admin_ids', '3': 2, '4': 3, '5': 3, '10': 'adminIds'},
|
||||
{'1': 'group_name', '3': 3, '4': 1, '5': 9, '10': 'groupName'},
|
||||
{
|
||||
'1': 'deleteMessagesAfterMilliseconds',
|
||||
'1': 'delete_messages_after_milliseconds',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
|
|
@ -33,17 +34,17 @@ const EncryptedGroupState$json = {
|
|||
{'1': 'padding', '3': 5, '4': 1, '5': 12, '10': 'padding'},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_deleteMessagesAfterMilliseconds'},
|
||||
{'1': '_delete_messages_after_milliseconds'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `EncryptedGroupState`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List encryptedGroupStateDescriptor = $convert.base64Decode(
|
||||
'ChNFbmNyeXB0ZWRHcm91cFN0YXRlEhwKCW1lbWJlcklkcxgBIAMoA1IJbWVtYmVySWRzEhoKCG'
|
||||
'FkbWluSWRzGAIgAygDUghhZG1pbklkcxIcCglncm91cE5hbWUYAyABKAlSCWdyb3VwTmFtZRJN'
|
||||
'Ch9kZWxldGVNZXNzYWdlc0FmdGVyTWlsbGlzZWNvbmRzGAQgASgDSABSH2RlbGV0ZU1lc3NhZ2'
|
||||
'VzQWZ0ZXJNaWxsaXNlY29uZHOIAQESGAoHcGFkZGluZxgFIAEoDFIHcGFkZGluZ0IiCiBfZGVs'
|
||||
'ZXRlTWVzc2FnZXNBZnRlck1pbGxpc2Vjb25kcw==');
|
||||
'ChNFbmNyeXB0ZWRHcm91cFN0YXRlEh0KCm1lbWJlcl9pZHMYASADKANSCW1lbWJlcklkcxIbCg'
|
||||
'lhZG1pbl9pZHMYAiADKANSCGFkbWluSWRzEh0KCmdyb3VwX25hbWUYAyABKAlSCWdyb3VwTmFt'
|
||||
'ZRJQCiJkZWxldGVfbWVzc2FnZXNfYWZ0ZXJfbWlsbGlzZWNvbmRzGAQgASgDSABSH2RlbGV0ZU'
|
||||
'1lc3NhZ2VzQWZ0ZXJNaWxsaXNlY29uZHOIAQESGAoHcGFkZGluZxgFIAEoDFIHcGFkZGluZ0Il'
|
||||
'CiNfZGVsZXRlX21lc3NhZ2VzX2FmdGVyX21pbGxpc2Vjb25kcw==');
|
||||
|
||||
@$core.Deprecated('Use encryptedAppendedGroupStateDescriptor instead')
|
||||
const EncryptedAppendedGroupState$json = {
|
||||
|
|
@ -81,7 +82,7 @@ const EncryptedGroupStateEnvelop$json = {
|
|||
'2': [
|
||||
{'1': 'nonce', '3': 1, '4': 1, '5': 12, '10': 'nonce'},
|
||||
{
|
||||
'1': 'encryptedGroupState',
|
||||
'1': 'encrypted_group_state',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
|
|
@ -94,6 +95,6 @@ const EncryptedGroupStateEnvelop$json = {
|
|||
/// Descriptor for `EncryptedGroupStateEnvelop`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List encryptedGroupStateEnvelopDescriptor =
|
||||
$convert.base64Decode(
|
||||
'ChpFbmNyeXB0ZWRHcm91cFN0YXRlRW52ZWxvcBIUCgVub25jZRgBIAEoDFIFbm9uY2USMAoTZW'
|
||||
'5jcnlwdGVkR3JvdXBTdGF0ZRgCIAEoDFITZW5jcnlwdGVkR3JvdXBTdGF0ZRIQCgNtYWMYAyAB'
|
||||
'KAxSA21hYw==');
|
||||
'ChpFbmNyeXB0ZWRHcm91cFN0YXRlRW52ZWxvcBIUCgVub25jZRgBIAEoDFIFbm9uY2USMgoVZW'
|
||||
'5jcnlwdGVkX2dyb3VwX3N0YXRlGAIgASgMUhNlbmNyeXB0ZWRHcm91cFN0YXRlEhAKA21hYxgD'
|
||||
'IAEoDFIDbWFj');
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
@ -48,20 +48,17 @@ class Message extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'Message',
|
||||
createEmptyInstance: create)
|
||||
..e<Message_Type>(1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: Message_Type.SENDER_DELIVERY_RECEIPT,
|
||||
valueOf: Message_Type.valueOf,
|
||||
..aE<Message_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: Message_Type.values)
|
||||
..aOS(2, _omitFieldNames ? '' : 'receiptId', protoName: 'receiptId')
|
||||
..aOS(2, _omitFieldNames ? '' : 'receiptId')
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'encryptedContent', $pb.PbFieldType.OY,
|
||||
protoName: 'encryptedContent')
|
||||
3, _omitFieldNames ? '' : 'encryptedContent', $pb.PbFieldType.OY)
|
||||
..aOM<PlaintextContent>(4, _omitFieldNames ? '' : 'plaintextContent',
|
||||
protoName: 'plaintextContent', subBuilder: PlaintextContent.create)
|
||||
subBuilder: PlaintextContent.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Message clone() => Message()..mergeFromMessage(this);
|
||||
Message clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
Message copyWith(void Function(Message) updates) =>
|
||||
super.copyWith((message) => updates(message as Message)) as Message;
|
||||
|
|
@ -73,7 +70,6 @@ class Message extends $pb.GeneratedMessage {
|
|||
static Message create() => Message._();
|
||||
@$core.override
|
||||
Message createEmptyInstance() => create();
|
||||
static $pb.PbList<Message> createRepeated() => $pb.PbList<Message>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Message getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Message>(create);
|
||||
|
|
@ -137,8 +133,7 @@ class PlaintextContent_RetryErrorMessage extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent_RetryErrorMessage clone() =>
|
||||
PlaintextContent_RetryErrorMessage()..mergeFromMessage(this);
|
||||
PlaintextContent_RetryErrorMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent_RetryErrorMessage copyWith(
|
||||
void Function(PlaintextContent_RetryErrorMessage) updates) =>
|
||||
|
|
@ -154,8 +149,6 @@ class PlaintextContent_RetryErrorMessage extends $pb.GeneratedMessage {
|
|||
PlaintextContent_RetryErrorMessage._();
|
||||
@$core.override
|
||||
PlaintextContent_RetryErrorMessage createEmptyInstance() => create();
|
||||
static $pb.PbList<PlaintextContent_RetryErrorMessage> createRepeated() =>
|
||||
$pb.PbList<PlaintextContent_RetryErrorMessage>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PlaintextContent_RetryErrorMessage getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<PlaintextContent_RetryErrorMessage>(
|
||||
|
|
@ -185,16 +178,13 @@ class PlaintextContent_DecryptionErrorMessage extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PlaintextContent.DecryptionErrorMessage',
|
||||
createEmptyInstance: create)
|
||||
..e<PlaintextContent_DecryptionErrorMessage_Type>(
|
||||
1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: PlaintextContent_DecryptionErrorMessage_Type.UNKNOWN,
|
||||
valueOf: PlaintextContent_DecryptionErrorMessage_Type.valueOf,
|
||||
..aE<PlaintextContent_DecryptionErrorMessage_Type>(
|
||||
1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: PlaintextContent_DecryptionErrorMessage_Type.values)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent_DecryptionErrorMessage clone() =>
|
||||
PlaintextContent_DecryptionErrorMessage()..mergeFromMessage(this);
|
||||
PlaintextContent_DecryptionErrorMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent_DecryptionErrorMessage copyWith(
|
||||
void Function(PlaintextContent_DecryptionErrorMessage) updates) =>
|
||||
|
|
@ -210,8 +200,6 @@ class PlaintextContent_DecryptionErrorMessage extends $pb.GeneratedMessage {
|
|||
PlaintextContent_DecryptionErrorMessage._();
|
||||
@$core.override
|
||||
PlaintextContent_DecryptionErrorMessage createEmptyInstance() => create();
|
||||
static $pb.PbList<PlaintextContent_DecryptionErrorMessage> createRepeated() =>
|
||||
$pb.PbList<PlaintextContent_DecryptionErrorMessage>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PlaintextContent_DecryptionErrorMessage getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
|
|
@ -255,16 +243,14 @@ class PlaintextContent extends $pb.GeneratedMessage {
|
|||
createEmptyInstance: create)
|
||||
..aOM<PlaintextContent_DecryptionErrorMessage>(
|
||||
1, _omitFieldNames ? '' : 'decryptionErrorMessage',
|
||||
protoName: 'decryptionErrorMessage',
|
||||
subBuilder: PlaintextContent_DecryptionErrorMessage.create)
|
||||
..aOM<PlaintextContent_RetryErrorMessage>(
|
||||
2, _omitFieldNames ? '' : 'retryControlError',
|
||||
protoName: 'retryControlError',
|
||||
subBuilder: PlaintextContent_RetryErrorMessage.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent clone() => PlaintextContent()..mergeFromMessage(this);
|
||||
PlaintextContent clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PlaintextContent copyWith(void Function(PlaintextContent) updates) =>
|
||||
super.copyWith((message) => updates(message as PlaintextContent))
|
||||
|
|
@ -277,8 +263,6 @@ class PlaintextContent extends $pb.GeneratedMessage {
|
|||
static PlaintextContent create() => PlaintextContent._();
|
||||
@$core.override
|
||||
PlaintextContent createEmptyInstance() => create();
|
||||
static $pb.PbList<PlaintextContent> createRepeated() =>
|
||||
$pb.PbList<PlaintextContent>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PlaintextContent getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<PlaintextContent>(create);
|
||||
|
|
@ -334,18 +318,13 @@ class EncryptedContent_ErrorMessages extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.ErrorMessages',
|
||||
createEmptyInstance: create)
|
||||
..e<EncryptedContent_ErrorMessages_Type>(
|
||||
1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: EncryptedContent_ErrorMessages_Type
|
||||
.ERROR_PROCESSING_MESSAGE_CREATED_ACCOUNT_REQUEST_INSTEAD,
|
||||
valueOf: EncryptedContent_ErrorMessages_Type.valueOf,
|
||||
..aE<EncryptedContent_ErrorMessages_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: EncryptedContent_ErrorMessages_Type.values)
|
||||
..aOS(2, _omitFieldNames ? '' : 'relatedReceiptId')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_ErrorMessages clone() =>
|
||||
EncryptedContent_ErrorMessages()..mergeFromMessage(this);
|
||||
EncryptedContent_ErrorMessages clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_ErrorMessages copyWith(
|
||||
void Function(EncryptedContent_ErrorMessages) updates) =>
|
||||
|
|
@ -361,8 +340,6 @@ class EncryptedContent_ErrorMessages extends $pb.GeneratedMessage {
|
|||
EncryptedContent_ErrorMessages._();
|
||||
@$core.override
|
||||
EncryptedContent_ErrorMessages createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_ErrorMessages> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_ErrorMessages>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_ErrorMessages getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_ErrorMessages>(create);
|
||||
|
|
@ -411,16 +388,13 @@ class EncryptedContent_GroupCreate extends $pb.GeneratedMessage {
|
|||
_omitMessageNames ? '' : 'EncryptedContent.GroupCreate',
|
||||
createEmptyInstance: create)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'stateKey', $pb.PbFieldType.OY,
|
||||
protoName: 'stateKey')
|
||||
3, _omitFieldNames ? '' : 'stateKey', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
4, _omitFieldNames ? '' : 'groupPublicKey', $pb.PbFieldType.OY,
|
||||
protoName: 'groupPublicKey')
|
||||
4, _omitFieldNames ? '' : 'groupPublicKey', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_GroupCreate clone() =>
|
||||
EncryptedContent_GroupCreate()..mergeFromMessage(this);
|
||||
EncryptedContent_GroupCreate clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_GroupCreate copyWith(
|
||||
void Function(EncryptedContent_GroupCreate) updates) =>
|
||||
|
|
@ -436,8 +410,6 @@ class EncryptedContent_GroupCreate extends $pb.GeneratedMessage {
|
|||
EncryptedContent_GroupCreate._();
|
||||
@$core.override
|
||||
EncryptedContent_GroupCreate createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_GroupCreate> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_GroupCreate>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_GroupCreate getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_GroupCreate>(create);
|
||||
|
|
@ -485,13 +457,11 @@ class EncryptedContent_GroupJoin extends $pb.GeneratedMessage {
|
|||
_omitMessageNames ? '' : 'EncryptedContent.GroupJoin',
|
||||
createEmptyInstance: create)
|
||||
..a<$core.List<$core.int>>(
|
||||
1, _omitFieldNames ? '' : 'groupPublicKey', $pb.PbFieldType.OY,
|
||||
protoName: 'groupPublicKey')
|
||||
1, _omitFieldNames ? '' : 'groupPublicKey', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_GroupJoin clone() =>
|
||||
EncryptedContent_GroupJoin()..mergeFromMessage(this);
|
||||
EncryptedContent_GroupJoin clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_GroupJoin copyWith(
|
||||
void Function(EncryptedContent_GroupJoin) updates) =>
|
||||
|
|
@ -506,8 +476,6 @@ class EncryptedContent_GroupJoin extends $pb.GeneratedMessage {
|
|||
static EncryptedContent_GroupJoin create() => EncryptedContent_GroupJoin._();
|
||||
@$core.override
|
||||
EncryptedContent_GroupJoin createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_GroupJoin> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_GroupJoin>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_GroupJoin getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_GroupJoin>(create);
|
||||
|
|
@ -543,8 +511,7 @@ class EncryptedContent_ResendGroupPublicKey extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_ResendGroupPublicKey clone() =>
|
||||
EncryptedContent_ResendGroupPublicKey()..mergeFromMessage(this);
|
||||
EncryptedContent_ResendGroupPublicKey clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_ResendGroupPublicKey copyWith(
|
||||
void Function(EncryptedContent_ResendGroupPublicKey) updates) =>
|
||||
|
|
@ -560,8 +527,6 @@ class EncryptedContent_ResendGroupPublicKey extends $pb.GeneratedMessage {
|
|||
EncryptedContent_ResendGroupPublicKey._();
|
||||
@$core.override
|
||||
EncryptedContent_ResendGroupPublicKey createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_ResendGroupPublicKey> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_ResendGroupPublicKey>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_ResendGroupPublicKey getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
|
|
@ -598,18 +563,14 @@ class EncryptedContent_GroupUpdate extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.GroupUpdate',
|
||||
createEmptyInstance: create)
|
||||
..aOS(1, _omitFieldNames ? '' : 'groupActionType',
|
||||
protoName: 'groupActionType')
|
||||
..aInt64(2, _omitFieldNames ? '' : 'affectedContactId',
|
||||
protoName: 'affectedContactId')
|
||||
..aOS(3, _omitFieldNames ? '' : 'newGroupName', protoName: 'newGroupName')
|
||||
..aInt64(4, _omitFieldNames ? '' : 'newDeleteMessagesAfterMilliseconds',
|
||||
protoName: 'newDeleteMessagesAfterMilliseconds')
|
||||
..aOS(1, _omitFieldNames ? '' : 'groupActionType')
|
||||
..aInt64(2, _omitFieldNames ? '' : 'affectedContactId')
|
||||
..aOS(3, _omitFieldNames ? '' : 'newGroupName')
|
||||
..aInt64(4, _omitFieldNames ? '' : 'newDeleteMessagesAfterMilliseconds')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_GroupUpdate clone() =>
|
||||
EncryptedContent_GroupUpdate()..mergeFromMessage(this);
|
||||
EncryptedContent_GroupUpdate clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_GroupUpdate copyWith(
|
||||
void Function(EncryptedContent_GroupUpdate) updates) =>
|
||||
|
|
@ -625,8 +586,6 @@ class EncryptedContent_GroupUpdate extends $pb.GeneratedMessage {
|
|||
EncryptedContent_GroupUpdate._();
|
||||
@$core.override
|
||||
EncryptedContent_GroupUpdate createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_GroupUpdate> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_GroupUpdate>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_GroupUpdate getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_GroupUpdate>(create);
|
||||
|
|
@ -697,17 +656,14 @@ class EncryptedContent_TextMessage extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.TextMessage',
|
||||
createEmptyInstance: create)
|
||||
..aOS(1, _omitFieldNames ? '' : 'senderMessageId',
|
||||
protoName: 'senderMessageId')
|
||||
..aOS(1, _omitFieldNames ? '' : 'senderMessageId')
|
||||
..aOS(2, _omitFieldNames ? '' : 'text')
|
||||
..aInt64(3, _omitFieldNames ? '' : 'timestamp')
|
||||
..aOS(4, _omitFieldNames ? '' : 'quoteMessageId',
|
||||
protoName: 'quoteMessageId')
|
||||
..aOS(4, _omitFieldNames ? '' : 'quoteMessageId')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_TextMessage clone() =>
|
||||
EncryptedContent_TextMessage()..mergeFromMessage(this);
|
||||
EncryptedContent_TextMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_TextMessage copyWith(
|
||||
void Function(EncryptedContent_TextMessage) updates) =>
|
||||
|
|
@ -723,8 +679,6 @@ class EncryptedContent_TextMessage extends $pb.GeneratedMessage {
|
|||
EncryptedContent_TextMessage._();
|
||||
@$core.override
|
||||
EncryptedContent_TextMessage createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_TextMessage> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_TextMessage>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_TextMessage getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_TextMessage>(create);
|
||||
|
|
@ -804,8 +758,7 @@ class EncryptedContent_AdditionalDataMessage extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_AdditionalDataMessage clone() =>
|
||||
EncryptedContent_AdditionalDataMessage()..mergeFromMessage(this);
|
||||
EncryptedContent_AdditionalDataMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_AdditionalDataMessage copyWith(
|
||||
void Function(EncryptedContent_AdditionalDataMessage) updates) =>
|
||||
|
|
@ -821,8 +774,6 @@ class EncryptedContent_AdditionalDataMessage extends $pb.GeneratedMessage {
|
|||
EncryptedContent_AdditionalDataMessage._();
|
||||
@$core.override
|
||||
EncryptedContent_AdditionalDataMessage createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_AdditionalDataMessage> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_AdditionalDataMessage>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_AdditionalDataMessage getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
|
|
@ -892,15 +843,13 @@ class EncryptedContent_Reaction extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.Reaction',
|
||||
createEmptyInstance: create)
|
||||
..aOS(1, _omitFieldNames ? '' : 'targetMessageId',
|
||||
protoName: 'targetMessageId')
|
||||
..aOS(1, _omitFieldNames ? '' : 'targetMessageId')
|
||||
..aOS(2, _omitFieldNames ? '' : 'emoji')
|
||||
..aOB(3, _omitFieldNames ? '' : 'remove')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_Reaction clone() =>
|
||||
EncryptedContent_Reaction()..mergeFromMessage(this);
|
||||
EncryptedContent_Reaction clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_Reaction copyWith(
|
||||
void Function(EncryptedContent_Reaction) updates) =>
|
||||
|
|
@ -914,8 +863,6 @@ class EncryptedContent_Reaction extends $pb.GeneratedMessage {
|
|||
static EncryptedContent_Reaction create() => EncryptedContent_Reaction._();
|
||||
@$core.override
|
||||
EncryptedContent_Reaction createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_Reaction> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_Reaction>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_Reaction getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_Reaction>(create);
|
||||
|
|
@ -979,22 +926,16 @@ class EncryptedContent_MessageUpdate extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.MessageUpdate',
|
||||
createEmptyInstance: create)
|
||||
..e<EncryptedContent_MessageUpdate_Type>(
|
||||
1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: EncryptedContent_MessageUpdate_Type.DELETE,
|
||||
valueOf: EncryptedContent_MessageUpdate_Type.valueOf,
|
||||
..aE<EncryptedContent_MessageUpdate_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: EncryptedContent_MessageUpdate_Type.values)
|
||||
..aOS(2, _omitFieldNames ? '' : 'senderMessageId',
|
||||
protoName: 'senderMessageId')
|
||||
..pPS(3, _omitFieldNames ? '' : 'multipleTargetMessageIds',
|
||||
protoName: 'multipleTargetMessageIds')
|
||||
..aOS(2, _omitFieldNames ? '' : 'senderMessageId')
|
||||
..pPS(3, _omitFieldNames ? '' : 'multipleTargetMessageIds')
|
||||
..aOS(4, _omitFieldNames ? '' : 'text')
|
||||
..aInt64(5, _omitFieldNames ? '' : 'timestamp')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_MessageUpdate clone() =>
|
||||
EncryptedContent_MessageUpdate()..mergeFromMessage(this);
|
||||
EncryptedContent_MessageUpdate clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_MessageUpdate copyWith(
|
||||
void Function(EncryptedContent_MessageUpdate) updates) =>
|
||||
|
|
@ -1010,8 +951,6 @@ class EncryptedContent_MessageUpdate extends $pb.GeneratedMessage {
|
|||
EncryptedContent_MessageUpdate._();
|
||||
@$core.override
|
||||
EncryptedContent_MessageUpdate createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_MessageUpdate> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_MessageUpdate>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_MessageUpdate getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_MessageUpdate>(create);
|
||||
|
|
@ -1101,39 +1040,27 @@ class EncryptedContent_Media extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.Media',
|
||||
createEmptyInstance: create)
|
||||
..aOS(1, _omitFieldNames ? '' : 'senderMessageId',
|
||||
protoName: 'senderMessageId')
|
||||
..e<EncryptedContent_Media_Type>(
|
||||
2, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: EncryptedContent_Media_Type.REUPLOAD,
|
||||
valueOf: EncryptedContent_Media_Type.valueOf,
|
||||
..aOS(1, _omitFieldNames ? '' : 'senderMessageId')
|
||||
..aE<EncryptedContent_Media_Type>(2, _omitFieldNames ? '' : 'type',
|
||||
enumValues: EncryptedContent_Media_Type.values)
|
||||
..aInt64(3, _omitFieldNames ? '' : 'displayLimitInMilliseconds',
|
||||
protoName: 'displayLimitInMilliseconds')
|
||||
..aOB(4, _omitFieldNames ? '' : 'requiresAuthentication',
|
||||
protoName: 'requiresAuthentication')
|
||||
..aInt64(3, _omitFieldNames ? '' : 'displayLimitInMilliseconds')
|
||||
..aOB(4, _omitFieldNames ? '' : 'requiresAuthentication')
|
||||
..aInt64(5, _omitFieldNames ? '' : 'timestamp')
|
||||
..aOS(6, _omitFieldNames ? '' : 'quoteMessageId',
|
||||
protoName: 'quoteMessageId')
|
||||
..aOS(6, _omitFieldNames ? '' : 'quoteMessageId')
|
||||
..a<$core.List<$core.int>>(
|
||||
7, _omitFieldNames ? '' : 'downloadToken', $pb.PbFieldType.OY,
|
||||
protoName: 'downloadToken')
|
||||
7, _omitFieldNames ? '' : 'downloadToken', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
8, _omitFieldNames ? '' : 'encryptionKey', $pb.PbFieldType.OY,
|
||||
protoName: 'encryptionKey')
|
||||
8, _omitFieldNames ? '' : 'encryptionKey', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
9, _omitFieldNames ? '' : 'encryptionMac', $pb.PbFieldType.OY,
|
||||
protoName: 'encryptionMac')
|
||||
9, _omitFieldNames ? '' : 'encryptionMac', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
10, _omitFieldNames ? '' : 'encryptionNonce', $pb.PbFieldType.OY,
|
||||
protoName: 'encryptionNonce')
|
||||
10, _omitFieldNames ? '' : 'encryptionNonce', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
11, _omitFieldNames ? '' : 'additionalMessageData', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_Media clone() =>
|
||||
EncryptedContent_Media()..mergeFromMessage(this);
|
||||
EncryptedContent_Media clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_Media copyWith(
|
||||
void Function(EncryptedContent_Media) updates) =>
|
||||
|
|
@ -1147,8 +1074,6 @@ class EncryptedContent_Media extends $pb.GeneratedMessage {
|
|||
static EncryptedContent_Media create() => EncryptedContent_Media._();
|
||||
@$core.override
|
||||
EncryptedContent_Media createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_Media> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_Media>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_Media getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_Media>(create);
|
||||
|
|
@ -1278,18 +1203,13 @@ class EncryptedContent_MediaUpdate extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.MediaUpdate',
|
||||
createEmptyInstance: create)
|
||||
..e<EncryptedContent_MediaUpdate_Type>(
|
||||
1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: EncryptedContent_MediaUpdate_Type.REOPENED,
|
||||
valueOf: EncryptedContent_MediaUpdate_Type.valueOf,
|
||||
..aE<EncryptedContent_MediaUpdate_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: EncryptedContent_MediaUpdate_Type.values)
|
||||
..aOS(2, _omitFieldNames ? '' : 'targetMessageId',
|
||||
protoName: 'targetMessageId')
|
||||
..aOS(2, _omitFieldNames ? '' : 'targetMessageId')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_MediaUpdate clone() =>
|
||||
EncryptedContent_MediaUpdate()..mergeFromMessage(this);
|
||||
EncryptedContent_MediaUpdate clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_MediaUpdate copyWith(
|
||||
void Function(EncryptedContent_MediaUpdate) updates) =>
|
||||
|
|
@ -1305,8 +1225,6 @@ class EncryptedContent_MediaUpdate extends $pb.GeneratedMessage {
|
|||
EncryptedContent_MediaUpdate._();
|
||||
@$core.override
|
||||
EncryptedContent_MediaUpdate createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_MediaUpdate> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_MediaUpdate>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_MediaUpdate getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_MediaUpdate>(create);
|
||||
|
|
@ -1352,16 +1270,12 @@ class EncryptedContent_ContactRequest extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.ContactRequest',
|
||||
createEmptyInstance: create)
|
||||
..e<EncryptedContent_ContactRequest_Type>(
|
||||
1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: EncryptedContent_ContactRequest_Type.REQUEST,
|
||||
valueOf: EncryptedContent_ContactRequest_Type.valueOf,
|
||||
..aE<EncryptedContent_ContactRequest_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: EncryptedContent_ContactRequest_Type.values)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_ContactRequest clone() =>
|
||||
EncryptedContent_ContactRequest()..mergeFromMessage(this);
|
||||
EncryptedContent_ContactRequest clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_ContactRequest copyWith(
|
||||
void Function(EncryptedContent_ContactRequest) updates) =>
|
||||
|
|
@ -1377,8 +1291,6 @@ class EncryptedContent_ContactRequest extends $pb.GeneratedMessage {
|
|||
EncryptedContent_ContactRequest._();
|
||||
@$core.override
|
||||
EncryptedContent_ContactRequest createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_ContactRequest> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_ContactRequest>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_ContactRequest getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_ContactRequest>(
|
||||
|
|
@ -1423,21 +1335,16 @@ class EncryptedContent_ContactUpdate extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.ContactUpdate',
|
||||
createEmptyInstance: create)
|
||||
..e<EncryptedContent_ContactUpdate_Type>(
|
||||
1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: EncryptedContent_ContactUpdate_Type.REQUEST,
|
||||
valueOf: EncryptedContent_ContactUpdate_Type.valueOf,
|
||||
..aE<EncryptedContent_ContactUpdate_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: EncryptedContent_ContactUpdate_Type.values)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'avatarSvgCompressed', $pb.PbFieldType.OY,
|
||||
protoName: 'avatarSvgCompressed')
|
||||
2, _omitFieldNames ? '' : 'avatarSvgCompressed', $pb.PbFieldType.OY)
|
||||
..aOS(3, _omitFieldNames ? '' : 'username')
|
||||
..aOS(4, _omitFieldNames ? '' : 'displayName', protoName: 'displayName')
|
||||
..aOS(4, _omitFieldNames ? '' : 'displayName')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_ContactUpdate clone() =>
|
||||
EncryptedContent_ContactUpdate()..mergeFromMessage(this);
|
||||
EncryptedContent_ContactUpdate clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_ContactUpdate copyWith(
|
||||
void Function(EncryptedContent_ContactUpdate) updates) =>
|
||||
|
|
@ -1453,8 +1360,6 @@ class EncryptedContent_ContactUpdate extends $pb.GeneratedMessage {
|
|||
EncryptedContent_ContactUpdate._();
|
||||
@$core.override
|
||||
EncryptedContent_ContactUpdate createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_ContactUpdate> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_ContactUpdate>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_ContactUpdate getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_ContactUpdate>(create);
|
||||
|
|
@ -1524,20 +1429,16 @@ class EncryptedContent_PushKeys extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.PushKeys',
|
||||
createEmptyInstance: create)
|
||||
..e<EncryptedContent_PushKeys_Type>(
|
||||
1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: EncryptedContent_PushKeys_Type.REQUEST,
|
||||
valueOf: EncryptedContent_PushKeys_Type.valueOf,
|
||||
..aE<EncryptedContent_PushKeys_Type>(1, _omitFieldNames ? '' : 'type',
|
||||
enumValues: EncryptedContent_PushKeys_Type.values)
|
||||
..aInt64(2, _omitFieldNames ? '' : 'keyId', protoName: 'keyId')
|
||||
..aInt64(2, _omitFieldNames ? '' : 'keyId')
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'key', $pb.PbFieldType.OY)
|
||||
..aInt64(4, _omitFieldNames ? '' : 'createdAt', protoName: 'createdAt')
|
||||
..aInt64(4, _omitFieldNames ? '' : 'createdAt')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_PushKeys clone() =>
|
||||
EncryptedContent_PushKeys()..mergeFromMessage(this);
|
||||
EncryptedContent_PushKeys clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_PushKeys copyWith(
|
||||
void Function(EncryptedContent_PushKeys) updates) =>
|
||||
|
|
@ -1551,8 +1452,6 @@ class EncryptedContent_PushKeys extends $pb.GeneratedMessage {
|
|||
static EncryptedContent_PushKeys create() => EncryptedContent_PushKeys._();
|
||||
@$core.override
|
||||
EncryptedContent_PushKeys createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_PushKeys> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_PushKeys>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_PushKeys getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_PushKeys>(create);
|
||||
|
|
@ -1623,17 +1522,14 @@ class EncryptedContent_FlameSync extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.FlameSync',
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'flameCounter',
|
||||
protoName: 'flameCounter')
|
||||
..aInt64(2, _omitFieldNames ? '' : 'lastFlameCounterChange',
|
||||
protoName: 'lastFlameCounterChange')
|
||||
..aOB(3, _omitFieldNames ? '' : 'bestFriend', protoName: 'bestFriend')
|
||||
..aOB(4, _omitFieldNames ? '' : 'forceUpdate', protoName: 'forceUpdate')
|
||||
..aInt64(1, _omitFieldNames ? '' : 'flameCounter')
|
||||
..aInt64(2, _omitFieldNames ? '' : 'lastFlameCounterChange')
|
||||
..aOB(3, _omitFieldNames ? '' : 'bestFriend')
|
||||
..aOB(4, _omitFieldNames ? '' : 'forceUpdate')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_FlameSync clone() =>
|
||||
EncryptedContent_FlameSync()..mergeFromMessage(this);
|
||||
EncryptedContent_FlameSync clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_FlameSync copyWith(
|
||||
void Function(EncryptedContent_FlameSync) updates) =>
|
||||
|
|
@ -1648,8 +1544,6 @@ class EncryptedContent_FlameSync extends $pb.GeneratedMessage {
|
|||
static EncryptedContent_FlameSync create() => EncryptedContent_FlameSync._();
|
||||
@$core.override
|
||||
EncryptedContent_FlameSync createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_FlameSync> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_FlameSync>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_FlameSync getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_FlameSync>(create);
|
||||
|
|
@ -1721,8 +1615,7 @@ class EncryptedContent_TypingIndicator extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_TypingIndicator clone() =>
|
||||
EncryptedContent_TypingIndicator()..mergeFromMessage(this);
|
||||
EncryptedContent_TypingIndicator clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_TypingIndicator copyWith(
|
||||
void Function(EncryptedContent_TypingIndicator) updates) =>
|
||||
|
|
@ -1738,8 +1631,6 @@ class EncryptedContent_TypingIndicator extends $pb.GeneratedMessage {
|
|||
EncryptedContent_TypingIndicator._();
|
||||
@$core.override
|
||||
EncryptedContent_TypingIndicator createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent_TypingIndicator> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent_TypingIndicator>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_TypingIndicator getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent_TypingIndicator>(
|
||||
|
|
@ -1765,6 +1656,177 @@ class EncryptedContent_TypingIndicator extends $pb.GeneratedMessage {
|
|||
void clearCreatedAt() => $_clearField(2);
|
||||
}
|
||||
|
||||
class EncryptedContent_UserDiscoveryRequest extends $pb.GeneratedMessage {
|
||||
factory EncryptedContent_UserDiscoveryRequest({
|
||||
$core.List<$core.int>? currentVersion,
|
||||
}) {
|
||||
final result = create();
|
||||
if (currentVersion != null) result.currentVersion = currentVersion;
|
||||
return result;
|
||||
}
|
||||
|
||||
EncryptedContent_UserDiscoveryRequest._();
|
||||
|
||||
factory EncryptedContent_UserDiscoveryRequest.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory EncryptedContent_UserDiscoveryRequest.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.UserDiscoveryRequest',
|
||||
createEmptyInstance: create)
|
||||
..a<$core.List<$core.int>>(
|
||||
1, _omitFieldNames ? '' : 'currentVersion', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_UserDiscoveryRequest clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_UserDiscoveryRequest copyWith(
|
||||
void Function(EncryptedContent_UserDiscoveryRequest) updates) =>
|
||||
super.copyWith((message) =>
|
||||
updates(message as EncryptedContent_UserDiscoveryRequest))
|
||||
as EncryptedContent_UserDiscoveryRequest;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_UserDiscoveryRequest create() =>
|
||||
EncryptedContent_UserDiscoveryRequest._();
|
||||
@$core.override
|
||||
EncryptedContent_UserDiscoveryRequest createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_UserDiscoveryRequest getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
EncryptedContent_UserDiscoveryRequest>(create);
|
||||
static EncryptedContent_UserDiscoveryRequest? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.List<$core.int> get currentVersion => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set currentVersion($core.List<$core.int> value) => $_setBytes(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasCurrentVersion() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearCurrentVersion() => $_clearField(1);
|
||||
}
|
||||
|
||||
class EncryptedContent_UserDiscoveryUpdate extends $pb.GeneratedMessage {
|
||||
factory EncryptedContent_UserDiscoveryUpdate({
|
||||
$core.Iterable<$core.List<$core.int>>? messages,
|
||||
}) {
|
||||
final result = create();
|
||||
if (messages != null) result.messages.addAll(messages);
|
||||
return result;
|
||||
}
|
||||
|
||||
EncryptedContent_UserDiscoveryUpdate._();
|
||||
|
||||
factory EncryptedContent_UserDiscoveryUpdate.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory EncryptedContent_UserDiscoveryUpdate.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.UserDiscoveryUpdate',
|
||||
createEmptyInstance: create)
|
||||
..p<$core.List<$core.int>>(
|
||||
1, _omitFieldNames ? '' : 'messages', $pb.PbFieldType.PY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_UserDiscoveryUpdate clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_UserDiscoveryUpdate copyWith(
|
||||
void Function(EncryptedContent_UserDiscoveryUpdate) updates) =>
|
||||
super.copyWith((message) =>
|
||||
updates(message as EncryptedContent_UserDiscoveryUpdate))
|
||||
as EncryptedContent_UserDiscoveryUpdate;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_UserDiscoveryUpdate create() =>
|
||||
EncryptedContent_UserDiscoveryUpdate._();
|
||||
@$core.override
|
||||
EncryptedContent_UserDiscoveryUpdate createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_UserDiscoveryUpdate getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
EncryptedContent_UserDiscoveryUpdate>(create);
|
||||
static EncryptedContent_UserDiscoveryUpdate? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$pb.PbList<$core.List<$core.int>> get messages => $_getList(0);
|
||||
}
|
||||
|
||||
class EncryptedContent_KeyVerificationProof extends $pb.GeneratedMessage {
|
||||
factory EncryptedContent_KeyVerificationProof({
|
||||
$core.List<$core.int>? calculatedMac,
|
||||
}) {
|
||||
final result = create();
|
||||
if (calculatedMac != null) result.calculatedMac = calculatedMac;
|
||||
return result;
|
||||
}
|
||||
|
||||
EncryptedContent_KeyVerificationProof._();
|
||||
|
||||
factory EncryptedContent_KeyVerificationProof.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory EncryptedContent_KeyVerificationProof.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent.KeyVerificationProof',
|
||||
createEmptyInstance: create)
|
||||
..a<$core.List<$core.int>>(
|
||||
1, _omitFieldNames ? '' : 'calculatedMac', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_KeyVerificationProof clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent_KeyVerificationProof copyWith(
|
||||
void Function(EncryptedContent_KeyVerificationProof) updates) =>
|
||||
super.copyWith((message) =>
|
||||
updates(message as EncryptedContent_KeyVerificationProof))
|
||||
as EncryptedContent_KeyVerificationProof;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_KeyVerificationProof create() =>
|
||||
EncryptedContent_KeyVerificationProof._();
|
||||
@$core.override
|
||||
EncryptedContent_KeyVerificationProof createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent_KeyVerificationProof getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
EncryptedContent_KeyVerificationProof>(create);
|
||||
static EncryptedContent_KeyVerificationProof? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.List<$core.int> get calculatedMac => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set calculatedMac($core.List<$core.int> value) => $_setBytes(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasCalculatedMac() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearCalculatedMac() => $_clearField(1);
|
||||
}
|
||||
|
||||
class EncryptedContent extends $pb.GeneratedMessage {
|
||||
factory EncryptedContent({
|
||||
$core.String? groupId,
|
||||
|
|
@ -1786,6 +1848,10 @@ class EncryptedContent extends $pb.GeneratedMessage {
|
|||
EncryptedContent_ErrorMessages? errorMessages,
|
||||
EncryptedContent_AdditionalDataMessage? additionalDataMessage,
|
||||
EncryptedContent_TypingIndicator? typingIndicator,
|
||||
$core.List<$core.int>? senderUserDiscoveryVersion,
|
||||
EncryptedContent_UserDiscoveryRequest? userDiscoveryRequest,
|
||||
EncryptedContent_UserDiscoveryUpdate? userDiscoveryUpdate,
|
||||
EncryptedContent_KeyVerificationProof? keyVerificationProof,
|
||||
}) {
|
||||
final result = create();
|
||||
if (groupId != null) result.groupId = groupId;
|
||||
|
|
@ -1810,6 +1876,14 @@ class EncryptedContent extends $pb.GeneratedMessage {
|
|||
if (additionalDataMessage != null)
|
||||
result.additionalDataMessage = additionalDataMessage;
|
||||
if (typingIndicator != null) result.typingIndicator = typingIndicator;
|
||||
if (senderUserDiscoveryVersion != null)
|
||||
result.senderUserDiscoveryVersion = senderUserDiscoveryVersion;
|
||||
if (userDiscoveryRequest != null)
|
||||
result.userDiscoveryRequest = userDiscoveryRequest;
|
||||
if (userDiscoveryUpdate != null)
|
||||
result.userDiscoveryUpdate = userDiscoveryUpdate;
|
||||
if (keyVerificationProof != null)
|
||||
result.keyVerificationProof = keyVerificationProof;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -1825,50 +1899,41 @@ class EncryptedContent extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedContent',
|
||||
createEmptyInstance: create)
|
||||
..aOS(2, _omitFieldNames ? '' : 'groupId', protoName: 'groupId')
|
||||
..aOB(3, _omitFieldNames ? '' : 'isDirectChat', protoName: 'isDirectChat')
|
||||
..aInt64(4, _omitFieldNames ? '' : 'senderProfileCounter',
|
||||
protoName: 'senderProfileCounter')
|
||||
..aOS(2, _omitFieldNames ? '' : 'groupId')
|
||||
..aOB(3, _omitFieldNames ? '' : 'isDirectChat')
|
||||
..aInt64(4, _omitFieldNames ? '' : 'senderProfileCounter')
|
||||
..aOM<EncryptedContent_MessageUpdate>(
|
||||
5, _omitFieldNames ? '' : 'messageUpdate',
|
||||
protoName: 'messageUpdate',
|
||||
subBuilder: EncryptedContent_MessageUpdate.create)
|
||||
..aOM<EncryptedContent_Media>(6, _omitFieldNames ? '' : 'media',
|
||||
subBuilder: EncryptedContent_Media.create)
|
||||
..aOM<EncryptedContent_MediaUpdate>(7, _omitFieldNames ? '' : 'mediaUpdate',
|
||||
protoName: 'mediaUpdate',
|
||||
subBuilder: EncryptedContent_MediaUpdate.create)
|
||||
..aOM<EncryptedContent_ContactUpdate>(
|
||||
8, _omitFieldNames ? '' : 'contactUpdate',
|
||||
protoName: 'contactUpdate',
|
||||
subBuilder: EncryptedContent_ContactUpdate.create)
|
||||
..aOM<EncryptedContent_ContactRequest>(
|
||||
9, _omitFieldNames ? '' : 'contactRequest',
|
||||
protoName: 'contactRequest',
|
||||
subBuilder: EncryptedContent_ContactRequest.create)
|
||||
..aOM<EncryptedContent_FlameSync>(10, _omitFieldNames ? '' : 'flameSync',
|
||||
protoName: 'flameSync', subBuilder: EncryptedContent_FlameSync.create)
|
||||
subBuilder: EncryptedContent_FlameSync.create)
|
||||
..aOM<EncryptedContent_PushKeys>(11, _omitFieldNames ? '' : 'pushKeys',
|
||||
protoName: 'pushKeys', subBuilder: EncryptedContent_PushKeys.create)
|
||||
subBuilder: EncryptedContent_PushKeys.create)
|
||||
..aOM<EncryptedContent_Reaction>(12, _omitFieldNames ? '' : 'reaction',
|
||||
subBuilder: EncryptedContent_Reaction.create)
|
||||
..aOM<EncryptedContent_TextMessage>(
|
||||
13, _omitFieldNames ? '' : 'textMessage',
|
||||
protoName: 'textMessage',
|
||||
subBuilder: EncryptedContent_TextMessage.create)
|
||||
..aOM<EncryptedContent_GroupCreate>(
|
||||
14, _omitFieldNames ? '' : 'groupCreate',
|
||||
protoName: 'groupCreate',
|
||||
subBuilder: EncryptedContent_GroupCreate.create)
|
||||
..aOM<EncryptedContent_GroupJoin>(15, _omitFieldNames ? '' : 'groupJoin',
|
||||
protoName: 'groupJoin', subBuilder: EncryptedContent_GroupJoin.create)
|
||||
subBuilder: EncryptedContent_GroupJoin.create)
|
||||
..aOM<EncryptedContent_GroupUpdate>(
|
||||
16, _omitFieldNames ? '' : 'groupUpdate',
|
||||
protoName: 'groupUpdate',
|
||||
subBuilder: EncryptedContent_GroupUpdate.create)
|
||||
..aOM<EncryptedContent_ResendGroupPublicKey>(
|
||||
17, _omitFieldNames ? '' : 'resendGroupPublicKey',
|
||||
protoName: 'resendGroupPublicKey',
|
||||
subBuilder: EncryptedContent_ResendGroupPublicKey.create)
|
||||
..aOM<EncryptedContent_ErrorMessages>(
|
||||
18, _omitFieldNames ? '' : 'errorMessages',
|
||||
|
|
@ -1879,10 +1944,21 @@ class EncryptedContent extends $pb.GeneratedMessage {
|
|||
..aOM<EncryptedContent_TypingIndicator>(
|
||||
20, _omitFieldNames ? '' : 'typingIndicator',
|
||||
subBuilder: EncryptedContent_TypingIndicator.create)
|
||||
..a<$core.List<$core.int>>(21,
|
||||
_omitFieldNames ? '' : 'senderUserDiscoveryVersion', $pb.PbFieldType.OY)
|
||||
..aOM<EncryptedContent_UserDiscoveryRequest>(
|
||||
22, _omitFieldNames ? '' : 'userDiscoveryRequest',
|
||||
subBuilder: EncryptedContent_UserDiscoveryRequest.create)
|
||||
..aOM<EncryptedContent_UserDiscoveryUpdate>(
|
||||
23, _omitFieldNames ? '' : 'userDiscoveryUpdate',
|
||||
subBuilder: EncryptedContent_UserDiscoveryUpdate.create)
|
||||
..aOM<EncryptedContent_KeyVerificationProof>(
|
||||
24, _omitFieldNames ? '' : 'keyVerificationProof',
|
||||
subBuilder: EncryptedContent_KeyVerificationProof.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent clone() => EncryptedContent()..mergeFromMessage(this);
|
||||
EncryptedContent clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedContent copyWith(void Function(EncryptedContent) updates) =>
|
||||
super.copyWith((message) => updates(message as EncryptedContent))
|
||||
|
|
@ -1895,8 +1971,6 @@ class EncryptedContent extends $pb.GeneratedMessage {
|
|||
static EncryptedContent create() => EncryptedContent._();
|
||||
@$core.override
|
||||
EncryptedContent createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedContent> createRepeated() =>
|
||||
$pb.PbList<EncryptedContent>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedContent getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedContent>(create);
|
||||
|
|
@ -2115,6 +2189,55 @@ class EncryptedContent extends $pb.GeneratedMessage {
|
|||
void clearTypingIndicator() => $_clearField(20);
|
||||
@$pb.TagNumber(20)
|
||||
EncryptedContent_TypingIndicator ensureTypingIndicator() => $_ensure(18);
|
||||
|
||||
@$pb.TagNumber(21)
|
||||
$core.List<$core.int> get senderUserDiscoveryVersion => $_getN(19);
|
||||
@$pb.TagNumber(21)
|
||||
set senderUserDiscoveryVersion($core.List<$core.int> value) =>
|
||||
$_setBytes(19, value);
|
||||
@$pb.TagNumber(21)
|
||||
$core.bool hasSenderUserDiscoveryVersion() => $_has(19);
|
||||
@$pb.TagNumber(21)
|
||||
void clearSenderUserDiscoveryVersion() => $_clearField(21);
|
||||
|
||||
@$pb.TagNumber(22)
|
||||
EncryptedContent_UserDiscoveryRequest get userDiscoveryRequest => $_getN(20);
|
||||
@$pb.TagNumber(22)
|
||||
set userDiscoveryRequest(EncryptedContent_UserDiscoveryRequest value) =>
|
||||
$_setField(22, value);
|
||||
@$pb.TagNumber(22)
|
||||
$core.bool hasUserDiscoveryRequest() => $_has(20);
|
||||
@$pb.TagNumber(22)
|
||||
void clearUserDiscoveryRequest() => $_clearField(22);
|
||||
@$pb.TagNumber(22)
|
||||
EncryptedContent_UserDiscoveryRequest ensureUserDiscoveryRequest() =>
|
||||
$_ensure(20);
|
||||
|
||||
@$pb.TagNumber(23)
|
||||
EncryptedContent_UserDiscoveryUpdate get userDiscoveryUpdate => $_getN(21);
|
||||
@$pb.TagNumber(23)
|
||||
set userDiscoveryUpdate(EncryptedContent_UserDiscoveryUpdate value) =>
|
||||
$_setField(23, value);
|
||||
@$pb.TagNumber(23)
|
||||
$core.bool hasUserDiscoveryUpdate() => $_has(21);
|
||||
@$pb.TagNumber(23)
|
||||
void clearUserDiscoveryUpdate() => $_clearField(23);
|
||||
@$pb.TagNumber(23)
|
||||
EncryptedContent_UserDiscoveryUpdate ensureUserDiscoveryUpdate() =>
|
||||
$_ensure(21);
|
||||
|
||||
@$pb.TagNumber(24)
|
||||
EncryptedContent_KeyVerificationProof get keyVerificationProof => $_getN(22);
|
||||
@$pb.TagNumber(24)
|
||||
set keyVerificationProof(EncryptedContent_KeyVerificationProof value) =>
|
||||
$_setField(24, value);
|
||||
@$pb.TagNumber(24)
|
||||
$core.bool hasKeyVerificationProof() => $_has(22);
|
||||
@$pb.TagNumber(24)
|
||||
void clearKeyVerificationProof() => $_clearField(24);
|
||||
@$pb.TagNumber(24)
|
||||
EncryptedContent_KeyVerificationProof ensureKeyVerificationProof() =>
|
||||
$_ensure(22);
|
||||
}
|
||||
|
||||
const $core.bool _omitFieldNames =
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
@ -19,9 +20,9 @@ const Message$json = {
|
|||
'1': 'Message',
|
||||
'2': [
|
||||
{'1': 'type', '3': 1, '4': 1, '5': 14, '6': '.Message.Type', '10': 'type'},
|
||||
{'1': 'receiptId', '3': 2, '4': 1, '5': 9, '10': 'receiptId'},
|
||||
{'1': 'receipt_id', '3': 2, '4': 1, '5': 9, '10': 'receiptId'},
|
||||
{
|
||||
'1': 'encryptedContent',
|
||||
'1': 'encrypted_content',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
|
|
@ -30,7 +31,7 @@ const Message$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'plaintextContent',
|
||||
'1': 'plaintext_content',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
|
|
@ -42,8 +43,8 @@ const Message$json = {
|
|||
],
|
||||
'4': [Message_Type$json],
|
||||
'8': [
|
||||
{'1': '_encryptedContent'},
|
||||
{'1': '_plaintextContent'},
|
||||
{'1': '_encrypted_content'},
|
||||
{'1': '_plaintext_content'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -61,20 +62,20 @@ const Message_Type$json = {
|
|||
|
||||
/// Descriptor for `Message`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List messageDescriptor = $convert.base64Decode(
|
||||
'CgdNZXNzYWdlEiEKBHR5cGUYASABKA4yDS5NZXNzYWdlLlR5cGVSBHR5cGUSHAoJcmVjZWlwdE'
|
||||
'lkGAIgASgJUglyZWNlaXB0SWQSLwoQZW5jcnlwdGVkQ29udGVudBgDIAEoDEgAUhBlbmNyeXB0'
|
||||
'ZWRDb250ZW50iAEBEkIKEHBsYWludGV4dENvbnRlbnQYBCABKAsyES5QbGFpbnRleHRDb250ZW'
|
||||
'50SAFSEHBsYWludGV4dENvbnRlbnSIAQEidAoEVHlwZRIbChdTRU5ERVJfREVMSVZFUllfUkVD'
|
||||
'RUlQVBAAEhUKEVBMQUlOVEVYVF9DT05URU5UEAESDgoKQ0lQSEVSVEVYVBACEhEKDVBSRUtFWV'
|
||||
'9CVU5ETEUQAxIVChFURVNUX05PVElGSUNBVElPThAEQhMKEV9lbmNyeXB0ZWRDb250ZW50QhMK'
|
||||
'EV9wbGFpbnRleHRDb250ZW50');
|
||||
'CgdNZXNzYWdlEiEKBHR5cGUYASABKA4yDS5NZXNzYWdlLlR5cGVSBHR5cGUSHQoKcmVjZWlwdF'
|
||||
'9pZBgCIAEoCVIJcmVjZWlwdElkEjAKEWVuY3J5cHRlZF9jb250ZW50GAMgASgMSABSEGVuY3J5'
|
||||
'cHRlZENvbnRlbnSIAQESQwoRcGxhaW50ZXh0X2NvbnRlbnQYBCABKAsyES5QbGFpbnRleHRDb2'
|
||||
'50ZW50SAFSEHBsYWludGV4dENvbnRlbnSIAQEidAoEVHlwZRIbChdTRU5ERVJfREVMSVZFUllf'
|
||||
'UkVDRUlQVBAAEhUKEVBMQUlOVEVYVF9DT05URU5UEAESDgoKQ0lQSEVSVEVYVBACEhEKDVBSRU'
|
||||
'tFWV9CVU5ETEUQAxIVChFURVNUX05PVElGSUNBVElPThAEQhQKEl9lbmNyeXB0ZWRfY29udGVu'
|
||||
'dEIUChJfcGxhaW50ZXh0X2NvbnRlbnQ=');
|
||||
|
||||
@$core.Deprecated('Use plaintextContentDescriptor instead')
|
||||
const PlaintextContent$json = {
|
||||
'1': 'PlaintextContent',
|
||||
'2': [
|
||||
{
|
||||
'1': 'decryptionErrorMessage',
|
||||
'1': 'decryption_error_message',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
|
|
@ -84,7 +85,7 @@ const PlaintextContent$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'retryControlError',
|
||||
'1': 'retry_control_error',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
|
|
@ -99,8 +100,8 @@ const PlaintextContent$json = {
|
|||
PlaintextContent_DecryptionErrorMessage$json
|
||||
],
|
||||
'8': [
|
||||
{'1': '_decryptionErrorMessage'},
|
||||
{'1': '_retryControlError'},
|
||||
{'1': '_decryption_error_message'},
|
||||
{'1': '_retry_control_error'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -136,21 +137,21 @@ const PlaintextContent_DecryptionErrorMessage_Type$json = {
|
|||
|
||||
/// Descriptor for `PlaintextContent`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List plaintextContentDescriptor = $convert.base64Decode(
|
||||
'ChBQbGFpbnRleHRDb250ZW50EmUKFmRlY3J5cHRpb25FcnJvck1lc3NhZ2UYASABKAsyKC5QbG'
|
||||
'FpbnRleHRDb250ZW50LkRlY3J5cHRpb25FcnJvck1lc3NhZ2VIAFIWZGVjcnlwdGlvbkVycm9y'
|
||||
'TWVzc2FnZYgBARJWChFyZXRyeUNvbnRyb2xFcnJvchgCIAEoCzIjLlBsYWludGV4dENvbnRlbn'
|
||||
'QuUmV0cnlFcnJvck1lc3NhZ2VIAVIRcmV0cnlDb250cm9sRXJyb3KIAQEaEwoRUmV0cnlFcnJv'
|
||||
'ck1lc3NhZ2UahAEKFkRlY3J5cHRpb25FcnJvck1lc3NhZ2USQQoEdHlwZRgBIAEoDjItLlBsYW'
|
||||
'ludGV4dENvbnRlbnQuRGVjcnlwdGlvbkVycm9yTWVzc2FnZS5UeXBlUgR0eXBlIicKBFR5cGUS'
|
||||
'CwoHVU5LTk9XThAAEhIKDlBSRUtFWV9VTktOT1dOEAFCGQoXX2RlY3J5cHRpb25FcnJvck1lc3'
|
||||
'NhZ2VCFAoSX3JldHJ5Q29udHJvbEVycm9y');
|
||||
'ChBQbGFpbnRleHRDb250ZW50EmcKGGRlY3J5cHRpb25fZXJyb3JfbWVzc2FnZRgBIAEoCzIoLl'
|
||||
'BsYWludGV4dENvbnRlbnQuRGVjcnlwdGlvbkVycm9yTWVzc2FnZUgAUhZkZWNyeXB0aW9uRXJy'
|
||||
'b3JNZXNzYWdliAEBElgKE3JldHJ5X2NvbnRyb2xfZXJyb3IYAiABKAsyIy5QbGFpbnRleHRDb2'
|
||||
'50ZW50LlJldHJ5RXJyb3JNZXNzYWdlSAFSEXJldHJ5Q29udHJvbEVycm9yiAEBGhMKEVJldHJ5'
|
||||
'RXJyb3JNZXNzYWdlGoQBChZEZWNyeXB0aW9uRXJyb3JNZXNzYWdlEkEKBHR5cGUYASABKA4yLS'
|
||||
'5QbGFpbnRleHRDb250ZW50LkRlY3J5cHRpb25FcnJvck1lc3NhZ2UuVHlwZVIEdHlwZSInCgRU'
|
||||
'eXBlEgsKB1VOS05PV04QABISCg5QUkVLRVlfVU5LTk9XThABQhsKGV9kZWNyeXB0aW9uX2Vycm'
|
||||
'9yX21lc3NhZ2VCFgoUX3JldHJ5X2NvbnRyb2xfZXJyb3I=');
|
||||
|
||||
@$core.Deprecated('Use encryptedContentDescriptor instead')
|
||||
const EncryptedContent$json = {
|
||||
'1': 'EncryptedContent',
|
||||
'2': [
|
||||
{
|
||||
'1': 'groupId',
|
||||
'1': 'group_id',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
|
|
@ -159,7 +160,7 @@ const EncryptedContent$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'isDirectChat',
|
||||
'1': 'is_direct_chat',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 8,
|
||||
|
|
@ -168,7 +169,7 @@ const EncryptedContent$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'senderProfileCounter',
|
||||
'1': 'sender_profile_counter',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
|
|
@ -177,12 +178,21 @@ const EncryptedContent$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'messageUpdate',
|
||||
'1': 'sender_user_discovery_version',
|
||||
'3': 21,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'9': 3,
|
||||
'10': 'senderUserDiscoveryVersion',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'message_update',
|
||||
'3': 5,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.MessageUpdate',
|
||||
'9': 3,
|
||||
'9': 4,
|
||||
'10': 'messageUpdate',
|
||||
'17': true
|
||||
},
|
||||
|
|
@ -192,57 +202,57 @@ const EncryptedContent$json = {
|
|||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.Media',
|
||||
'9': 4,
|
||||
'9': 5,
|
||||
'10': 'media',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'mediaUpdate',
|
||||
'1': 'media_update',
|
||||
'3': 7,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.MediaUpdate',
|
||||
'9': 5,
|
||||
'9': 6,
|
||||
'10': 'mediaUpdate',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'contactUpdate',
|
||||
'1': 'contact_update',
|
||||
'3': 8,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.ContactUpdate',
|
||||
'9': 6,
|
||||
'9': 7,
|
||||
'10': 'contactUpdate',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'contactRequest',
|
||||
'1': 'contact_request',
|
||||
'3': 9,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.ContactRequest',
|
||||
'9': 7,
|
||||
'9': 8,
|
||||
'10': 'contactRequest',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'flameSync',
|
||||
'1': 'flame_sync',
|
||||
'3': 10,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.FlameSync',
|
||||
'9': 8,
|
||||
'9': 9,
|
||||
'10': 'flameSync',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'pushKeys',
|
||||
'1': 'push_keys',
|
||||
'3': 11,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.PushKeys',
|
||||
'9': 9,
|
||||
'9': 10,
|
||||
'10': 'pushKeys',
|
||||
'17': true
|
||||
},
|
||||
|
|
@ -252,57 +262,57 @@ const EncryptedContent$json = {
|
|||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.Reaction',
|
||||
'9': 10,
|
||||
'9': 11,
|
||||
'10': 'reaction',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'textMessage',
|
||||
'1': 'text_message',
|
||||
'3': 13,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.TextMessage',
|
||||
'9': 11,
|
||||
'9': 12,
|
||||
'10': 'textMessage',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'groupCreate',
|
||||
'1': 'group_create',
|
||||
'3': 14,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.GroupCreate',
|
||||
'9': 12,
|
||||
'9': 13,
|
||||
'10': 'groupCreate',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'groupJoin',
|
||||
'1': 'group_join',
|
||||
'3': 15,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.GroupJoin',
|
||||
'9': 13,
|
||||
'9': 14,
|
||||
'10': 'groupJoin',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'groupUpdate',
|
||||
'1': 'group_update',
|
||||
'3': 16,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.GroupUpdate',
|
||||
'9': 14,
|
||||
'9': 15,
|
||||
'10': 'groupUpdate',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'resendGroupPublicKey',
|
||||
'1': 'resend_group_public_key',
|
||||
'3': 17,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.ResendGroupPublicKey',
|
||||
'9': 15,
|
||||
'9': 16,
|
||||
'10': 'resendGroupPublicKey',
|
||||
'17': true
|
||||
},
|
||||
|
|
@ -312,7 +322,7 @@ const EncryptedContent$json = {
|
|||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.ErrorMessages',
|
||||
'9': 16,
|
||||
'9': 17,
|
||||
'10': 'errorMessages',
|
||||
'17': true
|
||||
},
|
||||
|
|
@ -322,7 +332,7 @@ const EncryptedContent$json = {
|
|||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.AdditionalDataMessage',
|
||||
'9': 17,
|
||||
'9': 18,
|
||||
'10': 'additionalDataMessage',
|
||||
'17': true
|
||||
},
|
||||
|
|
@ -332,10 +342,40 @@ const EncryptedContent$json = {
|
|||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.TypingIndicator',
|
||||
'9': 18,
|
||||
'9': 19,
|
||||
'10': 'typingIndicator',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'user_discovery_request',
|
||||
'3': 22,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.UserDiscoveryRequest',
|
||||
'9': 20,
|
||||
'10': 'userDiscoveryRequest',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'user_discovery_update',
|
||||
'3': 23,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.UserDiscoveryUpdate',
|
||||
'9': 21,
|
||||
'10': 'userDiscoveryUpdate',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'key_verification_proof',
|
||||
'3': 24,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.EncryptedContent.KeyVerificationProof',
|
||||
'9': 22,
|
||||
'10': 'keyVerificationProof',
|
||||
'17': true
|
||||
},
|
||||
],
|
||||
'3': [
|
||||
EncryptedContent_ErrorMessages$json,
|
||||
|
|
@ -353,28 +393,35 @@ const EncryptedContent$json = {
|
|||
EncryptedContent_ContactUpdate$json,
|
||||
EncryptedContent_PushKeys$json,
|
||||
EncryptedContent_FlameSync$json,
|
||||
EncryptedContent_TypingIndicator$json
|
||||
EncryptedContent_TypingIndicator$json,
|
||||
EncryptedContent_UserDiscoveryRequest$json,
|
||||
EncryptedContent_UserDiscoveryUpdate$json,
|
||||
EncryptedContent_KeyVerificationProof$json
|
||||
],
|
||||
'8': [
|
||||
{'1': '_groupId'},
|
||||
{'1': '_isDirectChat'},
|
||||
{'1': '_senderProfileCounter'},
|
||||
{'1': '_messageUpdate'},
|
||||
{'1': '_group_id'},
|
||||
{'1': '_is_direct_chat'},
|
||||
{'1': '_sender_profile_counter'},
|
||||
{'1': '_sender_user_discovery_version'},
|
||||
{'1': '_message_update'},
|
||||
{'1': '_media'},
|
||||
{'1': '_mediaUpdate'},
|
||||
{'1': '_contactUpdate'},
|
||||
{'1': '_contactRequest'},
|
||||
{'1': '_flameSync'},
|
||||
{'1': '_pushKeys'},
|
||||
{'1': '_media_update'},
|
||||
{'1': '_contact_update'},
|
||||
{'1': '_contact_request'},
|
||||
{'1': '_flame_sync'},
|
||||
{'1': '_push_keys'},
|
||||
{'1': '_reaction'},
|
||||
{'1': '_textMessage'},
|
||||
{'1': '_groupCreate'},
|
||||
{'1': '_groupJoin'},
|
||||
{'1': '_groupUpdate'},
|
||||
{'1': '_resendGroupPublicKey'},
|
||||
{'1': '_text_message'},
|
||||
{'1': '_group_create'},
|
||||
{'1': '_group_join'},
|
||||
{'1': '_group_update'},
|
||||
{'1': '_resend_group_public_key'},
|
||||
{'1': '_error_messages'},
|
||||
{'1': '_additional_data_message'},
|
||||
{'1': '_typing_indicator'},
|
||||
{'1': '_user_discovery_request'},
|
||||
{'1': '_user_discovery_update'},
|
||||
{'1': '_key_verification_proof'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -415,8 +462,8 @@ const EncryptedContent_ErrorMessages_Type$json = {
|
|||
const EncryptedContent_GroupCreate$json = {
|
||||
'1': 'GroupCreate',
|
||||
'2': [
|
||||
{'1': 'stateKey', '3': 3, '4': 1, '5': 12, '10': 'stateKey'},
|
||||
{'1': 'groupPublicKey', '3': 4, '4': 1, '5': 12, '10': 'groupPublicKey'},
|
||||
{'1': 'state_key', '3': 3, '4': 1, '5': 12, '10': 'stateKey'},
|
||||
{'1': 'group_public_key', '3': 4, '4': 1, '5': 12, '10': 'groupPublicKey'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -424,7 +471,7 @@ const EncryptedContent_GroupCreate$json = {
|
|||
const EncryptedContent_GroupJoin$json = {
|
||||
'1': 'GroupJoin',
|
||||
'2': [
|
||||
{'1': 'groupPublicKey', '3': 1, '4': 1, '5': 12, '10': 'groupPublicKey'},
|
||||
{'1': 'group_public_key', '3': 1, '4': 1, '5': 12, '10': 'groupPublicKey'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -437,9 +484,9 @@ const EncryptedContent_ResendGroupPublicKey$json = {
|
|||
const EncryptedContent_GroupUpdate$json = {
|
||||
'1': 'GroupUpdate',
|
||||
'2': [
|
||||
{'1': 'groupActionType', '3': 1, '4': 1, '5': 9, '10': 'groupActionType'},
|
||||
{'1': 'group_action_type', '3': 1, '4': 1, '5': 9, '10': 'groupActionType'},
|
||||
{
|
||||
'1': 'affectedContactId',
|
||||
'1': 'affected_contact_id',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
|
|
@ -448,7 +495,7 @@ const EncryptedContent_GroupUpdate$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'newGroupName',
|
||||
'1': 'new_group_name',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
|
|
@ -457,7 +504,7 @@ const EncryptedContent_GroupUpdate$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'newDeleteMessagesAfterMilliseconds',
|
||||
'1': 'new_delete_messages_after_milliseconds',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
|
|
@ -467,9 +514,9 @@ const EncryptedContent_GroupUpdate$json = {
|
|||
},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_affectedContactId'},
|
||||
{'1': '_newGroupName'},
|
||||
{'1': '_newDeleteMessagesAfterMilliseconds'},
|
||||
{'1': '_affected_contact_id'},
|
||||
{'1': '_new_group_name'},
|
||||
{'1': '_new_delete_messages_after_milliseconds'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -477,11 +524,11 @@ const EncryptedContent_GroupUpdate$json = {
|
|||
const EncryptedContent_TextMessage$json = {
|
||||
'1': 'TextMessage',
|
||||
'2': [
|
||||
{'1': 'senderMessageId', '3': 1, '4': 1, '5': 9, '10': 'senderMessageId'},
|
||||
{'1': 'sender_message_id', '3': 1, '4': 1, '5': 9, '10': 'senderMessageId'},
|
||||
{'1': 'text', '3': 2, '4': 1, '5': 9, '10': 'text'},
|
||||
{'1': 'timestamp', '3': 3, '4': 1, '5': 3, '10': 'timestamp'},
|
||||
{
|
||||
'1': 'quoteMessageId',
|
||||
'1': 'quote_message_id',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
|
|
@ -491,7 +538,7 @@ const EncryptedContent_TextMessage$json = {
|
|||
},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_quoteMessageId'},
|
||||
{'1': '_quote_message_id'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -521,7 +568,7 @@ const EncryptedContent_AdditionalDataMessage$json = {
|
|||
const EncryptedContent_Reaction$json = {
|
||||
'1': 'Reaction',
|
||||
'2': [
|
||||
{'1': 'targetMessageId', '3': 1, '4': 1, '5': 9, '10': 'targetMessageId'},
|
||||
{'1': 'target_message_id', '3': 1, '4': 1, '5': 9, '10': 'targetMessageId'},
|
||||
{'1': 'emoji', '3': 2, '4': 1, '5': 9, '10': 'emoji'},
|
||||
{'1': 'remove', '3': 3, '4': 1, '5': 8, '10': 'remove'},
|
||||
],
|
||||
|
|
@ -540,7 +587,7 @@ const EncryptedContent_MessageUpdate$json = {
|
|||
'10': 'type'
|
||||
},
|
||||
{
|
||||
'1': 'senderMessageId',
|
||||
'1': 'sender_message_id',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
|
|
@ -549,7 +596,7 @@ const EncryptedContent_MessageUpdate$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'multipleTargetMessageIds',
|
||||
'1': 'multiple_target_message_ids',
|
||||
'3': 3,
|
||||
'4': 3,
|
||||
'5': 9,
|
||||
|
|
@ -560,7 +607,7 @@ const EncryptedContent_MessageUpdate$json = {
|
|||
],
|
||||
'4': [EncryptedContent_MessageUpdate_Type$json],
|
||||
'8': [
|
||||
{'1': '_senderMessageId'},
|
||||
{'1': '_sender_message_id'},
|
||||
{'1': '_text'},
|
||||
],
|
||||
};
|
||||
|
|
@ -579,7 +626,7 @@ const EncryptedContent_MessageUpdate_Type$json = {
|
|||
const EncryptedContent_Media$json = {
|
||||
'1': 'Media',
|
||||
'2': [
|
||||
{'1': 'senderMessageId', '3': 1, '4': 1, '5': 9, '10': 'senderMessageId'},
|
||||
{'1': 'sender_message_id', '3': 1, '4': 1, '5': 9, '10': 'senderMessageId'},
|
||||
{
|
||||
'1': 'type',
|
||||
'3': 2,
|
||||
|
|
@ -589,7 +636,7 @@ const EncryptedContent_Media$json = {
|
|||
'10': 'type'
|
||||
},
|
||||
{
|
||||
'1': 'displayLimitInMilliseconds',
|
||||
'1': 'display_limit_in_milliseconds',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
|
|
@ -598,7 +645,7 @@ const EncryptedContent_Media$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'requiresAuthentication',
|
||||
'1': 'requires_authentication',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 8,
|
||||
|
|
@ -606,7 +653,7 @@ const EncryptedContent_Media$json = {
|
|||
},
|
||||
{'1': 'timestamp', '3': 5, '4': 1, '5': 3, '10': 'timestamp'},
|
||||
{
|
||||
'1': 'quoteMessageId',
|
||||
'1': 'quote_message_id',
|
||||
'3': 6,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
|
|
@ -615,7 +662,7 @@ const EncryptedContent_Media$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'downloadToken',
|
||||
'1': 'download_token',
|
||||
'3': 7,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
|
|
@ -624,7 +671,7 @@ const EncryptedContent_Media$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'encryptionKey',
|
||||
'1': 'encryption_key',
|
||||
'3': 8,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
|
|
@ -633,7 +680,7 @@ const EncryptedContent_Media$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'encryptionMac',
|
||||
'1': 'encryption_mac',
|
||||
'3': 9,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
|
|
@ -642,7 +689,7 @@ const EncryptedContent_Media$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'encryptionNonce',
|
||||
'1': 'encryption_nonce',
|
||||
'3': 10,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
|
|
@ -662,12 +709,12 @@ const EncryptedContent_Media$json = {
|
|||
],
|
||||
'4': [EncryptedContent_Media_Type$json],
|
||||
'8': [
|
||||
{'1': '_displayLimitInMilliseconds'},
|
||||
{'1': '_quoteMessageId'},
|
||||
{'1': '_downloadToken'},
|
||||
{'1': '_encryptionKey'},
|
||||
{'1': '_encryptionMac'},
|
||||
{'1': '_encryptionNonce'},
|
||||
{'1': '_display_limit_in_milliseconds'},
|
||||
{'1': '_quote_message_id'},
|
||||
{'1': '_download_token'},
|
||||
{'1': '_encryption_key'},
|
||||
{'1': '_encryption_mac'},
|
||||
{'1': '_encryption_nonce'},
|
||||
{'1': '_additional_message_data'},
|
||||
],
|
||||
};
|
||||
|
|
@ -696,7 +743,7 @@ const EncryptedContent_MediaUpdate$json = {
|
|||
'6': '.EncryptedContent.MediaUpdate.Type',
|
||||
'10': 'type'
|
||||
},
|
||||
{'1': 'targetMessageId', '3': 2, '4': 1, '5': 9, '10': 'targetMessageId'},
|
||||
{'1': 'target_message_id', '3': 2, '4': 1, '5': 9, '10': 'targetMessageId'},
|
||||
],
|
||||
'4': [EncryptedContent_MediaUpdate_Type$json],
|
||||
};
|
||||
|
|
@ -750,7 +797,7 @@ const EncryptedContent_ContactUpdate$json = {
|
|||
'10': 'type'
|
||||
},
|
||||
{
|
||||
'1': 'avatarSvgCompressed',
|
||||
'1': 'avatar_svg_compressed',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
|
|
@ -768,7 +815,7 @@ const EncryptedContent_ContactUpdate$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'displayName',
|
||||
'1': 'display_name',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
|
|
@ -779,9 +826,9 @@ const EncryptedContent_ContactUpdate$json = {
|
|||
],
|
||||
'4': [EncryptedContent_ContactUpdate_Type$json],
|
||||
'8': [
|
||||
{'1': '_avatarSvgCompressed'},
|
||||
{'1': '_avatar_svg_compressed'},
|
||||
{'1': '_username'},
|
||||
{'1': '_displayName'},
|
||||
{'1': '_display_name'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -806,10 +853,10 @@ const EncryptedContent_PushKeys$json = {
|
|||
'6': '.EncryptedContent.PushKeys.Type',
|
||||
'10': 'type'
|
||||
},
|
||||
{'1': 'keyId', '3': 2, '4': 1, '5': 3, '9': 0, '10': 'keyId', '17': true},
|
||||
{'1': 'key_id', '3': 2, '4': 1, '5': 3, '9': 0, '10': 'keyId', '17': true},
|
||||
{'1': 'key', '3': 3, '4': 1, '5': 12, '9': 1, '10': 'key', '17': true},
|
||||
{
|
||||
'1': 'createdAt',
|
||||
'1': 'created_at',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
|
|
@ -820,9 +867,9 @@ const EncryptedContent_PushKeys$json = {
|
|||
],
|
||||
'4': [EncryptedContent_PushKeys_Type$json],
|
||||
'8': [
|
||||
{'1': '_keyId'},
|
||||
{'1': '_key_id'},
|
||||
{'1': '_key'},
|
||||
{'1': '_createdAt'},
|
||||
{'1': '_created_at'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -839,16 +886,16 @@ const EncryptedContent_PushKeys_Type$json = {
|
|||
const EncryptedContent_FlameSync$json = {
|
||||
'1': 'FlameSync',
|
||||
'2': [
|
||||
{'1': 'flameCounter', '3': 1, '4': 1, '5': 3, '10': 'flameCounter'},
|
||||
{'1': 'flame_counter', '3': 1, '4': 1, '5': 3, '10': 'flameCounter'},
|
||||
{
|
||||
'1': 'lastFlameCounterChange',
|
||||
'1': 'last_flame_counter_change',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
'10': 'lastFlameCounterChange'
|
||||
},
|
||||
{'1': 'bestFriend', '3': 3, '4': 1, '5': 8, '10': 'bestFriend'},
|
||||
{'1': 'forceUpdate', '3': 4, '4': 1, '5': 8, '10': 'forceUpdate'},
|
||||
{'1': 'best_friend', '3': 3, '4': 1, '5': 8, '10': 'bestFriend'},
|
||||
{'1': 'force_update', '3': 4, '4': 1, '5': 8, '10': 'forceUpdate'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -861,95 +908,133 @@ const EncryptedContent_TypingIndicator$json = {
|
|||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use encryptedContentDescriptor instead')
|
||||
const EncryptedContent_UserDiscoveryRequest$json = {
|
||||
'1': 'UserDiscoveryRequest',
|
||||
'2': [
|
||||
{'1': 'current_version', '3': 1, '4': 1, '5': 12, '10': 'currentVersion'},
|
||||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use encryptedContentDescriptor instead')
|
||||
const EncryptedContent_UserDiscoveryUpdate$json = {
|
||||
'1': 'UserDiscoveryUpdate',
|
||||
'2': [
|
||||
{'1': 'messages', '3': 1, '4': 3, '5': 12, '10': 'messages'},
|
||||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use encryptedContentDescriptor instead')
|
||||
const EncryptedContent_KeyVerificationProof$json = {
|
||||
'1': 'KeyVerificationProof',
|
||||
'2': [
|
||||
{'1': 'calculated_mac', '3': 1, '4': 1, '5': 12, '10': 'calculatedMac'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `EncryptedContent`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List encryptedContentDescriptor = $convert.base64Decode(
|
||||
'ChBFbmNyeXB0ZWRDb250ZW50Eh0KB2dyb3VwSWQYAiABKAlIAFIHZ3JvdXBJZIgBARInCgxpc0'
|
||||
'RpcmVjdENoYXQYAyABKAhIAVIMaXNEaXJlY3RDaGF0iAEBEjcKFHNlbmRlclByb2ZpbGVDb3Vu'
|
||||
'dGVyGAQgASgDSAJSFHNlbmRlclByb2ZpbGVDb3VudGVyiAEBEkoKDW1lc3NhZ2VVcGRhdGUYBS'
|
||||
'ABKAsyHy5FbmNyeXB0ZWRDb250ZW50Lk1lc3NhZ2VVcGRhdGVIA1INbWVzc2FnZVVwZGF0ZYgB'
|
||||
'ARIyCgVtZWRpYRgGIAEoCzIXLkVuY3J5cHRlZENvbnRlbnQuTWVkaWFIBFIFbWVkaWGIAQESRA'
|
||||
'oLbWVkaWFVcGRhdGUYByABKAsyHS5FbmNyeXB0ZWRDb250ZW50Lk1lZGlhVXBkYXRlSAVSC21l'
|
||||
'ZGlhVXBkYXRliAEBEkoKDWNvbnRhY3RVcGRhdGUYCCABKAsyHy5FbmNyeXB0ZWRDb250ZW50Lk'
|
||||
'NvbnRhY3RVcGRhdGVIBlINY29udGFjdFVwZGF0ZYgBARJNCg5jb250YWN0UmVxdWVzdBgJIAEo'
|
||||
'CzIgLkVuY3J5cHRlZENvbnRlbnQuQ29udGFjdFJlcXVlc3RIB1IOY29udGFjdFJlcXVlc3SIAQ'
|
||||
'ESPgoJZmxhbWVTeW5jGAogASgLMhsuRW5jcnlwdGVkQ29udGVudC5GbGFtZVN5bmNICFIJZmxh'
|
||||
'bWVTeW5jiAEBEjsKCHB1c2hLZXlzGAsgASgLMhouRW5jcnlwdGVkQ29udGVudC5QdXNoS2V5c0'
|
||||
'gJUghwdXNoS2V5c4gBARI7CghyZWFjdGlvbhgMIAEoCzIaLkVuY3J5cHRlZENvbnRlbnQuUmVh'
|
||||
'Y3Rpb25IClIIcmVhY3Rpb26IAQESRAoLdGV4dE1lc3NhZ2UYDSABKAsyHS5FbmNyeXB0ZWRDb2'
|
||||
'50ZW50LlRleHRNZXNzYWdlSAtSC3RleHRNZXNzYWdliAEBEkQKC2dyb3VwQ3JlYXRlGA4gASgL'
|
||||
'Mh0uRW5jcnlwdGVkQ29udGVudC5Hcm91cENyZWF0ZUgMUgtncm91cENyZWF0ZYgBARI+Cglncm'
|
||||
'91cEpvaW4YDyABKAsyGy5FbmNyeXB0ZWRDb250ZW50Lkdyb3VwSm9pbkgNUglncm91cEpvaW6I'
|
||||
'AQESRAoLZ3JvdXBVcGRhdGUYECABKAsyHS5FbmNyeXB0ZWRDb250ZW50Lkdyb3VwVXBkYXRlSA'
|
||||
'5SC2dyb3VwVXBkYXRliAEBEl8KFHJlc2VuZEdyb3VwUHVibGljS2V5GBEgASgLMiYuRW5jcnlw'
|
||||
'dGVkQ29udGVudC5SZXNlbmRHcm91cFB1YmxpY0tleUgPUhRyZXNlbmRHcm91cFB1YmxpY0tleY'
|
||||
'gBARJLCg5lcnJvcl9tZXNzYWdlcxgSIAEoCzIfLkVuY3J5cHRlZENvbnRlbnQuRXJyb3JNZXNz'
|
||||
'YWdlc0gQUg1lcnJvck1lc3NhZ2VziAEBEmQKF2FkZGl0aW9uYWxfZGF0YV9tZXNzYWdlGBMgAS'
|
||||
'gLMicuRW5jcnlwdGVkQ29udGVudC5BZGRpdGlvbmFsRGF0YU1lc3NhZ2VIEVIVYWRkaXRpb25h'
|
||||
'bERhdGFNZXNzYWdliAEBElEKEHR5cGluZ19pbmRpY2F0b3IYFCABKAsyIS5FbmNyeXB0ZWRDb2'
|
||||
'50ZW50LlR5cGluZ0luZGljYXRvckgSUg90eXBpbmdJbmRpY2F0b3KIAQEa8AEKDUVycm9yTWVz'
|
||||
'c2FnZXMSOAoEdHlwZRgBIAEoDjIkLkVuY3J5cHRlZENvbnRlbnQuRXJyb3JNZXNzYWdlcy5UeX'
|
||||
'BlUgR0eXBlEiwKEnJlbGF0ZWRfcmVjZWlwdF9pZBgCIAEoCVIQcmVsYXRlZFJlY2VpcHRJZCJ3'
|
||||
'CgRUeXBlEjwKOEVSUk9SX1BST0NFU1NJTkdfTUVTU0FHRV9DUkVBVEVEX0FDQ09VTlRfUkVRVU'
|
||||
'VTVF9JTlNURUFEEAASGAoUVU5LTk9XTl9NRVNTQUdFX1RZUEUQAhIXChNTRVNTSU9OX09VVF9P'
|
||||
'Rl9TWU5DEAMaUQoLR3JvdXBDcmVhdGUSGgoIc3RhdGVLZXkYAyABKAxSCHN0YXRlS2V5EiYKDm'
|
||||
'dyb3VwUHVibGljS2V5GAQgASgMUg5ncm91cFB1YmxpY0tleRozCglHcm91cEpvaW4SJgoOZ3Jv'
|
||||
'dXBQdWJsaWNLZXkYASABKAxSDmdyb3VwUHVibGljS2V5GhYKFFJlc2VuZEdyb3VwUHVibGljS2'
|
||||
'V5GrYCCgtHcm91cFVwZGF0ZRIoCg9ncm91cEFjdGlvblR5cGUYASABKAlSD2dyb3VwQWN0aW9u'
|
||||
'VHlwZRIxChFhZmZlY3RlZENvbnRhY3RJZBgCIAEoA0gAUhFhZmZlY3RlZENvbnRhY3RJZIgBAR'
|
||||
'InCgxuZXdHcm91cE5hbWUYAyABKAlIAVIMbmV3R3JvdXBOYW1liAEBElMKIm5ld0RlbGV0ZU1l'
|
||||
'c3NhZ2VzQWZ0ZXJNaWxsaXNlY29uZHMYBCABKANIAlIibmV3RGVsZXRlTWVzc2FnZXNBZnRlck'
|
||||
'1pbGxpc2Vjb25kc4gBAUIUChJfYWZmZWN0ZWRDb250YWN0SWRCDwoNX25ld0dyb3VwTmFtZUIl'
|
||||
'CiNfbmV3RGVsZXRlTWVzc2FnZXNBZnRlck1pbGxpc2Vjb25kcxqpAQoLVGV4dE1lc3NhZ2USKA'
|
||||
'oPc2VuZGVyTWVzc2FnZUlkGAEgASgJUg9zZW5kZXJNZXNzYWdlSWQSEgoEdGV4dBgCIAEoCVIE'
|
||||
'dGV4dBIcCgl0aW1lc3RhbXAYAyABKANSCXRpbWVzdGFtcBIrCg5xdW90ZU1lc3NhZ2VJZBgEIA'
|
||||
'EoCUgAUg5xdW90ZU1lc3NhZ2VJZIgBAUIRCg9fcXVvdGVNZXNzYWdlSWQazgEKFUFkZGl0aW9u'
|
||||
'YWxEYXRhTWVzc2FnZRIqChFzZW5kZXJfbWVzc2FnZV9pZBgBIAEoCVIPc2VuZGVyTWVzc2FnZU'
|
||||
'lkEhwKCXRpbWVzdGFtcBgCIAEoA1IJdGltZXN0YW1wEhIKBHR5cGUYAyABKAlSBHR5cGUSOwoX'
|
||||
'YWRkaXRpb25hbF9tZXNzYWdlX2RhdGEYBCABKAxIAFIVYWRkaXRpb25hbE1lc3NhZ2VEYXRhiA'
|
||||
'EBQhoKGF9hZGRpdGlvbmFsX21lc3NhZ2VfZGF0YRpiCghSZWFjdGlvbhIoCg90YXJnZXRNZXNz'
|
||||
'YWdlSWQYASABKAlSD3RhcmdldE1lc3NhZ2VJZBIUCgVlbW9qaRgCIAEoCVIFZW1vamkSFgoGcm'
|
||||
'Vtb3ZlGAMgASgIUgZyZW1vdmUatwIKDU1lc3NhZ2VVcGRhdGUSOAoEdHlwZRgBIAEoDjIkLkVu'
|
||||
'Y3J5cHRlZENvbnRlbnQuTWVzc2FnZVVwZGF0ZS5UeXBlUgR0eXBlEi0KD3NlbmRlck1lc3NhZ2'
|
||||
'VJZBgCIAEoCUgAUg9zZW5kZXJNZXNzYWdlSWSIAQESOgoYbXVsdGlwbGVUYXJnZXRNZXNzYWdl'
|
||||
'SWRzGAMgAygJUhhtdWx0aXBsZVRhcmdldE1lc3NhZ2VJZHMSFwoEdGV4dBgEIAEoCUgBUgR0ZX'
|
||||
'h0iAEBEhwKCXRpbWVzdGFtcBgFIAEoA1IJdGltZXN0YW1wIi0KBFR5cGUSCgoGREVMRVRFEAAS'
|
||||
'DQoJRURJVF9URVhUEAESCgoGT1BFTkVEEAJCEgoQX3NlbmRlck1lc3NhZ2VJZEIHCgVfdGV4dB'
|
||||
'rwBQoFTWVkaWESKAoPc2VuZGVyTWVzc2FnZUlkGAEgASgJUg9zZW5kZXJNZXNzYWdlSWQSMAoE'
|
||||
'dHlwZRgCIAEoDjIcLkVuY3J5cHRlZENvbnRlbnQuTWVkaWEuVHlwZVIEdHlwZRJDChpkaXNwbG'
|
||||
'F5TGltaXRJbk1pbGxpc2Vjb25kcxgDIAEoA0gAUhpkaXNwbGF5TGltaXRJbk1pbGxpc2Vjb25k'
|
||||
'c4gBARI2ChZyZXF1aXJlc0F1dGhlbnRpY2F0aW9uGAQgASgIUhZyZXF1aXJlc0F1dGhlbnRpY2'
|
||||
'F0aW9uEhwKCXRpbWVzdGFtcBgFIAEoA1IJdGltZXN0YW1wEisKDnF1b3RlTWVzc2FnZUlkGAYg'
|
||||
'ASgJSAFSDnF1b3RlTWVzc2FnZUlkiAEBEikKDWRvd25sb2FkVG9rZW4YByABKAxIAlINZG93bm'
|
||||
'xvYWRUb2tlbogBARIpCg1lbmNyeXB0aW9uS2V5GAggASgMSANSDWVuY3J5cHRpb25LZXmIAQES'
|
||||
'KQoNZW5jcnlwdGlvbk1hYxgJIAEoDEgEUg1lbmNyeXB0aW9uTWFjiAEBEi0KD2VuY3J5cHRpb2'
|
||||
'5Ob25jZRgKIAEoDEgFUg9lbmNyeXB0aW9uTm9uY2WIAQESOwoXYWRkaXRpb25hbF9tZXNzYWdl'
|
||||
'X2RhdGEYCyABKAxIBlIVYWRkaXRpb25hbE1lc3NhZ2VEYXRhiAEBIj4KBFR5cGUSDAoIUkVVUE'
|
||||
'xPQUQQABIJCgVJTUFHRRABEgkKBVZJREVPEAISBwoDR0lGEAMSCQoFQVVESU8QBEIdChtfZGlz'
|
||||
'cGxheUxpbWl0SW5NaWxsaXNlY29uZHNCEQoPX3F1b3RlTWVzc2FnZUlkQhAKDl9kb3dubG9hZF'
|
||||
'Rva2VuQhAKDl9lbmNyeXB0aW9uS2V5QhAKDl9lbmNyeXB0aW9uTWFjQhIKEF9lbmNyeXB0aW9u'
|
||||
'Tm9uY2VCGgoYX2FkZGl0aW9uYWxfbWVzc2FnZV9kYXRhGqcBCgtNZWRpYVVwZGF0ZRI2CgR0eX'
|
||||
'BlGAEgASgOMiIuRW5jcnlwdGVkQ29udGVudC5NZWRpYVVwZGF0ZS5UeXBlUgR0eXBlEigKD3Rh'
|
||||
'cmdldE1lc3NhZ2VJZBgCIAEoCVIPdGFyZ2V0TWVzc2FnZUlkIjYKBFR5cGUSDAoIUkVPUEVORU'
|
||||
'QQABIKCgZTVE9SRUQQARIUChBERUNSWVBUSU9OX0VSUk9SEAIaeAoOQ29udGFjdFJlcXVlc3QS'
|
||||
'OQoEdHlwZRgBIAEoDjIlLkVuY3J5cHRlZENvbnRlbnQuQ29udGFjdFJlcXVlc3QuVHlwZVIEdH'
|
||||
'lwZSIrCgRUeXBlEgsKB1JFUVVFU1QQABIKCgZSRUpFQ1QQARIKCgZBQ0NFUFQQAhqeAgoNQ29u'
|
||||
'dGFjdFVwZGF0ZRI4CgR0eXBlGAEgASgOMiQuRW5jcnlwdGVkQ29udGVudC5Db250YWN0VXBkYX'
|
||||
'RlLlR5cGVSBHR5cGUSNQoTYXZhdGFyU3ZnQ29tcHJlc3NlZBgCIAEoDEgAUhNhdmF0YXJTdmdD'
|
||||
'b21wcmVzc2VkiAEBEh8KCHVzZXJuYW1lGAMgASgJSAFSCHVzZXJuYW1liAEBEiUKC2Rpc3BsYX'
|
||||
'lOYW1lGAQgASgJSAJSC2Rpc3BsYXlOYW1liAEBIh8KBFR5cGUSCwoHUkVRVUVTVBAAEgoKBlVQ'
|
||||
'REFURRABQhYKFF9hdmF0YXJTdmdDb21wcmVzc2VkQgsKCV91c2VybmFtZUIOCgxfZGlzcGxheU'
|
||||
'5hbWUa1QEKCFB1c2hLZXlzEjMKBHR5cGUYASABKA4yHy5FbmNyeXB0ZWRDb250ZW50LlB1c2hL'
|
||||
'ZXlzLlR5cGVSBHR5cGUSGQoFa2V5SWQYAiABKANIAFIFa2V5SWSIAQESFQoDa2V5GAMgASgMSA'
|
||||
'FSA2tleYgBARIhCgljcmVhdGVkQXQYBCABKANIAlIJY3JlYXRlZEF0iAEBIh8KBFR5cGUSCwoH'
|
||||
'UkVRVUVTVBAAEgoKBlVQREFURRABQggKBl9rZXlJZEIGCgRfa2V5QgwKCl9jcmVhdGVkQXQaqQ'
|
||||
'EKCUZsYW1lU3luYxIiCgxmbGFtZUNvdW50ZXIYASABKANSDGZsYW1lQ291bnRlchI2ChZsYXN0'
|
||||
'RmxhbWVDb3VudGVyQ2hhbmdlGAIgASgDUhZsYXN0RmxhbWVDb3VudGVyQ2hhbmdlEh4KCmJlc3'
|
||||
'RGcmllbmQYAyABKAhSCmJlc3RGcmllbmQSIAoLZm9yY2VVcGRhdGUYBCABKAhSC2ZvcmNlVXBk'
|
||||
'YXRlGk0KD1R5cGluZ0luZGljYXRvchIbCglpc190eXBpbmcYASABKAhSCGlzVHlwaW5nEh0KCm'
|
||||
'NyZWF0ZWRfYXQYAiABKANSCWNyZWF0ZWRBdEIKCghfZ3JvdXBJZEIPCg1faXNEaXJlY3RDaGF0'
|
||||
'QhcKFV9zZW5kZXJQcm9maWxlQ291bnRlckIQCg5fbWVzc2FnZVVwZGF0ZUIICgZfbWVkaWFCDg'
|
||||
'oMX21lZGlhVXBkYXRlQhAKDl9jb250YWN0VXBkYXRlQhEKD19jb250YWN0UmVxdWVzdEIMCgpf'
|
||||
'ZmxhbWVTeW5jQgsKCV9wdXNoS2V5c0ILCglfcmVhY3Rpb25CDgoMX3RleHRNZXNzYWdlQg4KDF'
|
||||
'9ncm91cENyZWF0ZUIMCgpfZ3JvdXBKb2luQg4KDF9ncm91cFVwZGF0ZUIXChVfcmVzZW5kR3Jv'
|
||||
'dXBQdWJsaWNLZXlCEQoPX2Vycm9yX21lc3NhZ2VzQhoKGF9hZGRpdGlvbmFsX2RhdGFfbWVzc2'
|
||||
'FnZUITChFfdHlwaW5nX2luZGljYXRvcg==');
|
||||
'ChBFbmNyeXB0ZWRDb250ZW50Eh4KCGdyb3VwX2lkGAIgASgJSABSB2dyb3VwSWSIAQESKQoOaX'
|
||||
'NfZGlyZWN0X2NoYXQYAyABKAhIAVIMaXNEaXJlY3RDaGF0iAEBEjkKFnNlbmRlcl9wcm9maWxl'
|
||||
'X2NvdW50ZXIYBCABKANIAlIUc2VuZGVyUHJvZmlsZUNvdW50ZXKIAQESRgodc2VuZGVyX3VzZX'
|
||||
'JfZGlzY292ZXJ5X3ZlcnNpb24YFSABKAxIA1Iac2VuZGVyVXNlckRpc2NvdmVyeVZlcnNpb26I'
|
||||
'AQESSwoObWVzc2FnZV91cGRhdGUYBSABKAsyHy5FbmNyeXB0ZWRDb250ZW50Lk1lc3NhZ2VVcG'
|
||||
'RhdGVIBFINbWVzc2FnZVVwZGF0ZYgBARIyCgVtZWRpYRgGIAEoCzIXLkVuY3J5cHRlZENvbnRl'
|
||||
'bnQuTWVkaWFIBVIFbWVkaWGIAQESRQoMbWVkaWFfdXBkYXRlGAcgASgLMh0uRW5jcnlwdGVkQ2'
|
||||
'9udGVudC5NZWRpYVVwZGF0ZUgGUgttZWRpYVVwZGF0ZYgBARJLCg5jb250YWN0X3VwZGF0ZRgI'
|
||||
'IAEoCzIfLkVuY3J5cHRlZENvbnRlbnQuQ29udGFjdFVwZGF0ZUgHUg1jb250YWN0VXBkYXRliA'
|
||||
'EBEk4KD2NvbnRhY3RfcmVxdWVzdBgJIAEoCzIgLkVuY3J5cHRlZENvbnRlbnQuQ29udGFjdFJl'
|
||||
'cXVlc3RICFIOY29udGFjdFJlcXVlc3SIAQESPwoKZmxhbWVfc3luYxgKIAEoCzIbLkVuY3J5cH'
|
||||
'RlZENvbnRlbnQuRmxhbWVTeW5jSAlSCWZsYW1lU3luY4gBARI8CglwdXNoX2tleXMYCyABKAsy'
|
||||
'Gi5FbmNyeXB0ZWRDb250ZW50LlB1c2hLZXlzSApSCHB1c2hLZXlziAEBEjsKCHJlYWN0aW9uGA'
|
||||
'wgASgLMhouRW5jcnlwdGVkQ29udGVudC5SZWFjdGlvbkgLUghyZWFjdGlvbogBARJFCgx0ZXh0'
|
||||
'X21lc3NhZ2UYDSABKAsyHS5FbmNyeXB0ZWRDb250ZW50LlRleHRNZXNzYWdlSAxSC3RleHRNZX'
|
||||
'NzYWdliAEBEkUKDGdyb3VwX2NyZWF0ZRgOIAEoCzIdLkVuY3J5cHRlZENvbnRlbnQuR3JvdXBD'
|
||||
'cmVhdGVIDVILZ3JvdXBDcmVhdGWIAQESPwoKZ3JvdXBfam9pbhgPIAEoCzIbLkVuY3J5cHRlZE'
|
||||
'NvbnRlbnQuR3JvdXBKb2luSA5SCWdyb3VwSm9pbogBARJFCgxncm91cF91cGRhdGUYECABKAsy'
|
||||
'HS5FbmNyeXB0ZWRDb250ZW50Lkdyb3VwVXBkYXRlSA9SC2dyb3VwVXBkYXRliAEBEmIKF3Jlc2'
|
||||
'VuZF9ncm91cF9wdWJsaWNfa2V5GBEgASgLMiYuRW5jcnlwdGVkQ29udGVudC5SZXNlbmRHcm91'
|
||||
'cFB1YmxpY0tleUgQUhRyZXNlbmRHcm91cFB1YmxpY0tleYgBARJLCg5lcnJvcl9tZXNzYWdlcx'
|
||||
'gSIAEoCzIfLkVuY3J5cHRlZENvbnRlbnQuRXJyb3JNZXNzYWdlc0gRUg1lcnJvck1lc3NhZ2Vz'
|
||||
'iAEBEmQKF2FkZGl0aW9uYWxfZGF0YV9tZXNzYWdlGBMgASgLMicuRW5jcnlwdGVkQ29udGVudC'
|
||||
'5BZGRpdGlvbmFsRGF0YU1lc3NhZ2VIElIVYWRkaXRpb25hbERhdGFNZXNzYWdliAEBElEKEHR5'
|
||||
'cGluZ19pbmRpY2F0b3IYFCABKAsyIS5FbmNyeXB0ZWRDb250ZW50LlR5cGluZ0luZGljYXRvck'
|
||||
'gTUg90eXBpbmdJbmRpY2F0b3KIAQESYQoWdXNlcl9kaXNjb3ZlcnlfcmVxdWVzdBgWIAEoCzIm'
|
||||
'LkVuY3J5cHRlZENvbnRlbnQuVXNlckRpc2NvdmVyeVJlcXVlc3RIFFIUdXNlckRpc2NvdmVyeV'
|
||||
'JlcXVlc3SIAQESXgoVdXNlcl9kaXNjb3ZlcnlfdXBkYXRlGBcgASgLMiUuRW5jcnlwdGVkQ29u'
|
||||
'dGVudC5Vc2VyRGlzY292ZXJ5VXBkYXRlSBVSE3VzZXJEaXNjb3ZlcnlVcGRhdGWIAQESYQoWa2'
|
||||
'V5X3ZlcmlmaWNhdGlvbl9wcm9vZhgYIAEoCzImLkVuY3J5cHRlZENvbnRlbnQuS2V5VmVyaWZp'
|
||||
'Y2F0aW9uUHJvb2ZIFlIUa2V5VmVyaWZpY2F0aW9uUHJvb2aIAQEa8AEKDUVycm9yTWVzc2FnZX'
|
||||
'MSOAoEdHlwZRgBIAEoDjIkLkVuY3J5cHRlZENvbnRlbnQuRXJyb3JNZXNzYWdlcy5UeXBlUgR0'
|
||||
'eXBlEiwKEnJlbGF0ZWRfcmVjZWlwdF9pZBgCIAEoCVIQcmVsYXRlZFJlY2VpcHRJZCJ3CgRUeX'
|
||||
'BlEjwKOEVSUk9SX1BST0NFU1NJTkdfTUVTU0FHRV9DUkVBVEVEX0FDQ09VTlRfUkVRVUVTVF9J'
|
||||
'TlNURUFEEAASGAoUVU5LTk9XTl9NRVNTQUdFX1RZUEUQAhIXChNTRVNTSU9OX09VVF9PRl9TWU'
|
||||
'5DEAMaVAoLR3JvdXBDcmVhdGUSGwoJc3RhdGVfa2V5GAMgASgMUghzdGF0ZUtleRIoChBncm91'
|
||||
'cF9wdWJsaWNfa2V5GAQgASgMUg5ncm91cFB1YmxpY0tleRo1CglHcm91cEpvaW4SKAoQZ3JvdX'
|
||||
'BfcHVibGljX2tleRgBIAEoDFIOZ3JvdXBQdWJsaWNLZXkaFgoUUmVzZW5kR3JvdXBQdWJsaWNL'
|
||||
'ZXkayAIKC0dyb3VwVXBkYXRlEioKEWdyb3VwX2FjdGlvbl90eXBlGAEgASgJUg9ncm91cEFjdG'
|
||||
'lvblR5cGUSMwoTYWZmZWN0ZWRfY29udGFjdF9pZBgCIAEoA0gAUhFhZmZlY3RlZENvbnRhY3RJ'
|
||||
'ZIgBARIpCg5uZXdfZ3JvdXBfbmFtZRgDIAEoCUgBUgxuZXdHcm91cE5hbWWIAQESVwombmV3X2'
|
||||
'RlbGV0ZV9tZXNzYWdlc19hZnRlcl9taWxsaXNlY29uZHMYBCABKANIAlIibmV3RGVsZXRlTWVz'
|
||||
'c2FnZXNBZnRlck1pbGxpc2Vjb25kc4gBAUIWChRfYWZmZWN0ZWRfY29udGFjdF9pZEIRCg9fbm'
|
||||
'V3X2dyb3VwX25hbWVCKQonX25ld19kZWxldGVfbWVzc2FnZXNfYWZ0ZXJfbWlsbGlzZWNvbmRz'
|
||||
'Gq8BCgtUZXh0TWVzc2FnZRIqChFzZW5kZXJfbWVzc2FnZV9pZBgBIAEoCVIPc2VuZGVyTWVzc2'
|
||||
'FnZUlkEhIKBHRleHQYAiABKAlSBHRleHQSHAoJdGltZXN0YW1wGAMgASgDUgl0aW1lc3RhbXAS'
|
||||
'LQoQcXVvdGVfbWVzc2FnZV9pZBgEIAEoCUgAUg5xdW90ZU1lc3NhZ2VJZIgBAUITChFfcXVvdG'
|
||||
'VfbWVzc2FnZV9pZBrOAQoVQWRkaXRpb25hbERhdGFNZXNzYWdlEioKEXNlbmRlcl9tZXNzYWdl'
|
||||
'X2lkGAEgASgJUg9zZW5kZXJNZXNzYWdlSWQSHAoJdGltZXN0YW1wGAIgASgDUgl0aW1lc3RhbX'
|
||||
'ASEgoEdHlwZRgDIAEoCVIEdHlwZRI7ChdhZGRpdGlvbmFsX21lc3NhZ2VfZGF0YRgEIAEoDEgA'
|
||||
'UhVhZGRpdGlvbmFsTWVzc2FnZURhdGGIAQFCGgoYX2FkZGl0aW9uYWxfbWVzc2FnZV9kYXRhGm'
|
||||
'QKCFJlYWN0aW9uEioKEXRhcmdldF9tZXNzYWdlX2lkGAEgASgJUg90YXJnZXRNZXNzYWdlSWQS'
|
||||
'FAoFZW1vamkYAiABKAlSBWVtb2ppEhYKBnJlbW92ZRgDIAEoCFIGcmVtb3ZlGr4CCg1NZXNzYW'
|
||||
'dlVXBkYXRlEjgKBHR5cGUYASABKA4yJC5FbmNyeXB0ZWRDb250ZW50Lk1lc3NhZ2VVcGRhdGUu'
|
||||
'VHlwZVIEdHlwZRIvChFzZW5kZXJfbWVzc2FnZV9pZBgCIAEoCUgAUg9zZW5kZXJNZXNzYWdlSW'
|
||||
'SIAQESPQobbXVsdGlwbGVfdGFyZ2V0X21lc3NhZ2VfaWRzGAMgAygJUhhtdWx0aXBsZVRhcmdl'
|
||||
'dE1lc3NhZ2VJZHMSFwoEdGV4dBgEIAEoCUgBUgR0ZXh0iAEBEhwKCXRpbWVzdGFtcBgFIAEoA1'
|
||||
'IJdGltZXN0YW1wIi0KBFR5cGUSCgoGREVMRVRFEAASDQoJRURJVF9URVhUEAESCgoGT1BFTkVE'
|
||||
'EAJCFAoSX3NlbmRlcl9tZXNzYWdlX2lkQgcKBV90ZXh0GoUGCgVNZWRpYRIqChFzZW5kZXJfbW'
|
||||
'Vzc2FnZV9pZBgBIAEoCVIPc2VuZGVyTWVzc2FnZUlkEjAKBHR5cGUYAiABKA4yHC5FbmNyeXB0'
|
||||
'ZWRDb250ZW50Lk1lZGlhLlR5cGVSBHR5cGUSRgodZGlzcGxheV9saW1pdF9pbl9taWxsaXNlY2'
|
||||
'9uZHMYAyABKANIAFIaZGlzcGxheUxpbWl0SW5NaWxsaXNlY29uZHOIAQESNwoXcmVxdWlyZXNf'
|
||||
'YXV0aGVudGljYXRpb24YBCABKAhSFnJlcXVpcmVzQXV0aGVudGljYXRpb24SHAoJdGltZXN0YW'
|
||||
'1wGAUgASgDUgl0aW1lc3RhbXASLQoQcXVvdGVfbWVzc2FnZV9pZBgGIAEoCUgBUg5xdW90ZU1l'
|
||||
'c3NhZ2VJZIgBARIqCg5kb3dubG9hZF90b2tlbhgHIAEoDEgCUg1kb3dubG9hZFRva2VuiAEBEi'
|
||||
'oKDmVuY3J5cHRpb25fa2V5GAggASgMSANSDWVuY3J5cHRpb25LZXmIAQESKgoOZW5jcnlwdGlv'
|
||||
'bl9tYWMYCSABKAxIBFINZW5jcnlwdGlvbk1hY4gBARIuChBlbmNyeXB0aW9uX25vbmNlGAogAS'
|
||||
'gMSAVSD2VuY3J5cHRpb25Ob25jZYgBARI7ChdhZGRpdGlvbmFsX21lc3NhZ2VfZGF0YRgLIAEo'
|
||||
'DEgGUhVhZGRpdGlvbmFsTWVzc2FnZURhdGGIAQEiPgoEVHlwZRIMCghSRVVQTE9BRBAAEgkKBU'
|
||||
'lNQUdFEAESCQoFVklERU8QAhIHCgNHSUYQAxIJCgVBVURJTxAEQiAKHl9kaXNwbGF5X2xpbWl0'
|
||||
'X2luX21pbGxpc2Vjb25kc0ITChFfcXVvdGVfbWVzc2FnZV9pZEIRCg9fZG93bmxvYWRfdG9rZW'
|
||||
'5CEQoPX2VuY3J5cHRpb25fa2V5QhEKD19lbmNyeXB0aW9uX21hY0ITChFfZW5jcnlwdGlvbl9u'
|
||||
'b25jZUIaChhfYWRkaXRpb25hbF9tZXNzYWdlX2RhdGEaqQEKC01lZGlhVXBkYXRlEjYKBHR5cG'
|
||||
'UYASABKA4yIi5FbmNyeXB0ZWRDb250ZW50Lk1lZGlhVXBkYXRlLlR5cGVSBHR5cGUSKgoRdGFy'
|
||||
'Z2V0X21lc3NhZ2VfaWQYAiABKAlSD3RhcmdldE1lc3NhZ2VJZCI2CgRUeXBlEgwKCFJFT1BFTk'
|
||||
'VEEAASCgoGU1RPUkVEEAESFAoQREVDUllQVElPTl9FUlJPUhACGngKDkNvbnRhY3RSZXF1ZXN0'
|
||||
'EjkKBHR5cGUYASABKA4yJS5FbmNyeXB0ZWRDb250ZW50LkNvbnRhY3RSZXF1ZXN0LlR5cGVSBH'
|
||||
'R5cGUiKwoEVHlwZRILCgdSRVFVRVNUEAASCgoGUkVKRUNUEAESCgoGQUNDRVBUEAIapAIKDUNv'
|
||||
'bnRhY3RVcGRhdGUSOAoEdHlwZRgBIAEoDjIkLkVuY3J5cHRlZENvbnRlbnQuQ29udGFjdFVwZG'
|
||||
'F0ZS5UeXBlUgR0eXBlEjcKFWF2YXRhcl9zdmdfY29tcHJlc3NlZBgCIAEoDEgAUhNhdmF0YXJT'
|
||||
'dmdDb21wcmVzc2VkiAEBEh8KCHVzZXJuYW1lGAMgASgJSAFSCHVzZXJuYW1liAEBEiYKDGRpc3'
|
||||
'BsYXlfbmFtZRgEIAEoCUgCUgtkaXNwbGF5TmFtZYgBASIfCgRUeXBlEgsKB1JFUVVFU1QQABIK'
|
||||
'CgZVUERBVEUQAUIYChZfYXZhdGFyX3N2Z19jb21wcmVzc2VkQgsKCV91c2VybmFtZUIPCg1fZG'
|
||||
'lzcGxheV9uYW1lGtkBCghQdXNoS2V5cxIzCgR0eXBlGAEgASgOMh8uRW5jcnlwdGVkQ29udGVu'
|
||||
'dC5QdXNoS2V5cy5UeXBlUgR0eXBlEhoKBmtleV9pZBgCIAEoA0gAUgVrZXlJZIgBARIVCgNrZX'
|
||||
'kYAyABKAxIAVIDa2V5iAEBEiIKCmNyZWF0ZWRfYXQYBCABKANIAlIJY3JlYXRlZEF0iAEBIh8K'
|
||||
'BFR5cGUSCwoHUkVRVUVTVBAAEgoKBlVQREFURRABQgkKB19rZXlfaWRCBgoEX2tleUINCgtfY3'
|
||||
'JlYXRlZF9hdBqvAQoJRmxhbWVTeW5jEiMKDWZsYW1lX2NvdW50ZXIYASABKANSDGZsYW1lQ291'
|
||||
'bnRlchI5ChlsYXN0X2ZsYW1lX2NvdW50ZXJfY2hhbmdlGAIgASgDUhZsYXN0RmxhbWVDb3VudG'
|
||||
'VyQ2hhbmdlEh8KC2Jlc3RfZnJpZW5kGAMgASgIUgpiZXN0RnJpZW5kEiEKDGZvcmNlX3VwZGF0'
|
||||
'ZRgEIAEoCFILZm9yY2VVcGRhdGUaTQoPVHlwaW5nSW5kaWNhdG9yEhsKCWlzX3R5cGluZxgBIA'
|
||||
'EoCFIIaXNUeXBpbmcSHQoKY3JlYXRlZF9hdBgCIAEoA1IJY3JlYXRlZEF0Gj8KFFVzZXJEaXNj'
|
||||
'b3ZlcnlSZXF1ZXN0EicKD2N1cnJlbnRfdmVyc2lvbhgBIAEoDFIOY3VycmVudFZlcnNpb24aMQ'
|
||||
'oTVXNlckRpc2NvdmVyeVVwZGF0ZRIaCghtZXNzYWdlcxgBIAMoDFIIbWVzc2FnZXMaPQoUS2V5'
|
||||
'VmVyaWZpY2F0aW9uUHJvb2YSJQoOY2FsY3VsYXRlZF9tYWMYASABKAxSDWNhbGN1bGF0ZWRNYW'
|
||||
'NCCwoJX2dyb3VwX2lkQhEKD19pc19kaXJlY3RfY2hhdEIZChdfc2VuZGVyX3Byb2ZpbGVfY291'
|
||||
'bnRlckIgCh5fc2VuZGVyX3VzZXJfZGlzY292ZXJ5X3ZlcnNpb25CEQoPX21lc3NhZ2VfdXBkYX'
|
||||
'RlQggKBl9tZWRpYUIPCg1fbWVkaWFfdXBkYXRlQhEKD19jb250YWN0X3VwZGF0ZUISChBfY29u'
|
||||
'dGFjdF9yZXF1ZXN0Qg0KC19mbGFtZV9zeW5jQgwKCl9wdXNoX2tleXNCCwoJX3JlYWN0aW9uQg'
|
||||
'8KDV90ZXh0X21lc3NhZ2VCDwoNX2dyb3VwX2NyZWF0ZUINCgtfZ3JvdXBfam9pbkIPCg1fZ3Jv'
|
||||
'dXBfdXBkYXRlQhoKGF9yZXNlbmRfZ3JvdXBfcHVibGljX2tleUIRCg9fZXJyb3JfbWVzc2FnZX'
|
||||
'NCGgoYX2FkZGl0aW9uYWxfZGF0YV9tZXNzYWdlQhMKEV90eXBpbmdfaW5kaWNhdG9yQhkKF191'
|
||||
'c2VyX2Rpc2NvdmVyeV9yZXF1ZXN0QhgKFl91c2VyX2Rpc2NvdmVyeV91cGRhdGVCGQoXX2tleV'
|
||||
'92ZXJpZmljYXRpb25fcHJvb2Y=');
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ class EncryptedPushNotification extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'EncryptedPushNotification',
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'keyId', protoName: 'keyId')
|
||||
..aInt64(1, _omitFieldNames ? '' : 'keyId')
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'nonce', $pb.PbFieldType.OY)
|
||||
..a<$core.List<$core.int>>(
|
||||
|
|
@ -58,8 +58,7 @@ class EncryptedPushNotification extends $pb.GeneratedMessage {
|
|||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedPushNotification clone() =>
|
||||
EncryptedPushNotification()..mergeFromMessage(this);
|
||||
EncryptedPushNotification clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
EncryptedPushNotification copyWith(
|
||||
void Function(EncryptedPushNotification) updates) =>
|
||||
|
|
@ -73,8 +72,6 @@ class EncryptedPushNotification extends $pb.GeneratedMessage {
|
|||
static EncryptedPushNotification create() => EncryptedPushNotification._();
|
||||
@$core.override
|
||||
EncryptedPushNotification createEmptyInstance() => create();
|
||||
static $pb.PbList<EncryptedPushNotification> createRepeated() =>
|
||||
$pb.PbList<EncryptedPushNotification>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static EncryptedPushNotification getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<EncryptedPushNotification>(create);
|
||||
|
|
@ -142,17 +139,14 @@ class PushNotification extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PushNotification',
|
||||
createEmptyInstance: create)
|
||||
..e<PushKind>(1, _omitFieldNames ? '' : 'kind', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: PushKind.reaction,
|
||||
valueOf: PushKind.valueOf,
|
||||
..aE<PushKind>(1, _omitFieldNames ? '' : 'kind',
|
||||
enumValues: PushKind.values)
|
||||
..aOS(2, _omitFieldNames ? '' : 'messageId', protoName: 'messageId')
|
||||
..aOS(3, _omitFieldNames ? '' : 'additionalContent',
|
||||
protoName: 'additionalContent')
|
||||
..aOS(2, _omitFieldNames ? '' : 'messageId')
|
||||
..aOS(3, _omitFieldNames ? '' : 'additionalContent')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushNotification clone() => PushNotification()..mergeFromMessage(this);
|
||||
PushNotification clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushNotification copyWith(void Function(PushNotification) updates) =>
|
||||
super.copyWith((message) => updates(message as PushNotification))
|
||||
|
|
@ -165,8 +159,6 @@ class PushNotification extends $pb.GeneratedMessage {
|
|||
static PushNotification create() => PushNotification._();
|
||||
@$core.override
|
||||
PushNotification createEmptyInstance() => create();
|
||||
static $pb.PbList<PushNotification> createRepeated() =>
|
||||
$pb.PbList<PushNotification>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushNotification getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<PushNotification>(create);
|
||||
|
|
@ -221,12 +213,12 @@ class PushUsers extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PushUsers',
|
||||
createEmptyInstance: create)
|
||||
..pc<PushUser>(1, _omitFieldNames ? '' : 'users', $pb.PbFieldType.PM,
|
||||
..pPM<PushUser>(1, _omitFieldNames ? '' : 'users',
|
||||
subBuilder: PushUser.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushUsers clone() => PushUsers()..mergeFromMessage(this);
|
||||
PushUsers clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushUsers copyWith(void Function(PushUsers) updates) =>
|
||||
super.copyWith((message) => updates(message as PushUsers)) as PushUsers;
|
||||
|
|
@ -238,7 +230,6 @@ class PushUsers extends $pb.GeneratedMessage {
|
|||
static PushUsers create() => PushUsers._();
|
||||
@$core.override
|
||||
PushUsers createEmptyInstance() => create();
|
||||
static $pb.PbList<PushUsers> createRepeated() => $pb.PbList<PushUsers>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushUsers getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<PushUsers>(create);
|
||||
|
|
@ -277,16 +268,16 @@ class PushUser extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'PushUser',
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'userId', protoName: 'userId')
|
||||
..aOS(2, _omitFieldNames ? '' : 'displayName', protoName: 'displayName')
|
||||
..aInt64(1, _omitFieldNames ? '' : 'userId')
|
||||
..aOS(2, _omitFieldNames ? '' : 'displayName')
|
||||
..aOB(3, _omitFieldNames ? '' : 'blocked')
|
||||
..aOS(4, _omitFieldNames ? '' : 'lastMessageId', protoName: 'lastMessageId')
|
||||
..pc<PushKey>(5, _omitFieldNames ? '' : 'pushKeys', $pb.PbFieldType.PM,
|
||||
protoName: 'pushKeys', subBuilder: PushKey.create)
|
||||
..aOS(4, _omitFieldNames ? '' : 'lastMessageId')
|
||||
..pPM<PushKey>(5, _omitFieldNames ? '' : 'pushKeys',
|
||||
subBuilder: PushKey.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushUser clone() => PushUser()..mergeFromMessage(this);
|
||||
PushUser clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushUser copyWith(void Function(PushUser) updates) =>
|
||||
super.copyWith((message) => updates(message as PushUser)) as PushUser;
|
||||
|
|
@ -298,7 +289,6 @@ class PushUser extends $pb.GeneratedMessage {
|
|||
static PushUser create() => PushUser._();
|
||||
@$core.override
|
||||
PushUser createEmptyInstance() => create();
|
||||
static $pb.PbList<PushUser> createRepeated() => $pb.PbList<PushUser>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushUser getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<PushUser>(create);
|
||||
|
|
@ -373,12 +363,11 @@ class PushKey extends $pb.GeneratedMessage {
|
|||
..aInt64(1, _omitFieldNames ? '' : 'id')
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'key', $pb.PbFieldType.OY)
|
||||
..aInt64(3, _omitFieldNames ? '' : 'createdAtUnixTimestamp',
|
||||
protoName: 'createdAtUnixTimestamp')
|
||||
..aInt64(3, _omitFieldNames ? '' : 'createdAtUnixTimestamp')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushKey clone() => PushKey()..mergeFromMessage(this);
|
||||
PushKey clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PushKey copyWith(void Function(PushKey) updates) =>
|
||||
super.copyWith((message) => updates(message as PushKey)) as PushKey;
|
||||
|
|
@ -390,7 +379,6 @@ class PushKey extends $pb.GeneratedMessage {
|
|||
static PushKey create() => PushKey._();
|
||||
@$core.override
|
||||
PushKey createEmptyInstance() => create();
|
||||
static $pb.PbList<PushKey> createRepeated() => $pb.PbList<PushKey>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PushKey getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<PushKey>(create);
|
||||
|
|
|
|||
|
|
@ -8,61 +8,61 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
class PushKind extends $pb.ProtobufEnum {
|
||||
static const PushKind reaction =
|
||||
PushKind._(0, _omitEnumNames ? '' : 'reaction');
|
||||
static const PushKind response =
|
||||
PushKind._(1, _omitEnumNames ? '' : 'response');
|
||||
static const PushKind text = PushKind._(2, _omitEnumNames ? '' : 'text');
|
||||
static const PushKind video = PushKind._(3, _omitEnumNames ? '' : 'video');
|
||||
static const PushKind twonly = PushKind._(4, _omitEnumNames ? '' : 'twonly');
|
||||
static const PushKind image = PushKind._(5, _omitEnumNames ? '' : 'image');
|
||||
static const PushKind contactRequest =
|
||||
PushKind._(6, _omitEnumNames ? '' : 'contactRequest');
|
||||
static const PushKind acceptRequest =
|
||||
PushKind._(7, _omitEnumNames ? '' : 'acceptRequest');
|
||||
static const PushKind storedMediaFile =
|
||||
PushKind._(8, _omitEnumNames ? '' : 'storedMediaFile');
|
||||
static const PushKind testNotification =
|
||||
PushKind._(9, _omitEnumNames ? '' : 'testNotification');
|
||||
static const PushKind reopenedMedia =
|
||||
PushKind._(10, _omitEnumNames ? '' : 'reopenedMedia');
|
||||
static const PushKind reactionToVideo =
|
||||
PushKind._(11, _omitEnumNames ? '' : 'reactionToVideo');
|
||||
static const PushKind reactionToText =
|
||||
PushKind._(12, _omitEnumNames ? '' : 'reactionToText');
|
||||
static const PushKind reactionToImage =
|
||||
PushKind._(13, _omitEnumNames ? '' : 'reactionToImage');
|
||||
static const PushKind reactionToAudio =
|
||||
PushKind._(14, _omitEnumNames ? '' : 'reactionToAudio');
|
||||
static const PushKind addedToGroup =
|
||||
PushKind._(15, _omitEnumNames ? '' : 'addedToGroup');
|
||||
static const PushKind audio = PushKind._(16, _omitEnumNames ? '' : 'audio');
|
||||
static const PushKind REACTION =
|
||||
PushKind._(0, _omitEnumNames ? '' : 'REACTION');
|
||||
static const PushKind RESPONSE =
|
||||
PushKind._(1, _omitEnumNames ? '' : 'RESPONSE');
|
||||
static const PushKind TEXT = PushKind._(2, _omitEnumNames ? '' : 'TEXT');
|
||||
static const PushKind VIDEO = PushKind._(3, _omitEnumNames ? '' : 'VIDEO');
|
||||
static const PushKind TWONLY = PushKind._(4, _omitEnumNames ? '' : 'TWONLY');
|
||||
static const PushKind IMAGE = PushKind._(5, _omitEnumNames ? '' : 'IMAGE');
|
||||
static const PushKind CONTACT_REQUEST =
|
||||
PushKind._(6, _omitEnumNames ? '' : 'CONTACT_REQUEST');
|
||||
static const PushKind ACCEPT_REQUEST =
|
||||
PushKind._(7, _omitEnumNames ? '' : 'ACCEPT_REQUEST');
|
||||
static const PushKind STORED_MEDIA_FILE =
|
||||
PushKind._(8, _omitEnumNames ? '' : 'STORED_MEDIA_FILE');
|
||||
static const PushKind TEST_NOTIFICATION =
|
||||
PushKind._(9, _omitEnumNames ? '' : 'TEST_NOTIFICATION');
|
||||
static const PushKind REOPENED_MEDIA =
|
||||
PushKind._(10, _omitEnumNames ? '' : 'REOPENED_MEDIA');
|
||||
static const PushKind REACTION_TO_VIDEO =
|
||||
PushKind._(11, _omitEnumNames ? '' : 'REACTION_TO_VIDEO');
|
||||
static const PushKind REACTION_TO_TEXT =
|
||||
PushKind._(12, _omitEnumNames ? '' : 'REACTION_TO_TEXT');
|
||||
static const PushKind REACTION_TO_IMAGE =
|
||||
PushKind._(13, _omitEnumNames ? '' : 'REACTION_TO_IMAGE');
|
||||
static const PushKind REACTION_TO_AUDIO =
|
||||
PushKind._(14, _omitEnumNames ? '' : 'REACTION_TO_AUDIO');
|
||||
static const PushKind ADDED_TO_GROUP =
|
||||
PushKind._(15, _omitEnumNames ? '' : 'ADDED_TO_GROUP');
|
||||
static const PushKind AUDIO = PushKind._(16, _omitEnumNames ? '' : 'AUDIO');
|
||||
|
||||
static const $core.List<PushKind> values = <PushKind>[
|
||||
reaction,
|
||||
response,
|
||||
text,
|
||||
video,
|
||||
twonly,
|
||||
image,
|
||||
contactRequest,
|
||||
acceptRequest,
|
||||
storedMediaFile,
|
||||
testNotification,
|
||||
reopenedMedia,
|
||||
reactionToVideo,
|
||||
reactionToText,
|
||||
reactionToImage,
|
||||
reactionToAudio,
|
||||
addedToGroup,
|
||||
audio,
|
||||
REACTION,
|
||||
RESPONSE,
|
||||
TEXT,
|
||||
VIDEO,
|
||||
TWONLY,
|
||||
IMAGE,
|
||||
CONTACT_REQUEST,
|
||||
ACCEPT_REQUEST,
|
||||
STORED_MEDIA_FILE,
|
||||
TEST_NOTIFICATION,
|
||||
REOPENED_MEDIA,
|
||||
REACTION_TO_VIDEO,
|
||||
REACTION_TO_TEXT,
|
||||
REACTION_TO_IMAGE,
|
||||
REACTION_TO_AUDIO,
|
||||
ADDED_TO_GROUP,
|
||||
AUDIO,
|
||||
];
|
||||
|
||||
static final $core.List<PushKind?> _byValue =
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
@ -18,40 +19,40 @@ import 'dart:typed_data' as $typed_data;
|
|||
const PushKind$json = {
|
||||
'1': 'PushKind',
|
||||
'2': [
|
||||
{'1': 'reaction', '2': 0},
|
||||
{'1': 'response', '2': 1},
|
||||
{'1': 'text', '2': 2},
|
||||
{'1': 'video', '2': 3},
|
||||
{'1': 'twonly', '2': 4},
|
||||
{'1': 'image', '2': 5},
|
||||
{'1': 'contactRequest', '2': 6},
|
||||
{'1': 'acceptRequest', '2': 7},
|
||||
{'1': 'storedMediaFile', '2': 8},
|
||||
{'1': 'testNotification', '2': 9},
|
||||
{'1': 'reopenedMedia', '2': 10},
|
||||
{'1': 'reactionToVideo', '2': 11},
|
||||
{'1': 'reactionToText', '2': 12},
|
||||
{'1': 'reactionToImage', '2': 13},
|
||||
{'1': 'reactionToAudio', '2': 14},
|
||||
{'1': 'addedToGroup', '2': 15},
|
||||
{'1': 'audio', '2': 16},
|
||||
{'1': 'REACTION', '2': 0},
|
||||
{'1': 'RESPONSE', '2': 1},
|
||||
{'1': 'TEXT', '2': 2},
|
||||
{'1': 'VIDEO', '2': 3},
|
||||
{'1': 'TWONLY', '2': 4},
|
||||
{'1': 'IMAGE', '2': 5},
|
||||
{'1': 'CONTACT_REQUEST', '2': 6},
|
||||
{'1': 'ACCEPT_REQUEST', '2': 7},
|
||||
{'1': 'STORED_MEDIA_FILE', '2': 8},
|
||||
{'1': 'TEST_NOTIFICATION', '2': 9},
|
||||
{'1': 'REOPENED_MEDIA', '2': 10},
|
||||
{'1': 'REACTION_TO_VIDEO', '2': 11},
|
||||
{'1': 'REACTION_TO_TEXT', '2': 12},
|
||||
{'1': 'REACTION_TO_IMAGE', '2': 13},
|
||||
{'1': 'REACTION_TO_AUDIO', '2': 14},
|
||||
{'1': 'ADDED_TO_GROUP', '2': 15},
|
||||
{'1': 'AUDIO', '2': 16},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `PushKind`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
||||
final $typed_data.Uint8List pushKindDescriptor = $convert.base64Decode(
|
||||
'CghQdXNoS2luZBIMCghyZWFjdGlvbhAAEgwKCHJlc3BvbnNlEAESCAoEdGV4dBACEgkKBXZpZG'
|
||||
'VvEAMSCgoGdHdvbmx5EAQSCQoFaW1hZ2UQBRISCg5jb250YWN0UmVxdWVzdBAGEhEKDWFjY2Vw'
|
||||
'dFJlcXVlc3QQBxITCg9zdG9yZWRNZWRpYUZpbGUQCBIUChB0ZXN0Tm90aWZpY2F0aW9uEAkSEQ'
|
||||
'oNcmVvcGVuZWRNZWRpYRAKEhMKD3JlYWN0aW9uVG9WaWRlbxALEhIKDnJlYWN0aW9uVG9UZXh0'
|
||||
'EAwSEwoPcmVhY3Rpb25Ub0ltYWdlEA0SEwoPcmVhY3Rpb25Ub0F1ZGlvEA4SEAoMYWRkZWRUb0'
|
||||
'dyb3VwEA8SCQoFYXVkaW8QEA==');
|
||||
'CghQdXNoS2luZBIMCghSRUFDVElPThAAEgwKCFJFU1BPTlNFEAESCAoEVEVYVBACEgkKBVZJRE'
|
||||
'VPEAMSCgoGVFdPTkxZEAQSCQoFSU1BR0UQBRITCg9DT05UQUNUX1JFUVVFU1QQBhISCg5BQ0NF'
|
||||
'UFRfUkVRVUVTVBAHEhUKEVNUT1JFRF9NRURJQV9GSUxFEAgSFQoRVEVTVF9OT1RJRklDQVRJT0'
|
||||
'4QCRISCg5SRU9QRU5FRF9NRURJQRAKEhUKEVJFQUNUSU9OX1RPX1ZJREVPEAsSFAoQUkVBQ1RJ'
|
||||
'T05fVE9fVEVYVBAMEhUKEVJFQUNUSU9OX1RPX0lNQUdFEA0SFQoRUkVBQ1RJT05fVE9fQVVESU'
|
||||
'8QDhISCg5BRERFRF9UT19HUk9VUBAPEgkKBUFVRElPEBA=');
|
||||
|
||||
@$core.Deprecated('Use encryptedPushNotificationDescriptor instead')
|
||||
const EncryptedPushNotification$json = {
|
||||
'1': 'EncryptedPushNotification',
|
||||
'2': [
|
||||
{'1': 'keyId', '3': 1, '4': 1, '5': 3, '10': 'keyId'},
|
||||
{'1': 'key_id', '3': 1, '4': 1, '5': 3, '10': 'keyId'},
|
||||
{'1': 'nonce', '3': 2, '4': 1, '5': 12, '10': 'nonce'},
|
||||
{'1': 'ciphertext', '3': 3, '4': 1, '5': 12, '10': 'ciphertext'},
|
||||
{'1': 'mac', '3': 4, '4': 1, '5': 12, '10': 'mac'},
|
||||
|
|
@ -60,9 +61,9 @@ const EncryptedPushNotification$json = {
|
|||
|
||||
/// Descriptor for `EncryptedPushNotification`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List encryptedPushNotificationDescriptor = $convert.base64Decode(
|
||||
'ChlFbmNyeXB0ZWRQdXNoTm90aWZpY2F0aW9uEhQKBWtleUlkGAEgASgDUgVrZXlJZBIUCgVub2'
|
||||
'5jZRgCIAEoDFIFbm9uY2USHgoKY2lwaGVydGV4dBgDIAEoDFIKY2lwaGVydGV4dBIQCgNtYWMY'
|
||||
'BCABKAxSA21hYw==');
|
||||
'ChlFbmNyeXB0ZWRQdXNoTm90aWZpY2F0aW9uEhUKBmtleV9pZBgBIAEoA1IFa2V5SWQSFAoFbm'
|
||||
'9uY2UYAiABKAxSBW5vbmNlEh4KCmNpcGhlcnRleHQYAyABKAxSCmNpcGhlcnRleHQSEAoDbWFj'
|
||||
'GAQgASgMUgNtYWM=');
|
||||
|
||||
@$core.Deprecated('Use pushNotificationDescriptor instead')
|
||||
const PushNotification$json = {
|
||||
|
|
@ -70,7 +71,7 @@ const PushNotification$json = {
|
|||
'2': [
|
||||
{'1': 'kind', '3': 1, '4': 1, '5': 14, '6': '.PushKind', '10': 'kind'},
|
||||
{
|
||||
'1': 'messageId',
|
||||
'1': 'message_id',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
|
|
@ -79,7 +80,7 @@ const PushNotification$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'additionalContent',
|
||||
'1': 'additional_content',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
|
|
@ -89,17 +90,17 @@ const PushNotification$json = {
|
|||
},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_messageId'},
|
||||
{'1': '_additionalContent'},
|
||||
{'1': '_message_id'},
|
||||
{'1': '_additional_content'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `PushNotification`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List pushNotificationDescriptor = $convert.base64Decode(
|
||||
'ChBQdXNoTm90aWZpY2F0aW9uEh0KBGtpbmQYASABKA4yCS5QdXNoS2luZFIEa2luZBIhCgltZX'
|
||||
'NzYWdlSWQYAiABKAlIAFIJbWVzc2FnZUlkiAEBEjEKEWFkZGl0aW9uYWxDb250ZW50GAMgASgJ'
|
||||
'SAFSEWFkZGl0aW9uYWxDb250ZW50iAEBQgwKCl9tZXNzYWdlSWRCFAoSX2FkZGl0aW9uYWxDb2'
|
||||
'50ZW50');
|
||||
'ChBQdXNoTm90aWZpY2F0aW9uEh0KBGtpbmQYASABKA4yCS5QdXNoS2luZFIEa2luZBIiCgptZX'
|
||||
'NzYWdlX2lkGAIgASgJSABSCW1lc3NhZ2VJZIgBARIyChJhZGRpdGlvbmFsX2NvbnRlbnQYAyAB'
|
||||
'KAlIAVIRYWRkaXRpb25hbENvbnRlbnSIAQFCDQoLX21lc3NhZ2VfaWRCFQoTX2FkZGl0aW9uYW'
|
||||
'xfY29udGVudA==');
|
||||
|
||||
@$core.Deprecated('Use pushUsersDescriptor instead')
|
||||
const PushUsers$json = {
|
||||
|
|
@ -117,11 +118,11 @@ final $typed_data.Uint8List pushUsersDescriptor = $convert.base64Decode(
|
|||
const PushUser$json = {
|
||||
'1': 'PushUser',
|
||||
'2': [
|
||||
{'1': 'userId', '3': 1, '4': 1, '5': 3, '10': 'userId'},
|
||||
{'1': 'displayName', '3': 2, '4': 1, '5': 9, '10': 'displayName'},
|
||||
{'1': 'user_id', '3': 1, '4': 1, '5': 3, '10': 'userId'},
|
||||
{'1': 'display_name', '3': 2, '4': 1, '5': 9, '10': 'displayName'},
|
||||
{'1': 'blocked', '3': 3, '4': 1, '5': 8, '10': 'blocked'},
|
||||
{
|
||||
'1': 'lastMessageId',
|
||||
'1': 'last_message_id',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 9,
|
||||
|
|
@ -130,7 +131,7 @@ const PushUser$json = {
|
|||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'pushKeys',
|
||||
'1': 'push_keys',
|
||||
'3': 5,
|
||||
'4': 3,
|
||||
'5': 11,
|
||||
|
|
@ -139,16 +140,16 @@ const PushUser$json = {
|
|||
},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_lastMessageId'},
|
||||
{'1': '_last_message_id'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `PushUser`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List pushUserDescriptor = $convert.base64Decode(
|
||||
'CghQdXNoVXNlchIWCgZ1c2VySWQYASABKANSBnVzZXJJZBIgCgtkaXNwbGF5TmFtZRgCIAEoCV'
|
||||
'ILZGlzcGxheU5hbWUSGAoHYmxvY2tlZBgDIAEoCFIHYmxvY2tlZBIpCg1sYXN0TWVzc2FnZUlk'
|
||||
'GAQgASgJSABSDWxhc3RNZXNzYWdlSWSIAQESJAoIcHVzaEtleXMYBSADKAsyCC5QdXNoS2V5Ug'
|
||||
'hwdXNoS2V5c0IQCg5fbGFzdE1lc3NhZ2VJZA==');
|
||||
'CghQdXNoVXNlchIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQSIQoMZGlzcGxheV9uYW1lGAIgAS'
|
||||
'gJUgtkaXNwbGF5TmFtZRIYCgdibG9ja2VkGAMgASgIUgdibG9ja2VkEisKD2xhc3RfbWVzc2Fn'
|
||||
'ZV9pZBgEIAEoCUgAUg1sYXN0TWVzc2FnZUlkiAEBEiUKCXB1c2hfa2V5cxgFIAMoCzIILlB1c2'
|
||||
'hLZXlSCHB1c2hLZXlzQhIKEF9sYXN0X21lc3NhZ2VfaWQ=');
|
||||
|
||||
@$core.Deprecated('Use pushKeyDescriptor instead')
|
||||
const PushKey$json = {
|
||||
|
|
@ -157,7 +158,7 @@ const PushKey$json = {
|
|||
{'1': 'id', '3': 1, '4': 1, '5': 3, '10': 'id'},
|
||||
{'1': 'key', '3': 2, '4': 1, '5': 12, '10': 'key'},
|
||||
{
|
||||
'1': 'createdAtUnixTimestamp',
|
||||
'1': 'created_at_unix_timestamp',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
|
|
@ -168,5 +169,5 @@ const PushKey$json = {
|
|||
|
||||
/// Descriptor for `PushKey`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List pushKeyDescriptor = $convert.base64Decode(
|
||||
'CgdQdXNoS2V5Eg4KAmlkGAEgASgDUgJpZBIQCgNrZXkYAiABKAxSA2tleRI2ChZjcmVhdGVkQX'
|
||||
'RVbml4VGltZXN0YW1wGAMgASgDUhZjcmVhdGVkQXRVbml4VGltZXN0YW1w');
|
||||
'CgdQdXNoS2V5Eg4KAmlkGAEgASgDUgJpZBIQCgNrZXkYAiABKAxSA2tleRI5ChljcmVhdGVkX2'
|
||||
'F0X3VuaXhfdGltZXN0YW1wGAMgASgDUhZjcmVhdGVkQXRVbml4VGltZXN0YW1w');
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
|
|
@ -44,16 +44,14 @@ class QREnvelope extends $pb.GeneratedMessage {
|
|||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'QREnvelope',
|
||||
createEmptyInstance: create)
|
||||
..e<QREnvelope_Type>(2, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
|
||||
defaultOrMaker: QREnvelope_Type.PublicProfile,
|
||||
valueOf: QREnvelope_Type.valueOf,
|
||||
..aE<QREnvelope_Type>(2, _omitFieldNames ? '' : 'type',
|
||||
enumValues: QREnvelope_Type.values)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'data', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
QREnvelope clone() => QREnvelope()..mergeFromMessage(this);
|
||||
QREnvelope clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
QREnvelope copyWith(void Function(QREnvelope) updates) =>
|
||||
super.copyWith((message) => updates(message as QREnvelope)) as QREnvelope;
|
||||
|
|
@ -65,7 +63,6 @@ class QREnvelope extends $pb.GeneratedMessage {
|
|||
static QREnvelope create() => QREnvelope._();
|
||||
@$core.override
|
||||
QREnvelope createEmptyInstance() => create();
|
||||
static $pb.PbList<QREnvelope> createRepeated() => $pb.PbList<QREnvelope>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static QREnvelope getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<QREnvelope>(create);
|
||||
|
|
@ -99,6 +96,7 @@ class PublicProfile extends $pb.GeneratedMessage {
|
|||
$fixnum.Int64? registrationId,
|
||||
$core.List<$core.int>? signedPrekeySignature,
|
||||
$fixnum.Int64? signedPrekeyId,
|
||||
$core.List<$core.int>? secretVerificationToken,
|
||||
}) {
|
||||
final result = create();
|
||||
if (userId != null) result.userId = userId;
|
||||
|
|
@ -109,6 +107,8 @@ class PublicProfile extends $pb.GeneratedMessage {
|
|||
if (signedPrekeySignature != null)
|
||||
result.signedPrekeySignature = signedPrekeySignature;
|
||||
if (signedPrekeyId != null) result.signedPrekeyId = signedPrekeyId;
|
||||
if (secretVerificationToken != null)
|
||||
result.secretVerificationToken = secretVerificationToken;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -134,10 +134,12 @@ class PublicProfile extends $pb.GeneratedMessage {
|
|||
..a<$core.List<$core.int>>(
|
||||
6, _omitFieldNames ? '' : 'signedPrekeySignature', $pb.PbFieldType.OY)
|
||||
..aInt64(7, _omitFieldNames ? '' : 'signedPrekeyId')
|
||||
..a<$core.List<$core.int>>(
|
||||
8, _omitFieldNames ? '' : 'secretVerificationToken', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PublicProfile clone() => PublicProfile()..mergeFromMessage(this);
|
||||
PublicProfile clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
PublicProfile copyWith(void Function(PublicProfile) updates) =>
|
||||
super.copyWith((message) => updates(message as PublicProfile))
|
||||
|
|
@ -150,8 +152,6 @@ class PublicProfile extends $pb.GeneratedMessage {
|
|||
static PublicProfile create() => PublicProfile._();
|
||||
@$core.override
|
||||
PublicProfile createEmptyInstance() => create();
|
||||
static $pb.PbList<PublicProfile> createRepeated() =>
|
||||
$pb.PbList<PublicProfile>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static PublicProfile getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<PublicProfile>(create);
|
||||
|
|
@ -220,6 +220,16 @@ class PublicProfile extends $pb.GeneratedMessage {
|
|||
$core.bool hasSignedPrekeyId() => $_has(6);
|
||||
@$pb.TagNumber(7)
|
||||
void clearSignedPrekeyId() => $_clearField(7);
|
||||
|
||||
@$pb.TagNumber(8)
|
||||
$core.List<$core.int> get secretVerificationToken => $_getN(7);
|
||||
@$pb.TagNumber(8)
|
||||
set secretVerificationToken($core.List<$core.int> value) =>
|
||||
$_setBytes(7, value);
|
||||
@$pb.TagNumber(8)
|
||||
$core.bool hasSecretVerificationToken() => $_has(7);
|
||||
@$pb.TagNumber(8)
|
||||
void clearSecretVerificationToken() => $_clearField(8);
|
||||
}
|
||||
|
||||
const $core.bool _omitFieldNames =
|
||||
|
|
|
|||
|
|
@ -8,18 +8,18 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
class QREnvelope_Type extends $pb.ProtobufEnum {
|
||||
static const QREnvelope_Type PublicProfile =
|
||||
QREnvelope_Type._(0, _omitEnumNames ? '' : 'PublicProfile');
|
||||
static const QREnvelope_Type PUBLIC_PROFILE =
|
||||
QREnvelope_Type._(0, _omitEnumNames ? '' : 'PUBLIC_PROFILE');
|
||||
|
||||
static const $core.List<QREnvelope_Type> values = <QREnvelope_Type>[
|
||||
PublicProfile,
|
||||
PUBLIC_PROFILE,
|
||||
];
|
||||
|
||||
static final $core.List<QREnvelope_Type?> _byValue =
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, unused_import
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
|
|
@ -35,14 +36,14 @@ const QREnvelope$json = {
|
|||
const QREnvelope_Type$json = {
|
||||
'1': 'Type',
|
||||
'2': [
|
||||
{'1': 'PublicProfile', '2': 0},
|
||||
{'1': 'PUBLIC_PROFILE', '2': 0},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `QREnvelope`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List qREnvelopeDescriptor = $convert.base64Decode(
|
||||
'CgpRUkVudmVsb3BlEiQKBHR5cGUYAiABKA4yEC5RUkVudmVsb3BlLlR5cGVSBHR5cGUSEgoEZG'
|
||||
'F0YRgDIAEoDFIEZGF0YSIZCgRUeXBlEhEKDVB1YmxpY1Byb2ZpbGUQAA==');
|
||||
'F0YRgDIAEoDFIEZGF0YSIaCgRUeXBlEhIKDlBVQkxJQ19QUk9GSUxFEAA=');
|
||||
|
||||
@$core.Deprecated('Use publicProfileDescriptor instead')
|
||||
const PublicProfile$json = {
|
||||
|
|
@ -67,6 +68,18 @@ const PublicProfile$json = {
|
|||
'10': 'signedPrekeySignature'
|
||||
},
|
||||
{'1': 'signed_prekey_id', '3': 7, '4': 1, '5': 3, '10': 'signedPrekeyId'},
|
||||
{
|
||||
'1': 'secret_verification_token',
|
||||
'3': 8,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'9': 0,
|
||||
'10': 'secretVerificationToken',
|
||||
'17': true
|
||||
},
|
||||
],
|
||||
'8': [
|
||||
{'1': '_secret_verification_token'},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
@ -77,4 +90,5 @@ final $typed_data.Uint8List publicProfileDescriptor = $convert.base64Decode(
|
|||
'dHlLZXkSIwoNc2lnbmVkX3ByZWtleRgEIAEoDFIMc2lnbmVkUHJla2V5EicKD3JlZ2lzdHJhdG'
|
||||
'lvbl9pZBgFIAEoA1IOcmVnaXN0cmF0aW9uSWQSNgoXc2lnbmVkX3ByZWtleV9zaWduYXR1cmUY'
|
||||
'BiABKAxSFXNpZ25lZFByZWtleVNpZ25hdHVyZRIoChBzaWduZWRfcHJla2V5X2lkGAcgASgDUg'
|
||||
'5zaWduZWRQcmVrZXlJZA==');
|
||||
'5zaWduZWRQcmVrZXlJZBI/ChlzZWNyZXRfdmVyaWZpY2F0aW9uX3Rva2VuGAggASgMSABSF3Nl'
|
||||
'Y3JldFZlcmlmaWNhdGlvblRva2VuiAEBQhwKGl9zZWNyZXRfdmVyaWZpY2F0aW9uX3Rva2Vu');
|
||||
|
|
|
|||
|
|
@ -0,0 +1,678 @@
|
|||
// This is a generated file - do not edit.
|
||||
//
|
||||
// Generated from types.proto.
|
||||
|
||||
// @dart = 3.3
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:fixnum/fixnum.dart' as $fixnum;
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;
|
||||
|
||||
class UserDiscoveryVersion extends $pb.GeneratedMessage {
|
||||
factory UserDiscoveryVersion({
|
||||
$core.int? announcement,
|
||||
$core.int? promotion,
|
||||
}) {
|
||||
final result = create();
|
||||
if (announcement != null) result.announcement = announcement;
|
||||
if (promotion != null) result.promotion = promotion;
|
||||
return result;
|
||||
}
|
||||
|
||||
UserDiscoveryVersion._();
|
||||
|
||||
factory UserDiscoveryVersion.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory UserDiscoveryVersion.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'UserDiscoveryVersion',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'user_discovery'),
|
||||
createEmptyInstance: create)
|
||||
..aI(1, _omitFieldNames ? '' : 'announcement',
|
||||
fieldType: $pb.PbFieldType.OU3)
|
||||
..aI(2, _omitFieldNames ? '' : 'promotion', fieldType: $pb.PbFieldType.OU3)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryVersion clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryVersion copyWith(void Function(UserDiscoveryVersion) updates) =>
|
||||
super.copyWith((message) => updates(message as UserDiscoveryVersion))
|
||||
as UserDiscoveryVersion;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryVersion create() => UserDiscoveryVersion._();
|
||||
@$core.override
|
||||
UserDiscoveryVersion createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryVersion getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<UserDiscoveryVersion>(create);
|
||||
static UserDiscoveryVersion? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.int get announcement => $_getIZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
set announcement($core.int value) => $_setUnsignedInt32(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasAnnouncement() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearAnnouncement() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.int get promotion => $_getIZ(1);
|
||||
@$pb.TagNumber(2)
|
||||
set promotion($core.int value) => $_setUnsignedInt32(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasPromotion() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearPromotion() => $_clearField(2);
|
||||
}
|
||||
|
||||
class UserDiscoveryMessage_UserDiscoveryAnnouncement
|
||||
extends $pb.GeneratedMessage {
|
||||
factory UserDiscoveryMessage_UserDiscoveryAnnouncement({
|
||||
$fixnum.Int64? publicId,
|
||||
$core.int? threshold,
|
||||
$core.List<$core.int>? announcementShare,
|
||||
$core.bool? sharePromotion,
|
||||
$core.Iterable<$core.List<$core.int>>? verificationShares,
|
||||
}) {
|
||||
final result = create();
|
||||
if (publicId != null) result.publicId = publicId;
|
||||
if (threshold != null) result.threshold = threshold;
|
||||
if (announcementShare != null) result.announcementShare = announcementShare;
|
||||
if (sharePromotion != null) result.sharePromotion = sharePromotion;
|
||||
if (verificationShares != null)
|
||||
result.verificationShares.addAll(verificationShares);
|
||||
return result;
|
||||
}
|
||||
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement._();
|
||||
|
||||
factory UserDiscoveryMessage_UserDiscoveryAnnouncement.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory UserDiscoveryMessage_UserDiscoveryAnnouncement.fromJson(
|
||||
$core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'UserDiscoveryMessage.UserDiscoveryAnnouncement',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'user_discovery'),
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'publicId')
|
||||
..aI(2, _omitFieldNames ? '' : 'threshold', fieldType: $pb.PbFieldType.OU3)
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'announcementShare', $pb.PbFieldType.OY)
|
||||
..aOB(4, _omitFieldNames ? '' : 'sharePromotion')
|
||||
..p<$core.List<$core.int>>(
|
||||
5, _omitFieldNames ? '' : 'verificationShares', $pb.PbFieldType.PY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement copyWith(
|
||||
void Function(UserDiscoveryMessage_UserDiscoveryAnnouncement)
|
||||
updates) =>
|
||||
super.copyWith((message) => updates(
|
||||
message as UserDiscoveryMessage_UserDiscoveryAnnouncement))
|
||||
as UserDiscoveryMessage_UserDiscoveryAnnouncement;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryAnnouncement create() =>
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement._();
|
||||
@$core.override
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement createEmptyInstance() =>
|
||||
create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryAnnouncement getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement>(create);
|
||||
static UserDiscoveryMessage_UserDiscoveryAnnouncement? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$fixnum.Int64 get publicId => $_getI64(0);
|
||||
@$pb.TagNumber(1)
|
||||
set publicId($fixnum.Int64 value) => $_setInt64(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasPublicId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearPublicId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.int get threshold => $_getIZ(1);
|
||||
@$pb.TagNumber(2)
|
||||
set threshold($core.int value) => $_setUnsignedInt32(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasThreshold() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearThreshold() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get announcementShare => $_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set announcementShare($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasAnnouncementShare() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearAnnouncementShare() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool get sharePromotion => $_getBF(3);
|
||||
@$pb.TagNumber(4)
|
||||
set sharePromotion($core.bool value) => $_setBool(3, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasSharePromotion() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearSharePromotion() => $_clearField(4);
|
||||
|
||||
@$pb.TagNumber(5)
|
||||
$pb.PbList<$core.List<$core.int>> get verificationShares => $_getList(4);
|
||||
}
|
||||
|
||||
class UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
extends $pb.GeneratedMessage {
|
||||
factory UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData({
|
||||
$fixnum.Int64? publicId,
|
||||
$fixnum.Int64? userId,
|
||||
$core.List<$core.int>? publicKey,
|
||||
}) {
|
||||
final result = create();
|
||||
if (publicId != null) result.publicId = publicId;
|
||||
if (userId != null) result.userId = userId;
|
||||
if (publicKey != null) result.publicKey = publicKey;
|
||||
return result;
|
||||
}
|
||||
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData._();
|
||||
|
||||
factory UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData.fromJson(
|
||||
$core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames
|
||||
? ''
|
||||
: 'UserDiscoveryMessage.UserDiscoveryPromotion.AnnouncementShareDecrypted.SignedData',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'user_discovery'),
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'publicId')
|
||||
..aInt64(2, _omitFieldNames ? '' : 'userId')
|
||||
..a<$core.List<$core.int>>(
|
||||
3, _omitFieldNames ? '' : 'publicKey', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData copyWith(
|
||||
void Function(
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData)
|
||||
updates) =>
|
||||
super.copyWith((message) => updates(message
|
||||
as UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData))
|
||||
as UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
create() =>
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
._();
|
||||
@$core.override
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData>(
|
||||
create);
|
||||
static UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData?
|
||||
_defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$fixnum.Int64 get publicId => $_getI64(0);
|
||||
@$pb.TagNumber(1)
|
||||
set publicId($fixnum.Int64 value) => $_setInt64(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasPublicId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearPublicId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$fixnum.Int64 get userId => $_getI64(1);
|
||||
@$pb.TagNumber(2)
|
||||
set userId($fixnum.Int64 value) => $_setInt64(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasUserId() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearUserId() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.List<$core.int> get publicKey => $_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set publicKey($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasPublicKey() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearPublicKey() => $_clearField(3);
|
||||
}
|
||||
|
||||
class UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted
|
||||
extends $pb.GeneratedMessage {
|
||||
factory UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted({
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData?
|
||||
signedData,
|
||||
$core.List<$core.int>? signature,
|
||||
}) {
|
||||
final result = create();
|
||||
if (signedData != null) result.signedData = signedData;
|
||||
if (signature != null) result.signature = signature;
|
||||
return result;
|
||||
}
|
||||
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted._();
|
||||
|
||||
factory UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted.fromJson(
|
||||
$core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames
|
||||
? ''
|
||||
: 'UserDiscoveryMessage.UserDiscoveryPromotion.AnnouncementShareDecrypted',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'user_discovery'),
|
||||
createEmptyInstance: create)
|
||||
..aOM<UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData>(
|
||||
1, _omitFieldNames ? '' : 'signedData',
|
||||
subBuilder:
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
.create)
|
||||
..a<$core.List<$core.int>>(
|
||||
2, _omitFieldNames ? '' : 'signature', $pb.PbFieldType.OY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted
|
||||
clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted copyWith(
|
||||
void Function(
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted)
|
||||
updates) =>
|
||||
super.copyWith((message) => updates(message
|
||||
as UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted))
|
||||
as UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted
|
||||
create() =>
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted
|
||||
._();
|
||||
@$core.override
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted
|
||||
createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted
|
||||
getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted>(
|
||||
create);
|
||||
static UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted?
|
||||
_defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
get signedData => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set signedData(
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
value) =>
|
||||
$_setField(1, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasSignedData() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearSignedData() => $_clearField(1);
|
||||
@$pb.TagNumber(1)
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData
|
||||
ensureSignedData() => $_ensure(0);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.List<$core.int> get signature => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set signature($core.List<$core.int> value) => $_setBytes(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasSignature() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearSignature() => $_clearField(2);
|
||||
}
|
||||
|
||||
class UserDiscoveryMessage_UserDiscoveryPromotion extends $pb.GeneratedMessage {
|
||||
factory UserDiscoveryMessage_UserDiscoveryPromotion({
|
||||
$core.int? promotionId,
|
||||
$fixnum.Int64? publicId,
|
||||
$core.int? threshold,
|
||||
$core.List<$core.int>? announcementShare,
|
||||
$fixnum.Int64? publicKeyVerifiedTimestamp,
|
||||
}) {
|
||||
final result = create();
|
||||
if (promotionId != null) result.promotionId = promotionId;
|
||||
if (publicId != null) result.publicId = publicId;
|
||||
if (threshold != null) result.threshold = threshold;
|
||||
if (announcementShare != null) result.announcementShare = announcementShare;
|
||||
if (publicKeyVerifiedTimestamp != null)
|
||||
result.publicKeyVerifiedTimestamp = publicKeyVerifiedTimestamp;
|
||||
return result;
|
||||
}
|
||||
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion._();
|
||||
|
||||
factory UserDiscoveryMessage_UserDiscoveryPromotion.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory UserDiscoveryMessage_UserDiscoveryPromotion.fromJson(
|
||||
$core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'UserDiscoveryMessage.UserDiscoveryPromotion',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'user_discovery'),
|
||||
createEmptyInstance: create)
|
||||
..aI(1, _omitFieldNames ? '' : 'promotionId',
|
||||
fieldType: $pb.PbFieldType.OU3)
|
||||
..aInt64(2, _omitFieldNames ? '' : 'publicId')
|
||||
..aI(3, _omitFieldNames ? '' : 'threshold', fieldType: $pb.PbFieldType.OU3)
|
||||
..a<$core.List<$core.int>>(
|
||||
5, _omitFieldNames ? '' : 'announcementShare', $pb.PbFieldType.OY)
|
||||
..aInt64(6, _omitFieldNames ? '' : 'publicKeyVerifiedTimestamp')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion copyWith(
|
||||
void Function(UserDiscoveryMessage_UserDiscoveryPromotion) updates) =>
|
||||
super.copyWith((message) =>
|
||||
updates(message as UserDiscoveryMessage_UserDiscoveryPromotion))
|
||||
as UserDiscoveryMessage_UserDiscoveryPromotion;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryPromotion create() =>
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion._();
|
||||
@$core.override
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryPromotion getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion>(create);
|
||||
static UserDiscoveryMessage_UserDiscoveryPromotion? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.int get promotionId => $_getIZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
set promotionId($core.int value) => $_setUnsignedInt32(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasPromotionId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearPromotionId() => $_clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$fixnum.Int64 get publicId => $_getI64(1);
|
||||
@$pb.TagNumber(2)
|
||||
set publicId($fixnum.Int64 value) => $_setInt64(1, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasPublicId() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearPublicId() => $_clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.int get threshold => $_getIZ(2);
|
||||
@$pb.TagNumber(3)
|
||||
set threshold($core.int value) => $_setUnsignedInt32(2, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasThreshold() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearThreshold() => $_clearField(3);
|
||||
|
||||
@$pb.TagNumber(5)
|
||||
$core.List<$core.int> get announcementShare => $_getN(3);
|
||||
@$pb.TagNumber(5)
|
||||
set announcementShare($core.List<$core.int> value) => $_setBytes(3, value);
|
||||
@$pb.TagNumber(5)
|
||||
$core.bool hasAnnouncementShare() => $_has(3);
|
||||
@$pb.TagNumber(5)
|
||||
void clearAnnouncementShare() => $_clearField(5);
|
||||
|
||||
@$pb.TagNumber(6)
|
||||
$fixnum.Int64 get publicKeyVerifiedTimestamp => $_getI64(4);
|
||||
@$pb.TagNumber(6)
|
||||
set publicKeyVerifiedTimestamp($fixnum.Int64 value) => $_setInt64(4, value);
|
||||
@$pb.TagNumber(6)
|
||||
$core.bool hasPublicKeyVerifiedTimestamp() => $_has(4);
|
||||
@$pb.TagNumber(6)
|
||||
void clearPublicKeyVerifiedTimestamp() => $_clearField(6);
|
||||
}
|
||||
|
||||
class UserDiscoveryMessage_UserDiscoveryRecall extends $pb.GeneratedMessage {
|
||||
factory UserDiscoveryMessage_UserDiscoveryRecall({
|
||||
$fixnum.Int64? promotionId,
|
||||
}) {
|
||||
final result = create();
|
||||
if (promotionId != null) result.promotionId = promotionId;
|
||||
return result;
|
||||
}
|
||||
|
||||
UserDiscoveryMessage_UserDiscoveryRecall._();
|
||||
|
||||
factory UserDiscoveryMessage_UserDiscoveryRecall.fromBuffer(
|
||||
$core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory UserDiscoveryMessage_UserDiscoveryRecall.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'UserDiscoveryMessage.UserDiscoveryRecall',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'user_discovery'),
|
||||
createEmptyInstance: create)
|
||||
..aInt64(1, _omitFieldNames ? '' : 'promotionId')
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryRecall clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryRecall copyWith(
|
||||
void Function(UserDiscoveryMessage_UserDiscoveryRecall) updates) =>
|
||||
super.copyWith((message) =>
|
||||
updates(message as UserDiscoveryMessage_UserDiscoveryRecall))
|
||||
as UserDiscoveryMessage_UserDiscoveryRecall;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryRecall create() =>
|
||||
UserDiscoveryMessage_UserDiscoveryRecall._();
|
||||
@$core.override
|
||||
UserDiscoveryMessage_UserDiscoveryRecall createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage_UserDiscoveryRecall getDefault() =>
|
||||
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
|
||||
UserDiscoveryMessage_UserDiscoveryRecall>(create);
|
||||
static UserDiscoveryMessage_UserDiscoveryRecall? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$fixnum.Int64 get promotionId => $_getI64(0);
|
||||
@$pb.TagNumber(1)
|
||||
set promotionId($fixnum.Int64 value) => $_setInt64(0, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasPromotionId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearPromotionId() => $_clearField(1);
|
||||
}
|
||||
|
||||
class UserDiscoveryMessage extends $pb.GeneratedMessage {
|
||||
factory UserDiscoveryMessage({
|
||||
UserDiscoveryVersion? version,
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement? userDiscoveryAnnouncement,
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion? userDiscoveryPromotion,
|
||||
UserDiscoveryMessage_UserDiscoveryRecall? userDiscoveryRecall,
|
||||
}) {
|
||||
final result = create();
|
||||
if (version != null) result.version = version;
|
||||
if (userDiscoveryAnnouncement != null)
|
||||
result.userDiscoveryAnnouncement = userDiscoveryAnnouncement;
|
||||
if (userDiscoveryPromotion != null)
|
||||
result.userDiscoveryPromotion = userDiscoveryPromotion;
|
||||
if (userDiscoveryRecall != null)
|
||||
result.userDiscoveryRecall = userDiscoveryRecall;
|
||||
return result;
|
||||
}
|
||||
|
||||
UserDiscoveryMessage._();
|
||||
|
||||
factory UserDiscoveryMessage.fromBuffer($core.List<$core.int> data,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromBuffer(data, registry);
|
||||
factory UserDiscoveryMessage.fromJson($core.String json,
|
||||
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
|
||||
create()..mergeFromJson(json, registry);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
|
||||
_omitMessageNames ? '' : 'UserDiscoveryMessage',
|
||||
package: const $pb.PackageName(_omitMessageNames ? '' : 'user_discovery'),
|
||||
createEmptyInstance: create)
|
||||
..aOM<UserDiscoveryVersion>(1, _omitFieldNames ? '' : 'version',
|
||||
subBuilder: UserDiscoveryVersion.create)
|
||||
..aOM<UserDiscoveryMessage_UserDiscoveryAnnouncement>(
|
||||
2, _omitFieldNames ? '' : 'userDiscoveryAnnouncement',
|
||||
subBuilder: UserDiscoveryMessage_UserDiscoveryAnnouncement.create)
|
||||
..aOM<UserDiscoveryMessage_UserDiscoveryPromotion>(
|
||||
3, _omitFieldNames ? '' : 'userDiscoveryPromotion',
|
||||
subBuilder: UserDiscoveryMessage_UserDiscoveryPromotion.create)
|
||||
..aOM<UserDiscoveryMessage_UserDiscoveryRecall>(
|
||||
4, _omitFieldNames ? '' : 'userDiscoveryRecall',
|
||||
subBuilder: UserDiscoveryMessage_UserDiscoveryRecall.create)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage clone() => deepCopy();
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage copyWith(void Function(UserDiscoveryMessage) updates) =>
|
||||
super.copyWith((message) => updates(message as UserDiscoveryMessage))
|
||||
as UserDiscoveryMessage;
|
||||
|
||||
@$core.override
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage create() => UserDiscoveryMessage._();
|
||||
@$core.override
|
||||
UserDiscoveryMessage createEmptyInstance() => create();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UserDiscoveryMessage getDefault() => _defaultInstance ??=
|
||||
$pb.GeneratedMessage.$_defaultFor<UserDiscoveryMessage>(create);
|
||||
static UserDiscoveryMessage? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
UserDiscoveryVersion get version => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set version(UserDiscoveryVersion value) => $_setField(1, value);
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasVersion() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearVersion() => $_clearField(1);
|
||||
@$pb.TagNumber(1)
|
||||
UserDiscoveryVersion ensureVersion() => $_ensure(0);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement
|
||||
get userDiscoveryAnnouncement => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set userDiscoveryAnnouncement(
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement value) =>
|
||||
$_setField(2, value);
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasUserDiscoveryAnnouncement() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearUserDiscoveryAnnouncement() => $_clearField(2);
|
||||
@$pb.TagNumber(2)
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement
|
||||
ensureUserDiscoveryAnnouncement() => $_ensure(1);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion get userDiscoveryPromotion =>
|
||||
$_getN(2);
|
||||
@$pb.TagNumber(3)
|
||||
set userDiscoveryPromotion(
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion value) =>
|
||||
$_setField(3, value);
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasUserDiscoveryPromotion() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearUserDiscoveryPromotion() => $_clearField(3);
|
||||
@$pb.TagNumber(3)
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion ensureUserDiscoveryPromotion() =>
|
||||
$_ensure(2);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
UserDiscoveryMessage_UserDiscoveryRecall get userDiscoveryRecall => $_getN(3);
|
||||
@$pb.TagNumber(4)
|
||||
set userDiscoveryRecall(UserDiscoveryMessage_UserDiscoveryRecall value) =>
|
||||
$_setField(4, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasUserDiscoveryRecall() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearUserDiscoveryRecall() => $_clearField(4);
|
||||
@$pb.TagNumber(4)
|
||||
UserDiscoveryMessage_UserDiscoveryRecall ensureUserDiscoveryRecall() =>
|
||||
$_ensure(3);
|
||||
}
|
||||
|
||||
const $core.bool _omitFieldNames =
|
||||
$core.bool.fromEnvironment('protobuf.omit_field_names');
|
||||
const $core.bool _omitMessageNames =
|
||||
$core.bool.fromEnvironment('protobuf.omit_message_names');
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
// This is a generated file - do not edit.
|
||||
//
|
||||
// Generated from types.proto.
|
||||
|
||||
// @dart = 3.3
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
|
|
@ -0,0 +1,210 @@
|
|||
// This is a generated file - do not edit.
|
||||
//
|
||||
// Generated from types.proto.
|
||||
|
||||
// @dart = 3.3
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: curly_braces_in_flow_control_structures
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports
|
||||
// ignore_for_file: unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
import 'dart:typed_data' as $typed_data;
|
||||
|
||||
@$core.Deprecated('Use userDiscoveryVersionDescriptor instead')
|
||||
const UserDiscoveryVersion$json = {
|
||||
'1': 'UserDiscoveryVersion',
|
||||
'2': [
|
||||
{'1': 'announcement', '3': 1, '4': 1, '5': 13, '10': 'announcement'},
|
||||
{'1': 'promotion', '3': 2, '4': 1, '5': 13, '10': 'promotion'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `UserDiscoveryVersion`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List userDiscoveryVersionDescriptor = $convert.base64Decode(
|
||||
'ChRVc2VyRGlzY292ZXJ5VmVyc2lvbhIiCgxhbm5vdW5jZW1lbnQYASABKA1SDGFubm91bmNlbW'
|
||||
'VudBIcCglwcm9tb3Rpb24YAiABKA1SCXByb21vdGlvbg==');
|
||||
|
||||
@$core.Deprecated('Use userDiscoveryMessageDescriptor instead')
|
||||
const UserDiscoveryMessage$json = {
|
||||
'1': 'UserDiscoveryMessage',
|
||||
'2': [
|
||||
{
|
||||
'1': 'version',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.user_discovery.UserDiscoveryVersion',
|
||||
'10': 'version'
|
||||
},
|
||||
{
|
||||
'1': 'user_discovery_announcement',
|
||||
'3': 2,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.user_discovery.UserDiscoveryMessage.UserDiscoveryAnnouncement',
|
||||
'9': 0,
|
||||
'10': 'userDiscoveryAnnouncement',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'user_discovery_promotion',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.user_discovery.UserDiscoveryMessage.UserDiscoveryPromotion',
|
||||
'9': 1,
|
||||
'10': 'userDiscoveryPromotion',
|
||||
'17': true
|
||||
},
|
||||
{
|
||||
'1': 'user_discovery_recall',
|
||||
'3': 4,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6': '.user_discovery.UserDiscoveryMessage.UserDiscoveryRecall',
|
||||
'9': 2,
|
||||
'10': 'userDiscoveryRecall',
|
||||
'17': true
|
||||
},
|
||||
],
|
||||
'3': [
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement$json,
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion$json,
|
||||
UserDiscoveryMessage_UserDiscoveryRecall$json
|
||||
],
|
||||
'8': [
|
||||
{'1': '_user_discovery_announcement'},
|
||||
{'1': '_user_discovery_promotion'},
|
||||
{'1': '_user_discovery_recall'},
|
||||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use userDiscoveryMessageDescriptor instead')
|
||||
const UserDiscoveryMessage_UserDiscoveryAnnouncement$json = {
|
||||
'1': 'UserDiscoveryAnnouncement',
|
||||
'2': [
|
||||
{'1': 'public_id', '3': 1, '4': 1, '5': 3, '10': 'publicId'},
|
||||
{'1': 'threshold', '3': 2, '4': 1, '5': 13, '10': 'threshold'},
|
||||
{
|
||||
'1': 'announcement_share',
|
||||
'3': 3,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'announcementShare'
|
||||
},
|
||||
{'1': 'share_promotion', '3': 4, '4': 1, '5': 8, '10': 'sharePromotion'},
|
||||
{
|
||||
'1': 'verification_shares',
|
||||
'3': 5,
|
||||
'4': 3,
|
||||
'5': 12,
|
||||
'10': 'verificationShares'
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use userDiscoveryMessageDescriptor instead')
|
||||
const UserDiscoveryMessage_UserDiscoveryPromotion$json = {
|
||||
'1': 'UserDiscoveryPromotion',
|
||||
'2': [
|
||||
{'1': 'promotion_id', '3': 1, '4': 1, '5': 13, '10': 'promotionId'},
|
||||
{'1': 'public_id', '3': 2, '4': 1, '5': 3, '10': 'publicId'},
|
||||
{'1': 'threshold', '3': 3, '4': 1, '5': 13, '10': 'threshold'},
|
||||
{
|
||||
'1': 'announcement_share',
|
||||
'3': 5,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'announcementShare'
|
||||
},
|
||||
{
|
||||
'1': 'public_key_verified_timestamp',
|
||||
'3': 6,
|
||||
'4': 1,
|
||||
'5': 3,
|
||||
'9': 0,
|
||||
'10': 'publicKeyVerifiedTimestamp',
|
||||
'17': true
|
||||
},
|
||||
],
|
||||
'3': [
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted$json
|
||||
],
|
||||
'8': [
|
||||
{'1': '_public_key_verified_timestamp'},
|
||||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use userDiscoveryMessageDescriptor instead')
|
||||
const UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted$json =
|
||||
{
|
||||
'1': 'AnnouncementShareDecrypted',
|
||||
'2': [
|
||||
{
|
||||
'1': 'signed_data',
|
||||
'3': 1,
|
||||
'4': 1,
|
||||
'5': 11,
|
||||
'6':
|
||||
'.user_discovery.UserDiscoveryMessage.UserDiscoveryPromotion.AnnouncementShareDecrypted.SignedData',
|
||||
'10': 'signedData'
|
||||
},
|
||||
{'1': 'signature', '3': 2, '4': 1, '5': 12, '10': 'signature'},
|
||||
],
|
||||
'3': [
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData$json
|
||||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use userDiscoveryMessageDescriptor instead')
|
||||
const UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData$json =
|
||||
{
|
||||
'1': 'SignedData',
|
||||
'2': [
|
||||
{'1': 'public_id', '3': 1, '4': 1, '5': 3, '10': 'publicId'},
|
||||
{'1': 'user_id', '3': 2, '4': 1, '5': 3, '10': 'userId'},
|
||||
{'1': 'public_key', '3': 3, '4': 1, '5': 12, '10': 'publicKey'},
|
||||
],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use userDiscoveryMessageDescriptor instead')
|
||||
const UserDiscoveryMessage_UserDiscoveryRecall$json = {
|
||||
'1': 'UserDiscoveryRecall',
|
||||
'2': [
|
||||
{'1': 'promotion_id', '3': 1, '4': 1, '5': 3, '10': 'promotionId'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `UserDiscoveryMessage`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List userDiscoveryMessageDescriptor = $convert.base64Decode(
|
||||
'ChRVc2VyRGlzY292ZXJ5TWVzc2FnZRI+Cgd2ZXJzaW9uGAEgASgLMiQudXNlcl9kaXNjb3Zlcn'
|
||||
'kuVXNlckRpc2NvdmVyeVZlcnNpb25SB3ZlcnNpb24SgwEKG3VzZXJfZGlzY292ZXJ5X2Fubm91'
|
||||
'bmNlbWVudBgCIAEoCzI+LnVzZXJfZGlzY292ZXJ5LlVzZXJEaXNjb3ZlcnlNZXNzYWdlLlVzZX'
|
||||
'JEaXNjb3ZlcnlBbm5vdW5jZW1lbnRIAFIZdXNlckRpc2NvdmVyeUFubm91bmNlbWVudIgBARJ6'
|
||||
'Chh1c2VyX2Rpc2NvdmVyeV9wcm9tb3Rpb24YAyABKAsyOy51c2VyX2Rpc2NvdmVyeS5Vc2VyRG'
|
||||
'lzY292ZXJ5TWVzc2FnZS5Vc2VyRGlzY292ZXJ5UHJvbW90aW9uSAFSFnVzZXJEaXNjb3ZlcnlQ'
|
||||
'cm9tb3Rpb26IAQEScQoVdXNlcl9kaXNjb3ZlcnlfcmVjYWxsGAQgASgLMjgudXNlcl9kaXNjb3'
|
||||
'ZlcnkuVXNlckRpc2NvdmVyeU1lc3NhZ2UuVXNlckRpc2NvdmVyeVJlY2FsbEgCUhN1c2VyRGlz'
|
||||
'Y292ZXJ5UmVjYWxsiAEBGt8BChlVc2VyRGlzY292ZXJ5QW5ub3VuY2VtZW50EhsKCXB1YmxpY1'
|
||||
'9pZBgBIAEoA1IIcHVibGljSWQSHAoJdGhyZXNob2xkGAIgASgNUgl0aHJlc2hvbGQSLQoSYW5u'
|
||||
'b3VuY2VtZW50X3NoYXJlGAMgASgMUhFhbm5vdW5jZW1lbnRTaGFyZRInCg9zaGFyZV9wcm9tb3'
|
||||
'Rpb24YBCABKAhSDnNoYXJlUHJvbW90aW9uEi8KE3ZlcmlmaWNhdGlvbl9zaGFyZXMYBSADKAxS'
|
||||
'EnZlcmlmaWNhdGlvblNoYXJlcxq0BAoWVXNlckRpc2NvdmVyeVByb21vdGlvbhIhCgxwcm9tb3'
|
||||
'Rpb25faWQYASABKA1SC3Byb21vdGlvbklkEhsKCXB1YmxpY19pZBgCIAEoA1IIcHVibGljSWQS'
|
||||
'HAoJdGhyZXNob2xkGAMgASgNUgl0aHJlc2hvbGQSLQoSYW5ub3VuY2VtZW50X3NoYXJlGAUgAS'
|
||||
'gMUhFhbm5vdW5jZW1lbnRTaGFyZRJGCh1wdWJsaWNfa2V5X3ZlcmlmaWVkX3RpbWVzdGFtcBgG'
|
||||
'IAEoA0gAUhpwdWJsaWNLZXlWZXJpZmllZFRpbWVzdGFtcIgBARqiAgoaQW5ub3VuY2VtZW50U2'
|
||||
'hhcmVEZWNyeXB0ZWQSggEKC3NpZ25lZF9kYXRhGAEgASgLMmEudXNlcl9kaXNjb3ZlcnkuVXNl'
|
||||
'ckRpc2NvdmVyeU1lc3NhZ2UuVXNlckRpc2NvdmVyeVByb21vdGlvbi5Bbm5vdW5jZW1lbnRTaG'
|
||||
'FyZURlY3J5cHRlZC5TaWduZWREYXRhUgpzaWduZWREYXRhEhwKCXNpZ25hdHVyZRgCIAEoDFIJ'
|
||||
'c2lnbmF0dXJlGmEKClNpZ25lZERhdGESGwoJcHVibGljX2lkGAEgASgDUghwdWJsaWNJZBIXCg'
|
||||
'd1c2VyX2lkGAIgASgDUgZ1c2VySWQSHQoKcHVibGljX2tleRgDIAEoDFIJcHVibGljS2V5QiAK'
|
||||
'Hl9wdWJsaWNfa2V5X3ZlcmlmaWVkX3RpbWVzdGFtcBo4ChNVc2VyRGlzY292ZXJ5UmVjYWxsEi'
|
||||
'EKDHByb21vdGlvbl9pZBgBIAEoA1ILcHJvbW90aW9uSWRCHgocX3VzZXJfZGlzY292ZXJ5X2Fu'
|
||||
'bm91bmNlbWVudEIbChlfdXNlcl9kaXNjb3ZlcnlfcHJvbW90aW9uQhgKFl91c2VyX2Rpc2Nvdm'
|
||||
'VyeV9yZWNhbGw=');
|
||||
|
|
@ -2,22 +2,22 @@ syntax = "proto3";
|
|||
|
||||
// Stored encrypted on the server in the members columns.
|
||||
message EncryptedGroupState {
|
||||
repeated int64 memberIds = 1;
|
||||
repeated int64 adminIds = 2;
|
||||
string groupName = 3;
|
||||
optional int64 deleteMessagesAfterMilliseconds = 4;
|
||||
bytes padding = 5;
|
||||
repeated int64 member_ids = 1;
|
||||
repeated int64 admin_ids = 2;
|
||||
string group_name = 3;
|
||||
optional int64 delete_messages_after_milliseconds = 4;
|
||||
bytes padding = 5;
|
||||
}
|
||||
|
||||
message EncryptedAppendedGroupState {
|
||||
enum Type {
|
||||
LEFT_GROUP = 0;
|
||||
}
|
||||
Type type = 1;
|
||||
enum Type {
|
||||
LEFT_GROUP = 0;
|
||||
}
|
||||
Type type = 1;
|
||||
}
|
||||
|
||||
message EncryptedGroupStateEnvelop {
|
||||
bytes nonce = 1;
|
||||
bytes encryptedGroupState = 2;
|
||||
bytes mac = 3;
|
||||
bytes nonce = 1;
|
||||
bytes encrypted_group_state = 2;
|
||||
bytes mac = 3;
|
||||
}
|
||||
|
|
@ -1,203 +1,217 @@
|
|||
syntax = "proto3";
|
||||
|
||||
message Message {
|
||||
enum Type {
|
||||
SENDER_DELIVERY_RECEIPT = 0;
|
||||
PLAINTEXT_CONTENT = 1;
|
||||
CIPHERTEXT = 2;
|
||||
PREKEY_BUNDLE = 3;
|
||||
TEST_NOTIFICATION = 4;
|
||||
}
|
||||
Type type = 1;
|
||||
string receiptId = 2;
|
||||
optional bytes encryptedContent = 3;
|
||||
optional PlaintextContent plaintextContent = 4;
|
||||
enum Type {
|
||||
SENDER_DELIVERY_RECEIPT = 0;
|
||||
PLAINTEXT_CONTENT = 1;
|
||||
CIPHERTEXT = 2;
|
||||
PREKEY_BUNDLE = 3;
|
||||
TEST_NOTIFICATION = 4;
|
||||
}
|
||||
Type type = 1;
|
||||
string receipt_id = 2;
|
||||
optional bytes encrypted_content = 3;
|
||||
optional PlaintextContent plaintext_content = 4;
|
||||
}
|
||||
|
||||
message PlaintextContent {
|
||||
optional DecryptionErrorMessage decryptionErrorMessage = 1;
|
||||
optional RetryErrorMessage retryControlError = 2;
|
||||
optional DecryptionErrorMessage decryption_error_message = 1;
|
||||
optional RetryErrorMessage retry_control_error = 2;
|
||||
|
||||
message RetryErrorMessage { }
|
||||
message RetryErrorMessage { }
|
||||
|
||||
message DecryptionErrorMessage {
|
||||
enum Type {
|
||||
UNKNOWN = 0;
|
||||
PREKEY_UNKNOWN = 1;
|
||||
}
|
||||
Type type = 1;
|
||||
message DecryptionErrorMessage {
|
||||
enum Type {
|
||||
UNKNOWN = 0;
|
||||
PREKEY_UNKNOWN = 1;
|
||||
}
|
||||
Type type = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
message EncryptedContent {
|
||||
|
||||
optional string groupId = 2;
|
||||
optional bool isDirectChat = 3;
|
||||
optional string group_id = 2;
|
||||
optional bool is_direct_chat = 3;
|
||||
|
||||
/// This can be added, so the receiver can check weather he is up to date with the current profile
|
||||
optional int64 senderProfileCounter = 4;
|
||||
optional int64 sender_profile_counter = 4;
|
||||
optional bytes sender_user_discovery_version = 21;
|
||||
|
||||
optional MessageUpdate messageUpdate = 5;
|
||||
optional Media media = 6;
|
||||
optional MediaUpdate mediaUpdate = 7;
|
||||
optional ContactUpdate contactUpdate = 8;
|
||||
optional ContactRequest contactRequest = 9;
|
||||
optional FlameSync flameSync = 10;
|
||||
optional PushKeys pushKeys = 11;
|
||||
optional Reaction reaction = 12;
|
||||
optional TextMessage textMessage = 13;
|
||||
optional GroupCreate groupCreate = 14;
|
||||
optional GroupJoin groupJoin = 15;
|
||||
optional GroupUpdate groupUpdate = 16;
|
||||
optional ResendGroupPublicKey resendGroupPublicKey = 17;
|
||||
optional ErrorMessages error_messages = 18;
|
||||
optional AdditionalDataMessage additional_data_message = 19;
|
||||
optional TypingIndicator typing_indicator = 20;
|
||||
optional MessageUpdate message_update = 5;
|
||||
optional Media media = 6;
|
||||
optional MediaUpdate media_update = 7;
|
||||
optional ContactUpdate contact_update = 8;
|
||||
optional ContactRequest contact_request = 9;
|
||||
optional FlameSync flame_sync = 10;
|
||||
optional PushKeys push_keys = 11;
|
||||
optional Reaction reaction = 12;
|
||||
optional TextMessage text_message = 13;
|
||||
optional GroupCreate group_create = 14;
|
||||
optional GroupJoin group_join = 15;
|
||||
optional GroupUpdate group_update = 16;
|
||||
optional ResendGroupPublicKey resend_group_public_key = 17;
|
||||
optional ErrorMessages error_messages = 18;
|
||||
optional AdditionalDataMessage additional_data_message = 19;
|
||||
optional TypingIndicator typing_indicator = 20;
|
||||
optional UserDiscoveryRequest user_discovery_request = 22;
|
||||
optional UserDiscoveryUpdate user_discovery_update = 23;
|
||||
optional KeyVerificationProof key_verification_proof = 24;
|
||||
|
||||
message ErrorMessages {
|
||||
enum Type {
|
||||
ERROR_PROCESSING_MESSAGE_CREATED_ACCOUNT_REQUEST_INSTEAD = 0;
|
||||
UNKNOWN_MESSAGE_TYPE = 2;
|
||||
SESSION_OUT_OF_SYNC = 3;
|
||||
}
|
||||
Type type = 1;
|
||||
string related_receipt_id = 2;
|
||||
message ErrorMessages {
|
||||
enum Type {
|
||||
ERROR_PROCESSING_MESSAGE_CREATED_ACCOUNT_REQUEST_INSTEAD = 0;
|
||||
UNKNOWN_MESSAGE_TYPE = 2;
|
||||
SESSION_OUT_OF_SYNC = 3;
|
||||
}
|
||||
Type type = 1;
|
||||
string related_receipt_id = 2;
|
||||
}
|
||||
|
||||
message GroupCreate {
|
||||
// key for the state stored on the server
|
||||
bytes state_key = 3;
|
||||
bytes group_public_key = 4;
|
||||
}
|
||||
|
||||
message GroupCreate {
|
||||
message GroupJoin {
|
||||
// key for the state stored on the server
|
||||
bytes stateKey = 3;
|
||||
bytes groupPublicKey = 4;
|
||||
bytes group_public_key = 1;
|
||||
}
|
||||
|
||||
message ResendGroupPublicKey {
|
||||
|
||||
}
|
||||
|
||||
message GroupUpdate {
|
||||
string group_action_type = 1; // GroupActionType.name
|
||||
optional int64 affected_contact_id = 2;
|
||||
optional string new_group_name = 3;
|
||||
optional int64 new_delete_messages_after_milliseconds = 4;
|
||||
}
|
||||
|
||||
message TextMessage {
|
||||
string sender_message_id = 1;
|
||||
string text = 2;
|
||||
int64 timestamp = 3;
|
||||
optional string quote_message_id = 4;
|
||||
}
|
||||
|
||||
message AdditionalDataMessage {
|
||||
string sender_message_id = 1;
|
||||
int64 timestamp = 2;
|
||||
string type = 3;
|
||||
optional bytes additional_message_data = 4;
|
||||
}
|
||||
|
||||
message Reaction {
|
||||
string target_message_id = 1;
|
||||
string emoji = 2;
|
||||
bool remove = 3;
|
||||
}
|
||||
|
||||
message MessageUpdate {
|
||||
enum Type {
|
||||
DELETE = 0;
|
||||
EDIT_TEXT = 1;
|
||||
OPENED = 2;
|
||||
}
|
||||
Type type = 1;
|
||||
optional string sender_message_id = 2;
|
||||
repeated string multiple_target_message_ids = 3;
|
||||
optional string text = 4;
|
||||
int64 timestamp = 5;
|
||||
}
|
||||
|
||||
message Media {
|
||||
enum Type {
|
||||
REUPLOAD = 0;
|
||||
IMAGE = 1;
|
||||
VIDEO = 2;
|
||||
GIF = 3;
|
||||
AUDIO = 4;
|
||||
}
|
||||
|
||||
message GroupJoin {
|
||||
// key for the state stored on the server
|
||||
bytes groupPublicKey = 1;
|
||||
string sender_message_id = 1;
|
||||
Type type = 2;
|
||||
optional int64 display_limit_in_milliseconds = 3;
|
||||
bool requires_authentication = 4;
|
||||
int64 timestamp = 5;
|
||||
optional string quote_message_id = 6;
|
||||
|
||||
optional bytes download_token = 7;
|
||||
optional bytes encryption_key = 8;
|
||||
optional bytes encryption_mac = 9;
|
||||
optional bytes encryption_nonce = 10;
|
||||
|
||||
optional bytes additional_message_data = 11;
|
||||
}
|
||||
|
||||
message MediaUpdate {
|
||||
enum Type {
|
||||
REOPENED = 0;
|
||||
STORED = 1;
|
||||
DECRYPTION_ERROR = 2;
|
||||
}
|
||||
Type type = 1;
|
||||
string target_message_id = 2;
|
||||
}
|
||||
|
||||
message ContactRequest {
|
||||
enum Type {
|
||||
REQUEST = 0;
|
||||
REJECT = 1;
|
||||
ACCEPT = 2;
|
||||
}
|
||||
Type type = 1;
|
||||
}
|
||||
|
||||
message ContactUpdate {
|
||||
enum Type {
|
||||
REQUEST = 0;
|
||||
UPDATE = 1;
|
||||
}
|
||||
|
||||
message ResendGroupPublicKey {
|
||||
Type type = 1;
|
||||
optional bytes avatar_svg_compressed = 2;
|
||||
optional string username = 3;
|
||||
optional string display_name = 4;
|
||||
}
|
||||
|
||||
message PushKeys {
|
||||
enum Type {
|
||||
REQUEST = 0;
|
||||
UPDATE = 1;
|
||||
}
|
||||
|
||||
message GroupUpdate {
|
||||
string groupActionType = 1; // GroupActionType.name
|
||||
optional int64 affectedContactId = 2;
|
||||
optional string newGroupName = 3;
|
||||
optional int64 newDeleteMessagesAfterMilliseconds = 4;
|
||||
}
|
||||
Type type = 1;
|
||||
optional int64 key_id = 2;
|
||||
optional bytes key = 3;
|
||||
optional int64 created_at = 4;
|
||||
}
|
||||
|
||||
message TextMessage {
|
||||
string senderMessageId = 1;
|
||||
string text = 2;
|
||||
int64 timestamp = 3;
|
||||
optional string quoteMessageId = 4;
|
||||
}
|
||||
message FlameSync {
|
||||
int64 flame_counter = 1;
|
||||
int64 last_flame_counter_change = 2;
|
||||
bool best_friend = 3;
|
||||
bool force_update = 4;
|
||||
}
|
||||
|
||||
message AdditionalDataMessage {
|
||||
string sender_message_id = 1;
|
||||
int64 timestamp = 2;
|
||||
string type = 3;
|
||||
optional bytes additional_message_data = 4;
|
||||
}
|
||||
message TypingIndicator {
|
||||
bool is_typing = 1;
|
||||
int64 created_at = 2;
|
||||
}
|
||||
|
||||
message Reaction {
|
||||
string targetMessageId = 1;
|
||||
string emoji = 2;
|
||||
bool remove = 3;
|
||||
}
|
||||
message UserDiscoveryRequest {
|
||||
bytes current_version = 1;
|
||||
}
|
||||
|
||||
message MessageUpdate {
|
||||
enum Type {
|
||||
DELETE = 0;
|
||||
EDIT_TEXT = 1;
|
||||
OPENED = 2;
|
||||
}
|
||||
Type type = 1;
|
||||
optional string senderMessageId = 2;
|
||||
repeated string multipleTargetMessageIds = 3;
|
||||
optional string text = 4;
|
||||
int64 timestamp = 5;
|
||||
}
|
||||
message UserDiscoveryUpdate {
|
||||
repeated bytes messages = 1;
|
||||
}
|
||||
|
||||
message Media {
|
||||
enum Type {
|
||||
REUPLOAD = 0;
|
||||
IMAGE = 1;
|
||||
VIDEO = 2;
|
||||
GIF = 3;
|
||||
AUDIO = 4;
|
||||
}
|
||||
|
||||
string senderMessageId = 1;
|
||||
Type type = 2;
|
||||
optional int64 displayLimitInMilliseconds = 3;
|
||||
bool requiresAuthentication = 4;
|
||||
int64 timestamp = 5;
|
||||
optional string quoteMessageId = 6;
|
||||
|
||||
optional bytes downloadToken = 7;
|
||||
optional bytes encryptionKey = 8;
|
||||
optional bytes encryptionMac = 9;
|
||||
optional bytes encryptionNonce = 10;
|
||||
|
||||
optional bytes additional_message_data = 11;
|
||||
}
|
||||
|
||||
message MediaUpdate {
|
||||
enum Type {
|
||||
REOPENED = 0;
|
||||
STORED = 1;
|
||||
DECRYPTION_ERROR = 2;
|
||||
}
|
||||
Type type = 1;
|
||||
string targetMessageId = 2;
|
||||
}
|
||||
|
||||
message ContactRequest {
|
||||
enum Type {
|
||||
REQUEST = 0;
|
||||
REJECT = 1;
|
||||
ACCEPT = 2;
|
||||
}
|
||||
Type type = 1;
|
||||
}
|
||||
|
||||
message ContactUpdate {
|
||||
enum Type {
|
||||
REQUEST = 0;
|
||||
UPDATE = 1;
|
||||
}
|
||||
|
||||
Type type = 1;
|
||||
optional bytes avatarSvgCompressed = 2;
|
||||
optional string username = 3;
|
||||
optional string displayName = 4;
|
||||
}
|
||||
|
||||
message PushKeys {
|
||||
enum Type {
|
||||
REQUEST = 0;
|
||||
UPDATE = 1;
|
||||
}
|
||||
|
||||
Type type = 1;
|
||||
optional int64 keyId = 2;
|
||||
optional bytes key = 3;
|
||||
optional int64 createdAt = 4;
|
||||
}
|
||||
|
||||
message FlameSync {
|
||||
int64 flameCounter = 1;
|
||||
int64 lastFlameCounterChange = 2;
|
||||
bool bestFriend = 3;
|
||||
bool forceUpdate = 4;
|
||||
}
|
||||
|
||||
message TypingIndicator {
|
||||
bool is_typing = 1;
|
||||
int64 created_at = 2;
|
||||
}
|
||||
message KeyVerificationProof {
|
||||
bytes calculated_mac = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,53 +1,52 @@
|
|||
syntax = "proto3";
|
||||
|
||||
message EncryptedPushNotification {
|
||||
int64 keyId = 1;
|
||||
bytes nonce = 2;
|
||||
bytes ciphertext = 3;
|
||||
bytes mac = 4;
|
||||
int64 key_id = 1;
|
||||
bytes nonce = 2;
|
||||
bytes ciphertext = 3;
|
||||
bytes mac = 4;
|
||||
}
|
||||
|
||||
enum PushKind {
|
||||
reaction = 0;
|
||||
response = 1;
|
||||
text = 2;
|
||||
video = 3;
|
||||
twonly = 4;
|
||||
image = 5;
|
||||
contactRequest = 6;
|
||||
acceptRequest = 7;
|
||||
storedMediaFile = 8;
|
||||
testNotification = 9;
|
||||
reopenedMedia = 10;
|
||||
reactionToVideo = 11;
|
||||
reactionToText = 12;
|
||||
reactionToImage = 13;
|
||||
reactionToAudio = 14;
|
||||
addedToGroup = 15;
|
||||
audio = 16;
|
||||
REACTION = 0;
|
||||
RESPONSE = 1;
|
||||
TEXT = 2;
|
||||
VIDEO = 3;
|
||||
TWONLY = 4;
|
||||
IMAGE = 5;
|
||||
CONTACT_REQUEST = 6;
|
||||
ACCEPT_REQUEST = 7;
|
||||
STORED_MEDIA_FILE = 8;
|
||||
TEST_NOTIFICATION = 9;
|
||||
REOPENED_MEDIA = 10;
|
||||
REACTION_TO_VIDEO = 11;
|
||||
REACTION_TO_TEXT = 12;
|
||||
REACTION_TO_IMAGE = 13;
|
||||
REACTION_TO_AUDIO = 14;
|
||||
ADDED_TO_GROUP = 15;
|
||||
AUDIO = 16;
|
||||
};
|
||||
|
||||
message PushNotification {
|
||||
PushKind kind = 1;
|
||||
optional string messageId = 2;
|
||||
optional string additionalContent = 3;
|
||||
PushKind kind = 1;
|
||||
optional string message_id = 2;
|
||||
optional string additional_content = 3;
|
||||
}
|
||||
|
||||
|
||||
message PushUsers {
|
||||
repeated PushUser users = 1;
|
||||
repeated PushUser users = 1;
|
||||
}
|
||||
|
||||
message PushUser {
|
||||
int64 userId = 1;
|
||||
string displayName = 2;
|
||||
bool blocked = 3;
|
||||
optional string lastMessageId = 4;
|
||||
repeated PushKey pushKeys = 5;
|
||||
int64 user_id = 1;
|
||||
string display_name = 2;
|
||||
bool blocked = 3;
|
||||
optional string last_message_id = 4;
|
||||
repeated PushKey push_keys = 5;
|
||||
}
|
||||
|
||||
message PushKey {
|
||||
int64 id = 1;
|
||||
bytes key = 2;
|
||||
int64 createdAtUnixTimestamp = 3;
|
||||
int64 id = 1;
|
||||
bytes key = 2;
|
||||
int64 created_at_unix_timestamp = 3;
|
||||
}
|
||||
|
|
@ -1,19 +1,20 @@
|
|||
syntax = "proto3";
|
||||
|
||||
message QREnvelope {
|
||||
enum Type {
|
||||
PublicProfile = 0;
|
||||
}
|
||||
Type type = 2;
|
||||
bytes data = 3;
|
||||
enum Type {
|
||||
PUBLIC_PROFILE = 0;
|
||||
}
|
||||
Type type = 2;
|
||||
bytes data = 3;
|
||||
}
|
||||
|
||||
message PublicProfile {
|
||||
int64 user_id = 1;
|
||||
string username = 2;
|
||||
bytes public_identity_key = 3;
|
||||
bytes signed_prekey = 4;
|
||||
int64 registration_id = 5;
|
||||
bytes signed_prekey_signature = 6;
|
||||
int64 signed_prekey_id = 7;
|
||||
int64 user_id = 1;
|
||||
string username = 2;
|
||||
bytes public_identity_key = 3;
|
||||
bytes signed_prekey = 4;
|
||||
int64 registration_id = 5;
|
||||
bytes signed_prekey_signature = 6;
|
||||
int64 signed_prekey_id = 7;
|
||||
optional bytes secret_verification_token = 8;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,25 @@
|
|||
import 'dart:async';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:twonly/locator.dart';
|
||||
|
||||
class CustomChangeProvider with ChangeNotifier, DiagnosticableTreeMixin {
|
||||
bool _isConnected = false;
|
||||
CustomChangeProvider() {
|
||||
// The API is connected before the subscription has started so ensure that the connection state is correct
|
||||
_isConnected = apiService.isConnected;
|
||||
_connSub = apiService.onConnectionStateUpdated.listen(
|
||||
updateConnectionState,
|
||||
);
|
||||
}
|
||||
late bool _isConnected;
|
||||
late StreamSubscription<bool> _connSub;
|
||||
bool get isConnected => _isConnected;
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_connSub.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
Future<void> updateConnectionState(bool update) async {
|
||||
_isConnected = update;
|
||||
notifyListeners();
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue