improve error messages for additional accounts

This commit is contained in:
otsmr 2026-01-17 17:20:33 +01:00
parent e824f4cd87
commit 849102dd3b
6 changed files with 57 additions and 12 deletions

View file

@ -2887,8 +2887,14 @@ abstract class AppLocalizations {
/// No description provided for @additionalUserAddError. /// No description provided for @additionalUserAddError.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'Could not add additional user. Try again later.'** /// **'{username} could not be added, please try again later.'**
String get additionalUserAddError; String additionalUserAddError(Object username);
/// No description provided for @additionalUserAddErrorNotInFreePlan.
///
/// In en, this message translates to:
/// **'{username} is already on a paid plan and therefore could not be added.'**
String additionalUserAddErrorNotInFreePlan(Object username);
/// No description provided for @additionalUserAddButton. /// No description provided for @additionalUserAddButton.
/// ///

View file

@ -1601,8 +1601,14 @@ class AppLocalizationsDe extends AppLocalizations {
String get privacyPolicy => 'Datenschutzerklärung'; String get privacyPolicy => 'Datenschutzerklärung';
@override @override
String get additionalUserAddError => String additionalUserAddError(Object username) {
'Es konnte kein zusätzlicher Nutzer hinzugefügt werden. Versuche es später noch einmal.'; return '$username konnte nicht hinzugefügt werden, bitte versuche es später noch einmal.';
}
@override
String additionalUserAddErrorNotInFreePlan(Object username) {
return '$username hat bereits einen bezahlten Tarif und konnte daher nicht hinzugefügt werden.';
}
@override @override
String additionalUserAddButton(Object limit, Object used) { String additionalUserAddButton(Object limit, Object used) {

View file

@ -1590,8 +1590,14 @@ class AppLocalizationsEn extends AppLocalizations {
String get privacyPolicy => 'Privacy policy'; String get privacyPolicy => 'Privacy policy';
@override @override
String get additionalUserAddError => String additionalUserAddError(Object username) {
'Could not add additional user. Try again later.'; return '$username could not be added, please try again later.';
}
@override
String additionalUserAddErrorNotInFreePlan(Object username) {
return '$username is already on a paid plan and therefore could not be added.';
}
@override @override
String additionalUserAddButton(Object limit, Object used) { String additionalUserAddButton(Object limit, Object used) {

View file

@ -1590,8 +1590,14 @@ class AppLocalizationsSv extends AppLocalizations {
String get privacyPolicy => 'Privacy policy'; String get privacyPolicy => 'Privacy policy';
@override @override
String get additionalUserAddError => String additionalUserAddError(Object username) {
'Could not add additional user. Try again later.'; return '$username could not be added, please try again later.';
}
@override
String additionalUserAddErrorNotInFreePlan(Object username) {
return '$username is already on a paid plan and therefore could not be added.';
}
@override @override
String additionalUserAddButton(Object limit, Object used) { String additionalUserAddButton(Object limit, Object used) {

@ -1 +1 @@
Subproject commit 471fed328ff1bf9316e9b86456ecdd68f4cfabca Subproject commit c1dc14a53ff2854389a50f4aaeb26946ff925367

View file

@ -72,9 +72,30 @@ class _AdditionalUsersViewState extends State<AdditionalUsersView> {
for (final selectedUserId in selectedUserIds) { for (final selectedUserId in selectedUserIds) {
final res = await apiService.addAdditionalUser(Int64(selectedUserId)); final res = await apiService.addAdditionalUser(Int64(selectedUserId));
if (res.isError && mounted) { if (res.isError && mounted) {
final contact =
await twonlyDB.contactsDao.getContactById(selectedUserId);
if (contact != null && mounted) {
if (res.error == ErrorCode.UserIsNotInFreePlan) {
ScaffoldMessenger.of(context).showSnackBar( ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(context.lang.additionalUserAddError)), SnackBar(
content: Text(
context.lang.additionalUserAddErrorNotInFreePlan(
getContactDisplayName(contact),
),
),
),
); );
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
context.lang
.additionalUserAddError(getContactDisplayName(contact)),
),
),
);
}
}
} }
} }
await initAsync(force: true); await initAsync(force: true);