bump version
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run

This commit is contained in:
otsmr 2026-04-21 14:37:14 +02:00
parent 57c165d945
commit 5c5d428510
8 changed files with 638 additions and 137 deletions

View file

@ -1,5 +1,10 @@
# Changelog # Changelog
## 0.1.8
- Improved: Typos and grammar issues thanks to @AlbertUnruh
- Fix: App becomes unresponsive when clicking notifications.
## 0.1.7 ## 0.1.7
- Improved: Show input indicator in the chat overview as well - Improved: Show input indicator in the chat overview as well

View file

@ -397,27 +397,9 @@ abstract class AppLocalizations {
/// No description provided for @searchUserNamePending. /// No description provided for @searchUserNamePending.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'Pending'** /// **'Request pending'**
String get searchUserNamePending; String get searchUserNamePending;
/// No description provided for @searchUserNameBlockUserTooltip.
///
/// In en, this message translates to:
/// **'Block the user without informing.'**
String get searchUserNameBlockUserTooltip;
/// No description provided for @searchUserNameRejectUserTooltip.
///
/// In en, this message translates to:
/// **'Reject the request and let the requester know.'**
String get searchUserNameRejectUserTooltip;
/// No description provided for @searchUserNameArchiveUserTooltip.
///
/// In en, this message translates to:
/// **'Archive the user. He will appear again as soon as he accepts your request.'**
String get searchUserNameArchiveUserTooltip;
/// No description provided for @searchUsernameNotFound. /// No description provided for @searchUsernameNotFound.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
@ -433,7 +415,7 @@ abstract class AppLocalizations {
/// No description provided for @searchUsernameNewFollowerTitle. /// No description provided for @searchUsernameNewFollowerTitle.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'Follow requests'** /// **'Open requests'**
String get searchUsernameNewFollowerTitle; String get searchUsernameNewFollowerTitle;
/// No description provided for @searchUsernameQrCodeBtn. /// No description provided for @searchUsernameQrCodeBtn.
@ -463,7 +445,7 @@ abstract class AppLocalizations {
/// No description provided for @userDeletedAccount. /// No description provided for @userDeletedAccount.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'The user has deleted its account.'** /// **'The user has deleted their account.'**
String get userDeletedAccount; String get userDeletedAccount;
/// No description provided for @contextMenuUserProfile. /// No description provided for @contextMenuUserProfile.
@ -1021,7 +1003,7 @@ abstract class AppLocalizations {
/// No description provided for @deleteAllContactMessagesBody. /// No description provided for @deleteAllContactMessagesBody.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'This will remove all messages, except stored media files, in your chat with {username}. This will NOT delete the messages stored at {username}s device!'** /// **'This will remove all messages, except stored media files, in your chat with {username}. This will NOT delete the messages stored at {username}\'s device!'**
String deleteAllContactMessagesBody(Object username); String deleteAllContactMessagesBody(Object username);
/// No description provided for @contactBlock. /// No description provided for @contactBlock.
@ -1699,13 +1681,13 @@ abstract class AppLocalizations {
/// No description provided for @additionalUsersPlusTokens. /// No description provided for @additionalUsersPlusTokens.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'twonly-Codes für \"Plus\" user'** /// **'twonly-codes for \"Plus\" user'**
String get additionalUsersPlusTokens; String get additionalUsersPlusTokens;
/// No description provided for @additionalUsersFreeTokens. /// No description provided for @additionalUsersFreeTokens.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'twonly-Codes für \"Free\" user'** /// **'twonly-codes for \"Free\" user'**
String get additionalUsersFreeTokens; String get additionalUsersFreeTokens;
/// No description provided for @planLimitReached. /// No description provided for @planLimitReached.
@ -2473,13 +2455,13 @@ abstract class AppLocalizations {
/// No description provided for @youRevokedAdminRights. /// No description provided for @youRevokedAdminRights.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'You revoked {affectedR} admin rights.'** /// **'You revoked {affectedR}\'s admin rights.'**
String youRevokedAdminRights(Object affectedR); String youRevokedAdminRights(Object affectedR);
/// No description provided for @makerRevokedAdminRights. /// No description provided for @makerRevokedAdminRights.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'{maker} revoked {affectedR} admin rights.'** /// **'{maker} revoked {affectedR}\'s admin rights.'**
String makerRevokedAdminRights(Object affectedR, Object maker); String makerRevokedAdminRights(Object affectedR, Object maker);
/// No description provided for @youLeftGroup. /// No description provided for @youLeftGroup.
@ -3141,6 +3123,204 @@ abstract class AppLocalizations {
/// In en, this message translates to: /// In en, this message translates to:
/// **'When the typing indicator is turned off, you can\'t see when others are typing a message.'** /// **'When the typing indicator is turned off, you can\'t see when others are typing a message.'**
String get settingsTypingIndicationSubtitle; String get settingsTypingIndicationSubtitle;
/// No description provided for @scanQrOrShow.
///
/// In en, this message translates to:
/// **'Scan / Show QR'**
String get scanQrOrShow;
/// No description provided for @contactActionBlock.
///
/// In en, this message translates to:
/// **'Block'**
String get contactActionBlock;
/// No description provided for @contactActionAccept.
///
/// In en, this message translates to:
/// **'Accept'**
String get contactActionAccept;
/// No description provided for @userDiscoverySettingsMinImages.
///
/// In en, this message translates to:
/// **'Choose the minimum number of images you must have exchanged with a person before you securely share your friends with them.'**
String get userDiscoverySettingsMinImages;
/// No description provided for @userDiscoverySettingsMutualFriends.
///
/// In en, this message translates to:
/// **'Choose how many mutual friends a person must have for you to be suggested to them.'**
String get userDiscoverySettingsMutualFriends;
/// No description provided for @userDiscoverySettingsApply.
///
/// In en, this message translates to:
/// **'Apply changes'**
String get userDiscoverySettingsApply;
/// No description provided for @userDiscoveryEnabledDisableWarning.
///
/// In en, this message translates to:
/// **'If you disable the \"Find friends\" feature, you will no longer see suggestions. You will also stop sharing your friends with new contacts.'**
String get userDiscoveryEnabledDisableWarning;
/// No description provided for @userDiscoveryEnabledChangeSettings.
///
/// In en, this message translates to:
/// **'Change settings'**
String get userDiscoveryEnabledChangeSettings;
/// No description provided for @userDiscoveryEnabledFaq.
///
/// In en, this message translates to:
/// **'In our FAQ we explain how the \"Find friends\" feature works.'**
String get userDiscoveryEnabledFaq;
/// No description provided for @userDiscoveryDisabledIntro.
///
/// In en, this message translates to:
/// **'twonly doesn\'t use phone numbers, so we suggest friends based on mutual contacts instead securely and privately.'**
String get userDiscoveryDisabledIntro;
/// No description provided for @userDiscoveryDisabledInvisible.
///
/// In en, this message translates to:
/// **'Your friend list is *completely invisible to strangers*. Only your friends can see parts of it and only those people with whom they have *mutual friends* themselves.'**
String get userDiscoveryDisabledInvisible;
/// No description provided for @userDiscoveryDisabledDecide.
///
/// In en, this message translates to:
/// **'Decide for yourself who can see your friends. You can change your mind at any time or hide specific people.'**
String get userDiscoveryDisabledDecide;
/// No description provided for @userDiscoverySettingsTitle.
///
/// In en, this message translates to:
/// **'Find friends'**
String get userDiscoverySettingsTitle;
/// No description provided for @userDiscoverySettingsMinImagesTitle.
///
/// In en, this message translates to:
/// **'Number of shared images'**
String get userDiscoverySettingsMinImagesTitle;
/// No description provided for @userDiscoverySettingsMutualFriendsTitle.
///
/// In en, this message translates to:
/// **'Number of mutual friends'**
String get userDiscoverySettingsMutualFriendsTitle;
/// No description provided for @userDiscoveryDisabledYouHaveControl.
///
/// In en, this message translates to:
/// **'You are in control'**
String get userDiscoveryDisabledYouHaveControl;
/// No description provided for @userDiscoveryDisabledEnableWithDefault.
///
/// In en, this message translates to:
/// **'Enable with default settings'**
String get userDiscoveryDisabledEnableWithDefault;
/// No description provided for @userDiscoveryDisabledCustomizeSettings.
///
/// In en, this message translates to:
/// **'Customize settings'**
String get userDiscoveryDisabledCustomizeSettings;
/// No description provided for @userDiscoveryDisabledLearnMore.
///
/// In en, this message translates to:
/// **'Learn more'**
String get userDiscoveryDisabledLearnMore;
/// No description provided for @userDiscoveryEnabledDialogTitle.
///
/// In en, this message translates to:
/// **'Really disable?'**
String get userDiscoveryEnabledDialogTitle;
/// No description provided for @userDiscoveryEnabledFriendsShared.
///
/// In en, this message translates to:
/// **'Friends you share'**
String get userDiscoveryEnabledFriendsShared;
/// No description provided for @userDiscoveryEnabledFriendsSharedDesc.
///
/// In en, this message translates to:
/// **'You only share friends who have also activated this feature and who have reached the threshold you set.'**
String get userDiscoveryEnabledFriendsSharedDesc;
/// No description provided for @userDiscoveryEnabledNoFriendsShared.
///
/// In en, this message translates to:
/// **'You are not sharing anyone yet.'**
String get userDiscoveryEnabledNoFriendsShared;
/// No description provided for @userDiscoveryActionDisable.
///
/// In en, this message translates to:
/// **'Disable'**
String get userDiscoveryActionDisable;
/// No description provided for @friendSuggestionsTitle.
///
/// In en, this message translates to:
/// **'Friend suggestions'**
String get friendSuggestionsTitle;
/// No description provided for @andWord.
///
/// In en, this message translates to:
/// **'and'**
String get andWord;
/// No description provided for @friendSuggestionsFriendsWith.
///
/// In en, this message translates to:
/// **'Friends with {friends}.'**
String friendSuggestionsFriendsWith(Object friends);
/// No description provided for @friendSuggestionsGroupMemberIn.
///
/// In en, this message translates to:
/// **' Group member in {groups}.'**
String friendSuggestionsGroupMemberIn(Object groups);
/// No description provided for @friendSuggestionsRequest.
///
/// In en, this message translates to:
/// **'Request'**
String get friendSuggestionsRequest;
/// No description provided for @contactUserDiscoveryImagesLeft.
///
/// In en, this message translates to:
/// **'{imagesLeft} more images are needed until your friends are shared with {username}.'**
String contactUserDiscoveryImagesLeft(Object imagesLeft, Object username);
/// No description provided for @userDiscoveryEnabledVersion.
///
/// In en, this message translates to:
/// **'Version: {version}'**
String userDiscoveryEnabledVersion(Object version);
/// No description provided for @userDiscoveryEnabledYourVersion.
///
/// In en, this message translates to:
/// **'Your version: {version}'**
String userDiscoveryEnabledYourVersion(Object version);
/// No description provided for @userDiscoveryEnabledStopSharing.
///
/// In en, this message translates to:
/// **'Stop sharing'**
String get userDiscoveryEnabledStopSharing;
} }
class _AppLocalizationsDelegate class _AppLocalizationsDelegate

View file

@ -153,7 +153,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String get shareImageUserNotVerifiedDesc => String get shareImageUserNotVerifiedDesc =>
'twonlies können nur an verifizierte Nutzer gesendet werden. Um einen Nutzer zu verifizieren, gehe auf sein Profil und auf „Sicherheitsnummer verifizieren“.'; 'twonlies können nur an verifizierte Nutzer gesendet werden. Um einen Nutzer zu verifizieren, gehe auf deren Profil und auf „Sicherheitsnummer verifizieren“.';
@override @override
String get shareImageShowArchived => 'Archivierte Benutzer anzeigen'; String get shareImageShowArchived => 'Archivierte Benutzer anzeigen';
@ -172,19 +172,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get selectSubscription => 'Abo auswählen'; String get selectSubscription => 'Abo auswählen';
@override @override
String get searchUserNamePending => 'Ausstehend'; String get searchUserNamePending => 'Anfrage ausstehend';
@override
String get searchUserNameBlockUserTooltip =>
'Benutzer ohne Benachrichtigung blockieren.';
@override
String get searchUserNameRejectUserTooltip =>
'Die Anfrage ablehnen und den Anfragenden informieren.';
@override
String get searchUserNameArchiveUserTooltip =>
'Benutzer archivieren. Du wirst informiert sobald er deine Anfrage akzeptiert.';
@override @override
String get searchUsernameNotFound => 'Benutzername nicht gefunden'; String get searchUsernameNotFound => 'Benutzername nicht gefunden';
@ -195,7 +183,7 @@ class AppLocalizationsDe extends AppLocalizations {
} }
@override @override
String get searchUsernameNewFollowerTitle => 'Folgeanfragen'; String get searchUsernameNewFollowerTitle => 'Offene Anfragen';
@override @override
String get searchUsernameQrCodeBtn => 'QR-Code scannen'; String get searchUsernameQrCodeBtn => 'QR-Code scannen';
@ -211,7 +199,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get chatListDetailInput => 'Nachricht eingeben'; String get chatListDetailInput => 'Nachricht eingeben';
@override @override
String get userDeletedAccount => 'Der Nutzer hat sein Konto gelöscht.'; String get userDeletedAccount => 'Der Nutzer hat deren Konto gelöscht.';
@override @override
String get contextMenuUserProfile => 'Userprofil'; String get contextMenuUserProfile => 'Userprofil';
@ -496,7 +484,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String contactVerifyNumberLongDesc(Object username) { String contactVerifyNumberLongDesc(Object username) {
return 'Um die Ende-zu-Ende-Verschlüsselung mit $username zu verifizieren, vergleiche die Zahlen mit ihrem Gerät. Die Person kann auch deinen Code mit ihrem Gerät scannen.'; return 'Um die Ende-zu-Ende-Verschlüsselung mit $username zu verifizieren, vergleiche die Zahlen mit deren Gerät. Die Person kann auch deinen Code mit deren Gerät scannen.';
} }
@override @override
@ -526,7 +514,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String get contactBlockBody => String get contactBlockBody =>
'Ein blockierter Benutzer kann dir keine Nachrichten mehr senden, und sein Profil ist nicht mehr sichtbar. Um die Blockierung eines Benutzers aufzuheben, navigiere einfach zu Einstellungen > Datenschutz > Blockierte Benutzer.'; 'Ein blockierter Benutzer kann dir keine Nachrichten mehr senden, und deren Profil ist nicht mehr sichtbar. Um die Blockierung eines Benutzers aufzuheben, navigiere einfach zu Einstellungen > Datenschutz > Blockierte Benutzer.';
@override @override
String get contactRemove => 'Benutzer löschen'; String get contactRemove => 'Benutzer löschen';
@ -1707,7 +1695,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String get verificationBadgeGreenDesc => String get verificationBadgeGreenDesc =>
'Kontakt, den du durch den QR-Code persönlich verifiziert hast. Dadurch wurde auch sein öffentlicher Schlüssel überprüft.'; 'Kontakt, den du durch den QR-Code persönlich verifiziert hast. Dadurch wurde auch deren öffentlicher Schlüssel überprüft.';
@override @override
String get verificationBadgeYellowDesc => String get verificationBadgeYellowDesc =>
@ -1761,4 +1749,125 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String get settingsTypingIndicationSubtitle => String get settingsTypingIndicationSubtitle =>
'Bei deaktivierten Tipp-Indikatoren kannst du nicht sehen, wenn andere gerade eine Nachricht tippen.'; 'Bei deaktivierten Tipp-Indikatoren kannst du nicht sehen, wenn andere gerade eine Nachricht tippen.';
@override
String get scanQrOrShow => 'QR scannen / anzeigen';
@override
String get contactActionBlock => 'Blockieren';
@override
String get contactActionAccept => 'Annehmen';
@override
String get userDiscoverySettingsMinImages =>
'Wähle die Mindestanzahl an Bildern, die du mit einer Person ausgetauscht haben musst, bevor du ihr deine Freunde sicher teilst.';
@override
String get userDiscoverySettingsMutualFriends =>
'Wähle aus, wie viele gemeinsame Freunde eine Person haben muss, damit du ihr vorgeschlagen wirst.';
@override
String get userDiscoverySettingsApply => 'Änderungen übernehmen';
@override
String get userDiscoveryEnabledDisableWarning =>
'Wenn du das Feature „Freunde finden“ deaktivierst, werden dir keine Vorschläge mehr angezeigt. Du teilst neuen Kontakten dann auch nicht mehr deine Freunde.';
@override
String get userDiscoveryEnabledChangeSettings => 'Einstellungen ändern';
@override
String get userDiscoveryEnabledFaq =>
'In unserem FAQ erklären wir dir wie das Feature \"Freunde finden\" funktioniert.';
@override
String get userDiscoveryDisabledIntro =>
'twonly verzichten auf Telefonnummern, daher schlagen wir dir Freunde stattdessen über gemeinsame Kontakte vor sicher und privat.';
@override
String get userDiscoveryDisabledInvisible =>
'Deine Freundesliste ist für *Fremde komplett unsichtbar*. Nur deine Freunde können Teile davon sehen und zwar nur die Personen, mit denen sie selbst *gemeinsame Freunde* haben.';
@override
String get userDiscoveryDisabledDecide =>
'Entscheide selbst, wer deine Freunde sehen darf. Du kannst deine Meinung jederzeit ändern oder bestimmte Personen verstecken.';
@override
String get userDiscoverySettingsTitle => 'Freunde finden';
@override
String get userDiscoverySettingsMinImagesTitle =>
'Anzahl an geteilten Bildern';
@override
String get userDiscoverySettingsMutualFriendsTitle =>
'Anzahl an gemeinsame Freunde';
@override
String get userDiscoveryDisabledYouHaveControl => 'Du hast die Kontrolle';
@override
String get userDiscoveryDisabledEnableWithDefault =>
'Mit Standardeinstellungen aktivieren';
@override
String get userDiscoveryDisabledCustomizeSettings => 'Einstellungen anpassen';
@override
String get userDiscoveryDisabledLearnMore => 'Mehr erfahren';
@override
String get userDiscoveryEnabledDialogTitle => 'Wirklich deaktivieren?';
@override
String get userDiscoveryEnabledFriendsShared => 'Freunde die du teilst';
@override
String get userDiscoveryEnabledFriendsSharedDesc =>
'Du teilst nur Freunde, die diese Funktion ebenfalls aktiviert haben und die den von dir festgelegten Schwellenwert erreicht haben.';
@override
String get userDiscoveryEnabledNoFriendsShared =>
'Bisher teilst du noch niemanden.';
@override
String get userDiscoveryActionDisable => 'Deaktivieren';
@override
String get friendSuggestionsTitle => 'Freundschaftsvorschläge';
@override
String get andWord => 'und';
@override
String friendSuggestionsFriendsWith(Object friends) {
return 'Befreundet mit $friends.';
}
@override
String friendSuggestionsGroupMemberIn(Object groups) {
return ' Gruppenmitglied in $groups.';
}
@override
String get friendSuggestionsRequest => 'Anfragen';
@override
String contactUserDiscoveryImagesLeft(Object imagesLeft, Object username) {
return 'Es fehlen noch $imagesLeft Bilder bis deine Freunde mit $username geteilt werden.';
}
@override
String userDiscoveryEnabledVersion(Object version) {
return 'Version: $version';
}
@override
String userDiscoveryEnabledYourVersion(Object version) {
return 'Deine Version: $version';
}
@override
String get userDiscoveryEnabledStopSharing => 'Nicht mehr teilen';
} }

View file

@ -171,19 +171,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get selectSubscription => 'Select subscription'; String get selectSubscription => 'Select subscription';
@override @override
String get searchUserNamePending => 'Pending'; String get searchUserNamePending => 'Request pending';
@override
String get searchUserNameBlockUserTooltip =>
'Block the user without informing.';
@override
String get searchUserNameRejectUserTooltip =>
'Reject the request and let the requester know.';
@override
String get searchUserNameArchiveUserTooltip =>
'Archive the user. He will appear again as soon as he accepts your request.';
@override @override
String get searchUsernameNotFound => 'Username not found'; String get searchUsernameNotFound => 'Username not found';
@ -194,7 +182,7 @@ class AppLocalizationsEn extends AppLocalizations {
} }
@override @override
String get searchUsernameNewFollowerTitle => 'Follow requests'; String get searchUsernameNewFollowerTitle => 'Open requests';
@override @override
String get searchUsernameQrCodeBtn => 'Scan QR code'; String get searchUsernameQrCodeBtn => 'Scan QR code';
@ -209,7 +197,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get chatListDetailInput => 'Type a message'; String get chatListDetailInput => 'Type a message';
@override @override
String get userDeletedAccount => 'The user has deleted its account.'; String get userDeletedAccount => 'The user has deleted their account.';
@override @override
String get contextMenuUserProfile => 'User profile'; String get contextMenuUserProfile => 'User profile';
@ -508,7 +496,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override @override
String deleteAllContactMessagesBody(Object username) { String deleteAllContactMessagesBody(Object username) {
return 'This will remove all messages, except stored media files, in your chat with $username. This will NOT delete the messages stored at ${username}s device!'; return 'This will remove all messages, except stored media files, in your chat with $username. This will NOT delete the messages stored at $username\'s device!';
} }
@override @override
@ -883,10 +871,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get additionalUsersList => 'Your additional users'; String get additionalUsersList => 'Your additional users';
@override @override
String get additionalUsersPlusTokens => 'twonly-Codes für \"Plus\" user'; String get additionalUsersPlusTokens => 'twonly-codes for \"Plus\" user';
@override @override
String get additionalUsersFreeTokens => 'twonly-Codes für \"Free\" user'; String get additionalUsersFreeTokens => 'twonly-codes for \"Free\" user';
@override @override
String get planLimitReached => String get planLimitReached =>
@ -1335,12 +1323,12 @@ class AppLocalizationsEn extends AppLocalizations {
@override @override
String youRevokedAdminRights(Object affectedR) { String youRevokedAdminRights(Object affectedR) {
return 'You revoked $affectedR admin rights.'; return 'You revoked $affectedR\'s admin rights.';
} }
@override @override
String makerRevokedAdminRights(Object affectedR, Object maker) { String makerRevokedAdminRights(Object affectedR, Object maker) {
return '$maker revoked $affectedR admin rights.'; return '$maker revoked $affectedR\'s admin rights.';
} }
@override @override
@ -1749,4 +1737,124 @@ class AppLocalizationsEn extends AppLocalizations {
@override @override
String get settingsTypingIndicationSubtitle => String get settingsTypingIndicationSubtitle =>
'When the typing indicator is turned off, you can\'t see when others are typing a message.'; 'When the typing indicator is turned off, you can\'t see when others are typing a message.';
@override
String get scanQrOrShow => 'Scan / Show QR';
@override
String get contactActionBlock => 'Block';
@override
String get contactActionAccept => 'Accept';
@override
String get userDiscoverySettingsMinImages =>
'Choose the minimum number of images you must have exchanged with a person before you securely share your friends with them.';
@override
String get userDiscoverySettingsMutualFriends =>
'Choose how many mutual friends a person must have for you to be suggested to them.';
@override
String get userDiscoverySettingsApply => 'Apply changes';
@override
String get userDiscoveryEnabledDisableWarning =>
'If you disable the \"Find friends\" feature, you will no longer see suggestions. You will also stop sharing your friends with new contacts.';
@override
String get userDiscoveryEnabledChangeSettings => 'Change settings';
@override
String get userDiscoveryEnabledFaq =>
'In our FAQ we explain how the \"Find friends\" feature works.';
@override
String get userDiscoveryDisabledIntro =>
'twonly doesn\'t use phone numbers, so we suggest friends based on mutual contacts instead securely and privately.';
@override
String get userDiscoveryDisabledInvisible =>
'Your friend list is *completely invisible to strangers*. Only your friends can see parts of it and only those people with whom they have *mutual friends* themselves.';
@override
String get userDiscoveryDisabledDecide =>
'Decide for yourself who can see your friends. You can change your mind at any time or hide specific people.';
@override
String get userDiscoverySettingsTitle => 'Find friends';
@override
String get userDiscoverySettingsMinImagesTitle => 'Number of shared images';
@override
String get userDiscoverySettingsMutualFriendsTitle =>
'Number of mutual friends';
@override
String get userDiscoveryDisabledYouHaveControl => 'You are in control';
@override
String get userDiscoveryDisabledEnableWithDefault =>
'Enable with default settings';
@override
String get userDiscoveryDisabledCustomizeSettings => 'Customize settings';
@override
String get userDiscoveryDisabledLearnMore => 'Learn more';
@override
String get userDiscoveryEnabledDialogTitle => 'Really disable?';
@override
String get userDiscoveryEnabledFriendsShared => 'Friends you share';
@override
String get userDiscoveryEnabledFriendsSharedDesc =>
'You only share friends who have also activated this feature and who have reached the threshold you set.';
@override
String get userDiscoveryEnabledNoFriendsShared =>
'You are not sharing anyone yet.';
@override
String get userDiscoveryActionDisable => 'Disable';
@override
String get friendSuggestionsTitle => 'Friend suggestions';
@override
String get andWord => 'and';
@override
String friendSuggestionsFriendsWith(Object friends) {
return 'Friends with $friends.';
}
@override
String friendSuggestionsGroupMemberIn(Object groups) {
return ' Group member in $groups.';
}
@override
String get friendSuggestionsRequest => 'Request';
@override
String contactUserDiscoveryImagesLeft(Object imagesLeft, Object username) {
return '$imagesLeft more images are needed until your friends are shared with $username.';
}
@override
String userDiscoveryEnabledVersion(Object version) {
return 'Version: $version';
}
@override
String userDiscoveryEnabledYourVersion(Object version) {
return 'Your version: $version';
}
@override
String get userDiscoveryEnabledStopSharing => 'Stop sharing';
} }

View file

@ -171,19 +171,7 @@ class AppLocalizationsSv extends AppLocalizations {
String get selectSubscription => 'Select subscription'; String get selectSubscription => 'Select subscription';
@override @override
String get searchUserNamePending => 'Pending'; String get searchUserNamePending => 'Request pending';
@override
String get searchUserNameBlockUserTooltip =>
'Block the user without informing.';
@override
String get searchUserNameRejectUserTooltip =>
'Reject the request and let the requester know.';
@override
String get searchUserNameArchiveUserTooltip =>
'Archive the user. He will appear again as soon as he accepts your request.';
@override @override
String get searchUsernameNotFound => 'Username not found'; String get searchUsernameNotFound => 'Username not found';
@ -194,7 +182,7 @@ class AppLocalizationsSv extends AppLocalizations {
} }
@override @override
String get searchUsernameNewFollowerTitle => 'Follow requests'; String get searchUsernameNewFollowerTitle => 'Open requests';
@override @override
String get searchUsernameQrCodeBtn => 'Scan QR code'; String get searchUsernameQrCodeBtn => 'Scan QR code';
@ -209,7 +197,7 @@ class AppLocalizationsSv extends AppLocalizations {
String get chatListDetailInput => 'Type a message'; String get chatListDetailInput => 'Type a message';
@override @override
String get userDeletedAccount => 'The user has deleted its account.'; String get userDeletedAccount => 'The user has deleted their account.';
@override @override
String get contextMenuUserProfile => 'User profile'; String get contextMenuUserProfile => 'User profile';
@ -508,7 +496,7 @@ class AppLocalizationsSv extends AppLocalizations {
@override @override
String deleteAllContactMessagesBody(Object username) { String deleteAllContactMessagesBody(Object username) {
return 'This will remove all messages, except stored media files, in your chat with $username. This will NOT delete the messages stored at ${username}s device!'; return 'This will remove all messages, except stored media files, in your chat with $username. This will NOT delete the messages stored at $username\'s device!';
} }
@override @override
@ -883,10 +871,10 @@ class AppLocalizationsSv extends AppLocalizations {
String get additionalUsersList => 'Your additional users'; String get additionalUsersList => 'Your additional users';
@override @override
String get additionalUsersPlusTokens => 'twonly-Codes für \"Plus\" user'; String get additionalUsersPlusTokens => 'twonly-codes for \"Plus\" user';
@override @override
String get additionalUsersFreeTokens => 'twonly-Codes für \"Free\" user'; String get additionalUsersFreeTokens => 'twonly-codes for \"Free\" user';
@override @override
String get planLimitReached => String get planLimitReached =>
@ -1335,12 +1323,12 @@ class AppLocalizationsSv extends AppLocalizations {
@override @override
String youRevokedAdminRights(Object affectedR) { String youRevokedAdminRights(Object affectedR) {
return 'You revoked $affectedR admin rights.'; return 'You revoked $affectedR\'s admin rights.';
} }
@override @override
String makerRevokedAdminRights(Object affectedR, Object maker) { String makerRevokedAdminRights(Object affectedR, Object maker) {
return '$maker revoked $affectedR admin rights.'; return '$maker revoked $affectedR\'s admin rights.';
} }
@override @override
@ -1749,4 +1737,124 @@ class AppLocalizationsSv extends AppLocalizations {
@override @override
String get settingsTypingIndicationSubtitle => String get settingsTypingIndicationSubtitle =>
'When the typing indicator is turned off, you can\'t see when others are typing a message.'; 'When the typing indicator is turned off, you can\'t see when others are typing a message.';
@override
String get scanQrOrShow => 'Scan / Show QR';
@override
String get contactActionBlock => 'Block';
@override
String get contactActionAccept => 'Accept';
@override
String get userDiscoverySettingsMinImages =>
'Choose the minimum number of images you must have exchanged with a person before you securely share your friends with them.';
@override
String get userDiscoverySettingsMutualFriends =>
'Choose how many mutual friends a person must have for you to be suggested to them.';
@override
String get userDiscoverySettingsApply => 'Apply changes';
@override
String get userDiscoveryEnabledDisableWarning =>
'If you disable the \"Find friends\" feature, you will no longer see suggestions. You will also stop sharing your friends with new contacts.';
@override
String get userDiscoveryEnabledChangeSettings => 'Change settings';
@override
String get userDiscoveryEnabledFaq =>
'In our FAQ we explain how the \"Find friends\" feature works.';
@override
String get userDiscoveryDisabledIntro =>
'twonly doesn\'t use phone numbers, so we suggest friends based on mutual contacts instead securely and privately.';
@override
String get userDiscoveryDisabledInvisible =>
'Your friend list is *completely invisible to strangers*. Only your friends can see parts of it and only those people with whom they have *mutual friends* themselves.';
@override
String get userDiscoveryDisabledDecide =>
'Decide for yourself who can see your friends. You can change your mind at any time or hide specific people.';
@override
String get userDiscoverySettingsTitle => 'Find friends';
@override
String get userDiscoverySettingsMinImagesTitle => 'Number of shared images';
@override
String get userDiscoverySettingsMutualFriendsTitle =>
'Number of mutual friends';
@override
String get userDiscoveryDisabledYouHaveControl => 'You are in control';
@override
String get userDiscoveryDisabledEnableWithDefault =>
'Enable with default settings';
@override
String get userDiscoveryDisabledCustomizeSettings => 'Customize settings';
@override
String get userDiscoveryDisabledLearnMore => 'Learn more';
@override
String get userDiscoveryEnabledDialogTitle => 'Really disable?';
@override
String get userDiscoveryEnabledFriendsShared => 'Friends you share';
@override
String get userDiscoveryEnabledFriendsSharedDesc =>
'You only share friends who have also activated this feature and who have reached the threshold you set.';
@override
String get userDiscoveryEnabledNoFriendsShared =>
'You are not sharing anyone yet.';
@override
String get userDiscoveryActionDisable => 'Disable';
@override
String get friendSuggestionsTitle => 'Friend suggestions';
@override
String get andWord => 'and';
@override
String friendSuggestionsFriendsWith(Object friends) {
return 'Friends with $friends.';
}
@override
String friendSuggestionsGroupMemberIn(Object groups) {
return ' Group member in $groups.';
}
@override
String get friendSuggestionsRequest => 'Request';
@override
String contactUserDiscoveryImagesLeft(Object imagesLeft, Object username) {
return '$imagesLeft more images are needed until your friends are shared with $username.';
}
@override
String userDiscoveryEnabledVersion(Object version) {
return 'Version: $version';
}
@override
String userDiscoveryEnabledYourVersion(Object version) {
return 'Your version: $version';
}
@override
String get userDiscoveryEnabledStopSharing => 'Stop sharing';
} }

@ -1 +1 @@
Subproject commit 93f2b3daddd98dbb022c34e7c5976a76c3143236 Subproject commit 57ec512977e514fca6413622bb4a7e03701f09a0

View file

@ -211,25 +211,20 @@ class ContactsListView extends StatelessWidget {
List<Widget> sendRequestActions(BuildContext context, Contact contact) { List<Widget> sendRequestActions(BuildContext context, Contact contact) {
return [ return [
Tooltip( IconButton(
message: context.lang.searchUserNameArchiveUserTooltip,
child: IconButton(
icon: const FaIcon(Icons.archive_outlined, size: 15), icon: const FaIcon(Icons.archive_outlined, size: 15),
onPressed: () async { onPressed: () async {
const update = ContactsCompanion(deletedByUser: Value(true)); const update = ContactsCompanion(deletedByUser: Value(true));
await twonlyDB.contactsDao.updateContact(contact.userId, update); await twonlyDB.contactsDao.updateContact(contact.userId, update);
}, },
), ),
),
Text(context.lang.searchUserNamePending), Text(context.lang.searchUserNamePending),
]; ];
} }
List<Widget> requestedActions(BuildContext context, Contact contact) { List<Widget> requestedActions(BuildContext context, Contact contact) {
return [ return [
Tooltip( IconButton(
message: context.lang.searchUserNameBlockUserTooltip,
child: IconButton(
icon: const Icon( icon: const Icon(
Icons.person_off_rounded, Icons.person_off_rounded,
color: Color.fromARGB(164, 244, 67, 54), color: Color.fromARGB(164, 244, 67, 54),
@ -239,10 +234,7 @@ class ContactsListView extends StatelessWidget {
await twonlyDB.contactsDao.updateContact(contact.userId, update); await twonlyDB.contactsDao.updateContact(contact.userId, update);
}, },
), ),
), IconButton(
Tooltip(
message: context.lang.searchUserNameRejectUserTooltip,
child: IconButton(
icon: const Icon(Icons.close, color: Colors.red), icon: const Icon(Icons.close, color: Colors.red),
onPressed: () async { onPressed: () async {
await sendCipherText( await sendCipherText(
@ -263,7 +255,6 @@ class ContactsListView extends StatelessWidget {
); );
}, },
), ),
),
IconButton( IconButton(
icon: const Icon(Icons.check, color: Colors.green), icon: const Icon(Icons.check, color: Colors.green),
onPressed: () async { onPressed: () async {

View file

@ -3,7 +3,7 @@ description: "twonly, a privacy-friendly way to connect with friends through sec
publish_to: 'none' publish_to: 'none'
version: 0.1.7+107 version: 0.1.8+108
environment: environment:
sdk: ^3.11.0 sdk: ^3.11.0