diff --git a/lib/addevent.dart b/lib/addevent.dart
index c469156b8ae3c3d47421a524dbdcddf5c55622d7..2eae6aba7add7ad01f5650b13da8a268759e4067 100644
--- a/lib/addevent.dart
+++ b/lib/addevent.dart
@@ -4,20 +4,6 @@ import 'datamodel.dart';
 import 'dart:async';
 import 'package:geolocator/geolocator.dart';
 
-
-Future<Position> fetchPosition() async {
-  Position position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
-  print(position.longitude); //Output: 80.24599079
-  print(position.latitude); //Output: 29.6593457
-  print(position.altitude);
-
-  String long = position.longitude.toString();
-  String lat = position.latitude.toString();
-  String alt = position.altitude.toString();
-
-  return position;
-}
-
 class AddEvent extends StatefulWidget {
   @override
   State<AddEvent> createState() => _AddEventPageState();
@@ -25,9 +11,92 @@ class AddEvent extends StatefulWidget {
 
 class _AddEventPageState extends State<AddEvent>  {
   final List<bool> _isSelected = [true];
+  bool servicestatus = false;
+  bool haspermission = false;
+  late LocationPermission permission;
+  late Position position;
+  late String long = "";
+  late String lat = "";
+  late String alt = "";
+  late String accuracy = "";
+  late StreamSubscription<Position> positionStream;
+  LocationSettings locationSettings = const LocationSettings(
+    accuracy: LocationAccuracy.high,
+    distanceFilter: 0,
+  );
+
+  getLocation() async {
+    position =
+    await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
+    print('Get Location: Lat:' + position.latitude.toString() +
+        ' Long:' + position.longitude.toString() +
+        ' Alt:' + position.altitude.toString());
+
+    long = position.longitude.toString();
+    lat = position.latitude.toString();
+    alt = position.altitude.toString();
+    accuracy = position.accuracy.toString();
+
+    setState(() {
+      //refresh UI
+    });
+    StreamSubscription<Position> positionStream = Geolocator.getPositionStream(
+        locationSettings: locationSettings).listen((Position position) {
+      print('Get Location: Lat:' + position.latitude.toString() +
+          ' Long:' + position.longitude.toString() +
+          ' Alt:' + position.altitude.toString());
+
+      long = position.longitude.toString();
+      lat = position.latitude.toString();
+      alt = position.altitude.toString();
+      accuracy = position.accuracy.toString();
+
+      setState(() {
+        //refresh UI on update
+      });
+    });
+  }
+
+
+  checkGnssPermission() async {
+    print("CheckGnssPermission");
+    servicestatus = await Geolocator.isLocationServiceEnabled();
+    if(servicestatus){
+      permission = await Geolocator.checkPermission();
+
+      if (permission == LocationPermission.denied) {
+        permission = await Geolocator.requestPermission();
+        if (permission == LocationPermission.denied) {
+          print('Location permissions are denied');
+        }else if(permission == LocationPermission.deniedForever){
+          print('Location permissions are permanently denied');
+        }else{
+          haspermission = true;
+        }
+      }else{
+        haspermission = true;
+      }
+
+      if(haspermission){
+        print('Location permissions granted');
+        setState(() {
+          //refresh the UI
+        });
+
+        getLocation();
+      }
+    }else{
+      print("GPS Service is not enabled, turn on GPS location");
+    }
+
+    setState(() {
+      //refresh the UI
+    });
+  }
 
   @override
   void initState() {
+    checkGnssPermission();
     super.initState();
   }
 
@@ -115,37 +184,42 @@ class _AddEventPageState extends State<AddEvent>  {
               },
             ),
             TextFormField(
+              initialValue: lat,
               decoration: const InputDecoration(
                   labelText: 'Latitude'
               ),
             ),
             TextFormField(
+              initialValue: long,
               decoration: const InputDecoration(
                   labelText: 'Longitude'
               ),
             ),
             TextFormField(
+              initialValue: alt,
               decoration: const InputDecoration(
                   labelText: 'Elevation'
               ),
             ),
-            FutureBuilder<Position>(
-                future: fetchPosition(),
-                builder: (context, snapshot){
-                  if (snapshot.hasData)
-                  {
-                    return Text(snapshot.data!.latitude.toString());
-                  }
-                  else{
-                    return CircularProgressIndicator();
-                  }
-                }
-            ),
+            //FutureBuilder<Position>(
+            //    future: fetchPosition(),
+            //    builder: (context, snapshot){
+            //      if (snapshot.hasData)
+            //      {
+            //        return Text(snapshot.data!.latitude.toString());
+            //      }
+            //      else{
+            //        return CircularProgressIndicator();
+            //      }
+            //    }
+            //),
+              Text('Lat:'+lat),
           ]),
       bottomNavigationBar: Row(
         mainAxisAlignment: MainAxisAlignment.end,
         children: [
-
+          Text('No-Fix'),
+          SizedBox(width: 50),
           ToggleButtons(
             children: <Widget>[
               Icon(Icons.my_location),
@@ -157,7 +231,6 @@ class _AddEventPageState extends State<AddEvent>  {
               });
             },
           ),
-
           SizedBox(width: 50),
           FloatingActionButton(
             heroTag: null,