1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 08:15:16 +00:00

Can send images in conversations

This commit is contained in:
2019-04-25 20:14:19 +02:00
parent 517b97f12b
commit 18a8ddfbf4
7 changed files with 111 additions and 42 deletions

View File

@ -86,15 +86,36 @@ class _ConversationScreenState extends State<ConversationScreen> {
/// Pick and send an image
Future<void> _sendImage(BuildContext context) async {
final image = await pickImage(context);
if (image == null) return null;
_submitMessage(
context,
NewConversationMessage(
conversationID: widget.conversationID,
message: null,
image: image,
),
);
}
/// Send a new message
Future<void> _submitMessage(BuildContext context, String content) async {
/// Send a new text message
Future<void> _submitTextMessage(BuildContext context, String content) async {
_submitMessage(
context,
NewConversationMessage(
conversationID: widget.conversationID,
message: content,
),
);
}
/// Submit a new message
Future<void> _submitMessage(
BuildContext context, NewConversationMessage message) async {
//Send the message
_setSending(true);
final result = await _conversationsHelper.sendMessage(
NewConversationMessage(
conversationID: widget.conversationID, message: content));
final result = await _conversationsHelper.sendMessage(message);
_setSending(false);
//Check the result of the operation
@ -148,14 +169,14 @@ class _ConversationScreenState extends State<ConversationScreen> {
children: <Widget>[
// Image area
new Container(
margin: new EdgeInsets.symmetric(horizontal: 4.0),
child: new IconButton(
icon: new Icon(
Icons.photo_camera,
color: Theme.of(context).accentColor,
),
onPressed: () => _sendImage(context)),
),
margin: new EdgeInsets.symmetric(horizontal: 4.0),
child: new IconButton(
icon: new Icon(
Icons.photo_camera,
color: Theme.of(context).accentColor,
),
onPressed: () => _sendImage(context)),
),
// Message area
new Flexible(
@ -166,8 +187,9 @@ class _ConversationScreenState extends State<ConversationScreen> {
_isMessageValid = messageText.length > 4;
});
},
onSubmitted:
_isMessageValid ? (s) => _submitMessage(context, s) : null,
onSubmitted: _isMessageValid
? (s) => _submitTextMessage(context, s)
: null,
decoration:
new InputDecoration.collapsed(hintText: tr("Send a message")),
),
@ -184,7 +206,8 @@ class _ConversationScreenState extends State<ConversationScreen> {
: Theme.of(context).disabledColor,
),
onPressed: !_isSendingMessage && _isMessageValid
? () => _submitMessage(context, _textEditingController.text)
? () =>
_submitTextMessage(context, _textEditingController.text)
: null,
),
),