mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-07-10 02:32:47 +10:00
Merge branch 'main' into favorite_filter_ez
This commit is contained in:
@@ -30,6 +30,7 @@ migrate_working_dir/
|
|||||||
.flutter-plugins-dependencies
|
.flutter-plugins-dependencies
|
||||||
.pub-cache/
|
.pub-cache/
|
||||||
.pub/
|
.pub/
|
||||||
|
pubspec.lock
|
||||||
/build/
|
/build/
|
||||||
/coverage/
|
/coverage/
|
||||||
|
|
||||||
|
|||||||
@@ -970,30 +970,47 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
|
|||||||
builder: (context, value, child) {
|
builder: (context, value, child) {
|
||||||
final gifId = _parseGifId(value.text);
|
final gifId = _parseGifId(value.text);
|
||||||
if (gifId != null) {
|
if (gifId != null) {
|
||||||
return Row(
|
return Focus(
|
||||||
children: [
|
autofocus: true,
|
||||||
Expanded(
|
onKeyEvent: (node, event) {
|
||||||
child: ClipRRect(
|
if (event is KeyDownEvent &&
|
||||||
borderRadius: BorderRadius.circular(12),
|
(event.logicalKey == LogicalKeyboardKey.enter ||
|
||||||
child: GifMessage(
|
event.logicalKey ==
|
||||||
url:
|
LogicalKeyboardKey.numpadEnter)) {
|
||||||
'https://media.giphy.com/media/$gifId/giphy.gif',
|
_sendMessage();
|
||||||
backgroundColor: Theme.of(
|
return KeyEventResult.handled;
|
||||||
context,
|
}
|
||||||
).colorScheme.surfaceContainerHighest,
|
return KeyEventResult.ignored;
|
||||||
fallbackTextColor: Theme.of(
|
},
|
||||||
context,
|
child: Row(
|
||||||
).colorScheme.onSurface.withValues(alpha: 0.6),
|
children: [
|
||||||
maxSize: 160,
|
Expanded(
|
||||||
|
child: ClipRRect(
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
child: GifMessage(
|
||||||
|
url:
|
||||||
|
'https://media.giphy.com/media/$gifId/giphy.gif',
|
||||||
|
backgroundColor: Theme.of(
|
||||||
|
context,
|
||||||
|
).colorScheme.surfaceContainerHighest,
|
||||||
|
fallbackTextColor: Theme.of(context)
|
||||||
|
.colorScheme
|
||||||
|
.onSurface
|
||||||
|
.withValues(alpha: 0.6),
|
||||||
|
maxSize: 160,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(width: 8),
|
||||||
const SizedBox(width: 8),
|
IconButton(
|
||||||
IconButton(
|
icon: const Icon(Icons.close),
|
||||||
icon: const Icon(Icons.close),
|
onPressed: () {
|
||||||
onPressed: () => _textController.clear(),
|
_textController.clear();
|
||||||
),
|
_textFieldFocusNode.requestFocus();
|
||||||
],
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1056,6 +1073,7 @@ class _ChannelChatScreenState extends State<ChannelChatScreen> {
|
|||||||
connector.sendChannelMessage(widget.channel, messageText);
|
connector.sendChannelMessage(widget.channel, messageText);
|
||||||
_textController.clear();
|
_textController.clear();
|
||||||
_cancelReply();
|
_cancelReply();
|
||||||
|
_textFieldFocusNode.requestFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
String _formatTime(DateTime time) {
|
String _formatTime(DateTime time) {
|
||||||
|
|||||||
@@ -354,28 +354,44 @@ class _ChatScreenState extends State<ChatScreen> {
|
|||||||
builder: (context, value, child) {
|
builder: (context, value, child) {
|
||||||
final gifId = _parseGifId(value.text);
|
final gifId = _parseGifId(value.text);
|
||||||
if (gifId != null) {
|
if (gifId != null) {
|
||||||
return Row(
|
return Focus(
|
||||||
children: [
|
autofocus: true,
|
||||||
Expanded(
|
onKeyEvent: (node, event) {
|
||||||
child: ClipRRect(
|
if (event is KeyDownEvent &&
|
||||||
borderRadius: BorderRadius.circular(12),
|
(event.logicalKey == LogicalKeyboardKey.enter ||
|
||||||
child: GifMessage(
|
event.logicalKey ==
|
||||||
url:
|
LogicalKeyboardKey.numpadEnter)) {
|
||||||
'https://media.giphy.com/media/$gifId/giphy.gif',
|
_sendMessage(connector);
|
||||||
backgroundColor:
|
return KeyEventResult.handled;
|
||||||
colorScheme.surfaceContainerHighest,
|
}
|
||||||
fallbackTextColor: colorScheme.onSurface
|
return KeyEventResult.ignored;
|
||||||
.withValues(alpha: 0.6),
|
},
|
||||||
maxSize: 160,
|
child: Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: ClipRRect(
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
child: GifMessage(
|
||||||
|
url:
|
||||||
|
'https://media.giphy.com/media/$gifId/giphy.gif',
|
||||||
|
backgroundColor:
|
||||||
|
colorScheme.surfaceContainerHighest,
|
||||||
|
fallbackTextColor: colorScheme.onSurface
|
||||||
|
.withValues(alpha: 0.6),
|
||||||
|
maxSize: 160,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
const SizedBox(width: 8),
|
||||||
const SizedBox(width: 8),
|
IconButton(
|
||||||
IconButton(
|
icon: const Icon(Icons.close),
|
||||||
icon: const Icon(Icons.close),
|
onPressed: () {
|
||||||
onPressed: () => _textController.clear(),
|
_textController.clear();
|
||||||
),
|
_textFieldFocusNode.requestFocus();
|
||||||
],
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -443,6 +459,7 @@ class _ChatScreenState extends State<ChatScreen> {
|
|||||||
|
|
||||||
connector.sendMessage(widget.contact, text);
|
connector.sendMessage(widget.contact, text);
|
||||||
_textController.clear();
|
_textController.clear();
|
||||||
|
_textFieldFocusNode.requestFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _showPathHistory(BuildContext context) {
|
void _showPathHistory(BuildContext context) {
|
||||||
|
|||||||
@@ -168,6 +168,7 @@ class _RepeaterCliScreenState extends State<RepeaterCliScreen> {
|
|||||||
|
|
||||||
_commandController.clear();
|
_commandController.clear();
|
||||||
_historyIndex = -1;
|
_historyIndex = -1;
|
||||||
|
_commandFocusNode.requestFocus();
|
||||||
|
|
||||||
// Auto-scroll to bottom
|
// Auto-scroll to bottom
|
||||||
Future.delayed(const Duration(milliseconds: 100), () {
|
Future.delayed(const Duration(milliseconds: 100), () {
|
||||||
|
|||||||
-1143
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user