removed unused dependencies

This commit is contained in:
otsmr 2025-05-31 11:48:22 +02:00
parent 5d95423586
commit ebc4570b9b
12 changed files with 272 additions and 205 deletions

3
.gitmodules vendored Normal file
View 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
View file

@ -0,0 +1,5 @@
{
"files.exclude": {
"dependencies": false
}
}

View file

@ -1,3 +1,17 @@
# twonly
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
```

@ -0,0 +1 @@
Subproject commit 71b75a36f35f2ce945998e20c6c6aa1820babfc6

View file

@ -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

View file

@ -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"

View file

@ -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.'
);
'that was used.');
}

View file

@ -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';

View file

@ -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';

View 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);

View file

@ -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"

View file

@ -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