mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 20:58:41 +00:00
fix #233
This commit is contained in:
parent
0c034c680f
commit
9115d5be74
9 changed files with 121 additions and 121 deletions
1
assets/animations/donation.json
Normal file
1
assets/animations/donation.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -162,6 +162,11 @@ class _AppMainWidgetState extends State<AppMainWidget> {
|
||||||
FutureBuilder<bool>(
|
FutureBuilder<bool>(
|
||||||
future: userCreated,
|
future: userCreated,
|
||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
|
return OnboardingView(
|
||||||
|
callbackOnSuccess: () => setState(() {
|
||||||
|
showOnboarding = false;
|
||||||
|
}),
|
||||||
|
);
|
||||||
if (!snapshot.hasData) {
|
if (!snapshot.hasData) {
|
||||||
return Center(child: Container());
|
return Center(child: Container());
|
||||||
} else if (snapshot.data!) {
|
} else if (snapshot.data!) {
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,12 @@
|
||||||
"onboardingSendTwonliesTitle": "twonlies senden",
|
"onboardingSendTwonliesTitle": "twonlies senden",
|
||||||
"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!",
|
"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!",
|
||||||
"onboardingNotProductTitle": "Du bist nicht das Produkt!",
|
"onboardingNotProductTitle": "Du bist nicht das Produkt!",
|
||||||
"onboardingNotProductBody": "twonly finanziert sich durch eine geringe monatliche Gebühr und nicht durch den Verkauf deiner Daten.",
|
"onboardingNotProductBody": "twonly wird durch Spenden und ein optionales Abonnement finanziert. Deine Daten werden niemals verkauft.",
|
||||||
"onboardingBuyOneGetTwoTitle": "Kaufe eins, bekomme zwei",
|
"onboardingBuyOneGetTwoTitle": "Kaufe eins, bekomme zwei",
|
||||||
"onboardingBuyOneGetTwoBody": "twonly benötigt immer mindestens zwei Personen, daher erhältst du beim Kauf eine zweite kostenlose Lizenz für deinen twonly-Partner.",
|
"onboardingBuyOneGetTwoBody": "twonly benötigt immer mindestens zwei Personen, daher erhältst du beim Kauf eine zweite kostenlose Lizenz für deinen twonly-Partner.",
|
||||||
"onboardingGetStartedTitle": "Auf geht's",
|
"onboardingGetStartedTitle": "Auf geht's",
|
||||||
"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.",
|
"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.",
|
||||||
"onboardingTryForFree": "Kostenlos testen",
|
"onboardingTryForFree": "Jetzt registrieren",
|
||||||
"registerUsernameSlogan": "Bitte wähle einen Benutzernamen, damit dich andere finden können!",
|
"registerUsernameSlogan": "Bitte wähle einen Benutzernamen, damit dich andere finden können!",
|
||||||
"registerUsernameDecoration": "Benutzername",
|
"registerUsernameDecoration": "Benutzername",
|
||||||
"registerUsernameLimits": "Der Benutzername muss 3 bis 12 Zeichen lang sein und darf nur aus Buchstaben (a-z) und Zahlen (0-9) bestehen.",
|
"registerUsernameLimits": "Der Benutzername muss 3 bis 12 Zeichen lang sein und darf nur aus Buchstaben (a-z) und Zahlen (0-9) bestehen.",
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
"@onboardingSendTwonliesBody": {},
|
"@onboardingSendTwonliesBody": {},
|
||||||
"onboardingNotProductTitle": "You are not the product!",
|
"onboardingNotProductTitle": "You are not the product!",
|
||||||
"@onboardingNotProductTitle": {},
|
"@onboardingNotProductTitle": {},
|
||||||
"onboardingNotProductBody": "twonly is financed by a small monthly fee and not by selling your data.",
|
"onboardingNotProductBody": "twonly is financed by donations and an optional subscription. Your data will never be sold.",
|
||||||
"@onboardingNotProductBody": {},
|
"@onboardingNotProductBody": {},
|
||||||
"onboardingBuyOneGetTwoTitle": "Buy one get two",
|
"onboardingBuyOneGetTwoTitle": "Buy one get two",
|
||||||
"@onboardingBuyOneGetTwoTitle": {},
|
"@onboardingBuyOneGetTwoTitle": {},
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,7 @@ abstract class AppLocalizations {
|
||||||
/// No description provided for @onboardingNotProductBody.
|
/// No description provided for @onboardingNotProductBody.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'twonly is financed by a small monthly fee and not by selling your data.'**
|
/// **'twonly is financed by donations and an optional subscription. Your data will never be sold.'**
|
||||||
String get onboardingNotProductBody;
|
String get onboardingNotProductBody;
|
||||||
|
|
||||||
/// No description provided for @onboardingBuyOneGetTwoTitle.
|
/// No description provided for @onboardingBuyOneGetTwoTitle.
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get onboardingNotProductBody =>
|
String get onboardingNotProductBody =>
|
||||||
'twonly finanziert sich durch eine geringe monatliche Gebühr und nicht durch den Verkauf deiner Daten.';
|
'twonly wird durch Spenden und ein optionales Abonnement finanziert. Deine Daten werden niemals verkauft.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get onboardingBuyOneGetTwoTitle => 'Kaufe eins, bekomme zwei';
|
String get onboardingBuyOneGetTwoTitle => 'Kaufe eins, bekomme zwei';
|
||||||
|
|
@ -66,7 +66,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||||
'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.';
|
'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
|
@override
|
||||||
String get onboardingTryForFree => 'Kostenlos testen';
|
String get onboardingTryForFree => 'Jetzt registrieren';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get registerUsernameSlogan =>
|
String get registerUsernameSlogan =>
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get onboardingNotProductBody =>
|
String get onboardingNotProductBody =>
|
||||||
'twonly is financed by a small monthly fee and not by selling your data.';
|
'twonly is financed by donations and an optional subscription. Your data will never be sold.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get onboardingBuyOneGetTwoTitle => 'Buy one get two';
|
String get onboardingBuyOneGetTwoTitle => 'Buy one get two';
|
||||||
|
|
|
||||||
|
|
@ -10,127 +10,115 @@ class OnboardingView extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
body: IntroductionScreen(
|
body: SafeArea(
|
||||||
bodyPadding: const EdgeInsets.only(top: 75, left: 10, right: 10),
|
child: IntroductionScreen(
|
||||||
pages: [
|
bodyPadding: const EdgeInsets.only(top: 75, left: 10, right: 10),
|
||||||
PageViewModel(
|
pages: [
|
||||||
title: context.lang.onboardingWelcomeTitle,
|
PageViewModel(
|
||||||
body: context.lang.onboardingWelcomeBody,
|
title: context.lang.onboardingWelcomeTitle,
|
||||||
image: Center(
|
body: context.lang.onboardingWelcomeBody,
|
||||||
child: Padding(
|
image: Center(
|
||||||
padding: const EdgeInsets.only(top: 100),
|
child: Padding(
|
||||||
// child: Image.asset('assets/animations/messages.gif'),
|
padding: const EdgeInsets.only(top: 100),
|
||||||
child: Lottie.asset(
|
// child: Image.asset('assets/animations/messages.gif'),
|
||||||
'assets/animations/selfie2.json',
|
child: Lottie.asset(
|
||||||
),
|
'assets/animations/selfie2.json',
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
PageViewModel(
|
|
||||||
title: context.lang.onboardingE2eTitle,
|
|
||||||
body: context.lang.onboardingE2eBody,
|
|
||||||
image: Center(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 100),
|
|
||||||
child: Lottie.asset(
|
|
||||||
'assets/animations/e2e.json',
|
|
||||||
repeat: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
PageViewModel(
|
|
||||||
title: context.lang.onboardingFocusTitle,
|
|
||||||
body: context.lang.onboardingFocusBody,
|
|
||||||
image: Center(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 100),
|
|
||||||
child: Lottie.asset(
|
|
||||||
'assets/animations/takephoto.json',
|
|
||||||
repeat: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
PageViewModel(
|
|
||||||
title: context.lang.onboardingSendTwonliesTitle,
|
|
||||||
body: context.lang.onboardingSendTwonliesBody,
|
|
||||||
image: Center(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 100),
|
|
||||||
child: Lottie.asset(
|
|
||||||
'assets/animations/twonlies.json',
|
|
||||||
repeat: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
PageViewModel(
|
|
||||||
title: context.lang.onboardingNotProductTitle,
|
|
||||||
body: context.lang.onboardingNotProductBody,
|
|
||||||
image: Center(
|
|
||||||
child: Lottie.asset(
|
|
||||||
'assets/animations/forsale.json',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
PageViewModel(
|
|
||||||
title: context.lang.onboardingBuyOneGetTwoTitle,
|
|
||||||
bodyWidget: Column(
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
context.lang.onboardingBuyOneGetTwoBody,
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: const TextStyle(fontSize: 18),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
image: Center(
|
|
||||||
child: Lottie.asset(
|
|
||||||
'assets/animations/present.lottie.json',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
PageViewModel(
|
|
||||||
title: context.lang.onboardingGetStartedTitle,
|
|
||||||
bodyWidget: Column(
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
context.lang.onboardingGetStartedBody,
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: const TextStyle(fontSize: 18),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(left: 50, right: 50, top: 20),
|
|
||||||
child: FilledButton(
|
|
||||||
onPressed: callbackOnSuccess,
|
|
||||||
child: Text(context.lang.onboardingTryForFree),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
),
|
||||||
),
|
),
|
||||||
image: Center(
|
PageViewModel(
|
||||||
child: Padding(
|
title: context.lang.onboardingE2eTitle,
|
||||||
padding: const EdgeInsets.only(top: 100),
|
body: context.lang.onboardingE2eBody,
|
||||||
child: Lottie.asset(
|
image: Center(
|
||||||
'assets/animations/rocket.json',
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 100),
|
||||||
|
child: Lottie.asset(
|
||||||
|
'assets/animations/e2e.json',
|
||||||
|
repeat: false,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
PageViewModel(
|
||||||
|
title: context.lang.onboardingFocusTitle,
|
||||||
|
body: context.lang.onboardingFocusBody,
|
||||||
|
image: Center(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 100),
|
||||||
|
child: Lottie.asset(
|
||||||
|
'assets/animations/takephoto.json',
|
||||||
|
repeat: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
PageViewModel(
|
||||||
|
title: context.lang.onboardingSendTwonliesTitle,
|
||||||
|
body: context.lang.onboardingSendTwonliesBody,
|
||||||
|
image: Center(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 100),
|
||||||
|
child: Lottie.asset(
|
||||||
|
'assets/animations/twonlies.json',
|
||||||
|
repeat: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
PageViewModel(
|
||||||
|
title: context.lang.onboardingNotProductTitle,
|
||||||
|
bodyWidget: Column(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
context.lang.onboardingNotProductBody,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: const TextStyle(fontSize: 18),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding:
|
||||||
|
const EdgeInsets.only(left: 50, right: 50, top: 20),
|
||||||
|
child: FilledButton(
|
||||||
|
onPressed: callbackOnSuccess,
|
||||||
|
child: Text(context.lang.registerSubmitButton),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
image: Center(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 60),
|
||||||
|
child: Lottie.asset(
|
||||||
|
'assets/animations/donation.json',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// PageViewModel(
|
||||||
|
// title: context.lang.onboardingGetStartedTitle,
|
||||||
|
// image: Center(
|
||||||
|
// child: Padding(
|
||||||
|
// padding: const EdgeInsets.only(top: 100),
|
||||||
|
// child: Lottie.asset(
|
||||||
|
// 'assets/animations/rocket.json',
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
],
|
||||||
|
done: const Text(''),
|
||||||
|
next: Text(context.lang.next),
|
||||||
|
// done: RegisterView(callbackOnSuccess: callbackOnSuccess),
|
||||||
|
onDone: callbackOnSuccess,
|
||||||
|
dotsDecorator: DotsDecorator(
|
||||||
|
size: const Size.square(8),
|
||||||
|
activeSize: const Size(20, 10),
|
||||||
|
activeColor: Theme.of(context).colorScheme.primary,
|
||||||
|
color: Theme.of(context).colorScheme.secondary,
|
||||||
|
spacing: const EdgeInsets.symmetric(horizontal: 3),
|
||||||
|
activeShape:
|
||||||
|
RoundedRectangleBorder(borderRadius: BorderRadius.circular(25)),
|
||||||
),
|
),
|
||||||
],
|
|
||||||
done: const Text(''),
|
|
||||||
next: Text(context.lang.next),
|
|
||||||
// done: RegisterView(callbackOnSuccess: callbackOnSuccess),
|
|
||||||
onDone: callbackOnSuccess,
|
|
||||||
dotsDecorator: DotsDecorator(
|
|
||||||
size: const Size.square(8),
|
|
||||||
activeSize: const Size(20, 10),
|
|
||||||
activeColor: Theme.of(context).colorScheme.primary,
|
|
||||||
color: Theme.of(context).colorScheme.secondary,
|
|
||||||
spacing: const EdgeInsets.symmetric(horizontal: 3),
|
|
||||||
activeShape:
|
|
||||||
RoundedRectangleBorder(borderRadius: BorderRadius.circular(25)),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,12 @@ class _CreditsViewState extends State<CreditsView> {
|
||||||
url:
|
url:
|
||||||
'https://lottiefiles.com/de/free-animation/success-tick-cuwjLHAR7g',
|
'https://lottiefiles.com/de/free-animation/success-tick-cuwjLHAR7g',
|
||||||
),
|
),
|
||||||
|
const UrlListTitle(
|
||||||
|
title: 'Donation-Animation',
|
||||||
|
subtitle: 'Abdul Latif',
|
||||||
|
url:
|
||||||
|
'https://lottiefiles.com/free-animation/international-day-of-charity-NBAKAkCcBr',
|
||||||
|
),
|
||||||
const UrlListTitle(
|
const UrlListTitle(
|
||||||
title: 'Failed-Animation',
|
title: 'Failed-Animation',
|
||||||
subtitle: 'Ahmed Shami أحمد شامي',
|
subtitle: 'Ahmed Shami أحمد شامي',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue