Skip to content

Commit 9ed44aa

Browse files
committed
handle fetching peers && add users' peers to shared preferences
1 parent 99175e6 commit 9ed44aa

6 files changed

Lines changed: 311 additions & 210 deletions

File tree

lib/features/home/home_screen.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,8 @@ class _StatsRow extends ConsumerWidget {
229229

230230
@override
231231
Widget build(BuildContext context, WidgetRef ref) {
232-
final peers = ref.watch(peersProvider);
233-
final peersCount = peers.length;
232+
final peersAsync = ref.watch(peersProvider);
233+
final peersCount = peersAsync.maybeWhen(data: (list) => list.length, orElse: () => 0);
234234
Widget tileContent(IconData icon, String title, String value) => Column(
235235
mainAxisSize: MainAxisSize.min,
236236
crossAxisAlignment: CrossAxisAlignment.center,
@@ -279,4 +279,4 @@ class _StatsRow extends ConsumerWidget {
279279
// TODO: VPN implemented or not and if yes, how to get its data ?
280280
//TODO: How to get num of peers, bandwidth, uptime ??
281281
//TODO: How to get All data in peers screen ?
282-
// TODO: what is the input to add a peer ?
282+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import 'package:shared_preferences/shared_preferences.dart';
2+
3+
class PeersRepository {
4+
static const _peersKey = 'user_peers';
5+
6+
Future<List<String>> loadPeers() async {
7+
final prefs = await SharedPreferences.getInstance();
8+
return prefs.getStringList(_peersKey) ?? [];
9+
}
10+
11+
Future<void> savePeers(List<String> peers) async {
12+
final prefs = await SharedPreferences.getInstance();
13+
await prefs.setStringList(_peersKey, peers);
14+
}
15+
16+
Future<void> addPeer(String peer) async {
17+
final peers = await loadPeers();
18+
if (!peers.contains(peer)) {
19+
peers.add(peer);
20+
await savePeers(peers);
21+
}
22+
}
23+
24+
Future<void> removePeer(String peer) async {
25+
final peers = await loadPeers();
26+
peers.remove(peer);
27+
await savePeers(peers);
28+
}
29+
}

0 commit comments

Comments
 (0)