mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 09:28:41 +00:00
removed unused dependencies
This commit is contained in:
parent
5d95423586
commit
ebc4570b9b
12 changed files with 272 additions and 205 deletions
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[submodule "dependencies/flutter_secure_storage"]
|
||||
path = dependencies/flutter_secure_storage
|
||||
url = https://github.com/juliansteenbakker/flutter_secure_storage
|
||||
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"files.exclude": {
|
||||
"dependencies": false
|
||||
}
|
||||
}
|
||||
16
README.md
16
README.md
|
|
@ -1,3 +1,17 @@
|
|||
# twonly
|
||||
|
||||
run-as eu.twonly.testing ls /data/user/0/eu.twonly.testing/
|
||||
run-as eu.twonly.testing ls /data/user/0/eu.twonly.testing/
|
||||
|
||||
|
||||
|
||||
## Building
|
||||
|
||||
Some dependencies are downloaded directly from the source as there are some new changes which are not yet published on
|
||||
pub.dev or because they require some special installation.
|
||||
|
||||
- `flutter_secure_storage`: We need the 10.0.0-beta version, but this version has some issues which are fixed but [not yet published](https://github.com/juliansteenbakker/flutter_secure_storage/issues/866):
|
||||
|
||||
```bash
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
|
|
|
|||
1
dependencies/flutter_secure_storage
vendored
Submodule
1
dependencies/flutter_secure_storage
vendored
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 71b75a36f35f2ce945998e20c6c6aa1820babfc6
|
||||
|
|
@ -3,8 +3,6 @@ PODS:
|
|||
- Flutter
|
||||
- connectivity_plus (0.0.1):
|
||||
- Flutter
|
||||
- cryptography_flutter_plus (0.2.0):
|
||||
- Flutter
|
||||
- Firebase (11.10.0):
|
||||
- Firebase/Core (= 11.10.0)
|
||||
- Firebase/Core (11.10.0):
|
||||
|
|
@ -225,7 +223,6 @@ PODS:
|
|||
DEPENDENCIES:
|
||||
- camera_avfoundation (from `.symlinks/plugins/camera_avfoundation/ios`)
|
||||
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
|
||||
- cryptography_flutter_plus (from `.symlinks/plugins/cryptography_flutter_plus/ios`)
|
||||
- Firebase
|
||||
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
||||
|
|
@ -279,8 +276,6 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/camera_avfoundation/ios"
|
||||
connectivity_plus:
|
||||
:path: ".symlinks/plugins/connectivity_plus/ios"
|
||||
cryptography_flutter_plus:
|
||||
:path: ".symlinks/plugins/cryptography_flutter_plus/ios"
|
||||
firebase_core:
|
||||
:path: ".symlinks/plugins/firebase_core/ios"
|
||||
firebase_messaging:
|
||||
|
|
@ -329,7 +324,6 @@ EXTERNAL SOURCES:
|
|||
SPEC CHECKSUMS:
|
||||
camera_avfoundation: be3be85408cd4126f250386828e9b1dfa40ab436
|
||||
connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd
|
||||
cryptography_flutter_plus: 44f4e9e4079395fcbb3e7809c0ac2c6ae2d9576f
|
||||
Firebase: 1fe1c0a7d9aaea32efe01fbea5f0ebd8d70e53a2
|
||||
firebase_core: ba71b44041571da878cb624ce0d80250bcbe58ad
|
||||
firebase_messaging: 13129fe2ca166d1ed2d095062d76cee88943d067
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
|
|
@ -54,6 +55,7 @@
|
|||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
|
|
|
|||
|
|
@ -62,7 +62,8 @@ import 'app_localizations_en.dart';
|
|||
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
|
||||
/// property.
|
||||
abstract class AppLocalizations {
|
||||
AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString());
|
||||
AppLocalizations(String locale)
|
||||
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
|
||||
|
||||
final String localeName;
|
||||
|
||||
|
|
@ -70,7 +71,8 @@ abstract class AppLocalizations {
|
|||
return Localizations.of<AppLocalizations>(context, AppLocalizations);
|
||||
}
|
||||
|
||||
static const LocalizationsDelegate<AppLocalizations> delegate = _AppLocalizationsDelegate();
|
||||
static const LocalizationsDelegate<AppLocalizations> delegate =
|
||||
_AppLocalizationsDelegate();
|
||||
|
||||
/// A list of this localizations delegate along with the default localizations
|
||||
/// delegates.
|
||||
|
|
@ -82,7 +84,8 @@ abstract class AppLocalizations {
|
|||
/// Additional delegates can be added by appending to this list in
|
||||
/// MaterialApp. This list does not have to be used at all if a custom list
|
||||
/// of delegates is preferred or required.
|
||||
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates = <LocalizationsDelegate<dynamic>>[
|
||||
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||||
<LocalizationsDelegate<dynamic>>[
|
||||
delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
|
|
@ -1422,7 +1425,8 @@ abstract class AppLocalizations {
|
|||
String get galleryDetails;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
|
||||
class _AppLocalizationsDelegate
|
||||
extends LocalizationsDelegate<AppLocalizations> {
|
||||
const _AppLocalizationsDelegate();
|
||||
|
||||
@override
|
||||
|
|
@ -1431,25 +1435,25 @@ class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations>
|
|||
}
|
||||
|
||||
@override
|
||||
bool isSupported(Locale locale) => <String>['de', 'en'].contains(locale.languageCode);
|
||||
bool isSupported(Locale locale) =>
|
||||
<String>['de', 'en'].contains(locale.languageCode);
|
||||
|
||||
@override
|
||||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||||
}
|
||||
|
||||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||||
|
||||
|
||||
// Lookup logic when only language code is specified.
|
||||
switch (locale.languageCode) {
|
||||
case 'de': return AppLocalizationsDe();
|
||||
case 'en': return AppLocalizationsEn();
|
||||
case 'de':
|
||||
return AppLocalizationsDe();
|
||||
case 'en':
|
||||
return AppLocalizationsEn();
|
||||
}
|
||||
|
||||
throw FlutterError(
|
||||
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
|
||||
'an issue with the localizations generation tool. Please file an issue '
|
||||
'on GitHub with a reproducible sample app and the gen-l10n configuration '
|
||||
'that was used.'
|
||||
);
|
||||
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
|
||||
'an issue with the localizations generation tool. Please file an issue '
|
||||
'on GitHub with a reproducible sample app and the gen-l10n configuration '
|
||||
'that was used.');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,67 +12,79 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get registerTitle => 'Willkommen bei twonly!';
|
||||
|
||||
@override
|
||||
String get registerSlogan => 'twonly, eine private und sichere Möglichkeit um mit Freunden in Kontakt zu bleiben.';
|
||||
String get registerSlogan =>
|
||||
'twonly, eine private und sichere Möglichkeit um mit Freunden in Kontakt zu bleiben.';
|
||||
|
||||
@override
|
||||
String get onboardingWelcomeTitle => 'Willkommen bei twonly!';
|
||||
|
||||
@override
|
||||
String get onboardingWelcomeBody => 'Erlebe eine private und sichere Möglichkeit mit Freunden in Kontakt zu bleiben, indem du spontane Bilder teilst.';
|
||||
String get onboardingWelcomeBody =>
|
||||
'Erlebe eine private und sichere Möglichkeit mit Freunden in Kontakt zu bleiben, indem du spontane Bilder teilst.';
|
||||
|
||||
@override
|
||||
String get onboardingE2eTitle => 'Unbekümmert teilen';
|
||||
|
||||
@override
|
||||
String get onboardingE2eBody => 'Genieße durch die Ende-zu-Ende-Verschlüsselung die Gewissheit, dass nur du und deine Freunde die geteilten Momente sehen können.';
|
||||
String get onboardingE2eBody =>
|
||||
'Genieße durch die Ende-zu-Ende-Verschlüsselung die Gewissheit, dass nur du und deine Freunde die geteilten Momente sehen können.';
|
||||
|
||||
@override
|
||||
String get onboardingFocusTitle => 'Fokussiere dich auf das Teilen von Momenten';
|
||||
String get onboardingFocusTitle =>
|
||||
'Fokussiere dich auf das Teilen von Momenten';
|
||||
|
||||
@override
|
||||
String get onboardingFocusBody => 'Verabschiede dich von süchtig machenden Funktionen! twonly wurde für das Teilen von Momenten ohne nutzlose Ablenkungen oder Werbung entwickelt.';
|
||||
String get onboardingFocusBody =>
|
||||
'Verabschiede dich von süchtig machenden Funktionen! twonly wurde für das Teilen von Momenten ohne nutzlose Ablenkungen oder Werbung entwickelt.';
|
||||
|
||||
@override
|
||||
String get onboardingSendTwonliesTitle => 'twonlies senden';
|
||||
|
||||
@override
|
||||
String get onboardingSendTwonliesBody => 'Teile Momente sicher mit deinem Partner. twonly stellt sicher, dass nur dein Partner sie öffnen kann, sodass deine Momente mit deinem Partner eine two(o)nly Sache bleiben!';
|
||||
String get onboardingSendTwonliesBody =>
|
||||
'Teile Momente sicher mit deinem Partner. twonly stellt sicher, dass nur dein Partner sie öffnen kann, sodass deine Momente mit deinem Partner eine two(o)nly Sache bleiben!';
|
||||
|
||||
@override
|
||||
String get onboardingNotProductTitle => 'Du bist nicht das Produkt!';
|
||||
|
||||
@override
|
||||
String get onboardingNotProductBody => 'twonly finanziert sich durch eine geringe monatliche Gebühr und nicht durch den Verkauf deiner Daten.';
|
||||
String get onboardingNotProductBody =>
|
||||
'twonly finanziert sich durch eine geringe monatliche Gebühr und nicht durch den Verkauf deiner Daten.';
|
||||
|
||||
@override
|
||||
String get onboardingBuyOneGetTwoTitle => 'Kaufe eins, bekomme zwei';
|
||||
|
||||
@override
|
||||
String get onboardingBuyOneGetTwoBody => 'twonly benötigt immer mindestens zwei Personen, daher erhältst du beim Kauf eine zweite kostenlose Lizenz für deinen twonly-Partner.';
|
||||
String get onboardingBuyOneGetTwoBody =>
|
||||
'twonly benötigt immer mindestens zwei Personen, daher erhältst du beim Kauf eine zweite kostenlose Lizenz für deinen twonly-Partner.';
|
||||
|
||||
@override
|
||||
String get onboardingGetStartedTitle => 'Auf geht\'s';
|
||||
|
||||
@override
|
||||
String get onboardingGetStartedBody => 'Du kannst twonly kostenlos im Preview-Modus testen. In diesem Modus kannst du von anderen gefunden werden und Bilder oder Videos empfangen, aber du kannst selbst keine senden.';
|
||||
String get onboardingGetStartedBody =>
|
||||
'Du kannst twonly kostenlos im Preview-Modus testen. In diesem Modus kannst du von anderen gefunden werden und Bilder oder Videos empfangen, aber du kannst selbst keine senden.';
|
||||
|
||||
@override
|
||||
String get onboardingTryForFree => 'Kostenlos testen';
|
||||
|
||||
@override
|
||||
String get registerUsernameSlogan => 'Bitte wähle einen Benutzernamen, damit dich andere finden können!';
|
||||
String get registerUsernameSlogan =>
|
||||
'Bitte wähle einen Benutzernamen, damit dich andere finden können!';
|
||||
|
||||
@override
|
||||
String get registerUsernameDecoration => 'Benutzername';
|
||||
|
||||
@override
|
||||
String get registerUsernameLimits => 'Der Benutzername muss 3 bis 12 Zeichen lang sein und darf nur aus Buchstaben (a-z) und Zahlen (0-9) bestehen.';
|
||||
String get registerUsernameLimits =>
|
||||
'Der Benutzername muss 3 bis 12 Zeichen lang sein und darf nur aus Buchstaben (a-z) und Zahlen (0-9) bestehen.';
|
||||
|
||||
@override
|
||||
String get registerSubmitButton => 'Jetzt registrieren!';
|
||||
|
||||
@override
|
||||
String get registerTwonlyCodeText => 'Hast du einen twonly-Code erhalten? Dann löse ihn entweder direkt hier oder später ein!';
|
||||
String get registerTwonlyCodeText =>
|
||||
'Hast du einen twonly-Code erhalten? Dann löse ihn entweder direkt hier oder später ein!';
|
||||
|
||||
@override
|
||||
String get registerTwonlyCodeLabel => 'twonly-Code';
|
||||
|
|
@ -126,13 +138,15 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get shareImageAllUsers => 'Alle Kontakte';
|
||||
|
||||
@override
|
||||
String get shareImageAllTwonlyWarning => 'twonlies können nur an verifizierte Kontakte gesendet werden!';
|
||||
String get shareImageAllTwonlyWarning =>
|
||||
'twonlies können nur an verifizierte Kontakte gesendet werden!';
|
||||
|
||||
@override
|
||||
String get shareImageUserNotVerified => 'Benutzer ist nicht verifiziert';
|
||||
|
||||
@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“.';
|
||||
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“.';
|
||||
|
||||
@override
|
||||
String get shareImageShowArchived => 'Archivierte Benutzer anzeigen';
|
||||
|
|
@ -144,7 +158,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get searchUsernameTitle => 'Benutzernamen suchen';
|
||||
|
||||
@override
|
||||
String get searchUserNamePreview => 'Um dich und andere twonly Benutzer vor Spam und Missbrauch zu schützen, ist es nicht möglich, im Preview-Modus nach anderen Personen zu suchen. Andere Benutzer können dich finden und deren Anfragen werden dann hier angezeigt!';
|
||||
String get searchUserNamePreview =>
|
||||
'Um dich und andere twonly Benutzer vor Spam und Missbrauch zu schützen, ist es nicht möglich, im Preview-Modus nach anderen Personen zu suchen. Andere Benutzer können dich finden und deren Anfragen werden dann hier angezeigt!';
|
||||
|
||||
@override
|
||||
String get selectSubscription => 'Abo auswählen';
|
||||
|
|
@ -153,13 +168,16 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get searchUserNamePending => 'Ausstehend';
|
||||
|
||||
@override
|
||||
String get searchUserNameBlockUserTooltip => 'Benutzer ohne Benachrichtigung blockieren.';
|
||||
String get searchUserNameBlockUserTooltip =>
|
||||
'Benutzer ohne Benachrichtigung blockieren.';
|
||||
|
||||
@override
|
||||
String get searchUserNameRejectUserTooltip => 'Die Anfrage ablehnen und den Anfragenden informieren.';
|
||||
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 searchUserNameArchiveUserTooltip =>
|
||||
'Benutzer archivieren. Du wirst informiert sobald er deine Anfrage akzeptiert.';
|
||||
|
||||
@override
|
||||
String get searchUsernameNotFound => 'Benutzername nicht gefunden';
|
||||
|
|
@ -176,7 +194,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get searchUsernameQrCodeBtn => 'QR-Code scannen';
|
||||
|
||||
@override
|
||||
String get chatListViewSearchUserNameBtn => 'Füge deinen ersten twonly-Kontakt hinzu!';
|
||||
String get chatListViewSearchUserNameBtn =>
|
||||
'Füge deinen ersten twonly-Kontakt hinzu!';
|
||||
|
||||
@override
|
||||
String get chatListViewSendFirstTwonly => 'Sende dein erstes twonly!';
|
||||
|
|
@ -203,7 +222,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get contextMenuUnpin => 'Lösen';
|
||||
|
||||
@override
|
||||
String get mediaViewerAuthReason => 'Bitte authentifiziere dich, um diesen twonly zu sehen!';
|
||||
String get mediaViewerAuthReason =>
|
||||
'Bitte authentifiziere dich, um diesen twonly zu sehen!';
|
||||
|
||||
@override
|
||||
String get mediaViewerTwonlyTapToOpen => 'Tippe um den twonly zu öffnen!';
|
||||
|
|
@ -245,7 +265,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get settingsPreSelectedReactions => 'Vorgewählte Reaktions-Emojis';
|
||||
|
||||
@override
|
||||
String get settingsPreSelectedReactionsError => 'Es können maximal 12 Reaktionen ausgewählt werden.';
|
||||
String get settingsPreSelectedReactionsError =>
|
||||
'Es können maximal 12 Reaktionen ausgewählt werden.';
|
||||
|
||||
@override
|
||||
String get settingsProfile => 'Profil';
|
||||
|
|
@ -257,10 +278,12 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get settingsStorageDataStoreInGTitle => 'In der Galerie speichern';
|
||||
|
||||
@override
|
||||
String get settingsStorageDataStoreInGSubtitle => 'Speichere Bilder zusätzlich in der Systemgalerie.';
|
||||
String get settingsStorageDataStoreInGSubtitle =>
|
||||
'Speichere Bilder zusätzlich in der Systemgalerie.';
|
||||
|
||||
@override
|
||||
String get settingsStorageDataMediaAutoDownload => 'Automatischer Mediendownload';
|
||||
String get settingsStorageDataMediaAutoDownload =>
|
||||
'Automatischer Mediendownload';
|
||||
|
||||
@override
|
||||
String get settingsStorageDataAutoDownMobile => 'Bei Nutzung mobiler Daten';
|
||||
|
|
@ -293,7 +316,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get settingsPrivacyBlockUsers => 'Benutzer blockieren';
|
||||
|
||||
@override
|
||||
String get settingsPrivacyBlockUsersDesc => 'Blockierte Benutzer können nicht mit dir kommunizieren. Du kannst einen blockierten Benutzer jederzeit wieder entsperren.';
|
||||
String get settingsPrivacyBlockUsersDesc =>
|
||||
'Blockierte Benutzer können nicht mit dir kommunizieren. Du kannst einen blockierten Benutzer jederzeit wieder entsperren.';
|
||||
|
||||
@override
|
||||
String settingsPrivacyBlockUsersCount(Object len) {
|
||||
|
|
@ -307,13 +331,16 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get settingsNotifyTroubleshooting => 'Fehlersuche';
|
||||
|
||||
@override
|
||||
String get settingsNotifyTroubleshootingDesc => 'Hier klicken, wenn Probleme beim Empfang von Push-Benachrichtigungen auftreten.';
|
||||
String get settingsNotifyTroubleshootingDesc =>
|
||||
'Hier klicken, wenn Probleme beim Empfang von Push-Benachrichtigungen auftreten.';
|
||||
|
||||
@override
|
||||
String get settingsNotifyTroubleshootingNoProblem => 'Kein Problem festgestellt';
|
||||
String get settingsNotifyTroubleshootingNoProblem =>
|
||||
'Kein Problem festgestellt';
|
||||
|
||||
@override
|
||||
String get settingsNotifyTroubleshootingNoProblemDesc => 'Klicke auf OK, um eine Testbenachrichtigung zu erhalten. Wenn du auch nach 10 Minuten warten keine Nachricht erhältst, sende uns bitte dein Diagnoseprotokoll unter Einstellungen > Hilfe > Diagnoseprotokoll, damit wir uns das Problem ansehen können.';
|
||||
String get settingsNotifyTroubleshootingNoProblemDesc =>
|
||||
'Klicke auf OK, um eine Testbenachrichtigung zu erhalten. Wenn du auch nach 10 Minuten warten keine Nachricht erhältst, sende uns bitte dein Diagnoseprotokoll unter Einstellungen > Hilfe > Diagnoseprotokoll, damit wir uns das Problem ansehen können.';
|
||||
|
||||
@override
|
||||
String get settingsHelp => 'Hilfe';
|
||||
|
|
@ -352,7 +379,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get settingsAccountDeleteModalTitle => 'Bist du sicher?';
|
||||
|
||||
@override
|
||||
String get settingsAccountDeleteModalBody => 'Dein Konto wird gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen.';
|
||||
String get settingsAccountDeleteModalBody =>
|
||||
'Dein Konto wird gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen.';
|
||||
|
||||
@override
|
||||
String get contactVerifyNumberTitle => 'Sicherheitsnummer verifizieren';
|
||||
|
|
@ -391,7 +419,8 @@ 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.';
|
||||
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.';
|
||||
|
||||
@override
|
||||
String get undo => 'Rückgängig';
|
||||
|
|
@ -412,7 +441,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get ok => 'Ok';
|
||||
|
||||
@override
|
||||
String get switchFrontAndBackCamera => 'Zwischen Front- und Rückkamera wechseln.';
|
||||
String get switchFrontAndBackCamera =>
|
||||
'Zwischen Front- und Rückkamera wechseln.';
|
||||
|
||||
@override
|
||||
String get addTextItem => 'Text';
|
||||
|
|
@ -444,58 +474,75 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
}
|
||||
|
||||
@override
|
||||
String get errorUnknown => 'Ein unerwarteter Fehler ist aufgetreten. Bitte versuche es später erneut.';
|
||||
String get errorUnknown =>
|
||||
'Ein unerwarteter Fehler ist aufgetreten. Bitte versuche es später erneut.';
|
||||
|
||||
@override
|
||||
String get errorBadRequest => 'Die Anfrage konnte vom Server aufgrund einer fehlerhaften Syntax nicht verstanden werden. Bitte überprüfe deine Eingabe und versuche es erneut.';
|
||||
String get errorBadRequest =>
|
||||
'Die Anfrage konnte vom Server aufgrund einer fehlerhaften Syntax nicht verstanden werden. Bitte überprüfe deine Eingabe und versuche es erneut.';
|
||||
|
||||
@override
|
||||
String get errorTooManyRequests => 'Du hast in kurzer Zeit zu viele Anfragen gestellt. Bitte warte einen Moment, bevor du es erneut versuchst.';
|
||||
String get errorTooManyRequests =>
|
||||
'Du hast in kurzer Zeit zu viele Anfragen gestellt. Bitte warte einen Moment, bevor du es erneut versuchst.';
|
||||
|
||||
@override
|
||||
String get errorInternalError => 'Der Server ist derzeit nicht verfügbar. Bitte versuche es später erneut.';
|
||||
String get errorInternalError =>
|
||||
'Der Server ist derzeit nicht verfügbar. Bitte versuche es später erneut.';
|
||||
|
||||
@override
|
||||
String get errorInvalidInvitationCode => 'Der von dir angegebene Einladungscode ist ungültig. Bitte überprüfe den Code und versuche es erneut.';
|
||||
String get errorInvalidInvitationCode =>
|
||||
'Der von dir angegebene Einladungscode ist ungültig. Bitte überprüfe den Code und versuche es erneut.';
|
||||
|
||||
@override
|
||||
String get errorUsernameAlreadyTaken => 'Der Benutzername, den du verwenden möchtest, ist bereits vergeben. Bitte wähle einen anderen Benutzernamen.';
|
||||
String get errorUsernameAlreadyTaken =>
|
||||
'Der Benutzername, den du verwenden möchtest, ist bereits vergeben. Bitte wähle einen anderen Benutzernamen.';
|
||||
|
||||
@override
|
||||
String get errorSignatureNotValid => 'Die bereitgestellte Signatur ist nicht gültig. Bitte überprüfe deine Anmeldeinformationen und versuche es erneut.';
|
||||
String get errorSignatureNotValid =>
|
||||
'Die bereitgestellte Signatur ist nicht gültig. Bitte überprüfe deine Anmeldeinformationen und versuche es erneut.';
|
||||
|
||||
@override
|
||||
String get errorUsernameNotFound => 'Der eingegebene Benutzername existiert nicht. Bitte überprüfe die Schreibweise oder erstelle ein neues Konto.';
|
||||
String get errorUsernameNotFound =>
|
||||
'Der eingegebene Benutzername existiert nicht. Bitte überprüfe die Schreibweise oder erstelle ein neues Konto.';
|
||||
|
||||
@override
|
||||
String get errorUsernameNotValid => 'Der von dir angegebene Benutzername entspricht nicht den erforderlichen Kriterien. Bitte wähle einen gültigen Benutzernamen.';
|
||||
String get errorUsernameNotValid =>
|
||||
'Der von dir angegebene Benutzername entspricht nicht den erforderlichen Kriterien. Bitte wähle einen gültigen Benutzernamen.';
|
||||
|
||||
@override
|
||||
String get errorInvalidPublicKey => 'Der von dir angegebene öffentliche Schlüssel ist ungültig. Bitte überprüfe den Schlüssel und versuche es erneut.';
|
||||
String get errorInvalidPublicKey =>
|
||||
'Der von dir angegebene öffentliche Schlüssel ist ungültig. Bitte überprüfe den Schlüssel und versuche es erneut.';
|
||||
|
||||
@override
|
||||
String get errorSessionAlreadyAuthenticated => 'Du bist bereits angemeldet. Bitte melde dich ab, wenn du dich mit einem anderen Konto anmelden möchtest.';
|
||||
String get errorSessionAlreadyAuthenticated =>
|
||||
'Du bist bereits angemeldet. Bitte melde dich ab, wenn du dich mit einem anderen Konto anmelden möchtest.';
|
||||
|
||||
@override
|
||||
String get errorSessionNotAuthenticated => 'Deine Sitzung ist nicht authentifiziert. Bitte melde dich an, um fortzufahren.';
|
||||
String get errorSessionNotAuthenticated =>
|
||||
'Deine Sitzung ist nicht authentifiziert. Bitte melde dich an, um fortzufahren.';
|
||||
|
||||
@override
|
||||
String get errorOnlyOneSessionAllowed => 'Es ist nur eine aktive Sitzung pro Benutzer erlaubt. Bitte melde dich von anderen Geräten ab, um fortzufahren.';
|
||||
String get errorOnlyOneSessionAllowed =>
|
||||
'Es ist nur eine aktive Sitzung pro Benutzer erlaubt. Bitte melde dich von anderen Geräten ab, um fortzufahren.';
|
||||
|
||||
@override
|
||||
String get errorNotEnoughCredit => 'Du hast nicht genügend twonly-Guthaben.';
|
||||
|
||||
@override
|
||||
String get errorVoucherInvalid => 'Der eingegebene Gutschein-Code ist nicht gültig.';
|
||||
String get errorVoucherInvalid =>
|
||||
'Der eingegebene Gutschein-Code ist nicht gültig.';
|
||||
|
||||
@override
|
||||
String get errorPlanLimitReached => 'Du hast das Limit deines Plans erreicht. Bitte upgrade deinen Plan.';
|
||||
String get errorPlanLimitReached =>
|
||||
'Du hast das Limit deines Plans erreicht. Bitte upgrade deinen Plan.';
|
||||
|
||||
@override
|
||||
String get errorPlanNotAllowed => 'Dieses Feature ist in deinem aktuellen Plan nicht verfügbar.';
|
||||
String get errorPlanNotAllowed =>
|
||||
'Dieses Feature ist in deinem aktuellen Plan nicht verfügbar.';
|
||||
|
||||
@override
|
||||
String get errorPlanUpgradeNotYearly => 'Das Upgrade des Plans muss jährlich bezahlt werden, da der aktuelle Plan ebenfalls jährlich abgerechnet wird.';
|
||||
String get errorPlanUpgradeNotYearly =>
|
||||
'Das Upgrade des Plans muss jährlich bezahlt werden, da der aktuelle Plan ebenfalls jährlich abgerechnet wird.';
|
||||
|
||||
@override
|
||||
String get upgradeToPaidPlan => 'Upgrade auf einen kostenpflichtigen Plan.';
|
||||
|
|
@ -541,7 +588,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get redeemUserInviteCodeTitle => 'twonly-Code einlösen';
|
||||
|
||||
@override
|
||||
String get redeemUserInviteCodeSuccess => 'Dein Plan wurde erfolgreich angepasst.';
|
||||
String get redeemUserInviteCodeSuccess =>
|
||||
'Dein Plan wurde erfolgreich angepasst.';
|
||||
|
||||
@override
|
||||
String get freeFeature1 => '3 Medien-Datei-Uploads pro Tag';
|
||||
|
|
@ -574,7 +622,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get createVoucher => 'Gutschein kaufen';
|
||||
|
||||
@override
|
||||
String get createVoucherDesc => 'Wähle den Wert des Gutscheins. Der Wert des Gutschein wird von deinem twonly-Guthaben abgezogen.';
|
||||
String get createVoucherDesc =>
|
||||
'Wähle den Wert des Gutscheins. Der Wert des Gutschein wird von deinem twonly-Guthaben abgezogen.';
|
||||
|
||||
@override
|
||||
String get redeemVoucher => 'Gutschein einlösen';
|
||||
|
|
@ -660,7 +709,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get autoRenewalDesc => 'Du kannst dies jederzeit ändern.';
|
||||
|
||||
@override
|
||||
String get autoRenewalLongDesc => 'Wenn dein Abonnement ausläuft, wirst du automatisch auf den Preview-Plan zurückgestuft. Wenn du die automatische Verlängerung aktivierst, vergewissere dich bitte, dass du über genügend Guthaben für die automatische Erneuerung verfügst. Wir werden dich rechtzeitig vor der automatischen Erneuerung benachrichtigen.';
|
||||
String get autoRenewalLongDesc =>
|
||||
'Wenn dein Abonnement ausläuft, wirst du automatisch auf den Preview-Plan zurückgestuft. Wenn du die automatische Verlängerung aktivierst, vergewissere dich bitte, dass du über genügend Guthaben für die automatische Erneuerung verfügst. Wir werden dich rechtzeitig vor der automatischen Erneuerung benachrichtigen.';
|
||||
|
||||
@override
|
||||
String get planSuccessUpgraded => 'Dein Plan wurde erfolgreich aktualisiert.';
|
||||
|
|
@ -678,10 +728,12 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get additionalUsersFreeTokens => 'twonly-Codes für \"Free\"-Benutzer';
|
||||
|
||||
@override
|
||||
String get planLimitReached => 'Du hast dein Planlimit für heute erreicht. Aktualisiere deinen Plan jetzt, um die Mediendatei zu senden.';
|
||||
String get planLimitReached =>
|
||||
'Du hast dein Planlimit für heute erreicht. Aktualisiere deinen Plan jetzt, um die Mediendatei zu senden.';
|
||||
|
||||
@override
|
||||
String get planNotAllowed => 'In deinem aktuellen Plan kannst du keine Mediendateien versenden. Aktualisiere deinen Plan jetzt, um die Mediendatei zu senden.';
|
||||
String get planNotAllowed =>
|
||||
'In deinem aktuellen Plan kannst du keine Mediendateien versenden. Aktualisiere deinen Plan jetzt, um die Mediendatei zu senden.';
|
||||
|
||||
@override
|
||||
String get galleryDelete => 'Datei löschen';
|
||||
|
|
|
|||
|
|
@ -12,67 +12,78 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get registerTitle => 'Welcome to twonly!';
|
||||
|
||||
@override
|
||||
String get registerSlogan => 'twonly, a privacy friendly way to connect with friends through secure, spontaneous image sharing';
|
||||
String get registerSlogan =>
|
||||
'twonly, a privacy friendly way to connect with friends through secure, spontaneous image sharing';
|
||||
|
||||
@override
|
||||
String get onboardingWelcomeTitle => 'Welcome to twonly!';
|
||||
|
||||
@override
|
||||
String get onboardingWelcomeBody => 'Experience a private and secure way to stay in touch with friends by sharing instant pictures.';
|
||||
String get onboardingWelcomeBody =>
|
||||
'Experience a private and secure way to stay in touch with friends by sharing instant pictures.';
|
||||
|
||||
@override
|
||||
String get onboardingE2eTitle => 'Carefree sharing';
|
||||
|
||||
@override
|
||||
String get onboardingE2eBody => 'With end-to-end encryption, enjoy the peace of mind that only you and your friends can see the moments you share.';
|
||||
String get onboardingE2eBody =>
|
||||
'With end-to-end encryption, enjoy the peace of mind that only you and your friends can see the moments you share.';
|
||||
|
||||
@override
|
||||
String get onboardingFocusTitle => 'Focus on sharing moments';
|
||||
|
||||
@override
|
||||
String get onboardingFocusBody => 'Say goodbye to addictive features! twonly was created for sharing moments, free from useless distractions or ads.';
|
||||
String get onboardingFocusBody =>
|
||||
'Say goodbye to addictive features! twonly was created for sharing moments, free from useless distractions or ads.';
|
||||
|
||||
@override
|
||||
String get onboardingSendTwonliesTitle => 'Send twonlies';
|
||||
|
||||
@override
|
||||
String get onboardingSendTwonliesBody => 'Share moments securely with your partner. twonly ensures that only your partner can open it, keeping your moments with your partner a two(o)nly thing!';
|
||||
String get onboardingSendTwonliesBody =>
|
||||
'Share moments securely with your partner. twonly ensures that only your partner can open it, keeping your moments with your partner a two(o)nly thing!';
|
||||
|
||||
@override
|
||||
String get onboardingNotProductTitle => 'You are not the product!';
|
||||
|
||||
@override
|
||||
String get onboardingNotProductBody => 'twonly is financed by a small monthly fee and not by selling your data.';
|
||||
String get onboardingNotProductBody =>
|
||||
'twonly is financed by a small monthly fee and not by selling your data.';
|
||||
|
||||
@override
|
||||
String get onboardingBuyOneGetTwoTitle => 'Buy one get two';
|
||||
|
||||
@override
|
||||
String get onboardingBuyOneGetTwoBody => 'twonly always requires at least two people, which is why you receive a second free license for your twonly partner with your purchase.';
|
||||
String get onboardingBuyOneGetTwoBody =>
|
||||
'twonly always requires at least two people, which is why you receive a second free license for your twonly partner with your purchase.';
|
||||
|
||||
@override
|
||||
String get onboardingGetStartedTitle => 'Let\'s go!';
|
||||
|
||||
@override
|
||||
String get onboardingGetStartedBody => 'You can test twonly free of charge in preview mode. In this mode you can be found by others and receive pictures or videos but you cannot send any yourself.';
|
||||
String get onboardingGetStartedBody =>
|
||||
'You can test twonly free of charge in preview mode. In this mode you can be found by others and receive pictures or videos but you cannot send any yourself.';
|
||||
|
||||
@override
|
||||
String get onboardingTryForFree => 'Try for free';
|
||||
|
||||
@override
|
||||
String get registerUsernameSlogan => 'Please select a username so others can find you!';
|
||||
String get registerUsernameSlogan =>
|
||||
'Please select a username so others can find you!';
|
||||
|
||||
@override
|
||||
String get registerUsernameDecoration => 'Username';
|
||||
|
||||
@override
|
||||
String get registerUsernameLimits => 'Username must be 3 to 12 characters long, consisting only of letters (a-z) and numbers (0-9).';
|
||||
String get registerUsernameLimits =>
|
||||
'Username must be 3 to 12 characters long, consisting only of letters (a-z) and numbers (0-9).';
|
||||
|
||||
@override
|
||||
String get registerSubmitButton => 'Register now!';
|
||||
|
||||
@override
|
||||
String get registerTwonlyCodeText => 'Have you received a twonly code? Then redeem it either directly here or later!';
|
||||
String get registerTwonlyCodeText =>
|
||||
'Have you received a twonly code? Then redeem it either directly here or later!';
|
||||
|
||||
@override
|
||||
String get registerTwonlyCodeLabel => 'twonly-Code';
|
||||
|
|
@ -126,13 +137,15 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get shareImageAllUsers => 'All contacts';
|
||||
|
||||
@override
|
||||
String get shareImageAllTwonlyWarning => 'twonlies can only be send to verified contacts!';
|
||||
String get shareImageAllTwonlyWarning =>
|
||||
'twonlies can only be send to verified contacts!';
|
||||
|
||||
@override
|
||||
String get shareImageUserNotVerified => 'User is not verified';
|
||||
|
||||
@override
|
||||
String get shareImageUserNotVerifiedDesc => 'twonlies can only be sent to verified users. To verify a user, go to their profile and to verify security number.';
|
||||
String get shareImageUserNotVerifiedDesc =>
|
||||
'twonlies can only be sent to verified users. To verify a user, go to their profile and to verify security number.';
|
||||
|
||||
@override
|
||||
String get shareImageShowArchived => 'Show archived users';
|
||||
|
|
@ -144,7 +157,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get searchUsernameTitle => 'Search username';
|
||||
|
||||
@override
|
||||
String get searchUserNamePreview => 'To protect you and other twonly users from spam and abuse, it is not possible to search for other people in preview mode. Other users can find you and their requests will be displayed here!';
|
||||
String get searchUserNamePreview =>
|
||||
'To protect you and other twonly users from spam and abuse, it is not possible to search for other people in preview mode. Other users can find you and their requests will be displayed here!';
|
||||
|
||||
@override
|
||||
String get selectSubscription => 'Select subscription';
|
||||
|
|
@ -153,13 +167,16 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get searchUserNamePending => 'Pending';
|
||||
|
||||
@override
|
||||
String get searchUserNameBlockUserTooltip => 'Block the user without informing.';
|
||||
String get searchUserNameBlockUserTooltip =>
|
||||
'Block the user without informing.';
|
||||
|
||||
@override
|
||||
String get searchUserNameRejectUserTooltip => 'Reject the request and let the requester know.';
|
||||
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 searchUserNameArchiveUserTooltip =>
|
||||
'Archive the user. He will appear again as soon as he accepts your request.';
|
||||
|
||||
@override
|
||||
String get searchUsernameNotFound => 'Username not found';
|
||||
|
|
@ -245,7 +262,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get settingsPreSelectedReactions => 'Preselected reaction emojis';
|
||||
|
||||
@override
|
||||
String get settingsPreSelectedReactionsError => 'A maximum of 12 reactions can be selected.';
|
||||
String get settingsPreSelectedReactionsError =>
|
||||
'A maximum of 12 reactions can be selected.';
|
||||
|
||||
@override
|
||||
String get settingsProfile => 'Profile';
|
||||
|
|
@ -257,7 +275,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get settingsStorageDataStoreInGTitle => 'Store in Gallery';
|
||||
|
||||
@override
|
||||
String get settingsStorageDataStoreInGSubtitle => 'Store saved images additional in the systems gallery.';
|
||||
String get settingsStorageDataStoreInGSubtitle =>
|
||||
'Store saved images additional in the systems gallery.';
|
||||
|
||||
@override
|
||||
String get settingsStorageDataMediaAutoDownload => 'Media auto-download';
|
||||
|
|
@ -293,7 +312,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get settingsPrivacyBlockUsers => 'Block users';
|
||||
|
||||
@override
|
||||
String get settingsPrivacyBlockUsersDesc => 'Blocked users will not be able to communicate with you. You can unblock a blocked user at any time.';
|
||||
String get settingsPrivacyBlockUsersDesc =>
|
||||
'Blocked users will not be able to communicate with you. You can unblock a blocked user at any time.';
|
||||
|
||||
@override
|
||||
String settingsPrivacyBlockUsersCount(Object len) {
|
||||
|
|
@ -307,13 +327,15 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get settingsNotifyTroubleshooting => 'Troubleshooting';
|
||||
|
||||
@override
|
||||
String get settingsNotifyTroubleshootingDesc => 'Click here if you have problems receiving push notifications.';
|
||||
String get settingsNotifyTroubleshootingDesc =>
|
||||
'Click here if you have problems receiving push notifications.';
|
||||
|
||||
@override
|
||||
String get settingsNotifyTroubleshootingNoProblem => 'No problem detected';
|
||||
|
||||
@override
|
||||
String get settingsNotifyTroubleshootingNoProblemDesc => 'Press OK to receive a test notification. When you receive no message even after waiting for 10 minutes, please send us your debug log in Settings > Help > Debug log, so we can look at that issue.';
|
||||
String get settingsNotifyTroubleshootingNoProblemDesc =>
|
||||
'Press OK to receive a test notification. When you receive no message even after waiting for 10 minutes, please send us your debug log in Settings > Help > Debug log, so we can look at that issue.';
|
||||
|
||||
@override
|
||||
String get settingsHelp => 'Help';
|
||||
|
|
@ -352,7 +374,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get settingsAccountDeleteModalTitle => 'Are you sure?';
|
||||
|
||||
@override
|
||||
String get settingsAccountDeleteModalBody => 'Your account will be deleted. There is no change to restore it.';
|
||||
String get settingsAccountDeleteModalBody =>
|
||||
'Your account will be deleted. There is no change to restore it.';
|
||||
|
||||
@override
|
||||
String get contactVerifyNumberTitle => 'Verify safety number';
|
||||
|
|
@ -391,7 +414,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
}
|
||||
|
||||
@override
|
||||
String get contactBlockBody => 'A blocked user will no longer be able to send you messages and their profile will be hidden from view. To unblock a user, simply navigate to Settings > Privacy > Blocked Users.';
|
||||
String get contactBlockBody =>
|
||||
'A blocked user will no longer be able to send you messages and their profile will be hidden from view. To unblock a user, simply navigate to Settings > Privacy > Blocked Users.';
|
||||
|
||||
@override
|
||||
String get undo => 'Undo';
|
||||
|
|
@ -412,7 +436,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get ok => 'Ok';
|
||||
|
||||
@override
|
||||
String get switchFrontAndBackCamera => 'Switch between front and back camera.';
|
||||
String get switchFrontAndBackCamera =>
|
||||
'Switch between front and back camera.';
|
||||
|
||||
@override
|
||||
String get addTextItem => 'Text';
|
||||
|
|
@ -444,58 +469,75 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
}
|
||||
|
||||
@override
|
||||
String get errorUnknown => 'An unexpected error has occurred. Please try again later.';
|
||||
String get errorUnknown =>
|
||||
'An unexpected error has occurred. Please try again later.';
|
||||
|
||||
@override
|
||||
String get errorBadRequest => 'The request could not be understood by the server due to malformed syntax. Please check your input and try again.';
|
||||
String get errorBadRequest =>
|
||||
'The request could not be understood by the server due to malformed syntax. Please check your input and try again.';
|
||||
|
||||
@override
|
||||
String get errorTooManyRequests => 'You have made too many requests in a short period. Please wait a moment before trying again.';
|
||||
String get errorTooManyRequests =>
|
||||
'You have made too many requests in a short period. Please wait a moment before trying again.';
|
||||
|
||||
@override
|
||||
String get errorInternalError => 'The server is currently not available. Please try again later.';
|
||||
String get errorInternalError =>
|
||||
'The server is currently not available. Please try again later.';
|
||||
|
||||
@override
|
||||
String get errorInvalidInvitationCode => 'The invitation code you provided is invalid. Please check the code and try again.';
|
||||
String get errorInvalidInvitationCode =>
|
||||
'The invitation code you provided is invalid. Please check the code and try again.';
|
||||
|
||||
@override
|
||||
String get errorUsernameAlreadyTaken => 'The username you want to use is already taken. Please choose a different username.';
|
||||
String get errorUsernameAlreadyTaken =>
|
||||
'The username you want to use is already taken. Please choose a different username.';
|
||||
|
||||
@override
|
||||
String get errorSignatureNotValid => 'The provided signature is not valid. Please check your credentials and try again.';
|
||||
String get errorSignatureNotValid =>
|
||||
'The provided signature is not valid. Please check your credentials and try again.';
|
||||
|
||||
@override
|
||||
String get errorUsernameNotFound => 'The username you entered does not exist. Please check the spelling or create a new account.';
|
||||
String get errorUsernameNotFound =>
|
||||
'The username you entered does not exist. Please check the spelling or create a new account.';
|
||||
|
||||
@override
|
||||
String get errorUsernameNotValid => 'The username you provided does not meet the required criteria. Please choose a valid username.';
|
||||
String get errorUsernameNotValid =>
|
||||
'The username you provided does not meet the required criteria. Please choose a valid username.';
|
||||
|
||||
@override
|
||||
String get errorInvalidPublicKey => 'The public key you provided is invalid. Please check the key and try again.';
|
||||
String get errorInvalidPublicKey =>
|
||||
'The public key you provided is invalid. Please check the key and try again.';
|
||||
|
||||
@override
|
||||
String get errorSessionAlreadyAuthenticated => 'You are already logged in. Please log out if you want to log in with a different account.';
|
||||
String get errorSessionAlreadyAuthenticated =>
|
||||
'You are already logged in. Please log out if you want to log in with a different account.';
|
||||
|
||||
@override
|
||||
String get errorSessionNotAuthenticated => 'Your session is not authenticated. Please log in to continue.';
|
||||
String get errorSessionNotAuthenticated =>
|
||||
'Your session is not authenticated. Please log in to continue.';
|
||||
|
||||
@override
|
||||
String get errorOnlyOneSessionAllowed => 'Only one active session is allowed per user. Please log out from other devices to continue.';
|
||||
String get errorOnlyOneSessionAllowed =>
|
||||
'Only one active session is allowed per user. Please log out from other devices to continue.';
|
||||
|
||||
@override
|
||||
String get errorNotEnoughCredit => 'You do not have enough twonly-credit.';
|
||||
|
||||
@override
|
||||
String get errorVoucherInvalid => 'The voucher code you entered is not valid.';
|
||||
String get errorVoucherInvalid =>
|
||||
'The voucher code you entered is not valid.';
|
||||
|
||||
@override
|
||||
String get errorPlanLimitReached => 'You have reached your plans limit. Please upgrade your plan.';
|
||||
String get errorPlanLimitReached =>
|
||||
'You have reached your plans limit. Please upgrade your plan.';
|
||||
|
||||
@override
|
||||
String get errorPlanNotAllowed => 'This feature is not available in your current plan.';
|
||||
String get errorPlanNotAllowed =>
|
||||
'This feature is not available in your current plan.';
|
||||
|
||||
@override
|
||||
String get errorPlanUpgradeNotYearly => 'The plan upgrade must be paid for annually, as the current plan is also billed annually.';
|
||||
String get errorPlanUpgradeNotYearly =>
|
||||
'The plan upgrade must be paid for annually, as the current plan is also billed annually.';
|
||||
|
||||
@override
|
||||
String get upgradeToPaidPlan => 'Upgrade to a paid plan.';
|
||||
|
|
@ -541,7 +583,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get redeemUserInviteCodeTitle => 'Redeem twonly-Code';
|
||||
|
||||
@override
|
||||
String get redeemUserInviteCodeSuccess => 'Your plan has been successfully adjusted.';
|
||||
String get redeemUserInviteCodeSuccess =>
|
||||
'Your plan has been successfully adjusted.';
|
||||
|
||||
@override
|
||||
String get freeFeature1 => '3 Media file uploads per day';
|
||||
|
|
@ -574,7 +617,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get createVoucher => 'Buy voucher';
|
||||
|
||||
@override
|
||||
String get createVoucherDesc => 'Choose the value of the voucher. The value of the voucher will be deducted from your twonly balance.';
|
||||
String get createVoucherDesc =>
|
||||
'Choose the value of the voucher. The value of the voucher will be deducted from your twonly balance.';
|
||||
|
||||
@override
|
||||
String get redeemVoucher => 'Redeem voucher';
|
||||
|
|
@ -660,7 +704,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get autoRenewalDesc => 'You can change this at any time.';
|
||||
|
||||
@override
|
||||
String get autoRenewalLongDesc => 'When your subscription expires, you will automatically be downgraded to the Preview plan. If you activate the automatic renewal, please make sure that you have enough credit for the automatic renewal. We will notify you in good time before the automatic renewal.';
|
||||
String get autoRenewalLongDesc =>
|
||||
'When your subscription expires, you will automatically be downgraded to the Preview plan. If you activate the automatic renewal, please make sure that you have enough credit for the automatic renewal. We will notify you in good time before the automatic renewal.';
|
||||
|
||||
@override
|
||||
String get planSuccessUpgraded => 'Successfully upgraded your plan.';
|
||||
|
|
@ -678,10 +723,12 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get additionalUsersFreeTokens => 'twonly-Codes für \"Free\" user';
|
||||
|
||||
@override
|
||||
String get planLimitReached => 'You have reached your plan limit for today. Upgrade your plan now to send the media file.';
|
||||
String get planLimitReached =>
|
||||
'You have reached your plan limit for today. Upgrade your plan now to send the media file.';
|
||||
|
||||
@override
|
||||
String get planNotAllowed => 'You cannot send media files with your current tariff. Upgrade your plan now to send the media file.';
|
||||
String get planNotAllowed =>
|
||||
'You cannot send media files with your current tariff. Upgrade your plan now to send the media file.';
|
||||
|
||||
@override
|
||||
String get galleryDelete => 'Delete file';
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
import 'dart:async';
|
||||
import 'dart:typed_data';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:exif/exif.dart';
|
||||
import 'package:image/image.dart' as img;
|
||||
|
||||
class ImageItem {
|
||||
int width = 1;
|
||||
|
|
@ -31,29 +29,6 @@ class ImageItem {
|
|||
height = decodedImage.height;
|
||||
width = decodedImage.width;
|
||||
|
||||
if (height < width) {
|
||||
final exifData = await readExifFromBytes(bytes);
|
||||
|
||||
img.Image fixedImage;
|
||||
|
||||
if (height < width) {
|
||||
debugPrint('Rotating image necessary');
|
||||
final originalImage = img.decodeImage(bytes)!;
|
||||
if (exifData['Image Orientation']!.printable.contains('Horizontal')) {
|
||||
fixedImage = img.copyRotate(originalImage, angle: 90);
|
||||
} else if (exifData['Image Orientation']!.printable.contains('180')) {
|
||||
fixedImage = img.copyRotate(originalImage, angle: -90);
|
||||
} else if (exifData['Image Orientation']!.printable.contains('CCW')) {
|
||||
fixedImage = img.copyRotate(originalImage, angle: 180);
|
||||
} else {
|
||||
fixedImage = img.copyRotate(originalImage, angle: 0);
|
||||
}
|
||||
bytes = img.encodeJpg(fixedImage);
|
||||
height = fixedImage.height;
|
||||
width = fixedImage.width;
|
||||
}
|
||||
}
|
||||
|
||||
return loader.complete(true);
|
||||
} else {
|
||||
return loader.complete(false);
|
||||
|
|
|
|||
76
pubspec.lock
76
pubspec.lock
|
|
@ -53,18 +53,18 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
|
||||
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.12.0"
|
||||
version: "2.13.0"
|
||||
avatar_maker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: avatar_maker
|
||||
sha256: bd9d92c09a957804d8b93a22a76ff7dc5a6282e00f8cbd9efb2cbf2b0c101b7a
|
||||
sha256: "9b147ae54d81d6ddea240bf7ac9920f0dbacdb138dabf119bb769f109ba05f8f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
version: "0.2.1"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -133,10 +133,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: built_value
|
||||
sha256: ea90e81dc4a25a043d9bee692d20ed6d1c4a1662a28c03a96417446c093ed6b4
|
||||
sha256: "082001b5c3dc495d4a42f1d5789990505df20d8547d42507c29050af6933ee27"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.9.5"
|
||||
version: "8.10.1"
|
||||
cached_network_image:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -181,10 +181,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: camera_avfoundation
|
||||
sha256: ca36181194f429eef3b09de3c96280f2400693f9735025f90d1f4a27465fdd72
|
||||
sha256: fdc0e668f65c8ddfb3be6c10ef4737fb6274cd04d8053a9525d410642f7989c0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.19"
|
||||
version: "0.9.19+1"
|
||||
camera_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -297,14 +297,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.6"
|
||||
cryptography_flutter_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: cryptography_flutter_plus
|
||||
sha256: "35a8c270aae0abaac7125a6b6b33c2b3daa0ea90d85320aa7d588b6dd6c2edc9"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.4"
|
||||
cryptography_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -377,22 +369,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.1"
|
||||
exif:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: exif
|
||||
sha256: a7980fdb3b7ffcd0b035e5b8a5e1eef7cadfe90ea6a4e85ebb62f87b96c7a172
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.3.0"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
|
||||
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.2"
|
||||
version: "1.3.3"
|
||||
ffi:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -421,10 +405,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: file_selector_macos
|
||||
sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc"
|
||||
sha256: "8c9250b2bd2d8d4268e39c82543bacbaca0fda7d29e0728c3c4bbb7c820fd711"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.4+2"
|
||||
version: "0.9.4+3"
|
||||
file_selector_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -618,10 +602,10 @@ packages:
|
|||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
|
||||
sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.0"
|
||||
version: "6.0.0"
|
||||
flutter_local_notifications:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -670,7 +654,7 @@ packages:
|
|||
flutter_secure_storage:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "../flutter_secure_storage/flutter_secure_storage"
|
||||
path: "dependencies/flutter_secure_storage/flutter_secure_storage"
|
||||
relative: true
|
||||
source: path
|
||||
version: "10.0.0-beta.4"
|
||||
|
|
@ -904,10 +888,10 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: intl
|
||||
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
|
||||
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.19.0"
|
||||
version: "0.20.2"
|
||||
introduction_screen:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -952,10 +936,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
|
||||
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.8"
|
||||
version: "10.0.9"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -984,10 +968,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
|
||||
sha256: a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.1.1"
|
||||
version: "6.0.0"
|
||||
local_auth:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -1076,14 +1060,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
mobile_scanner:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: mobile_scanner
|
||||
sha256: "72f06a071aa8b14acea3ab43ea7949eefe4a2469731ae210e006ba330a033a8c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0"
|
||||
mutex:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -1813,10 +1789,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: video_player_android
|
||||
sha256: f5b5ae7a41233adeb6cb4778b4c357522c906e45d590819f5b68d17cdc7a74b4
|
||||
sha256: "4a5135754a62dbc827a64a42ef1f8ed72c962e191c97e2d48744225c2b9ebb73"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.8.6"
|
||||
version: "2.8.7"
|
||||
video_player_avfoundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -1845,10 +1821,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
|
||||
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "14.3.1"
|
||||
version: "15.0.0"
|
||||
watcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -1922,5 +1898,5 @@ packages:
|
|||
source: hosted
|
||||
version: "3.1.3"
|
||||
sdks:
|
||||
dart: ">=3.7.0 <4.0.0"
|
||||
dart: ">=3.8.0 <4.0.0"
|
||||
flutter: ">=3.29.0"
|
||||
|
|
|
|||
14
pubspec.yaml
14
pubspec.yaml
|
|
@ -14,7 +14,6 @@ dependencies:
|
|||
connectivity_plus: ^6.1.2
|
||||
drift: ^2.25.1
|
||||
drift_flutter: ^0.2.4
|
||||
exif: ^3.3.0
|
||||
firebase_core: ^3.11.0
|
||||
firebase_messaging: ^15.2.2
|
||||
flutter:
|
||||
|
|
@ -25,16 +24,13 @@ dependencies:
|
|||
sdk: flutter
|
||||
# flutter_secure_storage: ^10.0.0-beta.4
|
||||
flutter_secure_storage:
|
||||
path: ../flutter_secure_storage/flutter_secure_storage
|
||||
# git:
|
||||
# url: https://github.com/juliansteenbakker/flutter_secure_storage/tree/develop/flutter_secure_storage_darwin
|
||||
# ref: develop # 10.0.0-beta.4 does not work because of https://github.com/juliansteenbakker/flutter_secure_storage/issues/866
|
||||
path: ./dependencies/flutter_secure_storage/flutter_secure_storage
|
||||
font_awesome_flutter: ^10.8.0
|
||||
gal: ^2.3.1
|
||||
hand_signature: ^3.0.3
|
||||
hive: ^2.2.3
|
||||
image: ^4.3.0
|
||||
intl: any
|
||||
intl: ^0.20.2
|
||||
introduction_screen: ^3.1.14
|
||||
json_annotation: ^4.9.0
|
||||
libsignal_protocol_dart: ^0.7.1
|
||||
|
|
@ -49,7 +45,6 @@ dependencies:
|
|||
pie_menu: ^3.2.7
|
||||
protobuf: ^4.0.0
|
||||
cryptography_plus: ^2.7.0
|
||||
cryptography_flutter_plus: ^2.3.2
|
||||
provider: ^6.1.2
|
||||
qr_flutter: ^4.1.0
|
||||
restart_app: ^1.3.2
|
||||
|
|
@ -57,7 +52,7 @@ dependencies:
|
|||
url_launcher: ^6.3.1
|
||||
web_socket_channel: ^3.0.1
|
||||
camera: ^0.11.1
|
||||
avatar_maker: ^0.2.0
|
||||
avatar_maker: ^0.2.1
|
||||
flutter_svg: ^2.0.17
|
||||
fixnum: ^1.1.1
|
||||
mutex: ^3.1.0
|
||||
|
|
@ -69,14 +64,13 @@ dependencies:
|
|||
video_compress: ^3.1.4
|
||||
share_plus: ^11.0.0
|
||||
photo_view: ^0.15.0
|
||||
mobile_scanner: ^7.0.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
build_runner: ^2.4.15
|
||||
json_serializable: ^6.8.0
|
||||
flutter_lints: ^5.0.0
|
||||
flutter_lints: ^6.0.0
|
||||
flutter_launcher_icons: ^0.14.1
|
||||
drift_dev: ^2.25.2
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue