mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-05-25 02:12:13 +00:00
add user discovery settings view
This commit is contained in:
parent
cd2a254d23
commit
1629b8b1a9
21 changed files with 13992 additions and 50 deletions
|
|
@ -134,6 +134,17 @@ class ContactsDao extends DatabaseAccessor<TwonlyDB> with _$ContactsDaoMixin {
|
|||
.watch();
|
||||
}
|
||||
|
||||
Stream<List<Contact>> watchContactsAnnouncedViaUserDiscovery() {
|
||||
return (select(contacts)..where(
|
||||
(t) =>
|
||||
t.userDiscoveryVersion.isNotNull() &
|
||||
t.mediaSendCounter.isBiggerOrEqualValue(
|
||||
gUser.minimumRequiredImagesExchanged,
|
||||
),
|
||||
))
|
||||
.watch();
|
||||
}
|
||||
|
||||
Stream<List<Contact>> watchAllContacts() {
|
||||
return select(contacts).watch();
|
||||
}
|
||||
|
|
|
|||
2675
lib/src/database/schemas/twonly_db/drift_schema_v13.json
Normal file
2675
lib/src/database/schemas/twonly_db/drift_schema_v13.json
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -26,6 +26,10 @@ class Contacts extends Table {
|
|||
// contact_versions: HashMap<UserID, Vec<u8>>,
|
||||
BlobColumn get userDiscoveryVersion => blob().nullable()();
|
||||
|
||||
IntColumn get mediaSendCounter => integer().withDefault(const Constant(0))();
|
||||
IntColumn get mediaReceivedCounter =>
|
||||
integer().withDefault(const Constant(0))();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {userId};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class TwonlyDB extends _$TwonlyDB {
|
|||
TwonlyDB.forTesting(DatabaseConnection super.connection);
|
||||
|
||||
@override
|
||||
int get schemaVersion => 12;
|
||||
int get schemaVersion => 13;
|
||||
|
||||
static QueryExecutor _openConnection() {
|
||||
return driftDatabase(
|
||||
|
|
@ -181,6 +181,16 @@ class TwonlyDB extends _$TwonlyDB {
|
|||
schema.contacts.userDiscoveryVersion,
|
||||
);
|
||||
},
|
||||
from12To13: (m, schema) async {
|
||||
await m.addColumn(
|
||||
schema.contacts,
|
||||
schema.contacts.mediaReceivedCounter,
|
||||
);
|
||||
await m.addColumn(
|
||||
schema.contacts,
|
||||
schema.contacts.mediaSendCounter,
|
||||
);
|
||||
},
|
||||
)(m, from, to);
|
||||
},
|
||||
);
|
||||
|
|
|
|||
|
|
@ -185,6 +185,29 @@ class $ContactsTable extends Contacts with TableInfo<$ContactsTable, Contact> {
|
|||
type: DriftSqlType.blob,
|
||||
requiredDuringInsert: false,
|
||||
);
|
||||
static const VerificationMeta _mediaSendCounterMeta = const VerificationMeta(
|
||||
'mediaSendCounter',
|
||||
);
|
||||
@override
|
||||
late final GeneratedColumn<int> mediaSendCounter = GeneratedColumn<int>(
|
||||
'media_send_counter',
|
||||
aliasedName,
|
||||
false,
|
||||
type: DriftSqlType.int,
|
||||
requiredDuringInsert: false,
|
||||
defaultValue: const Constant(0),
|
||||
);
|
||||
static const VerificationMeta _mediaReceivedCounterMeta =
|
||||
const VerificationMeta('mediaReceivedCounter');
|
||||
@override
|
||||
late final GeneratedColumn<int> mediaReceivedCounter = GeneratedColumn<int>(
|
||||
'media_received_counter',
|
||||
aliasedName,
|
||||
false,
|
||||
type: DriftSqlType.int,
|
||||
requiredDuringInsert: false,
|
||||
defaultValue: const Constant(0),
|
||||
);
|
||||
@override
|
||||
List<GeneratedColumn> get $columns => [
|
||||
userId,
|
||||
|
|
@ -201,6 +224,8 @@ class $ContactsTable extends Contacts with TableInfo<$ContactsTable, Contact> {
|
|||
accountDeleted,
|
||||
createdAt,
|
||||
userDiscoveryVersion,
|
||||
mediaSendCounter,
|
||||
mediaReceivedCounter,
|
||||
];
|
||||
@override
|
||||
String get aliasedName => _alias ?? actualTableName;
|
||||
|
|
@ -318,6 +343,24 @@ class $ContactsTable extends Contacts with TableInfo<$ContactsTable, Contact> {
|
|||
),
|
||||
);
|
||||
}
|
||||
if (data.containsKey('media_send_counter')) {
|
||||
context.handle(
|
||||
_mediaSendCounterMeta,
|
||||
mediaSendCounter.isAcceptableOrUnknown(
|
||||
data['media_send_counter']!,
|
||||
_mediaSendCounterMeta,
|
||||
),
|
||||
);
|
||||
}
|
||||
if (data.containsKey('media_received_counter')) {
|
||||
context.handle(
|
||||
_mediaReceivedCounterMeta,
|
||||
mediaReceivedCounter.isAcceptableOrUnknown(
|
||||
data['media_received_counter']!,
|
||||
_mediaReceivedCounterMeta,
|
||||
),
|
||||
);
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
|
|
@ -383,6 +426,14 @@ class $ContactsTable extends Contacts with TableInfo<$ContactsTable, Contact> {
|
|||
DriftSqlType.blob,
|
||||
data['${effectivePrefix}user_discovery_version'],
|
||||
),
|
||||
mediaSendCounter: attachedDatabase.typeMapping.read(
|
||||
DriftSqlType.int,
|
||||
data['${effectivePrefix}media_send_counter'],
|
||||
)!,
|
||||
mediaReceivedCounter: attachedDatabase.typeMapping.read(
|
||||
DriftSqlType.int,
|
||||
data['${effectivePrefix}media_received_counter'],
|
||||
)!,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -407,6 +458,8 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
final bool accountDeleted;
|
||||
final DateTime createdAt;
|
||||
final Uint8List? userDiscoveryVersion;
|
||||
final int mediaSendCounter;
|
||||
final int mediaReceivedCounter;
|
||||
const Contact({
|
||||
required this.userId,
|
||||
required this.username,
|
||||
|
|
@ -422,6 +475,8 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
required this.accountDeleted,
|
||||
required this.createdAt,
|
||||
this.userDiscoveryVersion,
|
||||
required this.mediaSendCounter,
|
||||
required this.mediaReceivedCounter,
|
||||
});
|
||||
@override
|
||||
Map<String, Expression> toColumns(bool nullToAbsent) {
|
||||
|
|
@ -448,6 +503,8 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
if (!nullToAbsent || userDiscoveryVersion != null) {
|
||||
map['user_discovery_version'] = Variable<Uint8List>(userDiscoveryVersion);
|
||||
}
|
||||
map['media_send_counter'] = Variable<int>(mediaSendCounter);
|
||||
map['media_received_counter'] = Variable<int>(mediaReceivedCounter);
|
||||
return map;
|
||||
}
|
||||
|
||||
|
|
@ -475,6 +532,8 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
userDiscoveryVersion: userDiscoveryVersion == null && nullToAbsent
|
||||
? const Value.absent()
|
||||
: Value(userDiscoveryVersion),
|
||||
mediaSendCounter: Value(mediaSendCounter),
|
||||
mediaReceivedCounter: Value(mediaReceivedCounter),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -504,6 +563,10 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
userDiscoveryVersion: serializer.fromJson<Uint8List?>(
|
||||
json['userDiscoveryVersion'],
|
||||
),
|
||||
mediaSendCounter: serializer.fromJson<int>(json['mediaSendCounter']),
|
||||
mediaReceivedCounter: serializer.fromJson<int>(
|
||||
json['mediaReceivedCounter'],
|
||||
),
|
||||
);
|
||||
}
|
||||
@override
|
||||
|
|
@ -526,6 +589,8 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
'userDiscoveryVersion': serializer.toJson<Uint8List?>(
|
||||
userDiscoveryVersion,
|
||||
),
|
||||
'mediaSendCounter': serializer.toJson<int>(mediaSendCounter),
|
||||
'mediaReceivedCounter': serializer.toJson<int>(mediaReceivedCounter),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -544,6 +609,8 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
bool? accountDeleted,
|
||||
DateTime? createdAt,
|
||||
Value<Uint8List?> userDiscoveryVersion = const Value.absent(),
|
||||
int? mediaSendCounter,
|
||||
int? mediaReceivedCounter,
|
||||
}) => Contact(
|
||||
userId: userId ?? this.userId,
|
||||
username: username ?? this.username,
|
||||
|
|
@ -563,6 +630,8 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
userDiscoveryVersion: userDiscoveryVersion.present
|
||||
? userDiscoveryVersion.value
|
||||
: this.userDiscoveryVersion,
|
||||
mediaSendCounter: mediaSendCounter ?? this.mediaSendCounter,
|
||||
mediaReceivedCounter: mediaReceivedCounter ?? this.mediaReceivedCounter,
|
||||
);
|
||||
Contact copyWithCompanion(ContactsCompanion data) {
|
||||
return Contact(
|
||||
|
|
@ -592,6 +661,12 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
userDiscoveryVersion: data.userDiscoveryVersion.present
|
||||
? data.userDiscoveryVersion.value
|
||||
: this.userDiscoveryVersion,
|
||||
mediaSendCounter: data.mediaSendCounter.present
|
||||
? data.mediaSendCounter.value
|
||||
: this.mediaSendCounter,
|
||||
mediaReceivedCounter: data.mediaReceivedCounter.present
|
||||
? data.mediaReceivedCounter.value
|
||||
: this.mediaReceivedCounter,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -611,7 +686,9 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
..write('verified: $verified, ')
|
||||
..write('accountDeleted: $accountDeleted, ')
|
||||
..write('createdAt: $createdAt, ')
|
||||
..write('userDiscoveryVersion: $userDiscoveryVersion')
|
||||
..write('userDiscoveryVersion: $userDiscoveryVersion, ')
|
||||
..write('mediaSendCounter: $mediaSendCounter, ')
|
||||
..write('mediaReceivedCounter: $mediaReceivedCounter')
|
||||
..write(')'))
|
||||
.toString();
|
||||
}
|
||||
|
|
@ -632,6 +709,8 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
accountDeleted,
|
||||
createdAt,
|
||||
$driftBlobEquality.hash(userDiscoveryVersion),
|
||||
mediaSendCounter,
|
||||
mediaReceivedCounter,
|
||||
);
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
|
|
@ -656,7 +735,9 @@ class Contact extends DataClass implements Insertable<Contact> {
|
|||
$driftBlobEquality.equals(
|
||||
other.userDiscoveryVersion,
|
||||
this.userDiscoveryVersion,
|
||||
));
|
||||
) &&
|
||||
other.mediaSendCounter == this.mediaSendCounter &&
|
||||
other.mediaReceivedCounter == this.mediaReceivedCounter);
|
||||
}
|
||||
|
||||
class ContactsCompanion extends UpdateCompanion<Contact> {
|
||||
|
|
@ -674,6 +755,8 @@ class ContactsCompanion extends UpdateCompanion<Contact> {
|
|||
final Value<bool> accountDeleted;
|
||||
final Value<DateTime> createdAt;
|
||||
final Value<Uint8List?> userDiscoveryVersion;
|
||||
final Value<int> mediaSendCounter;
|
||||
final Value<int> mediaReceivedCounter;
|
||||
const ContactsCompanion({
|
||||
this.userId = const Value.absent(),
|
||||
this.username = const Value.absent(),
|
||||
|
|
@ -689,6 +772,8 @@ class ContactsCompanion extends UpdateCompanion<Contact> {
|
|||
this.accountDeleted = const Value.absent(),
|
||||
this.createdAt = const Value.absent(),
|
||||
this.userDiscoveryVersion = const Value.absent(),
|
||||
this.mediaSendCounter = const Value.absent(),
|
||||
this.mediaReceivedCounter = const Value.absent(),
|
||||
});
|
||||
ContactsCompanion.insert({
|
||||
this.userId = const Value.absent(),
|
||||
|
|
@ -705,6 +790,8 @@ class ContactsCompanion extends UpdateCompanion<Contact> {
|
|||
this.accountDeleted = const Value.absent(),
|
||||
this.createdAt = const Value.absent(),
|
||||
this.userDiscoveryVersion = const Value.absent(),
|
||||
this.mediaSendCounter = const Value.absent(),
|
||||
this.mediaReceivedCounter = const Value.absent(),
|
||||
}) : username = Value(username);
|
||||
static Insertable<Contact> custom({
|
||||
Expression<int>? userId,
|
||||
|
|
@ -721,6 +808,8 @@ class ContactsCompanion extends UpdateCompanion<Contact> {
|
|||
Expression<bool>? accountDeleted,
|
||||
Expression<DateTime>? createdAt,
|
||||
Expression<Uint8List>? userDiscoveryVersion,
|
||||
Expression<int>? mediaSendCounter,
|
||||
Expression<int>? mediaReceivedCounter,
|
||||
}) {
|
||||
return RawValuesInsertable({
|
||||
if (userId != null) 'user_id': userId,
|
||||
|
|
@ -740,6 +829,9 @@ class ContactsCompanion extends UpdateCompanion<Contact> {
|
|||
if (createdAt != null) 'created_at': createdAt,
|
||||
if (userDiscoveryVersion != null)
|
||||
'user_discovery_version': userDiscoveryVersion,
|
||||
if (mediaSendCounter != null) 'media_send_counter': mediaSendCounter,
|
||||
if (mediaReceivedCounter != null)
|
||||
'media_received_counter': mediaReceivedCounter,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -758,6 +850,8 @@ class ContactsCompanion extends UpdateCompanion<Contact> {
|
|||
Value<bool>? accountDeleted,
|
||||
Value<DateTime>? createdAt,
|
||||
Value<Uint8List?>? userDiscoveryVersion,
|
||||
Value<int>? mediaSendCounter,
|
||||
Value<int>? mediaReceivedCounter,
|
||||
}) {
|
||||
return ContactsCompanion(
|
||||
userId: userId ?? this.userId,
|
||||
|
|
@ -774,6 +868,8 @@ class ContactsCompanion extends UpdateCompanion<Contact> {
|
|||
accountDeleted: accountDeleted ?? this.accountDeleted,
|
||||
createdAt: createdAt ?? this.createdAt,
|
||||
userDiscoveryVersion: userDiscoveryVersion ?? this.userDiscoveryVersion,
|
||||
mediaSendCounter: mediaSendCounter ?? this.mediaSendCounter,
|
||||
mediaReceivedCounter: mediaReceivedCounter ?? this.mediaReceivedCounter,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -826,6 +922,12 @@ class ContactsCompanion extends UpdateCompanion<Contact> {
|
|||
userDiscoveryVersion.value,
|
||||
);
|
||||
}
|
||||
if (mediaSendCounter.present) {
|
||||
map['media_send_counter'] = Variable<int>(mediaSendCounter.value);
|
||||
}
|
||||
if (mediaReceivedCounter.present) {
|
||||
map['media_received_counter'] = Variable<int>(mediaReceivedCounter.value);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
|
|
@ -845,7 +947,9 @@ class ContactsCompanion extends UpdateCompanion<Contact> {
|
|||
..write('verified: $verified, ')
|
||||
..write('accountDeleted: $accountDeleted, ')
|
||||
..write('createdAt: $createdAt, ')
|
||||
..write('userDiscoveryVersion: $userDiscoveryVersion')
|
||||
..write('userDiscoveryVersion: $userDiscoveryVersion, ')
|
||||
..write('mediaSendCounter: $mediaSendCounter, ')
|
||||
..write('mediaReceivedCounter: $mediaReceivedCounter')
|
||||
..write(')'))
|
||||
.toString();
|
||||
}
|
||||
|
|
@ -11241,6 +11345,8 @@ typedef $$ContactsTableCreateCompanionBuilder =
|
|||
Value<bool> accountDeleted,
|
||||
Value<DateTime> createdAt,
|
||||
Value<Uint8List?> userDiscoveryVersion,
|
||||
Value<int> mediaSendCounter,
|
||||
Value<int> mediaReceivedCounter,
|
||||
});
|
||||
typedef $$ContactsTableUpdateCompanionBuilder =
|
||||
ContactsCompanion Function({
|
||||
|
|
@ -11258,6 +11364,8 @@ typedef $$ContactsTableUpdateCompanionBuilder =
|
|||
Value<bool> accountDeleted,
|
||||
Value<DateTime> createdAt,
|
||||
Value<Uint8List?> userDiscoveryVersion,
|
||||
Value<int> mediaSendCounter,
|
||||
Value<int> mediaReceivedCounter,
|
||||
});
|
||||
|
||||
final class $$ContactsTableReferences
|
||||
|
|
@ -11632,6 +11740,16 @@ class $$ContactsTableFilterComposer
|
|||
builder: (column) => ColumnFilters(column),
|
||||
);
|
||||
|
||||
ColumnFilters<int> get mediaSendCounter => $composableBuilder(
|
||||
column: $table.mediaSendCounter,
|
||||
builder: (column) => ColumnFilters(column),
|
||||
);
|
||||
|
||||
ColumnFilters<int> get mediaReceivedCounter => $composableBuilder(
|
||||
column: $table.mediaReceivedCounter,
|
||||
builder: (column) => ColumnFilters(column),
|
||||
);
|
||||
|
||||
Expression<bool> messagesRefs(
|
||||
Expression<bool> Function($$MessagesTableFilterComposer f) f,
|
||||
) {
|
||||
|
|
@ -12019,6 +12137,16 @@ class $$ContactsTableOrderingComposer
|
|||
column: $table.userDiscoveryVersion,
|
||||
builder: (column) => ColumnOrderings(column),
|
||||
);
|
||||
|
||||
ColumnOrderings<int> get mediaSendCounter => $composableBuilder(
|
||||
column: $table.mediaSendCounter,
|
||||
builder: (column) => ColumnOrderings(column),
|
||||
);
|
||||
|
||||
ColumnOrderings<int> get mediaReceivedCounter => $composableBuilder(
|
||||
column: $table.mediaReceivedCounter,
|
||||
builder: (column) => ColumnOrderings(column),
|
||||
);
|
||||
}
|
||||
|
||||
class $$ContactsTableAnnotationComposer
|
||||
|
|
@ -12084,6 +12212,16 @@ class $$ContactsTableAnnotationComposer
|
|||
builder: (column) => column,
|
||||
);
|
||||
|
||||
GeneratedColumn<int> get mediaSendCounter => $composableBuilder(
|
||||
column: $table.mediaSendCounter,
|
||||
builder: (column) => column,
|
||||
);
|
||||
|
||||
GeneratedColumn<int> get mediaReceivedCounter => $composableBuilder(
|
||||
column: $table.mediaReceivedCounter,
|
||||
builder: (column) => column,
|
||||
);
|
||||
|
||||
Expression<T> messagesRefs<T extends Object>(
|
||||
Expression<T> Function($$MessagesTableAnnotationComposer a) f,
|
||||
) {
|
||||
|
|
@ -12453,6 +12591,8 @@ class $$ContactsTableTableManager
|
|||
Value<bool> accountDeleted = const Value.absent(),
|
||||
Value<DateTime> createdAt = const Value.absent(),
|
||||
Value<Uint8List?> userDiscoveryVersion = const Value.absent(),
|
||||
Value<int> mediaSendCounter = const Value.absent(),
|
||||
Value<int> mediaReceivedCounter = const Value.absent(),
|
||||
}) => ContactsCompanion(
|
||||
userId: userId,
|
||||
username: username,
|
||||
|
|
@ -12468,6 +12608,8 @@ class $$ContactsTableTableManager
|
|||
accountDeleted: accountDeleted,
|
||||
createdAt: createdAt,
|
||||
userDiscoveryVersion: userDiscoveryVersion,
|
||||
mediaSendCounter: mediaSendCounter,
|
||||
mediaReceivedCounter: mediaReceivedCounter,
|
||||
),
|
||||
createCompanionCallback:
|
||||
({
|
||||
|
|
@ -12485,6 +12627,8 @@ class $$ContactsTableTableManager
|
|||
Value<bool> accountDeleted = const Value.absent(),
|
||||
Value<DateTime> createdAt = const Value.absent(),
|
||||
Value<Uint8List?> userDiscoveryVersion = const Value.absent(),
|
||||
Value<int> mediaSendCounter = const Value.absent(),
|
||||
Value<int> mediaReceivedCounter = const Value.absent(),
|
||||
}) => ContactsCompanion.insert(
|
||||
userId: userId,
|
||||
username: username,
|
||||
|
|
@ -12500,6 +12644,8 @@ class $$ContactsTableTableManager
|
|||
accountDeleted: accountDeleted,
|
||||
createdAt: createdAt,
|
||||
userDiscoveryVersion: userDiscoveryVersion,
|
||||
mediaSendCounter: mediaSendCounter,
|
||||
mediaReceivedCounter: mediaReceivedCounter,
|
||||
),
|
||||
withReferenceMapper: (p0) => p0
|
||||
.map(
|
||||
|
|
|
|||
|
|
@ -6479,6 +6479,459 @@ i1.GeneratedColumn<i2.Uint8List> _column_227(String aliasedName) =>
|
|||
type: i1.DriftSqlType.blob,
|
||||
$customConstraints: 'NOT NULL',
|
||||
);
|
||||
|
||||
final class Schema13 extends i0.VersionedSchema {
|
||||
Schema13({required super.database}) : super(version: 13);
|
||||
@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 Shape47 contacts = Shape47(
|
||||
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_228,
|
||||
_column_229,
|
||||
],
|
||||
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: ['PRIMARY KEY(contact_id)'],
|
||||
columns: [_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_212, _column_213, _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_214, _column_215, _column_216],
|
||||
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_217, _column_218, _column_219],
|
||||
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, promotion_id)'],
|
||||
columns: [
|
||||
_column_218,
|
||||
_column_220,
|
||||
_column_221,
|
||||
_column_222,
|
||||
_column_223,
|
||||
_column_219,
|
||||
],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape45 userDiscoveryOwnPromotions = Shape45(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'user_discovery_own_promotions',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: [],
|
||||
columns: [_column_224, _column_183, _column_225],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
late final Shape46 userDiscoveryShares = Shape46(
|
||||
source: i0.VersionedTable(
|
||||
entityName: 'user_discovery_shares',
|
||||
withoutRowId: false,
|
||||
isStrict: false,
|
||||
tableConstraints: [],
|
||||
columns: [_column_226, _column_227, _column_175],
|
||||
attachedDatabase: database,
|
||||
),
|
||||
alias: null,
|
||||
);
|
||||
}
|
||||
|
||||
class Shape47 extends i0.VersionedTable {
|
||||
Shape47({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 mediaSendCounter =>
|
||||
columnsByName['media_send_counter']! as i1.GeneratedColumn<int>;
|
||||
i1.GeneratedColumn<int> get mediaReceivedCounter =>
|
||||
columnsByName['media_received_counter']! as i1.GeneratedColumn<int>;
|
||||
}
|
||||
|
||||
i1.GeneratedColumn<int> _column_228(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_229(String aliasedName) =>
|
||||
i1.GeneratedColumn<int>(
|
||||
'media_received_counter',
|
||||
aliasedName,
|
||||
false,
|
||||
type: i1.DriftSqlType.int,
|
||||
$customConstraints: 'NOT NULL DEFAULT 0',
|
||||
defaultValue: const i1.CustomExpression('0'),
|
||||
);
|
||||
i0.MigrationStepWithVersion migrationSteps({
|
||||
required Future<void> Function(i1.Migrator m, Schema2 schema) from1To2,
|
||||
required Future<void> Function(i1.Migrator m, Schema3 schema) from2To3,
|
||||
|
|
@ -6491,6 +6944,7 @@ i0.MigrationStepWithVersion migrationSteps({
|
|||
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,
|
||||
required Future<void> Function(i1.Migrator m, Schema13 schema) from12To13,
|
||||
}) {
|
||||
return (currentVersion, database) async {
|
||||
switch (currentVersion) {
|
||||
|
|
@ -6549,6 +7003,11 @@ i0.MigrationStepWithVersion migrationSteps({
|
|||
final migrator = i1.Migrator(database, schema);
|
||||
await from11To12(migrator, schema);
|
||||
return 12;
|
||||
case 12:
|
||||
final schema = Schema13(database: database);
|
||||
final migrator = i1.Migrator(database, schema);
|
||||
await from12To13(migrator, schema);
|
||||
return 13;
|
||||
default:
|
||||
throw ArgumentError.value('Unknown migration from $currentVersion');
|
||||
}
|
||||
|
|
@ -6567,6 +7026,7 @@ i1.OnUpgrade stepByStep({
|
|||
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,
|
||||
required Future<void> Function(i1.Migrator m, Schema13 schema) from12To13,
|
||||
}) => i0.VersionedSchema.stepByStepHelper(
|
||||
step: migrationSteps(
|
||||
from1To2: from1To2,
|
||||
|
|
@ -6580,5 +7040,6 @@ i1.OnUpgrade stepByStep({
|
|||
from9To10: from9To10,
|
||||
from10To11: from10To11,
|
||||
from11To12: from11To12,
|
||||
from12To13: from12To13,
|
||||
),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -96,9 +96,12 @@ class UserData {
|
|||
@JsonKey(defaultValue: false)
|
||||
bool isUserDiscoveryEnabled = false;
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
@JsonKey(defaultValue: 4)
|
||||
int minimumRequiredImagesExchanged = 4;
|
||||
|
||||
@JsonKey(defaultValue: 2)
|
||||
int userDiscoveryThreshold = 2;
|
||||
|
||||
// -- Custom DATA --
|
||||
|
||||
@JsonKey(defaultValue: 100_000)
|
||||
|
|
|
|||
|
|
@ -63,6 +63,10 @@ UserData _$UserDataFromJson(Map<String, dynamic> json) =>
|
|||
..screenLockEnabled = json['screenLockEnabled'] as bool? ?? false
|
||||
..isUserDiscoveryEnabled =
|
||||
json['isUserDiscoveryEnabled'] as bool? ?? false
|
||||
..minimumRequiredImagesExchanged =
|
||||
(json['minimumRequiredImagesExchanged'] as num?)?.toInt() ?? 4
|
||||
..userDiscoveryThreshold =
|
||||
(json['userDiscoveryThreshold'] as num?)?.toInt() ?? 2
|
||||
..currentPreKeyIndexStart =
|
||||
(json['currentPreKeyIndexStart'] as num?)?.toInt() ?? 100000
|
||||
..currentSignedPreKeyIndexStart =
|
||||
|
|
@ -126,6 +130,8 @@ Map<String, dynamic> _$UserDataToJson(UserData instance) => <String, dynamic>{
|
|||
'allowErrorTrackingViaSentry': instance.allowErrorTrackingViaSentry,
|
||||
'screenLockEnabled': instance.screenLockEnabled,
|
||||
'isUserDiscoveryEnabled': instance.isUserDiscoveryEnabled,
|
||||
'minimumRequiredImagesExchanged': instance.minimumRequiredImagesExchanged,
|
||||
'userDiscoveryThreshold': instance.userDiscoveryThreshold,
|
||||
'currentPreKeyIndexStart': instance.currentPreKeyIndexStart,
|
||||
'currentSignedPreKeyIndexStart': instance.currentSignedPreKeyIndexStart,
|
||||
'lastChangeLogHash': instance.lastChangeLogHash,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,695 @@
|
|||
// 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
|
||||
|
||||
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)
|
||||
..a<$core.int>(
|
||||
1, _omitFieldNames ? '' : 'announcement', $pb.PbFieldType.OU3)
|
||||
..a<$core.int>(2, _omitFieldNames ? '' : 'promotion', $pb.PbFieldType.OU3)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryVersion clone() =>
|
||||
UserDiscoveryVersion()..mergeFromMessage(this);
|
||||
@$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();
|
||||
static $pb.PbList<UserDiscoveryVersion> createRepeated() =>
|
||||
$pb.PbList<UserDiscoveryVersion>();
|
||||
@$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.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 (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')
|
||||
..a<$core.int>(2, _omitFieldNames ? '' : 'threshold', $pb.PbFieldType.OU3)
|
||||
..a<$core.List<$core.int>>(
|
||||
4, _omitFieldNames ? '' : 'announcementShare', $pb.PbFieldType.OY)
|
||||
..p<$core.List<$core.int>>(
|
||||
6, _omitFieldNames ? '' : 'verificationShares', $pb.PbFieldType.PY)
|
||||
..hasRequiredFields = false;
|
||||
|
||||
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement clone() =>
|
||||
UserDiscoveryMessage_UserDiscoveryAnnouncement()..mergeFromMessage(this);
|
||||
@$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();
|
||||
static $pb.PbList<UserDiscoveryMessage_UserDiscoveryAnnouncement>
|
||||
createRepeated() =>
|
||||
$pb.PbList<UserDiscoveryMessage_UserDiscoveryAnnouncement>();
|
||||
@$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(4)
|
||||
$core.List<$core.int> get announcementShare => $_getN(2);
|
||||
@$pb.TagNumber(4)
|
||||
set announcementShare($core.List<$core.int> value) => $_setBytes(2, value);
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasAnnouncementShare() => $_has(2);
|
||||
@$pb.TagNumber(4)
|
||||
void clearAnnouncementShare() => $_clearField(4);
|
||||
|
||||
@$pb.TagNumber(6)
|
||||
$pb.PbList<$core.List<$core.int>> get verificationShares => $_getList(3);
|
||||
}
|
||||
|
||||
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() =>
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData()
|
||||
..mergeFromMessage(this);
|
||||
@$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();
|
||||
static $pb.PbList<
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData>
|
||||
createRepeated() => $pb.PbList<
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted_SignedData>();
|
||||
@$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() =>
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted()
|
||||
..mergeFromMessage(this);
|
||||
@$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();
|
||||
static $pb.PbList<
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted>
|
||||
createRepeated() => $pb.PbList<
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion_AnnouncementShareDecrypted>();
|
||||
@$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)
|
||||
..a<$core.int>(1, _omitFieldNames ? '' : 'promotionId', $pb.PbFieldType.OU3)
|
||||
..aInt64(2, _omitFieldNames ? '' : 'publicId')
|
||||
..a<$core.int>(3, _omitFieldNames ? '' : 'threshold', $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() =>
|
||||
UserDiscoveryMessage_UserDiscoveryPromotion()..mergeFromMessage(this);
|
||||
@$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();
|
||||
static $pb.PbList<UserDiscoveryMessage_UserDiscoveryPromotion>
|
||||
createRepeated() =>
|
||||
$pb.PbList<UserDiscoveryMessage_UserDiscoveryPromotion>();
|
||||
@$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() =>
|
||||
UserDiscoveryMessage_UserDiscoveryRecall()..mergeFromMessage(this);
|
||||
@$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();
|
||||
static $pb.PbList<UserDiscoveryMessage_UserDiscoveryRecall>
|
||||
createRepeated() =>
|
||||
$pb.PbList<UserDiscoveryMessage_UserDiscoveryRecall>();
|
||||
@$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() =>
|
||||
UserDiscoveryMessage()..mergeFromMessage(this);
|
||||
@$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();
|
||||
static $pb.PbList<UserDiscoveryMessage> createRepeated() =>
|
||||
$pb.PbList<UserDiscoveryMessage>();
|
||||
@$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
|
||||
|
|
@ -0,0 +1,207 @@
|
|||
// 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, 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': 4,
|
||||
'4': 1,
|
||||
'5': 12,
|
||||
'10': 'announcementShare'
|
||||
},
|
||||
{
|
||||
'1': 'verification_shares',
|
||||
'3': 6,
|
||||
'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'
|
||||
'Y292ZXJ5UmVjYWxsiAEBGrYBChlVc2VyRGlzY292ZXJ5QW5ub3VuY2VtZW50EhsKCXB1YmxpY1'
|
||||
'9pZBgBIAEoA1IIcHVibGljSWQSHAoJdGhyZXNob2xkGAIgASgNUgl0aHJlc2hvbGQSLQoSYW5u'
|
||||
'b3VuY2VtZW50X3NoYXJlGAQgASgMUhFhbm5vdW5jZW1lbnRTaGFyZRIvChN2ZXJpZmljYXRpb2'
|
||||
'5fc2hhcmVzGAYgAygMUhJ2ZXJpZmljYXRpb25TaGFyZXMatAQKFlVzZXJEaXNjb3ZlcnlQcm9t'
|
||||
'b3Rpb24SIQoMcHJvbW90aW9uX2lkGAEgASgNUgtwcm9tb3Rpb25JZBIbCglwdWJsaWNfaWQYAi'
|
||||
'ABKANSCHB1YmxpY0lkEhwKCXRocmVzaG9sZBgDIAEoDVIJdGhyZXNob2xkEi0KEmFubm91bmNl'
|
||||
'bWVudF9zaGFyZRgFIAEoDFIRYW5ub3VuY2VtZW50U2hhcmUSRgodcHVibGljX2tleV92ZXJpZm'
|
||||
'llZF90aW1lc3RhbXAYBiABKANIAFIacHVibGljS2V5VmVyaWZpZWRUaW1lc3RhbXCIAQEaogIK'
|
||||
'GkFubm91bmNlbWVudFNoYXJlRGVjcnlwdGVkEoIBCgtzaWduZWRfZGF0YRgBIAEoCzJhLnVzZX'
|
||||
'JfZGlzY292ZXJ5LlVzZXJEaXNjb3ZlcnlNZXNzYWdlLlVzZXJEaXNjb3ZlcnlQcm9tb3Rpb24u'
|
||||
'QW5ub3VuY2VtZW50U2hhcmVEZWNyeXB0ZWQuU2lnbmVkRGF0YVIKc2lnbmVkRGF0YRIcCglzaW'
|
||||
'duYXR1cmUYAiABKAxSCXNpZ25hdHVyZRphCgpTaWduZWREYXRhEhsKCXB1YmxpY19pZBgBIAEo'
|
||||
'A1IIcHVibGljSWQSFwoHdXNlcl9pZBgCIAEoA1IGdXNlcklkEh0KCnB1YmxpY19rZXkYAyABKA'
|
||||
'xSCXB1YmxpY0tleUIgCh5fcHVibGljX2tleV92ZXJpZmllZF90aW1lc3RhbXAaOAoTVXNlckRp'
|
||||
'c2NvdmVyeVJlY2FsbBIhCgxwcm9tb3Rpb25faWQYASABKANSC3Byb21vdGlvbklkQh4KHF91c2'
|
||||
'VyX2Rpc2NvdmVyeV9hbm5vdW5jZW1lbnRCGwoZX3VzZXJfZGlzY292ZXJ5X3Byb21vdGlvbkIY'
|
||||
'ChZfdXNlcl9kaXNjb3ZlcnlfcmVjYWxs');
|
||||
|
|
@ -89,6 +89,25 @@ Future<void> incFlameCounter(
|
|||
final group = await twonlyDB.groupsDao.getGroup(groupId);
|
||||
if (group == null) return;
|
||||
|
||||
if (group.isDirectChat) {
|
||||
final contacts = await twonlyDB.groupsDao.getGroupContact(
|
||||
group.groupId,
|
||||
);
|
||||
if (contacts.length == 1) {
|
||||
await twonlyDB.contactsDao.updateContact(
|
||||
contacts.first.userId,
|
||||
ContactsCompanion(
|
||||
mediaReceivedCounter: Value(
|
||||
contacts.first.mediaReceivedCounter + (received ? 1 : 0),
|
||||
),
|
||||
mediaSendCounter: Value(
|
||||
contacts.first.mediaSendCounter + (received ? 0 : 1),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
final totalMediaCounter = group.totalMediaCounter + 1;
|
||||
var flameCounter = group.flameCounter;
|
||||
var maxFlameCounter = group.maxFlameCounter;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
import 'dart:typed_data';
|
||||
|
||||
import 'package:twonly/core/bridge/wrapper/user_discovery.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/src/model/protobuf/client/generated/user_discovery/types.pb.dart';
|
||||
import 'package:twonly/src/utils/log.dart';
|
||||
import 'package:twonly/src/utils/qr.dart';
|
||||
import 'package:twonly/src/utils/storage.dart';
|
||||
|
||||
Future<void> initializeOrUpdateUserDiscovery({
|
||||
class UserDiscoveryService {
|
||||
static Future<void> initializeOrUpdate({
|
||||
required int threshold,
|
||||
required int minimumRequiredImagesExchanged,
|
||||
}) async {
|
||||
|
|
@ -24,3 +28,26 @@ Future<void> initializeOrUpdateUserDiscovery({
|
|||
Log.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
static Future<Uint8List?> getCurrentVersion() async {
|
||||
try {
|
||||
return await FlutterUserDiscovery.getCurrentVersion();
|
||||
} catch (e) {
|
||||
Log.error(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static Future<UserDiscoveryVersion?> getCurrentVersionTyped() async {
|
||||
final version = await getCurrentVersion();
|
||||
if (version == null) return null;
|
||||
return UserDiscoveryVersion.fromBuffer(version);
|
||||
}
|
||||
|
||||
static Future<void> disable() async {
|
||||
await updateUserdata((u) {
|
||||
u.isUserDiscoveryEnabled = false;
|
||||
return u;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:twonly/src/utils/misc.dart';
|
||||
|
||||
final primaryColor = const Color(0xFF57CC99);
|
||||
const primaryColor = Color(0xFF57CC99);
|
||||
|
||||
final ThemeData lightTheme = ThemeData(
|
||||
colorScheme: ColorScheme.fromSeed(
|
||||
|
|
@ -15,18 +16,18 @@ final ButtonStyle primaryColorButtonStyle = FilledButton.styleFrom(
|
|||
backgroundColor: primaryColor,
|
||||
foregroundColor: Colors.black87,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16),
|
||||
// Adjusting the border radius (default is usually 20+)
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(8), // Lower number = sharper corners
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
);
|
||||
|
||||
final ButtonStyle secondaryGreyButtonStyle = FilledButton.styleFrom(
|
||||
backgroundColor: Colors.grey[200],
|
||||
foregroundColor: Colors.black87,
|
||||
ButtonStyle secondaryGreyButtonStyle(BuildContext context) {
|
||||
return FilledButton.styleFrom(
|
||||
backgroundColor: isDarkMode(context) ? Colors.grey[800] : Colors.grey[200],
|
||||
foregroundColor: isDarkMode(context) ? Colors.white : Colors.black87,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16),
|
||||
// Adjusting the border radius (default is usually 20+)
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(8), // Lower number = sharper corners
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -419,7 +419,6 @@ List<TextSpan> formattedText(String input) {
|
|||
spans.add(
|
||||
TextSpan(
|
||||
text: input.substring(lastMatchEnd, match.start),
|
||||
style: const TextStyle(color: Colors.black),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
@ -431,7 +430,6 @@ List<TextSpan> formattedText(String input) {
|
|||
text: match.group(1),
|
||||
style: const TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.black,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
@ -444,7 +442,6 @@ List<TextSpan> formattedText(String input) {
|
|||
spans.add(
|
||||
TextSpan(
|
||||
text: input.substring(lastMatchEnd),
|
||||
style: const TextStyle(color: Colors.black),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ class UserDiscoveryDisabledComponent extends StatefulWidget {
|
|||
class _UserDiscoveryDisabledComponentState
|
||||
extends State<UserDiscoveryDisabledComponent> {
|
||||
Future<void> initializeUserDiscoveryWithDefaultSettings() async {
|
||||
await initializeOrUpdateUserDiscovery(
|
||||
await UserDiscoveryService.initializeOrUpdate(
|
||||
threshold: 2,
|
||||
minimumRequiredImagesExchanged: 4,
|
||||
);
|
||||
|
|
@ -73,7 +73,7 @@ class _UserDiscoveryDisabledComponentState
|
|||
padding: const EdgeInsets.symmetric(horizontal: 24),
|
||||
child: FilledButton(
|
||||
onPressed: () {},
|
||||
style: secondaryGreyButtonStyle,
|
||||
style: secondaryGreyButtonStyle(context),
|
||||
child: const Text('Einstellungen anpassen'),
|
||||
),
|
||||
),
|
||||
|
|
@ -82,7 +82,7 @@ class _UserDiscoveryDisabledComponentState
|
|||
padding: const EdgeInsets.symmetric(horizontal: 24),
|
||||
child: FilledButton(
|
||||
onPressed: () {},
|
||||
style: secondaryGreyButtonStyle,
|
||||
style: secondaryGreyButtonStyle(context),
|
||||
child: const Text('Mehr erfahren'),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,13 @@
|
|||
import 'dart:async';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/src/database/daos/contacts.dao.dart';
|
||||
import 'package:twonly/src/database/twonly.db.dart';
|
||||
import 'package:twonly/src/model/protobuf/client/generated/user_discovery/types.pb.dart';
|
||||
import 'package:twonly/src/services/user_discovery.service.dart';
|
||||
import 'package:twonly/src/utils/misc.dart';
|
||||
import 'package:twonly/src/views/components/alert_dialog.dart';
|
||||
import 'package:twonly/src/views/settings/privacy/user_discovery/user_discovery_settings.view.dart';
|
||||
|
||||
class UserDiscoveryEnabledComponent extends StatefulWidget {
|
||||
const UserDiscoveryEnabledComponent({required this.onUpdate, super.key});
|
||||
|
|
@ -12,31 +21,109 @@ class UserDiscoveryEnabledComponent extends StatefulWidget {
|
|||
|
||||
class _UserDiscoveryEnabledComponentState
|
||||
extends State<UserDiscoveryEnabledComponent> {
|
||||
UserDiscoveryVersion? _version;
|
||||
|
||||
List<Contact> _contactsGettingAnnounced = [];
|
||||
late StreamSubscription<List<Contact>> _contactsGettingAnnouncedStream;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_contactsGettingAnnouncedStream = twonlyDB.contactsDao
|
||||
.watchContactsAnnouncedViaUserDiscovery()
|
||||
.listen((contacts) {
|
||||
setState(() {
|
||||
_contactsGettingAnnounced = contacts;
|
||||
});
|
||||
});
|
||||
_initAsync();
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_contactsGettingAnnouncedStream.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
Future<void> _initAsync() async {
|
||||
final version = await UserDiscoveryService.getCurrentVersionTyped();
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_version = version;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _disableUserDiscovery() async {
|
||||
final ok = await showAlertDialog(
|
||||
context,
|
||||
'Wirklich deaktivieren?',
|
||||
'Wenn du das Feature „Freunde finden“ deaktivierst, werden dir keine Vorschläge mehr angezeigt. Du teilst neuen Kontakten dann auch nicht mehr deine Freunde.',
|
||||
);
|
||||
|
||||
if (ok) {
|
||||
await UserDiscoveryService.disable();
|
||||
}
|
||||
|
||||
// This will show the DisabledComponent as the gUser has been updated...
|
||||
widget.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 10),
|
||||
child: ListView(
|
||||
children: [
|
||||
const ExpansionTile(
|
||||
shape: RoundedRectangleBorder(),
|
||||
collapsedShape: RoundedRectangleBorder(),
|
||||
tilePadding: EdgeInsets.symmetric(horizontal: 17),
|
||||
title: Text('Freunde die du teilst'),
|
||||
subtitle: Text(
|
||||
ExpansionTile(
|
||||
shape: const RoundedRectangleBorder(),
|
||||
backgroundColor: context.color.surfaceContainer,
|
||||
collapsedShape: const RoundedRectangleBorder(),
|
||||
tilePadding: const EdgeInsets.symmetric(horizontal: 17),
|
||||
title: const Text('Freunde die du teilst'),
|
||||
subtitle: const Text(
|
||||
'Du teilst nur Freunde, die diese Funktion ebenfalls aktiviert haben und die den von dir festgelegten Schwellenwert erreicht haben.',
|
||||
style: TextStyle(fontSize: 10),
|
||||
),
|
||||
children: [],
|
||||
children: _contactsGettingAnnounced.isEmpty
|
||||
? [
|
||||
const Padding(
|
||||
padding: EdgeInsetsGeometry.symmetric(vertical: 12),
|
||||
child: Text(
|
||||
'Bisher teilst du noch niemanden.',
|
||||
),
|
||||
),
|
||||
]
|
||||
: _contactsGettingAnnounced.map((contact) {
|
||||
return Text(getContactDisplayName(contact));
|
||||
}).toList(),
|
||||
),
|
||||
ListTile(
|
||||
title: Text('Einstellungen ändern'),
|
||||
// onTap: () {},
|
||||
title: const Text('Einstellungen ändern'),
|
||||
onTap: () async {
|
||||
await context.navPush(const UserDiscoverySettingsView());
|
||||
await _initAsync();
|
||||
},
|
||||
),
|
||||
const Divider(),
|
||||
const ListTile(
|
||||
title: Text('Mehr erfahren'),
|
||||
subtitle: Text(
|
||||
'In unserem FAQ erklären wir dir wie das Feature "Freunde finden" funktioniert.',
|
||||
),
|
||||
// onTap: _disableUserDiscovery,
|
||||
),
|
||||
const Divider(),
|
||||
ListTile(
|
||||
title: Text('Deaktivieren'),
|
||||
onTap: () {},
|
||||
title: const Text('Deaktivieren'),
|
||||
onTap: _disableUserDiscovery,
|
||||
),
|
||||
if (_version != null)
|
||||
ListTile(
|
||||
title: Text(
|
||||
'Your version: ${_version!.announcement}.${_version!.promotion}',
|
||||
style: const TextStyle(color: Colors.grey, fontSize: 13),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,137 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
import 'package:twonly/src/services/user_discovery.service.dart';
|
||||
import 'package:twonly/src/themes/light.dart';
|
||||
import 'package:twonly/src/utils/storage.dart';
|
||||
|
||||
class UserDiscoverySettingsView extends StatefulWidget {
|
||||
const UserDiscoverySettingsView({super.key});
|
||||
|
||||
@override
|
||||
State<UserDiscoverySettingsView> createState() =>
|
||||
_UserDiscoverySettingsViewState();
|
||||
}
|
||||
|
||||
class _UserDiscoverySettingsViewState extends State<UserDiscoverySettingsView> {
|
||||
int _minimumRequiredImagesExchanged = 0;
|
||||
int _userDiscoveryThreshold = 0;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_minimumRequiredImagesExchanged = gUser.minimumRequiredImagesExchanged;
|
||||
_userDiscoveryThreshold = gUser.userDiscoveryThreshold;
|
||||
super.initState();
|
||||
}
|
||||
|
||||
Future<void> _saveChanges() async {
|
||||
final requiresNewInitialization =
|
||||
gUser.userDiscoveryThreshold != _userDiscoveryThreshold;
|
||||
|
||||
await updateUserdata((u) {
|
||||
u
|
||||
..minimumRequiredImagesExchanged = _minimumRequiredImagesExchanged
|
||||
..userDiscoveryThreshold = _userDiscoveryThreshold;
|
||||
return u;
|
||||
});
|
||||
|
||||
if (requiresNewInitialization) {
|
||||
await UserDiscoveryService.initializeOrUpdate(
|
||||
threshold: gUser.userDiscoveryThreshold,
|
||||
minimumRequiredImagesExchanged: gUser.minimumRequiredImagesExchanged,
|
||||
);
|
||||
}
|
||||
if (mounted) Navigator.pop(context);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Freunde finden'),
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.only(top: 10),
|
||||
child: ListView(
|
||||
children: [
|
||||
ListTile(
|
||||
title: const Text('Anzahl an geteilten Bildern'),
|
||||
subtitle: const Text(
|
||||
'Wähle die Mindestanzahl an Bildern, die du mit einer Person ausgetauscht haben musst, bevor du ihr deine Freunde sicher teilst.',
|
||||
),
|
||||
trailing: SizedBox(
|
||||
width: 60,
|
||||
child: CupertinoPicker(
|
||||
magnification: 1.22,
|
||||
squeeze: 1.2,
|
||||
useMagnifier: true,
|
||||
itemExtent: 32,
|
||||
scrollController: FixedExtentScrollController(
|
||||
initialItem: _minimumRequiredImagesExchanged,
|
||||
),
|
||||
onSelectedItemChanged: (selectedItem) {
|
||||
_minimumRequiredImagesExchanged = selectedItem;
|
||||
setState(() {});
|
||||
},
|
||||
children: List.generate(
|
||||
9,
|
||||
(index) => Center(child: Text('$index')),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
title: const Text('Anzahl an gemeinsame Freunde'),
|
||||
subtitle: const Text(
|
||||
'Wähle aus, wie viele gemeinsame Freunde eine Person haben muss, damit du ihr vorgeschlagen wirst.',
|
||||
),
|
||||
trailing: SizedBox(
|
||||
width: 60,
|
||||
child: CupertinoPicker(
|
||||
magnification: 1.22,
|
||||
squeeze: 1.2,
|
||||
useMagnifier: true,
|
||||
itemExtent: 32,
|
||||
scrollController: FixedExtentScrollController(
|
||||
initialItem: _userDiscoveryThreshold - 2,
|
||||
),
|
||||
onSelectedItemChanged: (selectedItem) {
|
||||
_userDiscoveryThreshold = selectedItem + 2;
|
||||
setState(() {});
|
||||
},
|
||||
children: List.generate(
|
||||
9,
|
||||
(index) => Center(child: Text('${index + 2}')),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 30,
|
||||
),
|
||||
if (_minimumRequiredImagesExchanged !=
|
||||
gUser.minimumRequiredImagesExchanged ||
|
||||
_userDiscoveryThreshold != gUser.userDiscoveryThreshold)
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(17),
|
||||
child: FilledButton(
|
||||
onPressed: _saveChanges,
|
||||
style: primaryColorButtonStyle.merge(
|
||||
FilledButton.styleFrom(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 32,
|
||||
vertical: 24,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: const Text('Änderungen übernehmen'),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -17,6 +17,9 @@ protoc --proto_path="$CLIENT_DIR" --dart_out="$GENERATED_DIR" "groups.proto"
|
|||
protoc --proto_path="$CLIENT_DIR" --dart_out="$GENERATED_DIR" "qr.proto"
|
||||
protoc --proto_path="$CLIENT_DIR" --dart_out="$GENERATED_DIR" "data.proto"
|
||||
|
||||
mkdir "$GENERATED_DIR/user_discovery/" &>/dev/null
|
||||
protoc --proto_path="./rust_dependencies/protocols/src/user_discovery/" --dart_out="$GENERATED_DIR/user_discovery/" "types.proto"
|
||||
|
||||
protoc --proto_path="$CLIENT_DIR" --dart_out="$GENERATED_DIR" "push_notification.proto"
|
||||
protoc --proto_path="$CLIENT_DIR" --swift_out="./ios/NotificationService/" "push_notification.proto"
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import 'schema_v9.dart' as v9;
|
|||
import 'schema_v10.dart' as v10;
|
||||
import 'schema_v11.dart' as v11;
|
||||
import 'schema_v12.dart' as v12;
|
||||
import 'schema_v13.dart' as v13;
|
||||
|
||||
class GeneratedHelper implements SchemaInstantiationHelper {
|
||||
@override
|
||||
|
|
@ -45,10 +46,12 @@ class GeneratedHelper implements SchemaInstantiationHelper {
|
|||
return v11.DatabaseAtV11(db);
|
||||
case 12:
|
||||
return v12.DatabaseAtV12(db);
|
||||
case 13:
|
||||
return v13.DatabaseAtV13(db);
|
||||
default:
|
||||
throw MissingSchemaException(version, versions);
|
||||
}
|
||||
}
|
||||
|
||||
static const versions = const [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
||||
static const versions = const [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
|
||||
}
|
||||
|
|
|
|||
9439
test/drift/twonly_db/generated/schema_v13.dart
Normal file
9439
test/drift/twonly_db/generated/schema_v13.dart
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue