mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-04-22 13:02:54 +00:00
Merge pull request #400 from twonlyapp/dev
Some checks are pending
Publish on Github / build_and_publish (push) Waiting to run
Some checks are pending
Publish on Github / build_and_publish (push) Waiting to run
- Improved: Typos and grammar issues thanks to @AlbertUnruh - Fix: App becomes unresponsive when clicking notifications
This commit is contained in:
commit
f4cf3040b6
10 changed files with 647 additions and 145 deletions
|
|
@ -1,5 +1,10 @@
|
|||
# Changelog
|
||||
|
||||
## 0.1.8
|
||||
|
||||
- Improved: Typos and grammar issues thanks to @AlbertUnruh
|
||||
- Fix: App becomes unresponsive when clicking notifications.
|
||||
|
||||
## 0.1.7
|
||||
|
||||
- Improved: Show input indicator in the chat overview as well
|
||||
|
|
|
|||
|
|
@ -136,13 +136,11 @@ class _AppMainWidgetState extends State<AppMainWidget> {
|
|||
bool _isLoaded = false;
|
||||
bool _skipBackup = false;
|
||||
bool _isTwonlyLocked = true;
|
||||
int _initialPage = 0;
|
||||
|
||||
(Future<int>?, bool) _proofOfWork = (null, false);
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_initialPage = widget.initialPage;
|
||||
initAsync();
|
||||
super.initState();
|
||||
}
|
||||
|
|
@ -158,9 +156,6 @@ class _AppMainWidgetState extends State<AppMainWidget> {
|
|||
if (gUser.appVersion < 62) {
|
||||
_showDatabaseMigration = true;
|
||||
}
|
||||
if (!gUser.startWithCameraOpen) {
|
||||
_initialPage = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (!_isUserCreated && !_showDatabaseMigration) {
|
||||
|
|
@ -210,7 +205,7 @@ class _AppMainWidgetState extends State<AppMainWidget> {
|
|||
);
|
||||
} else {
|
||||
child = HomeView(
|
||||
initialPage: _initialPage,
|
||||
initialPage: widget.initialPage,
|
||||
);
|
||||
}
|
||||
} else if (_showOnboarding) {
|
||||
|
|
|
|||
|
|
@ -397,27 +397,9 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @searchUserNamePending.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Pending'**
|
||||
/// **'Request pending'**
|
||||
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.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -433,7 +415,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @searchUsernameNewFollowerTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Follow requests'**
|
||||
/// **'Open requests'**
|
||||
String get searchUsernameNewFollowerTitle;
|
||||
|
||||
/// No description provided for @searchUsernameQrCodeBtn.
|
||||
|
|
@ -463,7 +445,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @userDeletedAccount.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'The user has deleted its account.'**
|
||||
/// **'The user has deleted their account.'**
|
||||
String get userDeletedAccount;
|
||||
|
||||
/// No description provided for @contextMenuUserProfile.
|
||||
|
|
@ -1021,7 +1003,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @deleteAllContactMessagesBody.
|
||||
///
|
||||
/// 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);
|
||||
|
||||
/// No description provided for @contactBlock.
|
||||
|
|
@ -1699,13 +1681,13 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @additionalUsersPlusTokens.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'twonly-Codes für \"Plus\" user'**
|
||||
/// **'twonly-codes for \"Plus\" user'**
|
||||
String get additionalUsersPlusTokens;
|
||||
|
||||
/// No description provided for @additionalUsersFreeTokens.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'twonly-Codes für \"Free\" user'**
|
||||
/// **'twonly-codes for \"Free\" user'**
|
||||
String get additionalUsersFreeTokens;
|
||||
|
||||
/// No description provided for @planLimitReached.
|
||||
|
|
@ -2473,13 +2455,13 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @youRevokedAdminRights.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'You revoked {affectedR} admin rights.'**
|
||||
/// **'You revoked {affectedR}\'s admin rights.'**
|
||||
String youRevokedAdminRights(Object affectedR);
|
||||
|
||||
/// No description provided for @makerRevokedAdminRights.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{maker} revoked {affectedR} admin rights.'**
|
||||
/// **'{maker} revoked {affectedR}\'s admin rights.'**
|
||||
String makerRevokedAdminRights(Object affectedR, Object maker);
|
||||
|
||||
/// No description provided for @youLeftGroup.
|
||||
|
|
@ -3141,6 +3123,204 @@ abstract class AppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'When the typing indicator is turned off, you can\'t see when others are typing a message.'**
|
||||
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
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
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
|
||||
String get shareImageShowArchived => 'Archivierte Benutzer anzeigen';
|
||||
|
|
@ -172,19 +172,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get selectSubscription => 'Abo auswählen';
|
||||
|
||||
@override
|
||||
String get searchUserNamePending => '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.';
|
||||
String get searchUserNamePending => 'Anfrage ausstehend';
|
||||
|
||||
@override
|
||||
String get searchUsernameNotFound => 'Benutzername nicht gefunden';
|
||||
|
|
@ -195,7 +183,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
}
|
||||
|
||||
@override
|
||||
String get searchUsernameNewFollowerTitle => 'Folgeanfragen';
|
||||
String get searchUsernameNewFollowerTitle => 'Offene Anfragen';
|
||||
|
||||
@override
|
||||
String get searchUsernameQrCodeBtn => 'QR-Code scannen';
|
||||
|
|
@ -211,7 +199,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get chatListDetailInput => 'Nachricht eingeben';
|
||||
|
||||
@override
|
||||
String get userDeletedAccount => 'Der Nutzer hat sein Konto gelöscht.';
|
||||
String get userDeletedAccount => 'Der Nutzer hat deren Konto gelöscht.';
|
||||
|
||||
@override
|
||||
String get contextMenuUserProfile => 'Userprofil';
|
||||
|
|
@ -496,7 +484,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
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
|
||||
|
|
@ -526,7 +514,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
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
|
||||
String get contactRemove => 'Benutzer löschen';
|
||||
|
|
@ -1707,7 +1695,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
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
|
||||
String get verificationBadgeYellowDesc =>
|
||||
|
|
@ -1761,4 +1749,125 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get settingsTypingIndicationSubtitle =>
|
||||
'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';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,19 +171,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get selectSubscription => 'Select subscription';
|
||||
|
||||
@override
|
||||
String get searchUserNamePending => '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.';
|
||||
String get searchUserNamePending => 'Request pending';
|
||||
|
||||
@override
|
||||
String get searchUsernameNotFound => 'Username not found';
|
||||
|
|
@ -194,7 +182,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
}
|
||||
|
||||
@override
|
||||
String get searchUsernameNewFollowerTitle => 'Follow requests';
|
||||
String get searchUsernameNewFollowerTitle => 'Open requests';
|
||||
|
||||
@override
|
||||
String get searchUsernameQrCodeBtn => 'Scan QR code';
|
||||
|
|
@ -209,7 +197,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get chatListDetailInput => 'Type a message';
|
||||
|
||||
@override
|
||||
String get userDeletedAccount => 'The user has deleted its account.';
|
||||
String get userDeletedAccount => 'The user has deleted their account.';
|
||||
|
||||
@override
|
||||
String get contextMenuUserProfile => 'User profile';
|
||||
|
|
@ -508,7 +496,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String deleteAllContactMessagesBody(Object username) {
|
||||
return 'This will remove all messages, except stored media files, in your chat with $username. This will NOT delete the messages stored at ${username}s device!';
|
||||
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
|
||||
|
|
@ -883,10 +871,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get additionalUsersList => 'Your additional users';
|
||||
|
||||
@override
|
||||
String get additionalUsersPlusTokens => 'twonly-Codes für \"Plus\" user';
|
||||
String get additionalUsersPlusTokens => 'twonly-codes for \"Plus\" user';
|
||||
|
||||
@override
|
||||
String get additionalUsersFreeTokens => 'twonly-Codes für \"Free\" user';
|
||||
String get additionalUsersFreeTokens => 'twonly-codes for \"Free\" user';
|
||||
|
||||
@override
|
||||
String get planLimitReached =>
|
||||
|
|
@ -1335,12 +1323,12 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String youRevokedAdminRights(Object affectedR) {
|
||||
return 'You revoked $affectedR admin rights.';
|
||||
return 'You revoked $affectedR\'s admin rights.';
|
||||
}
|
||||
|
||||
@override
|
||||
String makerRevokedAdminRights(Object affectedR, Object maker) {
|
||||
return '$maker revoked $affectedR admin rights.';
|
||||
return '$maker revoked $affectedR\'s admin rights.';
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
@ -1749,4 +1737,124 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get settingsTypingIndicationSubtitle =>
|
||||
'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';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,19 +171,7 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||
String get selectSubscription => 'Select subscription';
|
||||
|
||||
@override
|
||||
String get searchUserNamePending => '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.';
|
||||
String get searchUserNamePending => 'Request pending';
|
||||
|
||||
@override
|
||||
String get searchUsernameNotFound => 'Username not found';
|
||||
|
|
@ -194,7 +182,7 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||
}
|
||||
|
||||
@override
|
||||
String get searchUsernameNewFollowerTitle => 'Follow requests';
|
||||
String get searchUsernameNewFollowerTitle => 'Open requests';
|
||||
|
||||
@override
|
||||
String get searchUsernameQrCodeBtn => 'Scan QR code';
|
||||
|
|
@ -209,7 +197,7 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||
String get chatListDetailInput => 'Type a message';
|
||||
|
||||
@override
|
||||
String get userDeletedAccount => 'The user has deleted its account.';
|
||||
String get userDeletedAccount => 'The user has deleted their account.';
|
||||
|
||||
@override
|
||||
String get contextMenuUserProfile => 'User profile';
|
||||
|
|
@ -508,7 +496,7 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String deleteAllContactMessagesBody(Object username) {
|
||||
return 'This will remove all messages, except stored media files, in your chat with $username. This will NOT delete the messages stored at ${username}s device!';
|
||||
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
|
||||
|
|
@ -883,10 +871,10 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||
String get additionalUsersList => 'Your additional users';
|
||||
|
||||
@override
|
||||
String get additionalUsersPlusTokens => 'twonly-Codes für \"Plus\" user';
|
||||
String get additionalUsersPlusTokens => 'twonly-codes for \"Plus\" user';
|
||||
|
||||
@override
|
||||
String get additionalUsersFreeTokens => 'twonly-Codes für \"Free\" user';
|
||||
String get additionalUsersFreeTokens => 'twonly-codes for \"Free\" user';
|
||||
|
||||
@override
|
||||
String get planLimitReached =>
|
||||
|
|
@ -1335,12 +1323,12 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String youRevokedAdminRights(Object affectedR) {
|
||||
return 'You revoked $affectedR admin rights.';
|
||||
return 'You revoked $affectedR\'s admin rights.';
|
||||
}
|
||||
|
||||
@override
|
||||
String makerRevokedAdminRights(Object affectedR, Object maker) {
|
||||
return '$maker revoked $affectedR admin rights.';
|
||||
return '$maker revoked $affectedR\'s admin rights.';
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
@ -1749,4 +1737,124 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||
@override
|
||||
String get settingsTypingIndicationSubtitle =>
|
||||
'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
|
||||
|
|
@ -211,25 +211,20 @@ class ContactsListView extends StatelessWidget {
|
|||
|
||||
List<Widget> sendRequestActions(BuildContext context, Contact contact) {
|
||||
return [
|
||||
Tooltip(
|
||||
message: context.lang.searchUserNameArchiveUserTooltip,
|
||||
child: IconButton(
|
||||
IconButton(
|
||||
icon: const FaIcon(Icons.archive_outlined, size: 15),
|
||||
onPressed: () async {
|
||||
const update = ContactsCompanion(deletedByUser: Value(true));
|
||||
await twonlyDB.contactsDao.updateContact(contact.userId, update);
|
||||
},
|
||||
),
|
||||
),
|
||||
Text(context.lang.searchUserNamePending),
|
||||
];
|
||||
}
|
||||
|
||||
List<Widget> requestedActions(BuildContext context, Contact contact) {
|
||||
return [
|
||||
Tooltip(
|
||||
message: context.lang.searchUserNameBlockUserTooltip,
|
||||
child: IconButton(
|
||||
IconButton(
|
||||
icon: const Icon(
|
||||
Icons.person_off_rounded,
|
||||
color: Color.fromARGB(164, 244, 67, 54),
|
||||
|
|
@ -239,10 +234,7 @@ class ContactsListView extends StatelessWidget {
|
|||
await twonlyDB.contactsDao.updateContact(contact.userId, update);
|
||||
},
|
||||
),
|
||||
),
|
||||
Tooltip(
|
||||
message: context.lang.searchUserNameRejectUserTooltip,
|
||||
child: IconButton(
|
||||
IconButton(
|
||||
icon: const Icon(Icons.close, color: Colors.red),
|
||||
onPressed: () async {
|
||||
await sendCipherText(
|
||||
|
|
@ -263,7 +255,6 @@ class ContactsListView extends StatelessWidget {
|
|||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
IconButton(
|
||||
icon: const Icon(Icons.check, color: Colors.green),
|
||||
onPressed: () async {
|
||||
|
|
|
|||
|
|
@ -135,7 +135,8 @@ class HomeViewState extends State<HomeView> {
|
|||
_mainCameraController.setSharedLinkForPreview,
|
||||
);
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (widget.initialPage == 0) {
|
||||
if (widget.initialPage == 1 && !gUser.startWithCameraOpen ||
|
||||
widget.initialPage == 0) {
|
||||
globalUpdateOfHomeViewPageIndex(0);
|
||||
}
|
||||
});
|
||||
|
|
@ -161,10 +162,15 @@ class HomeViewState extends State<HomeView> {
|
|||
if (notificationAppLaunchDetails?.didNotificationLaunchApp ?? false) {
|
||||
final payload =
|
||||
notificationAppLaunchDetails?.notificationResponse?.payload;
|
||||
if (payload != null && payload.startsWith(Routes.chats)) {
|
||||
if (payload != null &&
|
||||
payload.startsWith(Routes.chats) &&
|
||||
payload != Routes.chats) {
|
||||
await routerProvider.push(payload);
|
||||
globalUpdateOfHomeViewPageIndex(0);
|
||||
}
|
||||
if (payload == Routes.chats) {
|
||||
globalUpdateOfHomeViewPageIndex(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ description: "twonly, a privacy-friendly way to connect with friends through sec
|
|||
|
||||
publish_to: 'none'
|
||||
|
||||
version: 0.1.7+107
|
||||
version: 0.1.8+108
|
||||
|
||||
environment:
|
||||
sdk: ^3.11.0
|
||||
|
|
|
|||
Loading…
Reference in a new issue