mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-06-25 11:52:53 +10:00
format dart files
formats all dart files using `dart format .` from the root project dir this makes the code style repeatable by new contributors and makes PR review easier
This commit is contained in:
@@ -8,7 +8,10 @@ class ChannelMessageStore {
|
||||
static const String _keyPrefix = 'channel_messages_';
|
||||
|
||||
/// Save messages for a specific channel
|
||||
Future<void> saveChannelMessages(int channelIndex, List<ChannelMessage> messages) async {
|
||||
Future<void> saveChannelMessages(
|
||||
int channelIndex,
|
||||
List<ChannelMessage> messages,
|
||||
) async {
|
||||
final prefs = PrefsManager.instance;
|
||||
final key = '$_keyPrefix$channelIndex';
|
||||
|
||||
@@ -96,7 +99,8 @@ class ChannelMessageStore {
|
||||
pathVariants: (json['pathVariants'] as List<dynamic>?)
|
||||
?.map((entry) => Uint8List.fromList(base64Decode(entry as String)))
|
||||
.toList(),
|
||||
repeats: (json['repeats'] as List<dynamic>?)
|
||||
repeats:
|
||||
(json['repeats'] as List<dynamic>?)
|
||||
?.map((entry) => _repeatFromJson(entry as Map<String, dynamic>))
|
||||
.toList() ??
|
||||
const [],
|
||||
@@ -105,15 +109,19 @@ class ChannelMessageStore {
|
||||
replyToMessageId: json['replyToMessageId'] as String?,
|
||||
replyToSenderName: json['replyToSenderName'] as String?,
|
||||
replyToText: json['replyToText'] as String?,
|
||||
reactions: (json['reactions'] as Map<String, dynamic>?)?.map(
|
||||
(key, value) => MapEntry(key, value as int),
|
||||
) ?? {},
|
||||
reactions:
|
||||
(json['reactions'] as Map<String, dynamic>?)?.map(
|
||||
(key, value) => MapEntry(key, value as int),
|
||||
) ??
|
||||
{},
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> _repeatToJson(Repeat repeat) {
|
||||
return {
|
||||
'repeaterKey': repeat.repeaterKey != null ? base64Encode(repeat.repeaterKey!) : null,
|
||||
'repeaterKey': repeat.repeaterKey != null
|
||||
? base64Encode(repeat.repeaterKey!)
|
||||
: null,
|
||||
'repeaterName': repeat.repeaterName,
|
||||
'tripTimeMs': repeat.tripTimeMs,
|
||||
'path': repeat.path?.map((bytes) => base64Encode(bytes)).toList() ?? [],
|
||||
|
||||
@@ -16,7 +16,10 @@ class ChannelOrderStore {
|
||||
try {
|
||||
final decoded = jsonDecode(raw);
|
||||
if (decoded is List) {
|
||||
return decoded.map((value) => value is int ? value : int.tryParse('$value')).whereType<int>().toList();
|
||||
return decoded
|
||||
.map((value) => value is int ? value : int.tryParse('$value'))
|
||||
.whereType<int>()
|
||||
.toList();
|
||||
}
|
||||
} catch (_) {
|
||||
// fall through to legacy parse
|
||||
|
||||
@@ -40,7 +40,7 @@ class CommunityStore {
|
||||
/// Add a new community
|
||||
Future<void> addCommunity(Community community) async {
|
||||
final communities = await loadCommunities();
|
||||
|
||||
|
||||
// Check if community with same ID already exists
|
||||
final existingIndex = communities.indexWhere((c) => c.id == community.id);
|
||||
if (existingIndex >= 0) {
|
||||
@@ -49,7 +49,7 @@ class CommunityStore {
|
||||
} else {
|
||||
communities.add(community);
|
||||
}
|
||||
|
||||
|
||||
await saveCommunities(communities);
|
||||
}
|
||||
|
||||
@@ -92,10 +92,7 @@ class CommunityStore {
|
||||
}
|
||||
|
||||
/// Add a hashtag channel to a community
|
||||
Future<void> addHashtagChannel(
|
||||
String communityId,
|
||||
String hashtag,
|
||||
) async {
|
||||
Future<void> addHashtagChannel(String communityId, String hashtag) async {
|
||||
final community = await getCommunity(communityId);
|
||||
if (community != null) {
|
||||
final updated = community.addHashtagChannel(hashtag);
|
||||
@@ -104,10 +101,7 @@ class CommunityStore {
|
||||
}
|
||||
|
||||
/// Remove a hashtag channel from a community
|
||||
Future<void> removeHashtagChannel(
|
||||
String communityId,
|
||||
String hashtag,
|
||||
) async {
|
||||
Future<void> removeHashtagChannel(String communityId, String hashtag) async {
|
||||
final community = await getCommunity(communityId);
|
||||
if (community != null) {
|
||||
final updated = community.removeHashtagChannel(hashtag);
|
||||
|
||||
@@ -14,7 +14,9 @@ class ContactStore {
|
||||
|
||||
try {
|
||||
final jsonList = jsonDecode(jsonStr) as List<dynamic>;
|
||||
return jsonList.map((entry) => _fromJson(entry as Map<String, dynamic>)).toList();
|
||||
return jsonList
|
||||
.map((entry) => _fromJson(entry as Map<String, dynamic>))
|
||||
.toList();
|
||||
} catch (_) {
|
||||
return [];
|
||||
}
|
||||
@@ -57,12 +59,16 @@ class ContactStore {
|
||||
: Uint8List(0),
|
||||
pathOverride: json['pathOverride'] as int?,
|
||||
pathOverrideBytes: json['pathOverrideBytes'] != null
|
||||
? Uint8List.fromList(base64Decode(json['pathOverrideBytes'] as String))
|
||||
? Uint8List.fromList(
|
||||
base64Decode(json['pathOverrideBytes'] as String),
|
||||
)
|
||||
: null,
|
||||
latitude: (json['latitude'] as num?)?.toDouble(),
|
||||
longitude: (json['longitude'] as num?)?.toDouble(),
|
||||
lastSeen: DateTime.fromMillisecondsSinceEpoch(lastSeenMs),
|
||||
lastMessageAt: DateTime.fromMillisecondsSinceEpoch(lastMessageMs ?? lastSeenMs),
|
||||
lastMessageAt: DateTime.fromMillisecondsSinceEpoch(
|
||||
lastMessageMs ?? lastSeenMs,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,10 @@ import 'prefs_manager.dart';
|
||||
class MessageStore {
|
||||
static const String _keyPrefix = 'messages_';
|
||||
|
||||
Future<void> saveMessages(String contactKeyHex, List<Message> messages) async {
|
||||
Future<void> saveMessages(
|
||||
String contactKeyHex,
|
||||
List<Message> messages,
|
||||
) async {
|
||||
final prefs = PrefsManager.instance;
|
||||
final key = '$_keyPrefix$contactKeyHex';
|
||||
final jsonList = messages.map(_messageToJson).toList();
|
||||
@@ -45,12 +48,16 @@ class MessageStore {
|
||||
'messageId': msg.messageId,
|
||||
'retryCount': msg.retryCount,
|
||||
'estimatedTimeoutMs': msg.estimatedTimeoutMs,
|
||||
'expectedAckHash': msg.expectedAckHash != null ? base64Encode(msg.expectedAckHash!) : null,
|
||||
'expectedAckHash': msg.expectedAckHash != null
|
||||
? base64Encode(msg.expectedAckHash!)
|
||||
: null,
|
||||
'sentAt': msg.sentAt?.millisecondsSinceEpoch,
|
||||
'deliveredAt': msg.deliveredAt?.millisecondsSinceEpoch,
|
||||
'tripTimeMs': msg.tripTimeMs,
|
||||
'pathLength': msg.pathLength,
|
||||
'pathBytes': msg.pathBytes.isNotEmpty ? base64Encode(msg.pathBytes) : null,
|
||||
'pathBytes': msg.pathBytes.isNotEmpty
|
||||
? base64Encode(msg.pathBytes)
|
||||
: null,
|
||||
'reactions': msg.reactions,
|
||||
'fourByteRoomContactKey': base64Encode(msg.fourByteRoomContactKey),
|
||||
};
|
||||
@@ -59,7 +66,9 @@ class MessageStore {
|
||||
Message _messageFromJson(Map<String, dynamic> json) {
|
||||
final rawText = json['text'] as String;
|
||||
final isCli = json['isCli'] as bool? ?? false;
|
||||
final decodedText = isCli ? rawText : (Smaz.tryDecodePrefixed(rawText) ?? rawText);
|
||||
final decodedText = isCli
|
||||
? rawText
|
||||
: (Smaz.tryDecodePrefixed(rawText) ?? rawText);
|
||||
return Message(
|
||||
senderKey: Uint8List.fromList(base64Decode(json['senderKey'] as String)),
|
||||
text: decodedText,
|
||||
@@ -84,11 +93,15 @@ class MessageStore {
|
||||
pathBytes: json['pathBytes'] != null
|
||||
? Uint8List.fromList(base64Decode(json['pathBytes'] as String))
|
||||
: Uint8List(0),
|
||||
reactions: (json['reactions'] as Map<String, dynamic>?)?.map(
|
||||
(key, value) => MapEntry(key, value as int),
|
||||
) ?? {},
|
||||
reactions:
|
||||
(json['reactions'] as Map<String, dynamic>?)?.map(
|
||||
(key, value) => MapEntry(key, value as int),
|
||||
) ??
|
||||
{},
|
||||
fourByteRoomContactKey: json['fourByteRoomContactKey'] != null
|
||||
? Uint8List.fromList(base64Decode(json['fourByteRoomContactKey'] as String))
|
||||
? Uint8List.fromList(
|
||||
base64Decode(json['fourByteRoomContactKey'] as String),
|
||||
)
|
||||
: null,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,8 @@ class PrefsManager {
|
||||
static SharedPreferences get instance {
|
||||
if (_instance == null) {
|
||||
throw StateError(
|
||||
'PrefsManager not initialized. Call PrefsManager.initialize() in main() before use.');
|
||||
'PrefsManager not initialized. Call PrefsManager.initialize() in main() before use.',
|
||||
);
|
||||
}
|
||||
return _instance!;
|
||||
}
|
||||
|
||||
@@ -92,8 +92,9 @@ class UnreadStore {
|
||||
if (_pendingChannelLastRead == null) return;
|
||||
|
||||
final prefs = PrefsManager.instance;
|
||||
final asString =
|
||||
_pendingChannelLastRead!.map((key, value) => MapEntry(key.toString(), value));
|
||||
final asString = _pendingChannelLastRead!.map(
|
||||
(key, value) => MapEntry(key.toString(), value),
|
||||
);
|
||||
final jsonStr = jsonEncode(asString);
|
||||
await prefs.setString(_channelLastReadKey, jsonStr);
|
||||
_pendingChannelLastRead = null;
|
||||
@@ -104,9 +105,6 @@ class UnreadStore {
|
||||
_contactSaveTimer?.cancel();
|
||||
_channelSaveTimer?.cancel();
|
||||
|
||||
await Future.wait([
|
||||
_flushContactLastRead(),
|
||||
_flushChannelLastRead(),
|
||||
]);
|
||||
await Future.wait([_flushContactLastRead(), _flushChannelLastRead()]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user