@@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
2
2
import 'package:hooks_riverpod/hooks_riverpod.dart' ;
3
3
4
4
import '../../db/extension/message.dart' ;
5
+ import '../../db/extension/message_category.dart' ;
5
6
import '../../db/mixin_database.dart' ;
6
7
import 'conversation_provider.dart' ;
7
8
@@ -11,6 +12,7 @@ class MessageSelectionNotifier extends ChangeNotifier {
11
12
final Set <String > _selectedMessageIds = {};
12
13
final Set <String > _messageCannotForward = {};
13
14
final Set <String > _messageCannotRecall = {};
15
+ final Set <String > _messageCannotCombineForward = {};
14
16
15
17
bool get hasSelectedMessage => _selectedMessageIds.isNotEmpty;
16
18
@@ -19,18 +21,26 @@ class MessageSelectionNotifier extends ChangeNotifier {
19
21
bool get canForward =>
20
22
_messageCannotForward.isEmpty && _selectedMessageIds.length < 100 ;
21
23
24
+ bool get canCombineForward =>
25
+ _messageCannotCombineForward.isEmpty &&
26
+ _selectedMessageIds.length >= 2 &&
27
+ _selectedMessageIds.length < 100 ;
28
+
22
29
bool get canRecall =>
23
30
_messageCannotRecall.isEmpty && _selectedMessageIds.length < 100 ;
24
31
25
32
void selectMessage (MessageItem message) {
26
33
_selectedMessageIds.add (message.messageId);
27
34
if (! message.canForward) {
28
35
_messageCannotForward.add (message.messageId);
36
+ _messageCannotCombineForward.add (message.messageId);
29
37
}
30
38
if (! message.canRecall) {
31
39
_messageCannotRecall.add (message.messageId);
32
40
}
33
-
41
+ if (message.type.isTranscript) {
42
+ _messageCannotCombineForward.add (message.messageId);
43
+ }
34
44
notifyListeners ();
35
45
}
36
46
@@ -40,10 +50,15 @@ class MessageSelectionNotifier extends ChangeNotifier {
40
50
if (_selectedMessageIds.remove (messageId)) {
41
51
_messageCannotForward.remove (messageId);
42
52
_messageCannotRecall.remove (messageId);
53
+ _messageCannotCombineForward.remove (messageId);
43
54
} else {
44
55
_selectedMessageIds.add (messageId);
45
56
if (! message.canForward) {
46
57
_messageCannotForward.add (message.messageId);
58
+ _messageCannotCombineForward.add (messageId);
59
+ }
60
+ if (message.type.isTranscript) {
61
+ _messageCannotCombineForward.add (messageId);
47
62
}
48
63
if (! message.canRecall) {
49
64
_messageCannotRecall.add (message.messageId);
@@ -57,6 +72,7 @@ class MessageSelectionNotifier extends ChangeNotifier {
57
72
_selectedMessageIds.clear ();
58
73
_messageCannotForward.clear ();
59
74
_messageCannotRecall.clear ();
75
+ _messageCannotCombineForward.clear ();
60
76
61
77
notifyListeners ();
62
78
}
0 commit comments