This commit is contained in:
otsmr 2025-11-04 23:25:17 +01:00
parent 94f60b5806
commit 07d36c133c
21 changed files with 565 additions and 390 deletions

View file

@ -37,7 +37,7 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
.write(updates); .write(updates);
} }
Future<List<GroupMember>> getGroupMembers(String groupId) async { Future<List<GroupMember>> getGroupNonLeftMembers(String groupId) async {
return (select(groupMembers) return (select(groupMembers)
..where( ..where(
(t) => (t) =>
@ -47,6 +47,11 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
.get(); .get();
} }
Future<List<GroupMember>> getAllGroupMembers(String groupId) async {
return (select(groupMembers)..where((t) => t.groupId.equals(groupId)))
.get();
}
Future<GroupMember?> getGroupMemberByPublicKey(Uint8List publicKey) async { Future<GroupMember?> getGroupMemberByPublicKey(Uint8List publicKey) async {
return (select(groupMembers) return (select(groupMembers)
..where((t) => t.groupPublicKey.equals(publicKey))) ..where((t) => t.groupPublicKey.equals(publicKey)))

View file

@ -310,7 +310,8 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
final message = final message =
await twonlyDB.messagesDao.getMessageById(messageId).getSingleOrNull(); await twonlyDB.messagesDao.getMessageById(messageId).getSingleOrNull();
if (message == null) return true; if (message == null) return true;
final members = await twonlyDB.groupsDao.getGroupMembers(message.groupId); final members =
await twonlyDB.groupsDao.getGroupNonLeftMembers(message.groupId);
final actions = await (select(messageActions) final actions = await (select(messageActions)
..where( ..where(

View file

@ -375,7 +375,7 @@
"@errorInternalError": {}, "@errorInternalError": {},
"errorInvalidInvitationCode": "Der von dir angegebene Einladungscode ist ungültig. Bitte überprüfe den Code und versuche es erneut.", "errorInvalidInvitationCode": "Der von dir angegebene Einladungscode ist ungültig. Bitte überprüfe den Code und versuche es erneut.",
"@errorInvalidInvitationCode": {}, "@errorInvalidInvitationCode": {},
"errorUsernameAlreadyTaken": "Der Benutzername, den du verwenden möchtest, ist bereits vergeben. Bitte wähle einen anderen Benutzernamen.", "errorUsernameAlreadyTaken": "Der Benutzername ist bereits vergeben.",
"@errorUsernameAlreadyTaken": {}, "@errorUsernameAlreadyTaken": {},
"errorSignatureNotValid": "Die bereitgestellte Signatur ist nicht gültig. Bitte überprüfe deine Anmeldeinformationen und versuche es erneut.", "errorSignatureNotValid": "Die bereitgestellte Signatur ist nicht gültig. Bitte überprüfe deine Anmeldeinformationen und versuche es erneut.",
"@errorSignatureNotValid": {}, "@errorSignatureNotValid": {},

View file

@ -346,7 +346,7 @@
"@errorInternalError": {}, "@errorInternalError": {},
"errorInvalidInvitationCode": "The invitation code you provided is invalid. Please check the code and try again.", "errorInvalidInvitationCode": "The invitation code you provided is invalid. Please check the code and try again.",
"@errorInvalidInvitationCode": {}, "@errorInvalidInvitationCode": {},
"errorUsernameAlreadyTaken": "The username you want to use is already taken. Please choose a different username.", "errorUsernameAlreadyTaken": "The username is already taken.",
"@errorUsernameAlreadyTaken": {}, "@errorUsernameAlreadyTaken": {},
"errorSignatureNotValid": "The provided signature is not valid. Please check your credentials and try again.", "errorSignatureNotValid": "The provided signature is not valid. Please check your credentials and try again.",
"@errorSignatureNotValid": {}, "@errorSignatureNotValid": {},

View file

@ -1229,7 +1229,7 @@ abstract class AppLocalizations {
/// No description provided for @errorUsernameAlreadyTaken. /// No description provided for @errorUsernameAlreadyTaken.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'The username you want to use is already taken. Please choose a different username.'** /// **'The username is already taken.'**
String get errorUsernameAlreadyTaken; String get errorUsernameAlreadyTaken;
/// No description provided for @errorSignatureNotValid. /// No description provided for @errorSignatureNotValid.

View file

@ -630,7 +630,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String get errorUsernameAlreadyTaken => String get errorUsernameAlreadyTaken =>
'Der Benutzername, den du verwenden möchtest, ist bereits vergeben. Bitte wähle einen anderen Benutzernamen.'; 'Der Benutzername ist bereits vergeben.';
@override @override
String get errorSignatureNotValid => String get errorSignatureNotValid =>

View file

@ -624,8 +624,7 @@ class AppLocalizationsEn extends AppLocalizations {
'The invitation code you provided is invalid. Please check the code and try again.'; 'The invitation code you provided is invalid. Please check the code and try again.';
@override @override
String get errorUsernameAlreadyTaken => String get errorUsernameAlreadyTaken => 'The username is already taken.';
'The username you want to use is already taken. Please choose a different username.';
@override @override
String get errorSignatureNotValid => String get errorSignatureNotValid =>

View file

@ -793,6 +793,56 @@ class ApplicationData_GetUserByUsername extends $pb.GeneratedMessage {
void clearUsername() => clearField(1); void clearUsername() => clearField(1);
} }
class ApplicationData_ChangeUsername extends $pb.GeneratedMessage {
factory ApplicationData_ChangeUsername({
$core.String? username,
}) {
final $result = create();
if (username != null) {
$result.username = username;
}
return $result;
}
ApplicationData_ChangeUsername._() : super();
factory ApplicationData_ChangeUsername.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory ApplicationData_ChangeUsername.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ApplicationData.ChangeUsername', package: const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), createEmptyInstance: create)
..aOS(1, _omitFieldNames ? '' : 'username')
..hasRequiredFields = false
;
@$core.Deprecated(
'Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
'Will be removed in next major version')
ApplicationData_ChangeUsername clone() => ApplicationData_ChangeUsername()..mergeFromMessage(this);
@$core.Deprecated(
'Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
'Will be removed in next major version')
ApplicationData_ChangeUsername copyWith(void Function(ApplicationData_ChangeUsername) updates) => super.copyWith((message) => updates(message as ApplicationData_ChangeUsername)) as ApplicationData_ChangeUsername;
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static ApplicationData_ChangeUsername create() => ApplicationData_ChangeUsername._();
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);
static ApplicationData_ChangeUsername? _defaultInstance;
@$pb.TagNumber(1)
$core.String get username => $_getSZ(0);
@$pb.TagNumber(1)
set username($core.String v) { $_setString(0, v); }
@$pb.TagNumber(1)
$core.bool hasUsername() => $_has(0);
@$pb.TagNumber(1)
void clearUsername() => clearField(1);
}
class ApplicationData_UpdateGoogleFcmToken extends $pb.GeneratedMessage { class ApplicationData_UpdateGoogleFcmToken extends $pb.GeneratedMessage {
factory ApplicationData_UpdateGoogleFcmToken({ factory ApplicationData_UpdateGoogleFcmToken({
$core.String? googleFcm, $core.String? googleFcm,
@ -1706,117 +1756,122 @@ class ApplicationData_DeleteAccount extends $pb.GeneratedMessage {
} }
enum ApplicationData_ApplicationData { enum ApplicationData_ApplicationData {
textmessage, textMessage,
getuserbyusername, getUserByUsername,
getprekeysbyuserid, getPrekeysByUserId,
getuserbyid, getUserById,
updategooglefcmtoken, updateGoogleFcmToken,
getlocation, getLocation,
getcurrentplaninfos, getCurrentPlanInfos,
redeemvoucher, redeemVoucher,
getavailableplans, getAvailablePlans,
createvoucher, createVoucher,
getvouchers, getVouchers,
switchtopayedplan, switchtoPayedPlan,
getaddaccountsinvites, getAddaccountsInvites,
redeemadditionalcode, redeemAdditionalCode,
removeadditionaluser, removeAdditionalUser,
updateplanoptions, updatePlanOptions,
downloaddone, downloadDone,
getsignedprekeybyuserid, getSignedPrekeyByUserid,
updatesignedprekey, updateSignedPrekey,
deleteaccount, deleteAccount,
reportuser, reportUser,
changeUsername,
notSet notSet
} }
class ApplicationData extends $pb.GeneratedMessage { class ApplicationData extends $pb.GeneratedMessage {
factory ApplicationData({ factory ApplicationData({
ApplicationData_TextMessage? textmessage, ApplicationData_TextMessage? textMessage,
ApplicationData_GetUserByUsername? getuserbyusername, ApplicationData_GetUserByUsername? getUserByUsername,
ApplicationData_GetPrekeysByUserId? getprekeysbyuserid, ApplicationData_GetPrekeysByUserId? getPrekeysByUserId,
ApplicationData_GetUserById? getuserbyid, ApplicationData_GetUserById? getUserById,
ApplicationData_UpdateGoogleFcmToken? updategooglefcmtoken, ApplicationData_UpdateGoogleFcmToken? updateGoogleFcmToken,
ApplicationData_GetLocation? getlocation, ApplicationData_GetLocation? getLocation,
ApplicationData_GetCurrentPlanInfos? getcurrentplaninfos, ApplicationData_GetCurrentPlanInfos? getCurrentPlanInfos,
ApplicationData_RedeemVoucher? redeemvoucher, ApplicationData_RedeemVoucher? redeemVoucher,
ApplicationData_GetAvailablePlans? getavailableplans, ApplicationData_GetAvailablePlans? getAvailablePlans,
ApplicationData_CreateVoucher? createvoucher, ApplicationData_CreateVoucher? createVoucher,
ApplicationData_GetVouchers? getvouchers, ApplicationData_GetVouchers? getVouchers,
ApplicationData_SwitchToPayedPlan? switchtopayedplan, ApplicationData_SwitchToPayedPlan? switchtoPayedPlan,
ApplicationData_GetAddAccountsInvites? getaddaccountsinvites, ApplicationData_GetAddAccountsInvites? getAddaccountsInvites,
ApplicationData_RedeemAdditionalCode? redeemadditionalcode, ApplicationData_RedeemAdditionalCode? redeemAdditionalCode,
ApplicationData_RemoveAdditionalUser? removeadditionaluser, ApplicationData_RemoveAdditionalUser? removeAdditionalUser,
ApplicationData_UpdatePlanOptions? updateplanoptions, ApplicationData_UpdatePlanOptions? updatePlanOptions,
ApplicationData_DownloadDone? downloaddone, ApplicationData_DownloadDone? downloadDone,
ApplicationData_GetSignedPreKeyByUserId? getsignedprekeybyuserid, ApplicationData_GetSignedPreKeyByUserId? getSignedPrekeyByUserid,
ApplicationData_UpdateSignedPreKey? updatesignedprekey, ApplicationData_UpdateSignedPreKey? updateSignedPrekey,
ApplicationData_DeleteAccount? deleteaccount, ApplicationData_DeleteAccount? deleteAccount,
ApplicationData_ReportUser? reportuser, ApplicationData_ReportUser? reportUser,
ApplicationData_ChangeUsername? changeUsername,
}) { }) {
final $result = create(); final $result = create();
if (textmessage != null) { if (textMessage != null) {
$result.textmessage = textmessage; $result.textMessage = textMessage;
} }
if (getuserbyusername != null) { if (getUserByUsername != null) {
$result.getuserbyusername = getuserbyusername; $result.getUserByUsername = getUserByUsername;
} }
if (getprekeysbyuserid != null) { if (getPrekeysByUserId != null) {
$result.getprekeysbyuserid = getprekeysbyuserid; $result.getPrekeysByUserId = getPrekeysByUserId;
} }
if (getuserbyid != null) { if (getUserById != null) {
$result.getuserbyid = getuserbyid; $result.getUserById = getUserById;
} }
if (updategooglefcmtoken != null) { if (updateGoogleFcmToken != null) {
$result.updategooglefcmtoken = updategooglefcmtoken; $result.updateGoogleFcmToken = updateGoogleFcmToken;
} }
if (getlocation != null) { if (getLocation != null) {
$result.getlocation = getlocation; $result.getLocation = getLocation;
} }
if (getcurrentplaninfos != null) { if (getCurrentPlanInfos != null) {
$result.getcurrentplaninfos = getcurrentplaninfos; $result.getCurrentPlanInfos = getCurrentPlanInfos;
} }
if (redeemvoucher != null) { if (redeemVoucher != null) {
$result.redeemvoucher = redeemvoucher; $result.redeemVoucher = redeemVoucher;
} }
if (getavailableplans != null) { if (getAvailablePlans != null) {
$result.getavailableplans = getavailableplans; $result.getAvailablePlans = getAvailablePlans;
} }
if (createvoucher != null) { if (createVoucher != null) {
$result.createvoucher = createvoucher; $result.createVoucher = createVoucher;
} }
if (getvouchers != null) { if (getVouchers != null) {
$result.getvouchers = getvouchers; $result.getVouchers = getVouchers;
} }
if (switchtopayedplan != null) { if (switchtoPayedPlan != null) {
$result.switchtopayedplan = switchtopayedplan; $result.switchtoPayedPlan = switchtoPayedPlan;
} }
if (getaddaccountsinvites != null) { if (getAddaccountsInvites != null) {
$result.getaddaccountsinvites = getaddaccountsinvites; $result.getAddaccountsInvites = getAddaccountsInvites;
} }
if (redeemadditionalcode != null) { if (redeemAdditionalCode != null) {
$result.redeemadditionalcode = redeemadditionalcode; $result.redeemAdditionalCode = redeemAdditionalCode;
} }
if (removeadditionaluser != null) { if (removeAdditionalUser != null) {
$result.removeadditionaluser = removeadditionaluser; $result.removeAdditionalUser = removeAdditionalUser;
} }
if (updateplanoptions != null) { if (updatePlanOptions != null) {
$result.updateplanoptions = updateplanoptions; $result.updatePlanOptions = updatePlanOptions;
} }
if (downloaddone != null) { if (downloadDone != null) {
$result.downloaddone = downloaddone; $result.downloadDone = downloadDone;
} }
if (getsignedprekeybyuserid != null) { if (getSignedPrekeyByUserid != null) {
$result.getsignedprekeybyuserid = getsignedprekeybyuserid; $result.getSignedPrekeyByUserid = getSignedPrekeyByUserid;
} }
if (updatesignedprekey != null) { if (updateSignedPrekey != null) {
$result.updatesignedprekey = updatesignedprekey; $result.updateSignedPrekey = updateSignedPrekey;
} }
if (deleteaccount != null) { if (deleteAccount != null) {
$result.deleteaccount = deleteaccount; $result.deleteAccount = deleteAccount;
} }
if (reportuser != null) { if (reportUser != null) {
$result.reportuser = reportuser; $result.reportUser = reportUser;
}
if (changeUsername != null) {
$result.changeUsername = changeUsername;
} }
return $result; return $result;
} }
@ -1825,52 +1880,54 @@ class ApplicationData extends $pb.GeneratedMessage {
factory ApplicationData.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); factory ApplicationData.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
static const $core.Map<$core.int, ApplicationData_ApplicationData> _ApplicationData_ApplicationDataByTag = { static const $core.Map<$core.int, ApplicationData_ApplicationData> _ApplicationData_ApplicationDataByTag = {
1 : ApplicationData_ApplicationData.textmessage, 1 : ApplicationData_ApplicationData.textMessage,
2 : ApplicationData_ApplicationData.getuserbyusername, 2 : ApplicationData_ApplicationData.getUserByUsername,
3 : ApplicationData_ApplicationData.getprekeysbyuserid, 3 : ApplicationData_ApplicationData.getPrekeysByUserId,
6 : ApplicationData_ApplicationData.getuserbyid, 6 : ApplicationData_ApplicationData.getUserById,
8 : ApplicationData_ApplicationData.updategooglefcmtoken, 8 : ApplicationData_ApplicationData.updateGoogleFcmToken,
9 : ApplicationData_ApplicationData.getlocation, 9 : ApplicationData_ApplicationData.getLocation,
10 : ApplicationData_ApplicationData.getcurrentplaninfos, 10 : ApplicationData_ApplicationData.getCurrentPlanInfos,
11 : ApplicationData_ApplicationData.redeemvoucher, 11 : ApplicationData_ApplicationData.redeemVoucher,
12 : ApplicationData_ApplicationData.getavailableplans, 12 : ApplicationData_ApplicationData.getAvailablePlans,
13 : ApplicationData_ApplicationData.createvoucher, 13 : ApplicationData_ApplicationData.createVoucher,
14 : ApplicationData_ApplicationData.getvouchers, 14 : ApplicationData_ApplicationData.getVouchers,
15 : ApplicationData_ApplicationData.switchtopayedplan, 15 : ApplicationData_ApplicationData.switchtoPayedPlan,
16 : ApplicationData_ApplicationData.getaddaccountsinvites, 16 : ApplicationData_ApplicationData.getAddaccountsInvites,
17 : ApplicationData_ApplicationData.redeemadditionalcode, 17 : ApplicationData_ApplicationData.redeemAdditionalCode,
18 : ApplicationData_ApplicationData.removeadditionaluser, 18 : ApplicationData_ApplicationData.removeAdditionalUser,
19 : ApplicationData_ApplicationData.updateplanoptions, 19 : ApplicationData_ApplicationData.updatePlanOptions,
20 : ApplicationData_ApplicationData.downloaddone, 20 : ApplicationData_ApplicationData.downloadDone,
22 : ApplicationData_ApplicationData.getsignedprekeybyuserid, 22 : ApplicationData_ApplicationData.getSignedPrekeyByUserid,
23 : ApplicationData_ApplicationData.updatesignedprekey, 23 : ApplicationData_ApplicationData.updateSignedPrekey,
24 : ApplicationData_ApplicationData.deleteaccount, 24 : ApplicationData_ApplicationData.deleteAccount,
25 : ApplicationData_ApplicationData.reportuser, 25 : ApplicationData_ApplicationData.reportUser,
26 : ApplicationData_ApplicationData.changeUsername,
0 : ApplicationData_ApplicationData.notSet 0 : ApplicationData_ApplicationData.notSet
}; };
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ApplicationData', package: const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), createEmptyInstance: create) static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ApplicationData', package: const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), createEmptyInstance: create)
..oo(0, [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25]) ..oo(0, [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26])
..aOM<ApplicationData_TextMessage>(1, _omitFieldNames ? '' : 'textmessage', subBuilder: ApplicationData_TextMessage.create) ..aOM<ApplicationData_TextMessage>(1, _omitFieldNames ? '' : 'textMessage', protoName: 'textMessage', subBuilder: ApplicationData_TextMessage.create)
..aOM<ApplicationData_GetUserByUsername>(2, _omitFieldNames ? '' : 'getuserbyusername', subBuilder: ApplicationData_GetUserByUsername.create) ..aOM<ApplicationData_GetUserByUsername>(2, _omitFieldNames ? '' : 'getUserByUsername', protoName: 'getUserByUsername', subBuilder: ApplicationData_GetUserByUsername.create)
..aOM<ApplicationData_GetPrekeysByUserId>(3, _omitFieldNames ? '' : 'getprekeysbyuserid', subBuilder: ApplicationData_GetPrekeysByUserId.create) ..aOM<ApplicationData_GetPrekeysByUserId>(3, _omitFieldNames ? '' : 'getPrekeysByUserId', protoName: 'getPrekeysByUserId', subBuilder: ApplicationData_GetPrekeysByUserId.create)
..aOM<ApplicationData_GetUserById>(6, _omitFieldNames ? '' : 'getuserbyid', subBuilder: ApplicationData_GetUserById.create) ..aOM<ApplicationData_GetUserById>(6, _omitFieldNames ? '' : 'getUserById', protoName: 'getUserById', subBuilder: ApplicationData_GetUserById.create)
..aOM<ApplicationData_UpdateGoogleFcmToken>(8, _omitFieldNames ? '' : 'updategooglefcmtoken', subBuilder: ApplicationData_UpdateGoogleFcmToken.create) ..aOM<ApplicationData_UpdateGoogleFcmToken>(8, _omitFieldNames ? '' : 'updateGoogleFcmToken', protoName: 'updateGoogleFcmToken', subBuilder: ApplicationData_UpdateGoogleFcmToken.create)
..aOM<ApplicationData_GetLocation>(9, _omitFieldNames ? '' : 'getlocation', subBuilder: ApplicationData_GetLocation.create) ..aOM<ApplicationData_GetLocation>(9, _omitFieldNames ? '' : 'getLocation', protoName: 'getLocation', subBuilder: ApplicationData_GetLocation.create)
..aOM<ApplicationData_GetCurrentPlanInfos>(10, _omitFieldNames ? '' : 'getcurrentplaninfos', subBuilder: ApplicationData_GetCurrentPlanInfos.create) ..aOM<ApplicationData_GetCurrentPlanInfos>(10, _omitFieldNames ? '' : 'getCurrentPlanInfos', protoName: 'getCurrentPlanInfos', subBuilder: ApplicationData_GetCurrentPlanInfos.create)
..aOM<ApplicationData_RedeemVoucher>(11, _omitFieldNames ? '' : 'redeemvoucher', subBuilder: ApplicationData_RedeemVoucher.create) ..aOM<ApplicationData_RedeemVoucher>(11, _omitFieldNames ? '' : 'redeemVoucher', protoName: 'redeemVoucher', subBuilder: ApplicationData_RedeemVoucher.create)
..aOM<ApplicationData_GetAvailablePlans>(12, _omitFieldNames ? '' : 'getavailableplans', subBuilder: ApplicationData_GetAvailablePlans.create) ..aOM<ApplicationData_GetAvailablePlans>(12, _omitFieldNames ? '' : 'getAvailablePlans', protoName: 'getAvailablePlans', subBuilder: ApplicationData_GetAvailablePlans.create)
..aOM<ApplicationData_CreateVoucher>(13, _omitFieldNames ? '' : 'createvoucher', subBuilder: ApplicationData_CreateVoucher.create) ..aOM<ApplicationData_CreateVoucher>(13, _omitFieldNames ? '' : 'createVoucher', protoName: 'createVoucher', subBuilder: ApplicationData_CreateVoucher.create)
..aOM<ApplicationData_GetVouchers>(14, _omitFieldNames ? '' : 'getvouchers', subBuilder: ApplicationData_GetVouchers.create) ..aOM<ApplicationData_GetVouchers>(14, _omitFieldNames ? '' : 'getVouchers', protoName: 'getVouchers', subBuilder: ApplicationData_GetVouchers.create)
..aOM<ApplicationData_SwitchToPayedPlan>(15, _omitFieldNames ? '' : 'Switchtopayedplan', protoName: 'Switchtopayedplan', subBuilder: ApplicationData_SwitchToPayedPlan.create) ..aOM<ApplicationData_SwitchToPayedPlan>(15, _omitFieldNames ? '' : 'switchtoPayedPlan', protoName: 'switchtoPayedPlan', subBuilder: ApplicationData_SwitchToPayedPlan.create)
..aOM<ApplicationData_GetAddAccountsInvites>(16, _omitFieldNames ? '' : 'getaddaccountsinvites', subBuilder: ApplicationData_GetAddAccountsInvites.create) ..aOM<ApplicationData_GetAddAccountsInvites>(16, _omitFieldNames ? '' : 'getAddaccountsInvites', protoName: 'getAddaccountsInvites', subBuilder: ApplicationData_GetAddAccountsInvites.create)
..aOM<ApplicationData_RedeemAdditionalCode>(17, _omitFieldNames ? '' : 'redeemadditionalcode', subBuilder: ApplicationData_RedeemAdditionalCode.create) ..aOM<ApplicationData_RedeemAdditionalCode>(17, _omitFieldNames ? '' : 'redeemAdditionalCode', protoName: 'redeemAdditionalCode', subBuilder: ApplicationData_RedeemAdditionalCode.create)
..aOM<ApplicationData_RemoveAdditionalUser>(18, _omitFieldNames ? '' : 'removeadditionaluser', subBuilder: ApplicationData_RemoveAdditionalUser.create) ..aOM<ApplicationData_RemoveAdditionalUser>(18, _omitFieldNames ? '' : 'removeAdditionalUser', protoName: 'removeAdditionalUser', subBuilder: ApplicationData_RemoveAdditionalUser.create)
..aOM<ApplicationData_UpdatePlanOptions>(19, _omitFieldNames ? '' : 'updateplanoptions', subBuilder: ApplicationData_UpdatePlanOptions.create) ..aOM<ApplicationData_UpdatePlanOptions>(19, _omitFieldNames ? '' : 'updatePlanOptions', protoName: 'updatePlanOptions', subBuilder: ApplicationData_UpdatePlanOptions.create)
..aOM<ApplicationData_DownloadDone>(20, _omitFieldNames ? '' : 'downloaddone', subBuilder: ApplicationData_DownloadDone.create) ..aOM<ApplicationData_DownloadDone>(20, _omitFieldNames ? '' : 'downloadDone', protoName: 'downloadDone', subBuilder: ApplicationData_DownloadDone.create)
..aOM<ApplicationData_GetSignedPreKeyByUserId>(22, _omitFieldNames ? '' : 'getsignedprekeybyuserid', subBuilder: ApplicationData_GetSignedPreKeyByUserId.create) ..aOM<ApplicationData_GetSignedPreKeyByUserId>(22, _omitFieldNames ? '' : 'getSignedPrekeyByUserid', protoName: 'getSignedPrekeyByUserid', subBuilder: ApplicationData_GetSignedPreKeyByUserId.create)
..aOM<ApplicationData_UpdateSignedPreKey>(23, _omitFieldNames ? '' : 'updatesignedprekey', subBuilder: ApplicationData_UpdateSignedPreKey.create) ..aOM<ApplicationData_UpdateSignedPreKey>(23, _omitFieldNames ? '' : 'updateSignedPrekey', protoName: 'updateSignedPrekey', subBuilder: ApplicationData_UpdateSignedPreKey.create)
..aOM<ApplicationData_DeleteAccount>(24, _omitFieldNames ? '' : 'deleteaccount', subBuilder: ApplicationData_DeleteAccount.create) ..aOM<ApplicationData_DeleteAccount>(24, _omitFieldNames ? '' : 'deleteAccount', protoName: 'deleteAccount', subBuilder: ApplicationData_DeleteAccount.create)
..aOM<ApplicationData_ReportUser>(25, _omitFieldNames ? '' : 'reportuser', subBuilder: ApplicationData_ReportUser.create) ..aOM<ApplicationData_ReportUser>(25, _omitFieldNames ? '' : 'reportUser', protoName: 'reportUser', subBuilder: ApplicationData_ReportUser.create)
..aOM<ApplicationData_ChangeUsername>(26, _omitFieldNames ? '' : 'changeUsername', protoName: 'changeUsername', subBuilder: ApplicationData_ChangeUsername.create)
..hasRequiredFields = false ..hasRequiredFields = false
; ;
@ -1899,235 +1956,246 @@ class ApplicationData extends $pb.GeneratedMessage {
void clearApplicationData() => clearField($_whichOneof(0)); void clearApplicationData() => clearField($_whichOneof(0));
@$pb.TagNumber(1) @$pb.TagNumber(1)
ApplicationData_TextMessage get textmessage => $_getN(0); ApplicationData_TextMessage get textMessage => $_getN(0);
@$pb.TagNumber(1) @$pb.TagNumber(1)
set textmessage(ApplicationData_TextMessage v) { setField(1, v); } set textMessage(ApplicationData_TextMessage v) { setField(1, v); }
@$pb.TagNumber(1) @$pb.TagNumber(1)
$core.bool hasTextmessage() => $_has(0); $core.bool hasTextMessage() => $_has(0);
@$pb.TagNumber(1) @$pb.TagNumber(1)
void clearTextmessage() => clearField(1); void clearTextMessage() => clearField(1);
@$pb.TagNumber(1) @$pb.TagNumber(1)
ApplicationData_TextMessage ensureTextmessage() => $_ensure(0); ApplicationData_TextMessage ensureTextMessage() => $_ensure(0);
@$pb.TagNumber(2) @$pb.TagNumber(2)
ApplicationData_GetUserByUsername get getuserbyusername => $_getN(1); ApplicationData_GetUserByUsername get getUserByUsername => $_getN(1);
@$pb.TagNumber(2) @$pb.TagNumber(2)
set getuserbyusername(ApplicationData_GetUserByUsername v) { setField(2, v); } set getUserByUsername(ApplicationData_GetUserByUsername v) { setField(2, v); }
@$pb.TagNumber(2) @$pb.TagNumber(2)
$core.bool hasGetuserbyusername() => $_has(1); $core.bool hasGetUserByUsername() => $_has(1);
@$pb.TagNumber(2) @$pb.TagNumber(2)
void clearGetuserbyusername() => clearField(2); void clearGetUserByUsername() => clearField(2);
@$pb.TagNumber(2) @$pb.TagNumber(2)
ApplicationData_GetUserByUsername ensureGetuserbyusername() => $_ensure(1); ApplicationData_GetUserByUsername ensureGetUserByUsername() => $_ensure(1);
@$pb.TagNumber(3) @$pb.TagNumber(3)
ApplicationData_GetPrekeysByUserId get getprekeysbyuserid => $_getN(2); ApplicationData_GetPrekeysByUserId get getPrekeysByUserId => $_getN(2);
@$pb.TagNumber(3) @$pb.TagNumber(3)
set getprekeysbyuserid(ApplicationData_GetPrekeysByUserId v) { setField(3, v); } set getPrekeysByUserId(ApplicationData_GetPrekeysByUserId v) { setField(3, v); }
@$pb.TagNumber(3) @$pb.TagNumber(3)
$core.bool hasGetprekeysbyuserid() => $_has(2); $core.bool hasGetPrekeysByUserId() => $_has(2);
@$pb.TagNumber(3) @$pb.TagNumber(3)
void clearGetprekeysbyuserid() => clearField(3); void clearGetPrekeysByUserId() => clearField(3);
@$pb.TagNumber(3) @$pb.TagNumber(3)
ApplicationData_GetPrekeysByUserId ensureGetprekeysbyuserid() => $_ensure(2); ApplicationData_GetPrekeysByUserId ensureGetPrekeysByUserId() => $_ensure(2);
@$pb.TagNumber(6) @$pb.TagNumber(6)
ApplicationData_GetUserById get getuserbyid => $_getN(3); ApplicationData_GetUserById get getUserById => $_getN(3);
@$pb.TagNumber(6) @$pb.TagNumber(6)
set getuserbyid(ApplicationData_GetUserById v) { setField(6, v); } set getUserById(ApplicationData_GetUserById v) { setField(6, v); }
@$pb.TagNumber(6) @$pb.TagNumber(6)
$core.bool hasGetuserbyid() => $_has(3); $core.bool hasGetUserById() => $_has(3);
@$pb.TagNumber(6) @$pb.TagNumber(6)
void clearGetuserbyid() => clearField(6); void clearGetUserById() => clearField(6);
@$pb.TagNumber(6) @$pb.TagNumber(6)
ApplicationData_GetUserById ensureGetuserbyid() => $_ensure(3); ApplicationData_GetUserById ensureGetUserById() => $_ensure(3);
@$pb.TagNumber(8) @$pb.TagNumber(8)
ApplicationData_UpdateGoogleFcmToken get updategooglefcmtoken => $_getN(4); ApplicationData_UpdateGoogleFcmToken get updateGoogleFcmToken => $_getN(4);
@$pb.TagNumber(8) @$pb.TagNumber(8)
set updategooglefcmtoken(ApplicationData_UpdateGoogleFcmToken v) { setField(8, v); } set updateGoogleFcmToken(ApplicationData_UpdateGoogleFcmToken v) { setField(8, v); }
@$pb.TagNumber(8) @$pb.TagNumber(8)
$core.bool hasUpdategooglefcmtoken() => $_has(4); $core.bool hasUpdateGoogleFcmToken() => $_has(4);
@$pb.TagNumber(8) @$pb.TagNumber(8)
void clearUpdategooglefcmtoken() => clearField(8); void clearUpdateGoogleFcmToken() => clearField(8);
@$pb.TagNumber(8) @$pb.TagNumber(8)
ApplicationData_UpdateGoogleFcmToken ensureUpdategooglefcmtoken() => $_ensure(4); ApplicationData_UpdateGoogleFcmToken ensureUpdateGoogleFcmToken() => $_ensure(4);
@$pb.TagNumber(9) @$pb.TagNumber(9)
ApplicationData_GetLocation get getlocation => $_getN(5); ApplicationData_GetLocation get getLocation => $_getN(5);
@$pb.TagNumber(9) @$pb.TagNumber(9)
set getlocation(ApplicationData_GetLocation v) { setField(9, v); } set getLocation(ApplicationData_GetLocation v) { setField(9, v); }
@$pb.TagNumber(9) @$pb.TagNumber(9)
$core.bool hasGetlocation() => $_has(5); $core.bool hasGetLocation() => $_has(5);
@$pb.TagNumber(9) @$pb.TagNumber(9)
void clearGetlocation() => clearField(9); void clearGetLocation() => clearField(9);
@$pb.TagNumber(9) @$pb.TagNumber(9)
ApplicationData_GetLocation ensureGetlocation() => $_ensure(5); ApplicationData_GetLocation ensureGetLocation() => $_ensure(5);
@$pb.TagNumber(10) @$pb.TagNumber(10)
ApplicationData_GetCurrentPlanInfos get getcurrentplaninfos => $_getN(6); ApplicationData_GetCurrentPlanInfos get getCurrentPlanInfos => $_getN(6);
@$pb.TagNumber(10) @$pb.TagNumber(10)
set getcurrentplaninfos(ApplicationData_GetCurrentPlanInfos v) { setField(10, v); } set getCurrentPlanInfos(ApplicationData_GetCurrentPlanInfos v) { setField(10, v); }
@$pb.TagNumber(10) @$pb.TagNumber(10)
$core.bool hasGetcurrentplaninfos() => $_has(6); $core.bool hasGetCurrentPlanInfos() => $_has(6);
@$pb.TagNumber(10) @$pb.TagNumber(10)
void clearGetcurrentplaninfos() => clearField(10); void clearGetCurrentPlanInfos() => clearField(10);
@$pb.TagNumber(10) @$pb.TagNumber(10)
ApplicationData_GetCurrentPlanInfos ensureGetcurrentplaninfos() => $_ensure(6); ApplicationData_GetCurrentPlanInfos ensureGetCurrentPlanInfos() => $_ensure(6);
@$pb.TagNumber(11) @$pb.TagNumber(11)
ApplicationData_RedeemVoucher get redeemvoucher => $_getN(7); ApplicationData_RedeemVoucher get redeemVoucher => $_getN(7);
@$pb.TagNumber(11) @$pb.TagNumber(11)
set redeemvoucher(ApplicationData_RedeemVoucher v) { setField(11, v); } set redeemVoucher(ApplicationData_RedeemVoucher v) { setField(11, v); }
@$pb.TagNumber(11) @$pb.TagNumber(11)
$core.bool hasRedeemvoucher() => $_has(7); $core.bool hasRedeemVoucher() => $_has(7);
@$pb.TagNumber(11) @$pb.TagNumber(11)
void clearRedeemvoucher() => clearField(11); void clearRedeemVoucher() => clearField(11);
@$pb.TagNumber(11) @$pb.TagNumber(11)
ApplicationData_RedeemVoucher ensureRedeemvoucher() => $_ensure(7); ApplicationData_RedeemVoucher ensureRedeemVoucher() => $_ensure(7);
@$pb.TagNumber(12) @$pb.TagNumber(12)
ApplicationData_GetAvailablePlans get getavailableplans => $_getN(8); ApplicationData_GetAvailablePlans get getAvailablePlans => $_getN(8);
@$pb.TagNumber(12) @$pb.TagNumber(12)
set getavailableplans(ApplicationData_GetAvailablePlans v) { setField(12, v); } set getAvailablePlans(ApplicationData_GetAvailablePlans v) { setField(12, v); }
@$pb.TagNumber(12) @$pb.TagNumber(12)
$core.bool hasGetavailableplans() => $_has(8); $core.bool hasGetAvailablePlans() => $_has(8);
@$pb.TagNumber(12) @$pb.TagNumber(12)
void clearGetavailableplans() => clearField(12); void clearGetAvailablePlans() => clearField(12);
@$pb.TagNumber(12) @$pb.TagNumber(12)
ApplicationData_GetAvailablePlans ensureGetavailableplans() => $_ensure(8); ApplicationData_GetAvailablePlans ensureGetAvailablePlans() => $_ensure(8);
@$pb.TagNumber(13) @$pb.TagNumber(13)
ApplicationData_CreateVoucher get createvoucher => $_getN(9); ApplicationData_CreateVoucher get createVoucher => $_getN(9);
@$pb.TagNumber(13) @$pb.TagNumber(13)
set createvoucher(ApplicationData_CreateVoucher v) { setField(13, v); } set createVoucher(ApplicationData_CreateVoucher v) { setField(13, v); }
@$pb.TagNumber(13) @$pb.TagNumber(13)
$core.bool hasCreatevoucher() => $_has(9); $core.bool hasCreateVoucher() => $_has(9);
@$pb.TagNumber(13) @$pb.TagNumber(13)
void clearCreatevoucher() => clearField(13); void clearCreateVoucher() => clearField(13);
@$pb.TagNumber(13) @$pb.TagNumber(13)
ApplicationData_CreateVoucher ensureCreatevoucher() => $_ensure(9); ApplicationData_CreateVoucher ensureCreateVoucher() => $_ensure(9);
@$pb.TagNumber(14) @$pb.TagNumber(14)
ApplicationData_GetVouchers get getvouchers => $_getN(10); ApplicationData_GetVouchers get getVouchers => $_getN(10);
@$pb.TagNumber(14) @$pb.TagNumber(14)
set getvouchers(ApplicationData_GetVouchers v) { setField(14, v); } set getVouchers(ApplicationData_GetVouchers v) { setField(14, v); }
@$pb.TagNumber(14) @$pb.TagNumber(14)
$core.bool hasGetvouchers() => $_has(10); $core.bool hasGetVouchers() => $_has(10);
@$pb.TagNumber(14) @$pb.TagNumber(14)
void clearGetvouchers() => clearField(14); void clearGetVouchers() => clearField(14);
@$pb.TagNumber(14) @$pb.TagNumber(14)
ApplicationData_GetVouchers ensureGetvouchers() => $_ensure(10); ApplicationData_GetVouchers ensureGetVouchers() => $_ensure(10);
@$pb.TagNumber(15) @$pb.TagNumber(15)
ApplicationData_SwitchToPayedPlan get switchtopayedplan => $_getN(11); ApplicationData_SwitchToPayedPlan get switchtoPayedPlan => $_getN(11);
@$pb.TagNumber(15) @$pb.TagNumber(15)
set switchtopayedplan(ApplicationData_SwitchToPayedPlan v) { setField(15, v); } set switchtoPayedPlan(ApplicationData_SwitchToPayedPlan v) { setField(15, v); }
@$pb.TagNumber(15) @$pb.TagNumber(15)
$core.bool hasSwitchtopayedplan() => $_has(11); $core.bool hasSwitchtoPayedPlan() => $_has(11);
@$pb.TagNumber(15) @$pb.TagNumber(15)
void clearSwitchtopayedplan() => clearField(15); void clearSwitchtoPayedPlan() => clearField(15);
@$pb.TagNumber(15) @$pb.TagNumber(15)
ApplicationData_SwitchToPayedPlan ensureSwitchtopayedplan() => $_ensure(11); ApplicationData_SwitchToPayedPlan ensureSwitchtoPayedPlan() => $_ensure(11);
@$pb.TagNumber(16) @$pb.TagNumber(16)
ApplicationData_GetAddAccountsInvites get getaddaccountsinvites => $_getN(12); ApplicationData_GetAddAccountsInvites get getAddaccountsInvites => $_getN(12);
@$pb.TagNumber(16) @$pb.TagNumber(16)
set getaddaccountsinvites(ApplicationData_GetAddAccountsInvites v) { setField(16, v); } set getAddaccountsInvites(ApplicationData_GetAddAccountsInvites v) { setField(16, v); }
@$pb.TagNumber(16) @$pb.TagNumber(16)
$core.bool hasGetaddaccountsinvites() => $_has(12); $core.bool hasGetAddaccountsInvites() => $_has(12);
@$pb.TagNumber(16) @$pb.TagNumber(16)
void clearGetaddaccountsinvites() => clearField(16); void clearGetAddaccountsInvites() => clearField(16);
@$pb.TagNumber(16) @$pb.TagNumber(16)
ApplicationData_GetAddAccountsInvites ensureGetaddaccountsinvites() => $_ensure(12); ApplicationData_GetAddAccountsInvites ensureGetAddaccountsInvites() => $_ensure(12);
@$pb.TagNumber(17) @$pb.TagNumber(17)
ApplicationData_RedeemAdditionalCode get redeemadditionalcode => $_getN(13); ApplicationData_RedeemAdditionalCode get redeemAdditionalCode => $_getN(13);
@$pb.TagNumber(17) @$pb.TagNumber(17)
set redeemadditionalcode(ApplicationData_RedeemAdditionalCode v) { setField(17, v); } set redeemAdditionalCode(ApplicationData_RedeemAdditionalCode v) { setField(17, v); }
@$pb.TagNumber(17) @$pb.TagNumber(17)
$core.bool hasRedeemadditionalcode() => $_has(13); $core.bool hasRedeemAdditionalCode() => $_has(13);
@$pb.TagNumber(17) @$pb.TagNumber(17)
void clearRedeemadditionalcode() => clearField(17); void clearRedeemAdditionalCode() => clearField(17);
@$pb.TagNumber(17) @$pb.TagNumber(17)
ApplicationData_RedeemAdditionalCode ensureRedeemadditionalcode() => $_ensure(13); ApplicationData_RedeemAdditionalCode ensureRedeemAdditionalCode() => $_ensure(13);
@$pb.TagNumber(18) @$pb.TagNumber(18)
ApplicationData_RemoveAdditionalUser get removeadditionaluser => $_getN(14); ApplicationData_RemoveAdditionalUser get removeAdditionalUser => $_getN(14);
@$pb.TagNumber(18) @$pb.TagNumber(18)
set removeadditionaluser(ApplicationData_RemoveAdditionalUser v) { setField(18, v); } set removeAdditionalUser(ApplicationData_RemoveAdditionalUser v) { setField(18, v); }
@$pb.TagNumber(18) @$pb.TagNumber(18)
$core.bool hasRemoveadditionaluser() => $_has(14); $core.bool hasRemoveAdditionalUser() => $_has(14);
@$pb.TagNumber(18) @$pb.TagNumber(18)
void clearRemoveadditionaluser() => clearField(18); void clearRemoveAdditionalUser() => clearField(18);
@$pb.TagNumber(18) @$pb.TagNumber(18)
ApplicationData_RemoveAdditionalUser ensureRemoveadditionaluser() => $_ensure(14); ApplicationData_RemoveAdditionalUser ensureRemoveAdditionalUser() => $_ensure(14);
@$pb.TagNumber(19) @$pb.TagNumber(19)
ApplicationData_UpdatePlanOptions get updateplanoptions => $_getN(15); ApplicationData_UpdatePlanOptions get updatePlanOptions => $_getN(15);
@$pb.TagNumber(19) @$pb.TagNumber(19)
set updateplanoptions(ApplicationData_UpdatePlanOptions v) { setField(19, v); } set updatePlanOptions(ApplicationData_UpdatePlanOptions v) { setField(19, v); }
@$pb.TagNumber(19) @$pb.TagNumber(19)
$core.bool hasUpdateplanoptions() => $_has(15); $core.bool hasUpdatePlanOptions() => $_has(15);
@$pb.TagNumber(19) @$pb.TagNumber(19)
void clearUpdateplanoptions() => clearField(19); void clearUpdatePlanOptions() => clearField(19);
@$pb.TagNumber(19) @$pb.TagNumber(19)
ApplicationData_UpdatePlanOptions ensureUpdateplanoptions() => $_ensure(15); ApplicationData_UpdatePlanOptions ensureUpdatePlanOptions() => $_ensure(15);
@$pb.TagNumber(20) @$pb.TagNumber(20)
ApplicationData_DownloadDone get downloaddone => $_getN(16); ApplicationData_DownloadDone get downloadDone => $_getN(16);
@$pb.TagNumber(20) @$pb.TagNumber(20)
set downloaddone(ApplicationData_DownloadDone v) { setField(20, v); } set downloadDone(ApplicationData_DownloadDone v) { setField(20, v); }
@$pb.TagNumber(20) @$pb.TagNumber(20)
$core.bool hasDownloaddone() => $_has(16); $core.bool hasDownloadDone() => $_has(16);
@$pb.TagNumber(20) @$pb.TagNumber(20)
void clearDownloaddone() => clearField(20); void clearDownloadDone() => clearField(20);
@$pb.TagNumber(20) @$pb.TagNumber(20)
ApplicationData_DownloadDone ensureDownloaddone() => $_ensure(16); ApplicationData_DownloadDone ensureDownloadDone() => $_ensure(16);
@$pb.TagNumber(22) @$pb.TagNumber(22)
ApplicationData_GetSignedPreKeyByUserId get getsignedprekeybyuserid => $_getN(17); ApplicationData_GetSignedPreKeyByUserId get getSignedPrekeyByUserid => $_getN(17);
@$pb.TagNumber(22) @$pb.TagNumber(22)
set getsignedprekeybyuserid(ApplicationData_GetSignedPreKeyByUserId v) { setField(22, v); } set getSignedPrekeyByUserid(ApplicationData_GetSignedPreKeyByUserId v) { setField(22, v); }
@$pb.TagNumber(22) @$pb.TagNumber(22)
$core.bool hasGetsignedprekeybyuserid() => $_has(17); $core.bool hasGetSignedPrekeyByUserid() => $_has(17);
@$pb.TagNumber(22) @$pb.TagNumber(22)
void clearGetsignedprekeybyuserid() => clearField(22); void clearGetSignedPrekeyByUserid() => clearField(22);
@$pb.TagNumber(22) @$pb.TagNumber(22)
ApplicationData_GetSignedPreKeyByUserId ensureGetsignedprekeybyuserid() => $_ensure(17); ApplicationData_GetSignedPreKeyByUserId ensureGetSignedPrekeyByUserid() => $_ensure(17);
@$pb.TagNumber(23) @$pb.TagNumber(23)
ApplicationData_UpdateSignedPreKey get updatesignedprekey => $_getN(18); ApplicationData_UpdateSignedPreKey get updateSignedPrekey => $_getN(18);
@$pb.TagNumber(23) @$pb.TagNumber(23)
set updatesignedprekey(ApplicationData_UpdateSignedPreKey v) { setField(23, v); } set updateSignedPrekey(ApplicationData_UpdateSignedPreKey v) { setField(23, v); }
@$pb.TagNumber(23) @$pb.TagNumber(23)
$core.bool hasUpdatesignedprekey() => $_has(18); $core.bool hasUpdateSignedPrekey() => $_has(18);
@$pb.TagNumber(23) @$pb.TagNumber(23)
void clearUpdatesignedprekey() => clearField(23); void clearUpdateSignedPrekey() => clearField(23);
@$pb.TagNumber(23) @$pb.TagNumber(23)
ApplicationData_UpdateSignedPreKey ensureUpdatesignedprekey() => $_ensure(18); ApplicationData_UpdateSignedPreKey ensureUpdateSignedPrekey() => $_ensure(18);
@$pb.TagNumber(24) @$pb.TagNumber(24)
ApplicationData_DeleteAccount get deleteaccount => $_getN(19); ApplicationData_DeleteAccount get deleteAccount => $_getN(19);
@$pb.TagNumber(24) @$pb.TagNumber(24)
set deleteaccount(ApplicationData_DeleteAccount v) { setField(24, v); } set deleteAccount(ApplicationData_DeleteAccount v) { setField(24, v); }
@$pb.TagNumber(24) @$pb.TagNumber(24)
$core.bool hasDeleteaccount() => $_has(19); $core.bool hasDeleteAccount() => $_has(19);
@$pb.TagNumber(24) @$pb.TagNumber(24)
void clearDeleteaccount() => clearField(24); void clearDeleteAccount() => clearField(24);
@$pb.TagNumber(24) @$pb.TagNumber(24)
ApplicationData_DeleteAccount ensureDeleteaccount() => $_ensure(19); ApplicationData_DeleteAccount ensureDeleteAccount() => $_ensure(19);
@$pb.TagNumber(25) @$pb.TagNumber(25)
ApplicationData_ReportUser get reportuser => $_getN(20); ApplicationData_ReportUser get reportUser => $_getN(20);
@$pb.TagNumber(25) @$pb.TagNumber(25)
set reportuser(ApplicationData_ReportUser v) { setField(25, v); } set reportUser(ApplicationData_ReportUser v) { setField(25, v); }
@$pb.TagNumber(25) @$pb.TagNumber(25)
$core.bool hasReportuser() => $_has(20); $core.bool hasReportUser() => $_has(20);
@$pb.TagNumber(25) @$pb.TagNumber(25)
void clearReportuser() => clearField(25); void clearReportUser() => clearField(25);
@$pb.TagNumber(25) @$pb.TagNumber(25)
ApplicationData_ReportUser ensureReportuser() => $_ensure(20); ApplicationData_ReportUser ensureReportUser() => $_ensure(20);
@$pb.TagNumber(26)
ApplicationData_ChangeUsername get changeUsername => $_getN(21);
@$pb.TagNumber(26)
set changeUsername(ApplicationData_ChangeUsername v) { setField(26, v); }
@$pb.TagNumber(26)
$core.bool hasChangeUsername() => $_has(21);
@$pb.TagNumber(26)
void clearChangeUsername() => clearField(26);
@$pb.TagNumber(26)
ApplicationData_ChangeUsername ensureChangeUsername() => $_ensure(21);
} }
class Response_PreKey extends $pb.GeneratedMessage { class Response_PreKey extends $pb.GeneratedMessage {

View file

@ -139,29 +139,30 @@ final $typed_data.Uint8List handshakeDescriptor = $convert.base64Decode(
const ApplicationData$json = { const ApplicationData$json = {
'1': 'ApplicationData', '1': 'ApplicationData',
'2': [ '2': [
{'1': 'textmessage', '3': 1, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.TextMessage', '9': 0, '10': 'textmessage'}, {'1': 'textMessage', '3': 1, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.TextMessage', '9': 0, '10': 'textMessage'},
{'1': 'getuserbyusername', '3': 2, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetUserByUsername', '9': 0, '10': 'getuserbyusername'}, {'1': 'getUserByUsername', '3': 2, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetUserByUsername', '9': 0, '10': 'getUserByUsername'},
{'1': 'getprekeysbyuserid', '3': 3, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetPrekeysByUserId', '9': 0, '10': 'getprekeysbyuserid'}, {'1': 'getPrekeysByUserId', '3': 3, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetPrekeysByUserId', '9': 0, '10': 'getPrekeysByUserId'},
{'1': 'getuserbyid', '3': 6, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetUserById', '9': 0, '10': 'getuserbyid'}, {'1': 'getUserById', '3': 6, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetUserById', '9': 0, '10': 'getUserById'},
{'1': 'updategooglefcmtoken', '3': 8, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UpdateGoogleFcmToken', '9': 0, '10': 'updategooglefcmtoken'}, {'1': 'updateGoogleFcmToken', '3': 8, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UpdateGoogleFcmToken', '9': 0, '10': 'updateGoogleFcmToken'},
{'1': 'getlocation', '3': 9, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetLocation', '9': 0, '10': 'getlocation'}, {'1': 'getLocation', '3': 9, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetLocation', '9': 0, '10': 'getLocation'},
{'1': 'getcurrentplaninfos', '3': 10, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetCurrentPlanInfos', '9': 0, '10': 'getcurrentplaninfos'}, {'1': 'getCurrentPlanInfos', '3': 10, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetCurrentPlanInfos', '9': 0, '10': 'getCurrentPlanInfos'},
{'1': 'redeemvoucher', '3': 11, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.RedeemVoucher', '9': 0, '10': 'redeemvoucher'}, {'1': 'redeemVoucher', '3': 11, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.RedeemVoucher', '9': 0, '10': 'redeemVoucher'},
{'1': 'getavailableplans', '3': 12, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetAvailablePlans', '9': 0, '10': 'getavailableplans'}, {'1': 'getAvailablePlans', '3': 12, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetAvailablePlans', '9': 0, '10': 'getAvailablePlans'},
{'1': 'createvoucher', '3': 13, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.CreateVoucher', '9': 0, '10': 'createvoucher'}, {'1': 'createVoucher', '3': 13, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.CreateVoucher', '9': 0, '10': 'createVoucher'},
{'1': 'getvouchers', '3': 14, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetVouchers', '9': 0, '10': 'getvouchers'}, {'1': 'getVouchers', '3': 14, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetVouchers', '9': 0, '10': 'getVouchers'},
{'1': 'Switchtopayedplan', '3': 15, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.SwitchToPayedPlan', '9': 0, '10': 'Switchtopayedplan'}, {'1': 'switchtoPayedPlan', '3': 15, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.SwitchToPayedPlan', '9': 0, '10': 'switchtoPayedPlan'},
{'1': 'getaddaccountsinvites', '3': 16, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetAddAccountsInvites', '9': 0, '10': 'getaddaccountsinvites'}, {'1': 'getAddaccountsInvites', '3': 16, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetAddAccountsInvites', '9': 0, '10': 'getAddaccountsInvites'},
{'1': 'redeemadditionalcode', '3': 17, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.RedeemAdditionalCode', '9': 0, '10': 'redeemadditionalcode'}, {'1': 'redeemAdditionalCode', '3': 17, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.RedeemAdditionalCode', '9': 0, '10': 'redeemAdditionalCode'},
{'1': 'removeadditionaluser', '3': 18, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.RemoveAdditionalUser', '9': 0, '10': 'removeadditionaluser'}, {'1': 'removeAdditionalUser', '3': 18, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.RemoveAdditionalUser', '9': 0, '10': 'removeAdditionalUser'},
{'1': 'updateplanoptions', '3': 19, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UpdatePlanOptions', '9': 0, '10': 'updateplanoptions'}, {'1': 'updatePlanOptions', '3': 19, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UpdatePlanOptions', '9': 0, '10': 'updatePlanOptions'},
{'1': 'downloaddone', '3': 20, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.DownloadDone', '9': 0, '10': 'downloaddone'}, {'1': 'downloadDone', '3': 20, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.DownloadDone', '9': 0, '10': 'downloadDone'},
{'1': 'getsignedprekeybyuserid', '3': 22, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetSignedPreKeyByUserId', '9': 0, '10': 'getsignedprekeybyuserid'}, {'1': 'getSignedPrekeyByUserid', '3': 22, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.GetSignedPreKeyByUserId', '9': 0, '10': 'getSignedPrekeyByUserid'},
{'1': 'updatesignedprekey', '3': 23, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UpdateSignedPreKey', '9': 0, '10': 'updatesignedprekey'}, {'1': 'updateSignedPrekey', '3': 23, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.UpdateSignedPreKey', '9': 0, '10': 'updateSignedPrekey'},
{'1': 'deleteaccount', '3': 24, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.DeleteAccount', '9': 0, '10': 'deleteaccount'}, {'1': 'deleteAccount', '3': 24, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.DeleteAccount', '9': 0, '10': 'deleteAccount'},
{'1': 'reportuser', '3': 25, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.ReportUser', '9': 0, '10': 'reportuser'}, {'1': 'reportUser', '3': 25, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.ReportUser', '9': 0, '10': 'reportUser'},
{'1': 'changeUsername', '3': 26, '4': 1, '5': 11, '6': '.client_to_server.ApplicationData.ChangeUsername', '9': 0, '10': 'changeUsername'},
], ],
'3': [ApplicationData_TextMessage$json, ApplicationData_GetUserByUsername$json, ApplicationData_UpdateGoogleFcmToken$json, ApplicationData_GetUserById$json, ApplicationData_RedeemVoucher$json, ApplicationData_SwitchToPayedPlan$json, ApplicationData_UpdatePlanOptions$json, ApplicationData_CreateVoucher$json, ApplicationData_GetLocation$json, ApplicationData_GetVouchers$json, ApplicationData_GetAvailablePlans$json, ApplicationData_GetAddAccountsInvites$json, ApplicationData_GetCurrentPlanInfos$json, ApplicationData_RedeemAdditionalCode$json, ApplicationData_RemoveAdditionalUser$json, ApplicationData_GetPrekeysByUserId$json, ApplicationData_GetSignedPreKeyByUserId$json, ApplicationData_UpdateSignedPreKey$json, ApplicationData_DownloadDone$json, ApplicationData_ReportUser$json, ApplicationData_DeleteAccount$json], '3': [ApplicationData_TextMessage$json, ApplicationData_GetUserByUsername$json, ApplicationData_ChangeUsername$json, ApplicationData_UpdateGoogleFcmToken$json, ApplicationData_GetUserById$json, ApplicationData_RedeemVoucher$json, ApplicationData_SwitchToPayedPlan$json, ApplicationData_UpdatePlanOptions$json, ApplicationData_CreateVoucher$json, ApplicationData_GetLocation$json, ApplicationData_GetVouchers$json, ApplicationData_GetAvailablePlans$json, ApplicationData_GetAddAccountsInvites$json, ApplicationData_GetCurrentPlanInfos$json, ApplicationData_RedeemAdditionalCode$json, ApplicationData_RemoveAdditionalUser$json, ApplicationData_GetPrekeysByUserId$json, ApplicationData_GetSignedPreKeyByUserId$json, ApplicationData_UpdateSignedPreKey$json, ApplicationData_DownloadDone$json, ApplicationData_ReportUser$json, ApplicationData_DeleteAccount$json],
'8': [ '8': [
{'1': 'ApplicationData'}, {'1': 'ApplicationData'},
], ],
@ -188,6 +189,14 @@ const ApplicationData_GetUserByUsername$json = {
], ],
}; };
@$core.Deprecated('Use applicationDataDescriptor instead')
const ApplicationData_ChangeUsername$json = {
'1': 'ChangeUsername',
'2': [
{'1': 'username', '3': 1, '4': 1, '5': 9, '10': 'username'},
],
};
@$core.Deprecated('Use applicationDataDescriptor instead') @$core.Deprecated('Use applicationDataDescriptor instead')
const ApplicationData_UpdateGoogleFcmToken$json = { const ApplicationData_UpdateGoogleFcmToken$json = {
'1': 'UpdateGoogleFcmToken', '1': 'UpdateGoogleFcmToken',
@ -329,64 +338,67 @@ const ApplicationData_DeleteAccount$json = {
/// Descriptor for `ApplicationData`. Decode as a `google.protobuf.DescriptorProto`. /// Descriptor for `ApplicationData`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List applicationDataDescriptor = $convert.base64Decode( final $typed_data.Uint8List applicationDataDescriptor = $convert.base64Decode(
'Cg9BcHBsaWNhdGlvbkRhdGESUQoLdGV4dG1lc3NhZ2UYASABKAsyLS5jbGllbnRfdG9fc2Vydm' 'Cg9BcHBsaWNhdGlvbkRhdGESUQoLdGV4dE1lc3NhZ2UYASABKAsyLS5jbGllbnRfdG9fc2Vydm'
'VyLkFwcGxpY2F0aW9uRGF0YS5UZXh0TWVzc2FnZUgAUgt0ZXh0bWVzc2FnZRJjChFnZXR1c2Vy' 'VyLkFwcGxpY2F0aW9uRGF0YS5UZXh0TWVzc2FnZUgAUgt0ZXh0TWVzc2FnZRJjChFnZXRVc2Vy'
'Ynl1c2VybmFtZRgCIAEoCzIzLmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldF' 'QnlVc2VybmFtZRgCIAEoCzIzLmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldF'
'VzZXJCeVVzZXJuYW1lSABSEWdldHVzZXJieXVzZXJuYW1lEmYKEmdldHByZWtleXNieXVzZXJp' 'VzZXJCeVVzZXJuYW1lSABSEWdldFVzZXJCeVVzZXJuYW1lEmYKEmdldFByZWtleXNCeVVzZXJJ'
'ZBgDIAEoCzI0LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldFByZWtleXNCeV' 'ZBgDIAEoCzI0LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldFByZWtleXNCeV'
'VzZXJJZEgAUhJnZXRwcmVrZXlzYnl1c2VyaWQSUQoLZ2V0dXNlcmJ5aWQYBiABKAsyLS5jbGll' 'VzZXJJZEgAUhJnZXRQcmVrZXlzQnlVc2VySWQSUQoLZ2V0VXNlckJ5SWQYBiABKAsyLS5jbGll'
'bnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5HZXRVc2VyQnlJZEgAUgtnZXR1c2VyYnlpZB' 'bnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5HZXRVc2VyQnlJZEgAUgtnZXRVc2VyQnlJZB'
'JsChR1cGRhdGVnb29nbGVmY210b2tlbhgIIAEoCzI2LmNsaWVudF90b19zZXJ2ZXIuQXBwbGlj' 'JsChR1cGRhdGVHb29nbGVGY21Ub2tlbhgIIAEoCzI2LmNsaWVudF90b19zZXJ2ZXIuQXBwbGlj'
'YXRpb25EYXRhLlVwZGF0ZUdvb2dsZUZjbVRva2VuSABSFHVwZGF0ZWdvb2dsZWZjbXRva2VuEl' 'YXRpb25EYXRhLlVwZGF0ZUdvb2dsZUZjbVRva2VuSABSFHVwZGF0ZUdvb2dsZUZjbVRva2VuEl'
'EKC2dldGxvY2F0aW9uGAkgASgLMi0uY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEu' 'EKC2dldExvY2F0aW9uGAkgASgLMi0uY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEu'
'R2V0TG9jYXRpb25IAFILZ2V0bG9jYXRpb24SaQoTZ2V0Y3VycmVudHBsYW5pbmZvcxgKIAEoCz' 'R2V0TG9jYXRpb25IAFILZ2V0TG9jYXRpb24SaQoTZ2V0Q3VycmVudFBsYW5JbmZvcxgKIAEoCz'
'I1LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldEN1cnJlbnRQbGFuSW5mb3NI' 'I1LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldEN1cnJlbnRQbGFuSW5mb3NI'
'AFITZ2V0Y3VycmVudHBsYW5pbmZvcxJXCg1yZWRlZW12b3VjaGVyGAsgASgLMi8uY2xpZW50X3' 'AFITZ2V0Q3VycmVudFBsYW5JbmZvcxJXCg1yZWRlZW1Wb3VjaGVyGAsgASgLMi8uY2xpZW50X3'
'RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuUmVkZWVtVm91Y2hlckgAUg1yZWRlZW12b3VjaGVy' 'RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuUmVkZWVtVm91Y2hlckgAUg1yZWRlZW1Wb3VjaGVy'
'EmMKEWdldGF2YWlsYWJsZXBsYW5zGAwgASgLMjMuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdG' 'EmMKEWdldEF2YWlsYWJsZVBsYW5zGAwgASgLMjMuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdG'
'lvbkRhdGEuR2V0QXZhaWxhYmxlUGxhbnNIAFIRZ2V0YXZhaWxhYmxlcGxhbnMSVwoNY3JlYXRl' 'lvbkRhdGEuR2V0QXZhaWxhYmxlUGxhbnNIAFIRZ2V0QXZhaWxhYmxlUGxhbnMSVwoNY3JlYXRl'
'dm91Y2hlchgNIAEoCzIvLmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkNyZWF0ZV' 'Vm91Y2hlchgNIAEoCzIvLmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkNyZWF0ZV'
'ZvdWNoZXJIAFINY3JlYXRldm91Y2hlchJRCgtnZXR2b3VjaGVycxgOIAEoCzItLmNsaWVudF90' 'ZvdWNoZXJIAFINY3JlYXRlVm91Y2hlchJRCgtnZXRWb3VjaGVycxgOIAEoCzItLmNsaWVudF90'
'b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldFZvdWNoZXJzSABSC2dldHZvdWNoZXJzEmMKEV' 'b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLkdldFZvdWNoZXJzSABSC2dldFZvdWNoZXJzEmMKEX'
'N3aXRjaHRvcGF5ZWRwbGFuGA8gASgLMjMuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRh' 'N3aXRjaHRvUGF5ZWRQbGFuGA8gASgLMjMuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRh'
'dGEuU3dpdGNoVG9QYXllZFBsYW5IAFIRU3dpdGNodG9wYXllZHBsYW4SbwoVZ2V0YWRkYWNjb3' 'dGEuU3dpdGNoVG9QYXllZFBsYW5IAFIRc3dpdGNodG9QYXllZFBsYW4SbwoVZ2V0QWRkYWNjb3'
'VudHNpbnZpdGVzGBAgASgLMjcuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuR2V0' 'VudHNJbnZpdGVzGBAgASgLMjcuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuR2V0'
'QWRkQWNjb3VudHNJbnZpdGVzSABSFWdldGFkZGFjY291bnRzaW52aXRlcxJsChRyZWRlZW1hZG' 'QWRkQWNjb3VudHNJbnZpdGVzSABSFWdldEFkZGFjY291bnRzSW52aXRlcxJsChRyZWRlZW1BZG'
'RpdGlvbmFsY29kZRgRIAEoCzI2LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLlJl' 'RpdGlvbmFsQ29kZRgRIAEoCzI2LmNsaWVudF90b19zZXJ2ZXIuQXBwbGljYXRpb25EYXRhLlJl'
'ZGVlbUFkZGl0aW9uYWxDb2RlSABSFHJlZGVlbWFkZGl0aW9uYWxjb2RlEmwKFHJlbW92ZWFkZG' 'ZGVlbUFkZGl0aW9uYWxDb2RlSABSFHJlZGVlbUFkZGl0aW9uYWxDb2RlEmwKFHJlbW92ZUFkZG'
'l0aW9uYWx1c2VyGBIgASgLMjYuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuUmVt' 'l0aW9uYWxVc2VyGBIgASgLMjYuY2xpZW50X3RvX3NlcnZlci5BcHBsaWNhdGlvbkRhdGEuUmVt'
'b3ZlQWRkaXRpb25hbFVzZXJIAFIUcmVtb3ZlYWRkaXRpb25hbHVzZXISYwoRdXBkYXRlcGxhbm' 'b3ZlQWRkaXRpb25hbFVzZXJIAFIUcmVtb3ZlQWRkaXRpb25hbFVzZXISYwoRdXBkYXRlUGxhbk'
'9wdGlvbnMYEyABKAsyMy5jbGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5VcGRhdGVQ' '9wdGlvbnMYEyABKAsyMy5jbGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5VcGRhdGVQ'
'bGFuT3B0aW9uc0gAUhF1cGRhdGVwbGFub3B0aW9ucxJUCgxkb3dubG9hZGRvbmUYFCABKAsyLi' 'bGFuT3B0aW9uc0gAUhF1cGRhdGVQbGFuT3B0aW9ucxJUCgxkb3dubG9hZERvbmUYFCABKAsyLi'
'5jbGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5Eb3dubG9hZERvbmVIAFIMZG93bmxv' '5jbGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5Eb3dubG9hZERvbmVIAFIMZG93bmxv'
'YWRkb25lEnUKF2dldHNpZ25lZHByZWtleWJ5dXNlcmlkGBYgASgLMjkuY2xpZW50X3RvX3Nlcn' 'YWREb25lEnUKF2dldFNpZ25lZFByZWtleUJ5VXNlcmlkGBYgASgLMjkuY2xpZW50X3RvX3Nlcn'
'Zlci5BcHBsaWNhdGlvbkRhdGEuR2V0U2lnbmVkUHJlS2V5QnlVc2VySWRIAFIXZ2V0c2lnbmVk' 'Zlci5BcHBsaWNhdGlvbkRhdGEuR2V0U2lnbmVkUHJlS2V5QnlVc2VySWRIAFIXZ2V0U2lnbmVk'
'cHJla2V5Ynl1c2VyaWQSZgoSdXBkYXRlc2lnbmVkcHJla2V5GBcgASgLMjQuY2xpZW50X3RvX3' 'UHJla2V5QnlVc2VyaWQSZgoSdXBkYXRlU2lnbmVkUHJla2V5GBcgASgLMjQuY2xpZW50X3RvX3'
'NlcnZlci5BcHBsaWNhdGlvbkRhdGEuVXBkYXRlU2lnbmVkUHJlS2V5SABSEnVwZGF0ZXNpZ25l' 'NlcnZlci5BcHBsaWNhdGlvbkRhdGEuVXBkYXRlU2lnbmVkUHJlS2V5SABSEnVwZGF0ZVNpZ25l'
'ZHByZWtleRJXCg1kZWxldGVhY2NvdW50GBggASgLMi8uY2xpZW50X3RvX3NlcnZlci5BcHBsaW' 'ZFByZWtleRJXCg1kZWxldGVBY2NvdW50GBggASgLMi8uY2xpZW50X3RvX3NlcnZlci5BcHBsaW'
'NhdGlvbkRhdGEuRGVsZXRlQWNjb3VudEgAUg1kZWxldGVhY2NvdW50Ek4KCnJlcG9ydHVzZXIY' 'NhdGlvbkRhdGEuRGVsZXRlQWNjb3VudEgAUg1kZWxldGVBY2NvdW50Ek4KCnJlcG9ydFVzZXIY'
'GSABKAsyLC5jbGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5SZXBvcnRVc2VySABSCn' 'GSABKAsyLC5jbGllbnRfdG9fc2VydmVyLkFwcGxpY2F0aW9uRGF0YS5SZXBvcnRVc2VySABSCn'
'JlcG9ydHVzZXIaagoLVGV4dE1lc3NhZ2USFwoHdXNlcl9pZBgBIAEoA1IGdXNlcklkEhIKBGJv' 'JlcG9ydFVzZXISWgoOY2hhbmdlVXNlcm5hbWUYGiABKAsyMC5jbGllbnRfdG9fc2VydmVyLkFw'
'ZHkYAyABKAxSBGJvZHkSIAoJcHVzaF9kYXRhGAQgASgMSABSCHB1c2hEYXRhiAEBQgwKCl9wdX' 'cGxpY2F0aW9uRGF0YS5DaGFuZ2VVc2VybmFtZUgAUg5jaGFuZ2VVc2VybmFtZRpqCgtUZXh0TW'
'NoX2RhdGEaLwoRR2V0VXNlckJ5VXNlcm5hbWUSGgoIdXNlcm5hbWUYASABKAlSCHVzZXJuYW1l' 'Vzc2FnZRIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQSEgoEYm9keRgDIAEoDFIEYm9keRIgCglw'
'GjUKFFVwZGF0ZUdvb2dsZUZjbVRva2VuEh0KCmdvb2dsZV9mY20YASABKAlSCWdvb2dsZUZjbR' 'dXNoX2RhdGEYBCABKAxIAFIIcHVzaERhdGGIAQFCDAoKX3B1c2hfZGF0YRovChFHZXRVc2VyQn'
'omCgtHZXRVc2VyQnlJZBIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQaKQoNUmVkZWVtVm91Y2hl' 'lVc2VybmFtZRIaCgh1c2VybmFtZRgBIAEoCVIIdXNlcm5hbWUaLAoOQ2hhbmdlVXNlcm5hbWUS'
'chIYCgd2b3VjaGVyGAEgASgJUgd2b3VjaGVyGnAKEVN3aXRjaFRvUGF5ZWRQbGFuEhcKB3BsYW' 'GgoIdXNlcm5hbWUYASABKAlSCHVzZXJuYW1lGjUKFFVwZGF0ZUdvb2dsZUZjbVRva2VuEh0KCm'
'5faWQYASABKAlSBnBsYW5JZBIfCgtwYXlfbW9udGhseRgCIAEoCFIKcGF5TW9udGhseRIhCgxh' 'dvb2dsZV9mY20YASABKAlSCWdvb2dsZUZjbRomCgtHZXRVc2VyQnlJZBIXCgd1c2VyX2lkGAEg'
'dXRvX3JlbmV3YWwYAyABKAhSC2F1dG9SZW5ld2FsGjYKEVVwZGF0ZVBsYW5PcHRpb25zEiEKDG' 'ASgDUgZ1c2VySWQaKQoNUmVkZWVtVm91Y2hlchIYCgd2b3VjaGVyGAEgASgJUgd2b3VjaGVyGn'
'F1dG9fcmVuZXdhbBgBIAEoCFILYXV0b1JlbmV3YWwaMAoNQ3JlYXRlVm91Y2hlchIfCgt2YWx1' 'AKEVN3aXRjaFRvUGF5ZWRQbGFuEhcKB3BsYW5faWQYASABKAlSBnBsYW5JZBIfCgtwYXlfbW9u'
'ZV9jZW50cxgBIAEoDVIKdmFsdWVDZW50cxoNCgtHZXRMb2NhdGlvbhoNCgtHZXRWb3VjaGVycx' 'dGhseRgCIAEoCFIKcGF5TW9udGhseRIhCgxhdXRvX3JlbmV3YWwYAyABKAhSC2F1dG9SZW5ld2'
'oTChFHZXRBdmFpbGFibGVQbGFucxoXChVHZXRBZGRBY2NvdW50c0ludml0ZXMaFQoTR2V0Q3Vy' 'FsGjYKEVVwZGF0ZVBsYW5PcHRpb25zEiEKDGF1dG9fcmVuZXdhbBgBIAEoCFILYXV0b1JlbmV3'
'cmVudFBsYW5JbmZvcxo3ChRSZWRlZW1BZGRpdGlvbmFsQ29kZRIfCgtpbnZpdGVfY29kZRgCIA' 'YWwaMAoNQ3JlYXRlVm91Y2hlchIfCgt2YWx1ZV9jZW50cxgBIAEoDVIKdmFsdWVDZW50cxoNCg'
'EoCVIKaW52aXRlQ29kZRovChRSZW1vdmVBZGRpdGlvbmFsVXNlchIXCgd1c2VyX2lkGAEgASgD' 'tHZXRMb2NhdGlvbhoNCgtHZXRWb3VjaGVycxoTChFHZXRBdmFpbGFibGVQbGFucxoXChVHZXRB'
'UgZ1c2VySWQaLQoSR2V0UHJla2V5c0J5VXNlcklkEhcKB3VzZXJfaWQYASABKANSBnVzZXJJZB' 'ZGRBY2NvdW50c0ludml0ZXMaFQoTR2V0Q3VycmVudFBsYW5JbmZvcxo3ChRSZWRlZW1BZGRpdG'
'oyChdHZXRTaWduZWRQcmVLZXlCeVVzZXJJZBIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQamwEK' 'lvbmFsQ29kZRIfCgtpbnZpdGVfY29kZRgCIAEoCVIKaW52aXRlQ29kZRovChRSZW1vdmVBZGRp'
'ElVwZGF0ZVNpZ25lZFByZUtleRIoChBzaWduZWRfcHJla2V5X2lkGAEgASgDUg5zaWduZWRQcm' 'dGlvbmFsVXNlchIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQaLQoSR2V0UHJla2V5c0J5VXNlck'
'VrZXlJZBIjCg1zaWduZWRfcHJla2V5GAIgASgMUgxzaWduZWRQcmVrZXkSNgoXc2lnbmVkX3By' 'lkEhcKB3VzZXJfaWQYASABKANSBnVzZXJJZBoyChdHZXRTaWduZWRQcmVLZXlCeVVzZXJJZBIX'
'ZWtleV9zaWduYXR1cmUYAyABKAxSFXNpZ25lZFByZWtleVNpZ25hdHVyZRo1CgxEb3dubG9hZE' 'Cgd1c2VyX2lkGAEgASgDUgZ1c2VySWQamwEKElVwZGF0ZVNpZ25lZFByZUtleRIoChBzaWduZW'
'RvbmUSJQoOZG93bmxvYWRfdG9rZW4YASABKAxSDWRvd25sb2FkVG9rZW4aTgoKUmVwb3J0VXNl' 'RfcHJla2V5X2lkGAEgASgDUg5zaWduZWRQcmVrZXlJZBIjCg1zaWduZWRfcHJla2V5GAIgASgM'
'chIoChByZXBvcnRlZF91c2VyX2lkGAEgASgDUg5yZXBvcnRlZFVzZXJJZBIWCgZyZWFzb24YAi' 'UgxzaWduZWRQcmVrZXkSNgoXc2lnbmVkX3ByZWtleV9zaWduYXR1cmUYAyABKAxSFXNpZ25lZF'
'ABKAlSBnJlYXNvbhoPCg1EZWxldGVBY2NvdW50QhEKD0FwcGxpY2F0aW9uRGF0YQ=='); 'ByZWtleVNpZ25hdHVyZRo1CgxEb3dubG9hZERvbmUSJQoOZG93bmxvYWRfdG9rZW4YASABKAxS'
'DWRvd25sb2FkVG9rZW4aTgoKUmVwb3J0VXNlchIoChByZXBvcnRlZF91c2VyX2lkGAEgASgDUg'
'5yZXBvcnRlZFVzZXJJZBIWCgZyZWFzb24YAiABKAlSBnJlYXNvbhoPCg1EZWxldGVBY2NvdW50'
'QhEKD0FwcGxpY2F0aW9uRGF0YQ==');
@$core.Deprecated('Use responseDescriptor instead') @$core.Deprecated('Use responseDescriptor instead')
const Response$json = { const Response$json = {

View file

@ -1052,6 +1052,7 @@ class EncryptedContent_ContactUpdate extends $pb.GeneratedMessage {
factory EncryptedContent_ContactUpdate({ factory EncryptedContent_ContactUpdate({
EncryptedContent_ContactUpdate_Type? type, EncryptedContent_ContactUpdate_Type? type,
$core.List<$core.int>? avatarSvgCompressed, $core.List<$core.int>? avatarSvgCompressed,
$core.String? username,
$core.String? displayName, $core.String? displayName,
}) { }) {
final $result = create(); final $result = create();
@ -1061,6 +1062,9 @@ class EncryptedContent_ContactUpdate extends $pb.GeneratedMessage {
if (avatarSvgCompressed != null) { if (avatarSvgCompressed != null) {
$result.avatarSvgCompressed = avatarSvgCompressed; $result.avatarSvgCompressed = avatarSvgCompressed;
} }
if (username != null) {
$result.username = username;
}
if (displayName != null) { if (displayName != null) {
$result.displayName = displayName; $result.displayName = displayName;
} }
@ -1073,7 +1077,8 @@ class EncryptedContent_ContactUpdate extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'EncryptedContent.ContactUpdate', createEmptyInstance: create) 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, enumValues: EncryptedContent_ContactUpdate_Type.values) ..e<EncryptedContent_ContactUpdate_Type>(1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE, defaultOrMaker: EncryptedContent_ContactUpdate_Type.REQUEST, valueOf: EncryptedContent_ContactUpdate_Type.valueOf, enumValues: EncryptedContent_ContactUpdate_Type.values)
..a<$core.List<$core.int>>(2, _omitFieldNames ? '' : 'avatarSvgCompressed', $pb.PbFieldType.OY, protoName: 'avatarSvgCompressed') ..a<$core.List<$core.int>>(2, _omitFieldNames ? '' : 'avatarSvgCompressed', $pb.PbFieldType.OY, protoName: 'avatarSvgCompressed')
..aOS(3, _omitFieldNames ? '' : 'displayName', protoName: 'displayName') ..aOS(3, _omitFieldNames ? '' : 'username')
..aOS(4, _omitFieldNames ? '' : 'displayName', protoName: 'displayName')
..hasRequiredFields = false ..hasRequiredFields = false
; ;
@ -1117,13 +1122,22 @@ class EncryptedContent_ContactUpdate extends $pb.GeneratedMessage {
void clearAvatarSvgCompressed() => clearField(2); void clearAvatarSvgCompressed() => clearField(2);
@$pb.TagNumber(3) @$pb.TagNumber(3)
$core.String get displayName => $_getSZ(2); $core.String get username => $_getSZ(2);
@$pb.TagNumber(3) @$pb.TagNumber(3)
set displayName($core.String v) { $_setString(2, v); } set username($core.String v) { $_setString(2, v); }
@$pb.TagNumber(3) @$pb.TagNumber(3)
$core.bool hasDisplayName() => $_has(2); $core.bool hasUsername() => $_has(2);
@$pb.TagNumber(3) @$pb.TagNumber(3)
void clearDisplayName() => clearField(3); void clearUsername() => clearField(3);
@$pb.TagNumber(4)
$core.String get displayName => $_getSZ(3);
@$pb.TagNumber(4)
set displayName($core.String v) { $_setString(3, v); }
@$pb.TagNumber(4)
$core.bool hasDisplayName() => $_has(3);
@$pb.TagNumber(4)
void clearDisplayName() => clearField(4);
} }
class EncryptedContent_PushKeys extends $pb.GeneratedMessage { class EncryptedContent_PushKeys extends $pb.GeneratedMessage {

View file

@ -310,11 +310,13 @@ const EncryptedContent_ContactUpdate$json = {
'2': [ '2': [
{'1': 'type', '3': 1, '4': 1, '5': 14, '6': '.EncryptedContent.ContactUpdate.Type', '10': 'type'}, {'1': 'type', '3': 1, '4': 1, '5': 14, '6': '.EncryptedContent.ContactUpdate.Type', '10': 'type'},
{'1': 'avatarSvgCompressed', '3': 2, '4': 1, '5': 12, '9': 0, '10': 'avatarSvgCompressed', '17': true}, {'1': 'avatarSvgCompressed', '3': 2, '4': 1, '5': 12, '9': 0, '10': 'avatarSvgCompressed', '17': true},
{'1': 'displayName', '3': 3, '4': 1, '5': 9, '9': 1, '10': 'displayName', '17': true}, {'1': 'username', '3': 3, '4': 1, '5': 9, '9': 1, '10': 'username', '17': true},
{'1': 'displayName', '3': 4, '4': 1, '5': 9, '9': 2, '10': 'displayName', '17': true},
], ],
'4': [EncryptedContent_ContactUpdate_Type$json], '4': [EncryptedContent_ContactUpdate_Type$json],
'8': [ '8': [
{'1': '_avatarSvgCompressed'}, {'1': '_avatarSvgCompressed'},
{'1': '_username'},
{'1': '_displayName'}, {'1': '_displayName'},
], ],
}; };
@ -418,21 +420,22 @@ final $typed_data.Uint8List encryptedContentDescriptor = $convert.base64Decode(
'IoCg90YXJnZXRNZXNzYWdlSWQYAiABKAlSD3RhcmdldE1lc3NhZ2VJZCI2CgRUeXBlEgwKCFJF' 'IoCg90YXJnZXRNZXNzYWdlSWQYAiABKAlSD3RhcmdldE1lc3NhZ2VJZCI2CgRUeXBlEgwKCFJF'
'T1BFTkVEEAASCgoGU1RPUkVEEAESFAoQREVDUllQVElPTl9FUlJPUhACGngKDkNvbnRhY3RSZX' 'T1BFTkVEEAASCgoGU1RPUkVEEAESFAoQREVDUllQVElPTl9FUlJPUhACGngKDkNvbnRhY3RSZX'
'F1ZXN0EjkKBHR5cGUYASABKA4yJS5FbmNyeXB0ZWRDb250ZW50LkNvbnRhY3RSZXF1ZXN0LlR5' 'F1ZXN0EjkKBHR5cGUYASABKA4yJS5FbmNyeXB0ZWRDb250ZW50LkNvbnRhY3RSZXF1ZXN0LlR5'
'cGVSBHR5cGUiKwoEVHlwZRILCgdSRVFVRVNUEAASCgoGUkVKRUNUEAESCgoGQUNDRVBUEAIa8A' 'cGVSBHR5cGUiKwoEVHlwZRILCgdSRVFVRVNUEAASCgoGUkVKRUNUEAESCgoGQUNDRVBUEAIang'
'EKDUNvbnRhY3RVcGRhdGUSOAoEdHlwZRgBIAEoDjIkLkVuY3J5cHRlZENvbnRlbnQuQ29udGFj' 'IKDUNvbnRhY3RVcGRhdGUSOAoEdHlwZRgBIAEoDjIkLkVuY3J5cHRlZENvbnRlbnQuQ29udGFj'
'dFVwZGF0ZS5UeXBlUgR0eXBlEjUKE2F2YXRhclN2Z0NvbXByZXNzZWQYAiABKAxIAFITYXZhdG' 'dFVwZGF0ZS5UeXBlUgR0eXBlEjUKE2F2YXRhclN2Z0NvbXByZXNzZWQYAiABKAxIAFITYXZhdG'
'FyU3ZnQ29tcHJlc3NlZIgBARIlCgtkaXNwbGF5TmFtZRgDIAEoCUgBUgtkaXNwbGF5TmFtZYgB' 'FyU3ZnQ29tcHJlc3NlZIgBARIfCgh1c2VybmFtZRgDIAEoCUgBUgh1c2VybmFtZYgBARIlCgtk'
'ASIfCgRUeXBlEgsKB1JFUVVFU1QQABIKCgZVUERBVEUQAUIWChRfYXZhdGFyU3ZnQ29tcHJlc3' 'aXNwbGF5TmFtZRgEIAEoCUgCUgtkaXNwbGF5TmFtZYgBASIfCgRUeXBlEgsKB1JFUVVFU1QQAB'
'NlZEIOCgxfZGlzcGxheU5hbWUa1QEKCFB1c2hLZXlzEjMKBHR5cGUYASABKA4yHy5FbmNyeXB0' 'IKCgZVUERBVEUQAUIWChRfYXZhdGFyU3ZnQ29tcHJlc3NlZEILCglfdXNlcm5hbWVCDgoMX2Rp'
'ZWRDb250ZW50LlB1c2hLZXlzLlR5cGVSBHR5cGUSGQoFa2V5SWQYAiABKANIAFIFa2V5SWSIAQ' 'c3BsYXlOYW1lGtUBCghQdXNoS2V5cxIzCgR0eXBlGAEgASgOMh8uRW5jcnlwdGVkQ29udGVudC'
'ESFQoDa2V5GAMgASgMSAFSA2tleYgBARIhCgljcmVhdGVkQXQYBCABKANIAlIJY3JlYXRlZEF0' '5QdXNoS2V5cy5UeXBlUgR0eXBlEhkKBWtleUlkGAIgASgDSABSBWtleUlkiAEBEhUKA2tleRgD'
'iAEBIh8KBFR5cGUSCwoHUkVRVUVTVBAAEgoKBlVQREFURRABQggKBl9rZXlJZEIGCgRfa2V5Qg' 'IAEoDEgBUgNrZXmIAQESIQoJY3JlYXRlZEF0GAQgASgDSAJSCWNyZWF0ZWRBdIgBASIfCgRUeX'
'wKCl9jcmVhdGVkQXQahwEKCUZsYW1lU3luYxIiCgxmbGFtZUNvdW50ZXIYASABKANSDGZsYW1l' 'BlEgsKB1JFUVVFU1QQABIKCgZVUERBVEUQAUIICgZfa2V5SWRCBgoEX2tleUIMCgpfY3JlYXRl'
'Q291bnRlchI2ChZsYXN0RmxhbWVDb3VudGVyQ2hhbmdlGAIgASgDUhZsYXN0RmxhbWVDb3VudG' 'ZEF0GocBCglGbGFtZVN5bmMSIgoMZmxhbWVDb3VudGVyGAEgASgDUgxmbGFtZUNvdW50ZXISNg'
'VyQ2hhbmdlEh4KCmJlc3RGcmllbmQYAyABKAhSCmJlc3RGcmllbmRCCgoIX2dyb3VwSWRCDwoN' 'oWbGFzdEZsYW1lQ291bnRlckNoYW5nZRgCIAEoA1IWbGFzdEZsYW1lQ291bnRlckNoYW5nZRIe'
'X2lzRGlyZWN0Q2hhdEIXChVfc2VuZGVyUHJvZmlsZUNvdW50ZXJCEAoOX21lc3NhZ2VVcGRhdG' 'CgpiZXN0RnJpZW5kGAMgASgIUgpiZXN0RnJpZW5kQgoKCF9ncm91cElkQg8KDV9pc0RpcmVjdE'
'VCCAoGX21lZGlhQg4KDF9tZWRpYVVwZGF0ZUIQCg5fY29udGFjdFVwZGF0ZUIRCg9fY29udGFj' 'NoYXRCFwoVX3NlbmRlclByb2ZpbGVDb3VudGVyQhAKDl9tZXNzYWdlVXBkYXRlQggKBl9tZWRp'
'dFJlcXVlc3RCDAoKX2ZsYW1lU3luY0ILCglfcHVzaEtleXNCCwoJX3JlYWN0aW9uQg4KDF90ZX' 'YUIOCgxfbWVkaWFVcGRhdGVCEAoOX2NvbnRhY3RVcGRhdGVCEQoPX2NvbnRhY3RSZXF1ZXN0Qg'
'h0TWVzc2FnZUIOCgxfZ3JvdXBDcmVhdGVCDAoKX2dyb3VwSm9pbkIOCgxfZ3JvdXBVcGRhdGVC' 'wKCl9mbGFtZVN5bmNCCwoJX3B1c2hLZXlzQgsKCV9yZWFjdGlvbkIOCgxfdGV4dE1lc3NhZ2VC'
'FwoVX3Jlc2VuZEdyb3VwUHVibGljS2V5'); 'DgoMX2dyb3VwQ3JlYXRlQgwKCl9ncm91cEpvaW5CDgoMX2dyb3VwVXBkYXRlQhcKFV9yZXNlbm'
'RHcm91cFB1YmxpY0tleQ==');

View file

@ -148,7 +148,8 @@ message EncryptedContent {
Type type = 1; Type type = 1;
optional bytes avatarSvgCompressed = 2; optional bytes avatarSvgCompressed = 2;
optional string displayName = 3; optional string username = 3;
optional string displayName = 4;
} }
message PushKeys { message PushKeys {

View file

@ -490,7 +490,7 @@ class ApiService {
Future<Response_UserData?> getUserById(int userId) async { Future<Response_UserData?> getUserById(int userId) async {
final get = ApplicationData_GetUserById()..userId = Int64(userId); final get = ApplicationData_GetUserById()..userId = Int64(userId);
final appData = ApplicationData()..getuserbyid = get; final appData = ApplicationData()..getUserById = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
final res = await sendRequestSync(req); final res = await sendRequestSync(req);
if (res.isSuccess) { if (res.isSuccess) {
@ -504,21 +504,21 @@ class ApiService {
Future<Result> downloadDone(List<int> token) async { Future<Result> downloadDone(List<int> token) async {
final get = ApplicationData_DownloadDone()..downloadToken = token; final get = ApplicationData_DownloadDone()..downloadToken = token;
final appData = ApplicationData()..downloaddone = get; final appData = ApplicationData()..downloadDone = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req, ensureRetransmission: true); return sendRequestSync(req, ensureRetransmission: true);
} }
Future<Result> getCurrentLocation() async { Future<Result> getCurrentLocation() async {
final get = ApplicationData_GetLocation(); final get = ApplicationData_GetLocation();
final appData = ApplicationData()..getlocation = get; final appData = ApplicationData()..getLocation = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
Future<Response_UserData?> getUserData(String username) async { Future<Response_UserData?> getUserData(String username) async {
final get = ApplicationData_GetUserByUsername()..username = username; final get = ApplicationData_GetUserByUsername()..username = username;
final appData = ApplicationData()..getuserbyusername = get; final appData = ApplicationData()..getUserByUsername = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
final res = await sendRequestSync(req); final res = await sendRequestSync(req);
if (res.isSuccess) { if (res.isSuccess) {
@ -532,7 +532,7 @@ class ApiService {
Future<Response_PlanBallance?> getPlanBallance() async { Future<Response_PlanBallance?> getPlanBallance() async {
final get = ApplicationData_GetCurrentPlanInfos(); final get = ApplicationData_GetCurrentPlanInfos();
final appData = ApplicationData()..getcurrentplaninfos = get; final appData = ApplicationData()..getCurrentPlanInfos = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
final res = await sendRequestSync(req); final res = await sendRequestSync(req);
if (res.isSuccess) { if (res.isSuccess) {
@ -546,7 +546,7 @@ class ApiService {
Future<Response_Vouchers?> getVoucherList() async { Future<Response_Vouchers?> getVoucherList() async {
final get = ApplicationData_GetVouchers(); final get = ApplicationData_GetVouchers();
final appData = ApplicationData()..getvouchers = get; final appData = ApplicationData()..getVouchers = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
final res = await sendRequestSync(req); final res = await sendRequestSync(req);
if (res.isSuccess) { if (res.isSuccess) {
@ -560,7 +560,7 @@ class ApiService {
Future<List<Response_AddAccountsInvite>?> getAdditionalUserInvites() async { Future<List<Response_AddAccountsInvite>?> getAdditionalUserInvites() async {
final get = ApplicationData_GetAddAccountsInvites(); final get = ApplicationData_GetAddAccountsInvites();
final appData = ApplicationData()..getaddaccountsinvites = get; final appData = ApplicationData()..getAddaccountsInvites = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
final res = await sendRequestSync(req); final res = await sendRequestSync(req);
if (res.isSuccess) { if (res.isSuccess) {
@ -574,21 +574,21 @@ class ApiService {
Future<Result> updatePlanOptions(bool autoRenewal) async { Future<Result> updatePlanOptions(bool autoRenewal) async {
final get = ApplicationData_UpdatePlanOptions()..autoRenewal = autoRenewal; final get = ApplicationData_UpdatePlanOptions()..autoRenewal = autoRenewal;
final appData = ApplicationData()..updateplanoptions = get; final appData = ApplicationData()..updatePlanOptions = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
Future<Result> removeAdditionalUser(Int64 userId) async { Future<Result> removeAdditionalUser(Int64 userId) async {
final get = ApplicationData_RemoveAdditionalUser()..userId = userId; final get = ApplicationData_RemoveAdditionalUser()..userId = userId;
final appData = ApplicationData()..removeadditionaluser = get; final appData = ApplicationData()..removeAdditionalUser = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req, contactId: userId.toInt()); return sendRequestSync(req, contactId: userId.toInt());
} }
Future<Result> buyVoucher(int valueInCents) async { Future<Result> buyVoucher(int valueInCents) async {
final get = ApplicationData_CreateVoucher()..valueCents = valueInCents; final get = ApplicationData_CreateVoucher()..valueCents = valueInCents;
final appData = ApplicationData()..createvoucher = get; final appData = ApplicationData()..createVoucher = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
@ -602,14 +602,14 @@ class ApiService {
..planId = planId ..planId = planId
..payMonthly = payMonthly ..payMonthly = payMonthly
..autoRenewal = autoRenewal; ..autoRenewal = autoRenewal;
final appData = ApplicationData()..switchtopayedplan = get; final appData = ApplicationData()..switchtoPayedPlan = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
Future<Result> redeemVoucher(String voucher) async { Future<Result> redeemVoucher(String voucher) async {
final get = ApplicationData_RedeemVoucher()..voucher = voucher; final get = ApplicationData_RedeemVoucher()..voucher = voucher;
final appData = ApplicationData()..redeemvoucher = get; final appData = ApplicationData()..redeemVoucher = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
@ -618,28 +618,35 @@ class ApiService {
final get = ApplicationData_ReportUser() final get = ApplicationData_ReportUser()
..reportedUserId = Int64(userId) ..reportedUserId = Int64(userId)
..reason = reason; ..reason = reason;
final appData = ApplicationData()..reportuser = get; final appData = ApplicationData()..reportUser = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
Future<Result> deleteAccount() async { Future<Result> deleteAccount() async {
final get = ApplicationData_DeleteAccount(); final get = ApplicationData_DeleteAccount();
final appData = ApplicationData()..deleteaccount = get; final appData = ApplicationData()..deleteAccount = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
Future<Result> redeemUserInviteCode(String inviteCode) async { Future<Result> redeemUserInviteCode(String inviteCode) async {
final get = ApplicationData_RedeemAdditionalCode()..inviteCode = inviteCode; final get = ApplicationData_RedeemAdditionalCode()..inviteCode = inviteCode;
final appData = ApplicationData()..redeemadditionalcode = get; final appData = ApplicationData()..redeemAdditionalCode = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
Future<Result> updateFCMToken(String googleFcm) async { Future<Result> updateFCMToken(String googleFcm) async {
final get = ApplicationData_UpdateGoogleFcmToken()..googleFcm = googleFcm; final get = ApplicationData_UpdateGoogleFcmToken()..googleFcm = googleFcm;
final appData = ApplicationData()..updategooglefcmtoken = get; final appData = ApplicationData()..updateGoogleFcmToken = get;
final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req);
}
Future<Result> changeUsername(String username) async {
final get = ApplicationData_ChangeUsername()..username = username;
final appData = ApplicationData()..changeUsername = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
@ -653,7 +660,7 @@ class ApiService {
..signedPrekeyId = Int64(signedPreKeyId) ..signedPrekeyId = Int64(signedPreKeyId)
..signedPrekey = signedPreKey ..signedPrekey = signedPreKey
..signedPrekeySignature = signedPreKeySignature; ..signedPrekeySignature = signedPreKeySignature;
final appData = ApplicationData()..updatesignedprekey = get; final appData = ApplicationData()..updateSignedPrekey = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req); return sendRequestSync(req);
} }
@ -661,7 +668,7 @@ class ApiService {
Future<Response_SignedPreKey?> getSignedKeyByUserId(int userId) async { Future<Response_SignedPreKey?> getSignedKeyByUserId(int userId) async {
final get = ApplicationData_GetSignedPreKeyByUserId() final get = ApplicationData_GetSignedPreKeyByUserId()
..userId = Int64(userId); ..userId = Int64(userId);
final appData = ApplicationData()..getsignedprekeybyuserid = get; final appData = ApplicationData()..getSignedPrekeyByUserid = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
final res = await sendRequestSync(req, contactId: userId); final res = await sendRequestSync(req, contactId: userId);
if (res.isSuccess) { if (res.isSuccess) {
@ -675,7 +682,7 @@ class ApiService {
Future<OtherPreKeys?> getPreKeysByUserId(int userId) async { Future<OtherPreKeys?> getPreKeysByUserId(int userId) async {
final get = ApplicationData_GetPrekeysByUserId()..userId = Int64(userId); final get = ApplicationData_GetPrekeysByUserId()..userId = Int64(userId);
final appData = ApplicationData()..getprekeysbyuserid = get; final appData = ApplicationData()..getPrekeysByUserId = get;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
final res = await sendRequestSync(req, contactId: userId); final res = await sendRequestSync(req, contactId: userId);
if (res.isSuccess) { if (res.isSuccess) {
@ -709,8 +716,7 @@ class ApiService {
if (pushData != null) { if (pushData != null) {
testMessage.pushData = pushData; testMessage.pushData = pushData;
} }
final appData = ApplicationData()..textMessage = testMessage;
final appData = ApplicationData()..textmessage = testMessage;
final req = createClientToServerFromApplicationData(appData); final req = createClientToServerFromApplicationData(appData);
return sendRequestSync(req, contactId: target); return sendRequestSync(req, contactId: target);
} }

View file

@ -99,6 +99,7 @@ Future<void> handleContactUpdate(
Log.info('Got a contact update $fromUserId'); Log.info('Got a contact update $fromUserId');
if (contactUpdate.hasAvatarSvgCompressed() && if (contactUpdate.hasAvatarSvgCompressed() &&
contactUpdate.hasDisplayName() && contactUpdate.hasDisplayName() &&
contactUpdate.hasUsername() &&
senderProfileCounter != null) { senderProfileCounter != null) {
await twonlyDB.contactsDao.updateContact( await twonlyDB.contactsDao.updateContact(
fromUserId, fromUserId,
@ -106,6 +107,7 @@ Future<void> handleContactUpdate(
avatarSvgCompressed: avatarSvgCompressed:
Value(Uint8List.fromList(contactUpdate.avatarSvgCompressed)), Value(Uint8List.fromList(contactUpdate.avatarSvgCompressed)),
displayName: Value(contactUpdate.displayName), displayName: Value(contactUpdate.displayName),
username: Value(contactUpdate.username),
senderProfileCounter: Value(senderProfileCounter), senderProfileCounter: Value(senderProfileCounter),
), ),
); );
@ -153,9 +155,11 @@ Future<int?> checkForProfileUpdate(
if (contact.senderProfileCounter < senderProfileCounter) { if (contact.senderProfileCounter < senderProfileCounter) {
await sendCipherText( await sendCipherText(
fromUserId, fromUserId,
EncryptedContent() EncryptedContent(
..contactUpdate = (EncryptedContent_ContactUpdate() contactUpdate: EncryptedContent_ContactUpdate(
..type = EncryptedContent_ContactUpdate_Type.REQUEST), type: EncryptedContent_ContactUpdate_Type.REQUEST,
),
),
); );
} }
} }

View file

@ -88,7 +88,7 @@ Future<void> handleUploadStatusUpdate(TaskStatusUpdate update) async {
await twonlyDB.messagesDao.getMessagesByMediaId(media.mediaId); await twonlyDB.messagesDao.getMessagesByMediaId(media.mediaId);
for (final message in messages) { for (final message in messages) {
final contacts = final contacts =
await twonlyDB.groupsDao.getGroupMembers(message.groupId); await twonlyDB.groupsDao.getGroupNonLeftMembers(message.groupId);
for (final contact in contacts) { for (final contact in contacts) {
await twonlyDB.messagesDao.handleMessageAckByServer( await twonlyDB.messagesDao.handleMessageAckByServer(
contact.contactId, contact.contactId,

View file

@ -159,7 +159,7 @@ Future<void> _createUploadRequest(MediaFileService media) async {
for (final message in messages) { for (final message in messages) {
final groupMembers = final groupMembers =
await twonlyDB.groupsDao.getGroupMembers(message.groupId); await twonlyDB.groupsDao.getGroupNonLeftMembers(message.groupId);
if (media.mediaFile.reuploadRequestedBy == null) { if (media.mediaFile.reuploadRequestedBy == null) {
await twonlyDB.groupsDao.incFlameCounter( await twonlyDB.groupsDao.incFlameCounter(

View file

@ -199,7 +199,7 @@ Future<void> sendCipherTextToGroup(
pb.EncryptedContent encryptedContent, { pb.EncryptedContent encryptedContent, {
String? messageId, String? messageId,
}) async { }) async {
final groupMembers = await twonlyDB.groupsDao.getGroupMembers(groupId); final groupMembers = await twonlyDB.groupsDao.getGroupNonLeftMembers(groupId);
await twonlyDB.groupsDao.increaseLastMessageExchange(groupId, DateTime.now()); await twonlyDB.groupsDao.increaseLastMessageExchange(groupId, DateTime.now());
@ -291,6 +291,7 @@ Future<void> notifyContactsAboutProfileChange({int? onlyToContact}) async {
type: pb.EncryptedContent_ContactUpdate_Type.UPDATE, type: pb.EncryptedContent_ContactUpdate_Type.UPDATE,
avatarSvgCompressed: gzip.encode(utf8.encode(gUser.avatarSvg!)), avatarSvgCompressed: gzip.encode(utf8.encode(gUser.avatarSvg!)),
displayName: gUser.displayName, displayName: gUser.displayName,
username: gUser.username,
), ),
); );

View file

@ -36,7 +36,7 @@ Future<void> syncFlameCounters() async {
if (flameCounter < 1 && bestFriend.groupId != group.groupId) continue; if (flameCounter < 1 && bestFriend.groupId != group.groupId) continue;
final groupMembers = final groupMembers =
await twonlyDB.groupsDao.getGroupMembers(group.groupId); await twonlyDB.groupsDao.getGroupNonLeftMembers(group.groupId);
if (groupMembers.length != 1) { if (groupMembers.length != 1) {
continue; // flame sync is only done for groups of two continue; // flame sync is only done for groups of two
} }

View file

@ -353,7 +353,7 @@ Future<(int, EncryptedGroupState)?> fetchGroupState(Group group) async {
); );
var currentGroupMembers = var currentGroupMembers =
await twonlyDB.groupsDao.getGroupMembers(group.groupId); await twonlyDB.groupsDao.getGroupNonLeftMembers(group.groupId);
// First find and insert NEW members // First find and insert NEW members
for (final memberId in memberIds) { for (final memberId in memberIds) {
@ -407,7 +407,7 @@ Future<(int, EncryptedGroupState)?> fetchGroupState(Group group) async {
// update the current members list // update the current members list
currentGroupMembers = currentGroupMembers =
await twonlyDB.groupsDao.getGroupMembers(group.groupId); await twonlyDB.groupsDao.getGroupNonLeftMembers(group.groupId);
for (final member in currentGroupMembers) { for (final member in currentGroupMembers) {
// Member is not any more in the members list // Member is not any more in the members list

View file

@ -295,8 +295,9 @@ class _ChatMessagesViewState extends State<ChatMessagesView> {
onTap: () async { onTap: () async {
if (group.isDirectChat) { if (group.isDirectChat) {
final member = final member =
await twonlyDB.groupsDao.getGroupMembers(group.groupId); await twonlyDB.groupsDao.getAllGroupMembers(group.groupId);
if (!context.mounted) return; if (!context.mounted) return;
if (member.isEmpty) return;
await Navigator.push( await Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(

View file

@ -1,13 +1,15 @@
import 'dart:async'; import 'dart:async';
import 'package:avatar_maker/avatar_maker.dart'; import 'package:avatar_maker/avatar_maker.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:twonly/src/model/json/userdata.dart'; import 'package:twonly/globals.dart';
import 'package:twonly/src/model/protobuf/api/websocket/error.pb.dart';
import 'package:twonly/src/services/api/messages.dart'; import 'package:twonly/src/services/api/messages.dart';
import 'package:twonly/src/utils/misc.dart'; import 'package:twonly/src/utils/misc.dart';
import 'package:twonly/src/utils/storage.dart'; import 'package:twonly/src/utils/storage.dart';
import 'package:twonly/src/views/components/better_list_title.dart'; import 'package:twonly/src/views/components/better_list_title.dart';
import 'package:twonly/src/views/groups/group.view.dart';
import 'package:twonly/src/views/settings/profile/modify_avatar.view.dart'; import 'package:twonly/src/views/settings/profile/modify_avatar.view.dart';
class ProfileView extends StatefulWidget { class ProfileView extends StatefulWidget {
@ -18,19 +20,12 @@ class ProfileView extends StatefulWidget {
} }
class _ProfileViewState extends State<ProfileView> { class _ProfileViewState extends State<ProfileView> {
UserData? user;
final AvatarMakerController _avatarMakerController = final AvatarMakerController _avatarMakerController =
PersistentAvatarMakerController(customizedPropertyCategories: []); PersistentAvatarMakerController(customizedPropertyCategories: []);
@override @override
void initState() { void initState() {
super.initState(); super.initState();
unawaited(initAsync());
}
Future<void> initAsync() async {
user = await getUser();
setState(() {});
} }
Future<void> updateUserDisplayName(String displayName) async { Future<void> updateUserDisplayName(String displayName) async {
@ -40,9 +35,38 @@ class _ProfileViewState extends State<ProfileView> {
..avatarCounter = user.avatarCounter + 1; ..avatarCounter = user.avatarCounter + 1;
return user; return user;
}); });
await notifyContactsAboutProfileChange(); await notifyContactsAboutProfileChange();
await initAsync(); setState(() {}); // gUser has updated
}
Future<void> _updateUsername(String username) async {
final result = await apiService.changeUsername(username);
if (result.isError) {
if (!mounted) return;
if (result.error == ErrorCode.UsernameAlreadyTaken) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(context.lang.errorUsernameAlreadyTaken),
duration: const Duration(seconds: 3),
),
);
return;
}
showNetworkIssue(context);
return;
}
await updateUserdata((user) {
user
..username = username
..avatarCounter = user.avatarCounter + 1;
return user;
});
await notifyContactsAboutProfileChange();
setState(() {}); // gUser has updated
} }
@override @override
@ -82,13 +106,45 @@ class _ProfileViewState extends State<ProfileView> {
), ),
const SizedBox(height: 20), const SizedBox(height: 20),
const Divider(), const Divider(),
BetterListTile(
leading: const Padding(
padding: EdgeInsets.only(right: 5, left: 1),
child: FaIcon(
FontAwesomeIcons.at,
size: 20,
),
),
text: context.lang.registerUsernameDecoration,
subtitle: Text(gUser.username),
onTap: () async {
final username = await showDisplayNameChangeDialog(
context,
gUser.username,
context.lang.registerUsernameDecoration,
context.lang.registerUsernameDecoration,
maxLength: 12,
inputFormatters: [
LengthLimitingTextInputFormatter(12),
FilteringTextInputFormatter.allow(RegExp('[a-z0-9A-Z]')),
],
);
if (context.mounted && username != null && username != '') {
await _updateUsername(username);
}
},
),
BetterListTile( BetterListTile(
icon: FontAwesomeIcons.userPen, icon: FontAwesomeIcons.userPen,
text: context.lang.settingsProfileEditDisplayName, text: context.lang.settingsProfileEditDisplayName,
subtitle: (user == null) ? null : Text(user!.displayName), subtitle: Text(gUser.displayName),
onTap: () async { onTap: () async {
final displayName = final displayName = await showDisplayNameChangeDialog(
await showDisplayNameChangeDialog(context, user!.displayName); context,
gUser.displayName,
context.lang.settingsProfileEditDisplayName,
context.lang.settingsProfileEditDisplayNameNew,
maxLength: 30,
);
if (context.mounted && displayName != null && displayName != '') { if (context.mounted && displayName != null && displayName != '') {
await updateUserDisplayName(displayName); await updateUserDisplayName(displayName);
} }
@ -103,34 +159,38 @@ class _ProfileViewState extends State<ProfileView> {
Future<String?> showDisplayNameChangeDialog( Future<String?> showDisplayNameChangeDialog(
BuildContext context, BuildContext context,
String currentName, String currentName,
) { String title,
String hintText, {
List<TextInputFormatter>? inputFormatters,
int? maxLength,
}) {
final controller = TextEditingController(text: currentName); final controller = TextEditingController(text: currentName);
return showDialog<String>( return showDialog<String>(
context: context, context: context,
builder: (BuildContext context) { builder: (BuildContext context) {
return AlertDialog( return AlertDialog(
title: Text(context.lang.settingsProfileEditDisplayName), title: Text(title),
content: TextField( content: TextField(
controller: controller, controller: controller,
autofocus: true, autofocus: true,
maxLength: 30, inputFormatters: inputFormatters,
maxLength: maxLength,
decoration: InputDecoration( decoration: InputDecoration(
hintText: context.lang.settingsProfileEditDisplayNameNew, hintText: hintText,
), ),
), ),
actions: <Widget>[ actions: <Widget>[
TextButton( TextButton(
child: Text(context.lang.cancel), child: Text(context.lang.cancel),
onPressed: () { onPressed: () {
Navigator.of(context).pop(); // Close the dialog Navigator.of(context).pop();
}, },
), ),
TextButton( TextButton(
child: Text(context.lang.ok), child: Text(context.lang.ok),
onPressed: () { onPressed: () {
Navigator.of(context) Navigator.of(context).pop(controller.text);
.pop(controller.text); // Return the input text
}, },
), ),
], ],