mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-12-26 04:48:51 +00:00
Improved send message form UI
This commit is contained in:
parent
d07774c6d5
commit
05f7396c98
@ -97,21 +97,24 @@ class _ConversationScreenState extends State<ConversationScreen> {
|
||||
image: image,
|
||||
),
|
||||
);
|
||||
|
||||
// In case a message was already written in the input
|
||||
_updatedText(_textEditingController.text);
|
||||
}
|
||||
|
||||
/// Send a new text message
|
||||
Future<void> _submitTextMessage(BuildContext context, String content) async {
|
||||
_submitMessage(
|
||||
context,
|
||||
NewConversationMessage(
|
||||
conversationID: widget.conversationID,
|
||||
message: content,
|
||||
),
|
||||
);
|
||||
if (await _submitMessage(
|
||||
context,
|
||||
NewConversationMessage(
|
||||
conversationID: widget.conversationID,
|
||||
message: content,
|
||||
)) ==
|
||||
SendMessageResult.SUCCESS) _clearSendMessageForm();
|
||||
}
|
||||
|
||||
/// Submit a new message
|
||||
Future<void> _submitMessage(
|
||||
Future<SendMessageResult> _submitMessage(
|
||||
BuildContext context, NewConversationMessage message) async {
|
||||
//Send the message
|
||||
_setSending(true);
|
||||
@ -119,9 +122,7 @@ class _ConversationScreenState extends State<ConversationScreen> {
|
||||
_setSending(false);
|
||||
|
||||
//Check the result of the operation
|
||||
if (result == SendMessageResult.SUCCESS)
|
||||
_clearSendMessageForm();
|
||||
else
|
||||
if (result != SendMessageResult.SUCCESS)
|
||||
Scaffold.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(
|
||||
@ -132,6 +133,14 @@ class _ConversationScreenState extends State<ConversationScreen> {
|
||||
duration: Duration(milliseconds: 500),
|
||||
),
|
||||
);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void _updatedText(String text) {
|
||||
setState(() {
|
||||
_isMessageValid = text.length > 4;
|
||||
});
|
||||
}
|
||||
|
||||
/// Clear send message form
|
||||
@ -171,22 +180,22 @@ class _ConversationScreenState extends State<ConversationScreen> {
|
||||
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)),
|
||||
icon: new Icon(
|
||||
Icons.photo_camera,
|
||||
color: _isSendingMessage
|
||||
? Theme.of(context).disabledColor
|
||||
: Theme.of(context).accentColor,
|
||||
),
|
||||
onPressed: () => _sendImage(context),
|
||||
),
|
||||
),
|
||||
|
||||
// Message area
|
||||
new Flexible(
|
||||
child: new TextField(
|
||||
enabled: !_isSendingMessage,
|
||||
controller: _textEditingController,
|
||||
onChanged: (String messageText) {
|
||||
setState(() {
|
||||
_isMessageValid = messageText.length > 4;
|
||||
});
|
||||
},
|
||||
onChanged: _updatedText,
|
||||
onSubmitted: _isMessageValid
|
||||
? (s) => _submitTextMessage(context, s)
|
||||
: null,
|
||||
|
Loading…
Reference in New Issue
Block a user