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