feat(ui): Localise more pages
This commit is contained in:
		
							parent
							
								
									1e3fc9be3d
								
							
						
					
					
						commit
						a30b8f888d
					
				| @ -6,12 +6,50 @@ | |||||||
| 	    "loginButton": "Login", | 	    "loginButton": "Login", | ||||||
| 	    "registerButton": "Register" | 	    "registerButton": "Register" | ||||||
| 	}, | 	}, | ||||||
|  | 	"login": { | ||||||
|  | 	    "title": "Login", | ||||||
|  | 	    "xmppAddress": "XMPP-Address", | ||||||
|  | 	    "password": "Password", | ||||||
|  | 	    "advancedOptions": "Advanced options", | ||||||
|  | 	    "createAccount": "Create account on server" | ||||||
|  | 	}, | ||||||
| 	"conversations": { | 	"conversations": { | ||||||
| 	    "speeddialNewChat": "New chat", | 	    "speeddialNewChat": "New chat", | ||||||
| 	    "speeddialJoinGroupchat": "Join groupchat", | 	    "speeddialJoinGroupchat": "Join groupchat", | ||||||
| 	    "overlaySettings": "Settings", | 	    "overlaySettings": "Settings", | ||||||
| 	    "noOpenChats": "You have no open chats", | 	    "noOpenChats": "You have no open chats", | ||||||
| 	    "startChat": "Start a chat" | 	    "startChat": "Start a chat" | ||||||
|  | 	}, | ||||||
|  | 	"addcontact": { | ||||||
|  | 	    "title": "Add new contact", | ||||||
|  | 	    "xmppAddress": "XMPP-Address", | ||||||
|  | 	    "subtitle": "You can add a contact either by typing in their XMPP address or by scanning their QR code", | ||||||
|  | 	    "buttonAddToContact": "Add to contacts" | ||||||
|  | 	}, | ||||||
|  | 	"newconversation": { | ||||||
|  | 	    "title": "Start new chat", | ||||||
|  | 	    "addContact": "Add contact", | ||||||
|  | 	    "createGroupchat": "Create groupchat" | ||||||
|  | 	}, | ||||||
|  | 	"crop": { | ||||||
|  | 	    "setProfilePicture": "Set as profile picture" | ||||||
|  | 	}, | ||||||
|  | 	"shareselection": { | ||||||
|  | 	    "shareWith": "Share with...", | ||||||
|  | 	    "confirmTitle": "Send file", | ||||||
|  | 	    "confirmBody": "One or more chats are unencrypted. This means that the file will be leaked to the server. Do you still want to continue?" | ||||||
|  | 	}, | ||||||
|  | 	"profile": { | ||||||
|  | 	    "self": { | ||||||
|  | 		"devices": "Devices" | ||||||
|  | 	    }, | ||||||
|  | 	    "conversation": { | ||||||
|  | 		"muteChatTooltip": "Mute chat", | ||||||
|  | 		"unmuteChatTooltip": "Unmute chat", | ||||||
|  | 		"muteChat": "Mute", | ||||||
|  | 		"unmuteChat": "Unmute", | ||||||
|  | 		"devices": "Devices" | ||||||
|  | 	    } | ||||||
| 	} | 	} | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -6,12 +6,50 @@ | |||||||
| 	    "loginButton": "Einloggen", | 	    "loginButton": "Einloggen", | ||||||
| 	    "registerButton": "Registrieren" | 	    "registerButton": "Registrieren" | ||||||
| 	}, | 	}, | ||||||
|  | 	"login": { | ||||||
|  | 	    "title": "Login", | ||||||
|  | 	    "xmppAddress": "XMPP-Adresse", | ||||||
|  | 	    "password": "Passwort", | ||||||
|  | 	    "advancedOptions": "Fortgeschrittene Optionen", | ||||||
|  | 	    "createAccount": "Account auf dem Server erstellen" | ||||||
|  | 	}, | ||||||
| 	"conversations": { | 	"conversations": { | ||||||
| 	    "speeddialNewChat": "Neuer chat", | 	    "speeddialNewChat": "Neuer chat", | ||||||
| 	    "speeddialJoinGroupchat": "Gruppenchat beitreten", | 	    "speeddialJoinGroupchat": "Gruppenchat beitreten", | ||||||
| 	    "overlaySettings": "Einstellungen", | 	    "overlaySettings": "Einstellungen", | ||||||
| 	    "noOpenChats": "Du hast keine offenen chats", | 	    "noOpenChats": "Du hast keine offenen chats", | ||||||
| 	    "startChat": "Einen chat anfangen" | 	    "startChat": "Einen chat anfangen" | ||||||
|  | 	}, | ||||||
|  | 	"addcontact": { | ||||||
|  | 	    "title": "Neuen Kontakt hinzufügen", | ||||||
|  | 	    "xmppAddress": "XMPP-Adresse", | ||||||
|  | 	    "subtitle": "Du kannst einen Kontakt hinzufügen, indem Du entweder die XMPP-Adresse eingibst oder den QR-Code deines Kontaktes scannst", | ||||||
|  | 	    "buttonAddToContact": "Kontakt hinzufügen" | ||||||
|  | 	}, | ||||||
|  | 	"newconversation": { | ||||||
|  | 	    "title": "Neuer chat", | ||||||
|  | 	    "addContact": "Kontakt hinzufügen", | ||||||
|  | 	    "createGroupchat": "Gruppenchat erstellen" | ||||||
|  | 	}, | ||||||
|  | 	"crop": { | ||||||
|  | 	    "setProfilePicture": "Als Profilbild festlegen" | ||||||
|  | 	}, | ||||||
|  | 	"shareselection": { | ||||||
|  | 	    "shareWith": "Teilen mit...", | ||||||
|  | 	    "confirmTitle": "Dateien senden?", | ||||||
|  | 	    "confirmTitle": "Einer oder mehr Chats sind unverschlüsselt. Das bedeutet, dass die Dateien dem Server unverschlüsselt vorliegen. Dateien trotzdem senden?" | ||||||
|  | 	}, | ||||||
|  | 	"profile": { | ||||||
|  | 	    "self": { | ||||||
|  | 		"devices": "Geräte" | ||||||
|  | 	    }, | ||||||
|  | 	    "conversation": { | ||||||
|  | 		"muteChatTooltip": "Chat stummschalten", | ||||||
|  | 		"unmuteChatTooltip": "Chat lautstellen", | ||||||
|  | 		"muteChat": "Stummschalten", | ||||||
|  | 		"unmuteChat": "Lautstellen", | ||||||
|  | 		"devices": "Geräte" | ||||||
|  | 	    } | ||||||
| 	} | 	} | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| import 'package:flutter_bloc/flutter_bloc.dart'; | import 'package:flutter_bloc/flutter_bloc.dart'; | ||||||
|  | import 'package:moxxyv2/i18n/strings.g.dart'; | ||||||
| import 'package:moxxyv2/ui/bloc/addcontact_bloc.dart'; | import 'package:moxxyv2/ui/bloc/addcontact_bloc.dart'; | ||||||
| import 'package:moxxyv2/ui/constants.dart'; | import 'package:moxxyv2/ui/constants.dart'; | ||||||
| import 'package:moxxyv2/ui/helpers.dart'; | import 'package:moxxyv2/ui/helpers.dart'; | ||||||
| @ -21,7 +22,7 @@ class AddContactPage extends StatelessWidget { | |||||||
|   Widget build(BuildContext context) { |   Widget build(BuildContext context) { | ||||||
|     return BlocBuilder<AddContactBloc, AddContactState>( |     return BlocBuilder<AddContactBloc, AddContactState>( | ||||||
|       builder: (context, state) => Scaffold( |       builder: (context, state) => Scaffold( | ||||||
|         appBar: BorderlessTopbar.simple('Add new contact'), |         appBar: BorderlessTopbar.simple(t.pages.addcontact.title), | ||||||
|         body: Column( |         body: Column( | ||||||
|           children: [ |           children: [ | ||||||
|             Visibility( |             Visibility( | ||||||
| @ -32,7 +33,7 @@ class AddContactPage extends StatelessWidget { | |||||||
|             Padding( |             Padding( | ||||||
|               padding: const EdgeInsets.symmetric(horizontal: paddingVeryLarge).add(const EdgeInsets.only(top: 8)), |               padding: const EdgeInsets.symmetric(horizontal: paddingVeryLarge).add(const EdgeInsets.only(top: 8)), | ||||||
|               child: CustomTextField( |               child: CustomTextField( | ||||||
|                 labelText: 'XMPP-Address', |                 labelText: t.pages.addcontact.xmppAddress, | ||||||
|                 onChanged: (value) => context.read<AddContactBloc>().add( |                 onChanged: (value) => context.read<AddContactBloc>().add( | ||||||
|                   JidChangedEvent(value), |                   JidChangedEvent(value), | ||||||
|                 ), |                 ), | ||||||
| @ -52,9 +53,7 @@ class AddContactPage extends StatelessWidget { | |||||||
| 
 | 
 | ||||||
|             Padding( |             Padding( | ||||||
|               padding: const EdgeInsets.symmetric(horizontal: paddingVeryLarge).add(const EdgeInsets.only(top: 8)), |               padding: const EdgeInsets.symmetric(horizontal: paddingVeryLarge).add(const EdgeInsets.only(top: 8)), | ||||||
|               child: const Text( |               child: Text(t.pages.addcontact.subtitle), | ||||||
|                 'You can add a contact either by typing in their XMPP address or by scanning their QR code', |  | ||||||
|               ), |  | ||||||
|             ), |             ), | ||||||
|              |              | ||||||
|             Padding( |             Padding( | ||||||
| @ -66,7 +65,7 @@ class AddContactPage extends StatelessWidget { | |||||||
|                       cornerRadius: 32, |                       cornerRadius: 32, | ||||||
|                       onTap: () => context.read<AddContactBloc>().add(AddedContactEvent()), |                       onTap: () => context.read<AddContactBloc>().add(AddedContactEvent()), | ||||||
|                       enabled: !state.working, |                       enabled: !state.working, | ||||||
|                       child: const Text('Add to contacts'), |                       child: Text(t.pages.addcontact.buttonAddToContact), | ||||||
|                     ), |                     ), | ||||||
|                   ) |                   ) | ||||||
|                 ], |                 ], | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| import 'package:crop_your_image/crop_your_image.dart'; | import 'package:crop_your_image/crop_your_image.dart'; | ||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| import 'package:flutter_bloc/flutter_bloc.dart'; | import 'package:flutter_bloc/flutter_bloc.dart'; | ||||||
|  | import 'package:moxxyv2/i18n/strings.g.dart'; | ||||||
| import 'package:moxxyv2/ui/bloc/crop_bloc.dart'; | import 'package:moxxyv2/ui/bloc/crop_bloc.dart'; | ||||||
| import 'package:moxxyv2/ui/constants.dart'; | import 'package:moxxyv2/ui/constants.dart'; | ||||||
| import 'package:moxxyv2/ui/widgets/button.dart'; | import 'package:moxxyv2/ui/widgets/button.dart'; | ||||||
| @ -60,7 +61,7 @@ class CropPage extends StatelessWidget { | |||||||
|               RoundedButton( |               RoundedButton( | ||||||
|                 cornerRadius: 100, |                 cornerRadius: 100, | ||||||
|                 onTap: _controller.crop, |                 onTap: _controller.crop, | ||||||
|                 child: const Text('Set as profile picture'), |                 child: Text(t.pages.crop.setProfilePicture), | ||||||
|               ), |               ), | ||||||
|             ], |             ], | ||||||
|           ), |           ), | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| import 'package:flutter_bloc/flutter_bloc.dart'; | import 'package:flutter_bloc/flutter_bloc.dart'; | ||||||
|  | import 'package:moxxyv2/i18n/strings.g.dart'; | ||||||
| import 'package:moxxyv2/ui/bloc/login_bloc.dart'; | import 'package:moxxyv2/ui/bloc/login_bloc.dart'; | ||||||
| import 'package:moxxyv2/ui/constants.dart'; | import 'package:moxxyv2/ui/constants.dart'; | ||||||
| import 'package:moxxyv2/ui/widgets/button.dart'; | import 'package:moxxyv2/ui/widgets/button.dart'; | ||||||
| @ -21,7 +22,7 @@ class Login extends StatelessWidget { | |||||||
|       builder: (BuildContext context, LoginState state) => WillPopScope( |       builder: (BuildContext context, LoginState state) => WillPopScope( | ||||||
|         onWillPop: () async => !state.working, |         onWillPop: () async => !state.working, | ||||||
|         child: Scaffold( |         child: Scaffold( | ||||||
|           appBar: BorderlessTopbar.simple('Login'), |           appBar: BorderlessTopbar.simple(t.pages.login.title), | ||||||
|           body: Column( |           body: Column( | ||||||
|             children: [ |             children: [ | ||||||
|               Visibility( |               Visibility( | ||||||
| @ -35,7 +36,7 @@ class Login extends StatelessWidget { | |||||||
|                 child: CustomTextField( |                 child: CustomTextField( | ||||||
|                   // ignore: avoid_dynamic_calls |                   // ignore: avoid_dynamic_calls | ||||||
|                   errorText: state.jidState.error, |                   errorText: state.jidState.error, | ||||||
|                   labelText: 'XMPP-Address', |                   labelText: t.pages.login.xmppAddress, | ||||||
|                   enabled: !state.working, |                   enabled: !state.working, | ||||||
|                   cornerRadius: textfieldRadiusRegular, |                   cornerRadius: textfieldRadiusRegular, | ||||||
|                   borderColor: primaryColor, |                   borderColor: primaryColor, | ||||||
| @ -49,7 +50,7 @@ class Login extends StatelessWidget { | |||||||
|                 child: CustomTextField( |                 child: CustomTextField( | ||||||
|                   // ignore: avoid_dynamic_calls |                   // ignore: avoid_dynamic_calls | ||||||
|                   errorText: state.passwordState.error, |                   errorText: state.passwordState.error, | ||||||
|                   labelText: 'Password', |                   labelText: t.pages.login.password, | ||||||
|                   suffixIcon: Padding( |                   suffixIcon: Padding( | ||||||
|                     padding: const EdgeInsetsDirectional.only(end: 8), |                     padding: const EdgeInsetsDirectional.only(end: 8), | ||||||
|                     child: InkWell( |                     child: InkWell( | ||||||
| @ -71,12 +72,12 @@ class Login extends StatelessWidget { | |||||||
|               Padding( |               Padding( | ||||||
|                 padding: const EdgeInsets.symmetric(horizontal: paddingVeryLarge).add(const EdgeInsets.only(top: 8)), |                 padding: const EdgeInsets.symmetric(horizontal: paddingVeryLarge).add(const EdgeInsets.only(top: 8)), | ||||||
|                 child: ExpansionTile( |                 child: ExpansionTile( | ||||||
|                   title: const Text('Advanced options'), |                   title: Text(t.pages.login.advancedOptions), | ||||||
|                   children: [ |                   children: [ | ||||||
|                     Column( |                     Column( | ||||||
|                       children: [ |                       children: [ | ||||||
|                         SwitchListTile( |                         SwitchListTile( | ||||||
|                           title: const Text('Create account on server'), |                           title: Text(t.pages.login.createAccount), | ||||||
|                           value: false, |                           value: false, | ||||||
|                           // TODO(Unknown): Implement |                           // TODO(Unknown): Implement | ||||||
|                           onChanged: state.working ? null : (value) {}, |                           onChanged: state.working ? null : (value) {}, | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| import 'package:flutter_bloc/flutter_bloc.dart'; | import 'package:flutter_bloc/flutter_bloc.dart'; | ||||||
|  | import 'package:moxxyv2/i18n/strings.g.dart'; | ||||||
| import 'package:moxxyv2/shared/constants.dart'; | import 'package:moxxyv2/shared/constants.dart'; | ||||||
| import 'package:moxxyv2/ui/bloc/newconversation_bloc.dart'; | import 'package:moxxyv2/ui/bloc/newconversation_bloc.dart'; | ||||||
| import 'package:moxxyv2/ui/constants.dart'; | import 'package:moxxyv2/ui/constants.dart'; | ||||||
| @ -49,7 +50,7 @@ class NewConversationPage extends StatelessWidget { | |||||||
|   Widget build(BuildContext context) { |   Widget build(BuildContext context) { | ||||||
|     final maxTextWidth = MediaQuery.of(context).size.width * 0.6; |     final maxTextWidth = MediaQuery.of(context).size.width * 0.6; | ||||||
|     return Scaffold( |     return Scaffold( | ||||||
|       appBar: BorderlessTopbar.simple('Start new chat'), |       appBar: BorderlessTopbar.simple(t.pages.newconversation.title), | ||||||
|       body: BlocBuilder<NewConversationBloc, NewConversationState>( |       body: BlocBuilder<NewConversationBloc, NewConversationState>( | ||||||
|         builder: (BuildContext context, NewConversationState state) => ListView.builder( |         builder: (BuildContext context, NewConversationState state) => ListView.builder( | ||||||
|           itemCount: state.roster.length + 2, |           itemCount: state.roster.length + 2, | ||||||
| @ -57,12 +58,12 @@ class NewConversationPage extends StatelessWidget { | |||||||
|             switch(index) { |             switch(index) { | ||||||
|               case 0: return _renderIconEntry( |               case 0: return _renderIconEntry( | ||||||
|                 Icons.person_add, |                 Icons.person_add, | ||||||
|                 'Add contact', |                 t.pages.newconversation.addContact, | ||||||
|                 () => Navigator.pushNamed(context, addContactRoute), |                 () => Navigator.pushNamed(context, addContactRoute), | ||||||
|               ); |               ); | ||||||
|               case 1: return _renderIconEntry( |               case 1: return _renderIconEntry( | ||||||
|                 Icons.group_add, |                 Icons.group_add, | ||||||
|                 'Create groupchat', |                 t.pages.newconversation.createGroupchat, | ||||||
|                 () => showNotImplementedDialog('groupchat', context), |                 () => showNotImplementedDialog('groupchat', context), | ||||||
|               ); |               ); | ||||||
|               default: |               default: | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| import 'package:get_it/get_it.dart'; | import 'package:get_it/get_it.dart'; | ||||||
|  | import 'package:moxxyv2/i18n/strings.g.dart'; | ||||||
| import 'package:moxxyv2/shared/models/conversation.dart'; | import 'package:moxxyv2/shared/models/conversation.dart'; | ||||||
| import 'package:moxxyv2/ui/bloc/devices_bloc.dart'; | import 'package:moxxyv2/ui/bloc/devices_bloc.dart'; | ||||||
| import 'package:moxxyv2/ui/bloc/profile_bloc.dart'; | import 'package:moxxyv2/ui/bloc/profile_bloc.dart'; | ||||||
| @ -55,8 +56,8 @@ class ConversationProfileHeader extends StatelessWidget { | |||||||
|             children: [ |             children: [ | ||||||
|               Tooltip( |               Tooltip( | ||||||
|                 message: conversation.muted ? |                 message: conversation.muted ? | ||||||
|                   'Unmute chat' : |                   t.pages.profile.conversation.unmuteChatTooltip : | ||||||
|                   'Mute chat', |                   t.pages.profile.conversation.muteChatTooltip, | ||||||
|                 child: Column( |                 child: Column( | ||||||
|                   mainAxisSize: MainAxisSize.min, |                   mainAxisSize: MainAxisSize.min, | ||||||
|                   children: [ |                   children: [ | ||||||
| @ -84,8 +85,8 @@ class ConversationProfileHeader extends StatelessWidget { | |||||||
|                     ), |                     ), | ||||||
|                     Text( |                     Text( | ||||||
|                       conversation.muted ? |                       conversation.muted ? | ||||||
|                         'Unmute' : |                         t.pages.profile.conversation.unmuteChat : | ||||||
|                         'Mute', |                         t.pages.profile.conversation.muteChat, | ||||||
|                       style: const TextStyle( |                       style: const TextStyle( | ||||||
|                         fontSize: fontsizeAppbar, |                         fontSize: fontsizeAppbar, | ||||||
|                       ), |                       ), | ||||||
| @ -95,7 +96,7 @@ class ConversationProfileHeader extends StatelessWidget { | |||||||
|               ), |               ), | ||||||
|               // TODO(PapaTutuWawa): Only show when the chat partner has OMEMO keys |               // TODO(PapaTutuWawa): Only show when the chat partner has OMEMO keys | ||||||
|               Tooltip( |               Tooltip( | ||||||
|                 message: 'Devices', |                 message: t.pages.profile.conversation.devices, | ||||||
|                 child: Column( |                 child: Column( | ||||||
|                   mainAxisAlignment: MainAxisAlignment.spaceEvenly, |                   mainAxisAlignment: MainAxisAlignment.spaceEvenly, | ||||||
|                   children: [ |                   children: [ | ||||||
| @ -114,9 +115,9 @@ class ConversationProfileHeader extends StatelessWidget { | |||||||
|                         GetIt.I.get<DevicesBloc>().add(DevicesRequestedEvent(conversation.jid)); |                         GetIt.I.get<DevicesBloc>().add(DevicesRequestedEvent(conversation.jid)); | ||||||
|                       }, |                       }, | ||||||
|                     ), |                     ), | ||||||
|                     const Text( |                     Text( | ||||||
|                       'Devices', |                       t.pages.profile.conversation.devices, | ||||||
|                       style: TextStyle( |                       style: const TextStyle( | ||||||
|                         fontSize: fontsizeAppbar, |                         fontSize: fontsizeAppbar, | ||||||
|                       ), |                       ), | ||||||
|                     ), |                     ), | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| import 'package:get_it/get_it.dart'; | import 'package:get_it/get_it.dart'; | ||||||
|  | import 'package:moxxyv2/i18n/strings.g.dart'; | ||||||
| import 'package:moxxyv2/ui/bloc/own_devices_bloc.dart'; | import 'package:moxxyv2/ui/bloc/own_devices_bloc.dart'; | ||||||
| import 'package:moxxyv2/ui/constants.dart'; | import 'package:moxxyv2/ui/constants.dart'; | ||||||
| import 'package:moxxyv2/ui/helpers.dart'; | import 'package:moxxyv2/ui/helpers.dart'; | ||||||
| @ -111,7 +112,7 @@ class SelfProfileHeader extends StatelessWidget { | |||||||
|             mainAxisAlignment: MainAxisAlignment.spaceEvenly, |             mainAxisAlignment: MainAxisAlignment.spaceEvenly, | ||||||
|             children: [ |             children: [ | ||||||
|               Tooltip( |               Tooltip( | ||||||
|                 message: 'Devices', |                 message: t.pages.profile.self.devices, | ||||||
|                 child: Column( |                 child: Column( | ||||||
|                   mainAxisAlignment: MainAxisAlignment.spaceEvenly, |                   mainAxisAlignment: MainAxisAlignment.spaceEvenly, | ||||||
|                   children: [ |                   children: [ | ||||||
| @ -130,9 +131,9 @@ class SelfProfileHeader extends StatelessWidget { | |||||||
|                         GetIt.I.get<OwnDevicesBloc>().add(OwnDevicesRequestedEvent()); |                         GetIt.I.get<OwnDevicesBloc>().add(OwnDevicesRequestedEvent()); | ||||||
|                       }, |                       }, | ||||||
|                     ), |                     ), | ||||||
|                     const Text( |                     Text( | ||||||
|                       'Devices', |                       t.pages.profile.self.devices, | ||||||
|                       style: TextStyle( |                       style: const TextStyle( | ||||||
|                         fontSize: fontsizeAppbar, |                         fontSize: fontsizeAppbar, | ||||||
|                       ), |                       ), | ||||||
|                     ), |                     ), | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ import 'package:flutter/material.dart'; | |||||||
| import 'package:flutter_bloc/flutter_bloc.dart'; | import 'package:flutter_bloc/flutter_bloc.dart'; | ||||||
| import 'package:get_it/get_it.dart'; | import 'package:get_it/get_it.dart'; | ||||||
| import 'package:move_to_background/move_to_background.dart'; | import 'package:move_to_background/move_to_background.dart'; | ||||||
|  | import 'package:moxxyv2/i18n/strings.g.dart'; | ||||||
| import 'package:moxxyv2/shared/constants.dart'; | import 'package:moxxyv2/shared/constants.dart'; | ||||||
| import 'package:moxxyv2/ui/bloc/navigation_bloc.dart' as navigation; | import 'package:moxxyv2/ui/bloc/navigation_bloc.dart' as navigation; | ||||||
| import 'package:moxxyv2/ui/bloc/share_selection_bloc.dart'; | import 'package:moxxyv2/ui/bloc/share_selection_bloc.dart'; | ||||||
| @ -53,7 +54,7 @@ class ShareSelectionPage extends StatelessWidget { | |||||||
|       child: BlocBuilder<ShareSelectionBloc, ShareSelectionState>( |       child: BlocBuilder<ShareSelectionBloc, ShareSelectionState>( | ||||||
|         buildWhen: _buildWhen,  |         buildWhen: _buildWhen,  | ||||||
|         builder: (context, state) => Scaffold( |         builder: (context, state) => Scaffold( | ||||||
|           appBar: BorderlessTopbar.simple('Share with...'), |           appBar: BorderlessTopbar.simple(t.pages.shareselection.shareWith), | ||||||
|           body: ListView.builder( |           body: ListView.builder( | ||||||
|             itemCount: state.items.length, |             itemCount: state.items.length, | ||||||
|             itemBuilder: (context, index) { |             itemBuilder: (context, index) { | ||||||
| @ -101,8 +102,8 @@ class ShareSelectionPage extends StatelessWidget { | |||||||
|                 // Warn the user |                 // Warn the user | ||||||
|                 if (hasUnencrypted && hasEncrypted) { |                 if (hasUnencrypted && hasEncrypted) { | ||||||
|                   showConfirmationDialog( |                   showConfirmationDialog( | ||||||
|                     'Send file', |                     t.pages.shareselection.confirmTitle, | ||||||
|                     'One or more chats are unencrypted. This means that the file will be leaked to the server. Do you still want to continue?', |                     t.pages.shareselection.confirmBody, | ||||||
|                     context, |                     context, | ||||||
|                     () { |                     () { | ||||||
|                       bloc.add(SubmittedEvent()); |                       bloc.add(SubmittedEvent()); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user