From bfd5c666a8568685c6cd115d1b911266294df1f0 Mon Sep 17 00:00:00 2001
From: poka <poka@p2p.legal>
Date: Sat, 30 Jan 2021 19:00:31 +0100
Subject: [PATCH] Improve node selection; Notification for selected node

---
 lib/globals.dart         |  1 +
 lib/main.dart            | 12 +++++++-----
 lib/models/history.dart  | 20 ++++++++++++++++++++
 lib/screens/history.dart |  4 ++++
 pubspec.yaml             |  2 +-
 5 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/lib/globals.dart b/lib/globals.dart
index bd3f455e..b3a31701 100644
--- a/lib/globals.dart
+++ b/lib/globals.dart
@@ -5,3 +5,4 @@ Directory appPath;
 Directory walletsDirectory;
 String appVersion;
 SharedPreferences prefs;
+String endPointGVA;
diff --git a/lib/main.dart b/lib/main.dart
index 1bdad086..39ea86e6 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -27,7 +27,7 @@ Future<void> main() async {
   appVersion = await _homeProvider.getAppVersion();
   prefs = await SharedPreferences.getInstance();
 
-  String randomEndpoint; // = await getRandomEndpoint();
+  String _randomEndpoint;
   int i = 0;
   do {
     if (i >= 5) {
@@ -38,9 +38,11 @@ Future<void> main() async {
       print(i.toString() + ' ème essai de recherche de endpoint GVA.');
       await Future.delayed(Duration(milliseconds: 300));
     }
-    randomEndpoint = await _homeProvider.getRandomEndpoint();
+    _randomEndpoint = await _homeProvider.getRandomEndpoint();
     i++;
-  } while (randomEndpoint == 'HS');
+  } while (_randomEndpoint == 'HS');
+
+  endPointGVA = _randomEndpoint;
 
   if (kReleaseMode && enableSentry) {
     await SentryFlutter.init(
@@ -48,13 +50,13 @@ Future<void> main() async {
         options.dsn =
             'https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110';
       },
-      appRunner: () => runApp(Gecko(randomEndpoint)),
+      appRunner: () => runApp(Gecko(_randomEndpoint)),
     );
   } else {
     print('Debug mode enabled: No sentry alerte');
 
     runApp(Gecko(
-      randomEndpoint,
+      _randomEndpoint,
     ));
   }
 }
diff --git a/lib/models/history.dart b/lib/models/history.dart
index ef9076f4..8f1293c1 100644
--- a/lib/models/history.dart
+++ b/lib/models/history.dart
@@ -1,5 +1,6 @@
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
+import 'package:gecko/globals.dart';
 import 'package:graphql_flutter/graphql_flutter.dart';
 import 'package:permission_handler/permission_handler.dart';
 import 'package:sentry/sentry.dart' as sentry;
@@ -14,6 +15,7 @@ class HistoryProvider with ChangeNotifier {
   final TextEditingController _outputPubkey = new TextEditingController();
   bool isTheEnd = false;
   List transBC;
+  bool isFirstBuild = true;
 
   Future scan() async {
     await Permission.camera.request();
@@ -144,6 +146,24 @@ class HistoryProvider with ChangeNotifier {
     return opts;
   }
 
+  snackNode(context) {
+    if (isFirstBuild) {
+      String _message;
+      print('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
+      print(endPointGVA);
+      if (endPointGVA == 'HS') {
+        _message =
+            "Aucun noeud Duniter disponible, veuillez réessayer ultérieurement";
+      } else {
+        _message = "Vous êtes connecté au noeud\n${endPointGVA.split('/')[2]}";
+      }
+      final snackBar =
+          SnackBar(content: Text(_message), duration: Duration(seconds: 2));
+      Scaffold.of(context).showSnackBar(snackBar);
+      isFirstBuild = false;
+    }
+  }
+
   void resetdHistory() {
     this._outputPubkey.text = '';
     notifyListeners();
diff --git a/lib/screens/history.dart b/lib/screens/history.dart
index f3ed4b51..9bea1569 100644
--- a/lib/screens/history.dart
+++ b/lib/screens/history.dart
@@ -25,6 +25,10 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
     HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
     this._outputPubkey.text = _historyProvider.pubkey;
     print('Build pubkey : ' + _historyProvider.pubkey);
+    // _historyProvider.snackNode(context);
+    WidgetsBinding.instance.addPostFrameCallback((_) {
+      _historyProvider.snackNode(context);
+    });
     return Scaffold(
         floatingActionButton: Container(
           height: 80.0,
diff --git a/pubspec.yaml b/pubspec.yaml
index 7a2a49ac..76c4b843 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -5,7 +5,7 @@ description: A new Flutter project.
 # pub.dev using `pub publish`. This is preferred for private packages.
 publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 
-version: 0.0.0+15
+version: 0.0.1+0
 
 environment:
   sdk: ">=2.7.0 <3.0.0"
-- 
GitLab